本文來自:碳鏈價值,作者:李畫,星球日報經授權轉發。生成隨機數不是應該留給人類來做的任務。——MadsHaahr區塊鏈的世界沒有真正的隨機數,但隨機數卻是區塊鏈游戲之魂,至少在目前階段。所以,當偽隨機數讓DApp流下第一滴血后,DApp卻無法斷臂求生。潛伏的黑客們就像嗜血的鯊魚,在嗅到腥味后迅速聚攏過來,圍攻這個有著天生缺陷的獵物。Luckyos、EOS.WIN、DEOSBET、FairDice、EosRoyale、EOSDice、FFGame……這些熱門DApp游戲先后被攻擊,因隨機數漏洞而面臨生死危機。“沒有被攻擊過隨機數的都不好意思說自己做的是DApp”,開發者們如此自嘲。本文采訪了一直關注DApp隨機數漏洞的慢霧科技安全研究員Johan,并就代碼細節問題咨詢了資深DApp開發工程師高金,試圖通過這篇文章,呈現出隨機數的前世與今生、原罪與救贖。原罪:計算機的世界沒有真隨機數
真正的隨機數只存在于物理世界中,比如擲骰子的結果,比如電子組件的噪聲。最早的隨機數生成器是骰子,早在公元前2600年,人類就已經用四面骰來玩拋擲游戲了,迄今為止,它依然是最值得信賴的產生隨機數的方法。
但骰子顯然不能滿足現代世界對隨機數的需求,于是在1995年,RAND公司推出《百萬亂數表》。RAND先通過隨機脈沖發生器生成大量隨機數,再把這些數字集合起來組成隨機數字書,免費提供給人們使用。這本書是20世紀隨機數領域的重要著作,也是人類歷史上第一次產生如此大量的、高質量的隨機數。
Azuki空投項目Beanz Official地板價升至1.9 ETH:金色財經報道,Azuki空投NFT項目Beanz Official地板價升至1.9 ETH,24小時漲幅達31%,24小時交易量達2113.76 ETH,漲幅達165%。當前項目總市值達51713.24 ETH。[2023/1/5 10:22:58]
與此同時,阿蘭·圖靈在計算機FerrantiMark1中首次內置了隨機數生成指令,利用熱噪聲可以一次性生成20個隨機比特。1999年,Intel更進一步,在i810芯片組上集成了芯片級的真隨機數生成器,通過熱噪聲產生本地源的隨機數。
不過,TRNG每秒只能產生有限的隨機比特,隨機數生成速度低,致使軟件的工作頻率受限,而且TRNG對外界干擾極其敏感,需要耗費大量功率避免非隨機信號對信號源的污染。偽隨機數應運而生。馮·諾依曼創造了最早的偽隨機數生成器,通過給出一個確定的隨機數種子,由確定的算法在每次生成同樣的隨機數序列。只要種子不變,偽隨機數的數序也不會變。自此以后,猜種子破解隨機數便成為黑客的常規攻擊手段,而事實證明,具有好的質量且不易被攻克的種子很難尋覓。但即便如此,因為效率的緣故,計算機軟件還是不得不依賴于偽隨機數。在當前的編程語言中,C++、R、Python、Ruby、PHP等都采用了梅森旋轉算法作為默認的偽隨機數生成方法,它由松本真和西村拓士在1997年發明。梅森旋轉算法把寄存器當時或者之前的狀態作為種子來源,通過線性反饋移位寄存器對輸入進行移位旋轉,周期為一個梅森素數。該算法產生的偽隨機數質量好、產生速度快。偽隨機數的種子來源也可以是真隨機數——CPU通過TRNG不斷產生真隨機數,并將真隨機數存儲在熵池中,當軟件需要使用隨機數時,從熵池里提取一些真隨機數作為種子輸入到PRNG中,通過PRNG得到偽隨機數序列。天塹:區塊鏈不支持生成隨機數
牛津年度詞匯首次邀請公眾投票選,“元宇宙”入圍前三:11月24日消息,《牛津英語詞典》的出版商牛津大學出版社(OUP)今年首次邀請公眾投票來確定年度詞匯。“元宇宙(metaverse)”入圍前三,有望獲得牛津年度最佳詞匯(WOTY)稱號。
牛津大學出版社發布了一條對“元宇宙”的說明視頻,將其描述為“一個假想的虛擬現實環境,在這個環境中,用戶以身臨其境的方式與彼此的化身和周圍環境互動”。牛津大學出版社指出,2022年10月“元宇宙”的使用量是2021年10月的四倍。該視頻稱,生活和工作更多在虛擬現實環境中進行,可能會帶來 “更多對未來完全在線的倫理和可行性的討論”。
網民可以在牛津大學的網站上投票。投票將于12月2日結束,最終評選結果將于12月5日公布。(澎湃新聞)[2022/11/24 8:03:20]
傳統的偽隨機數生成算法或多或少與單臺機器的物理狀態或運算狀態相關,不同的機器,或者說不同的節點,會有不同的運算結果,這在區塊鏈上是行不通的。區塊鏈是一個分布式的系統,它要求各個節點的運算結果是可驗證、可共識的。區塊鏈需要從零開始設計嶄新的隨機數法則,從而實現不同節點上的智能合約可以使用相同的隨機數。有三種解決方式。第一種是讓可信第三方為合約提供隨機數;第二種是通過基礎合約實現偽隨機數生成器,為其他合約提供一致的隨機數;第三種是讓所有節點上的合約可以采集到相同的種子,再通過偽隨機算法計算出相同的隨機數序列。第一種方式最大的缺陷是需要引入第三方。該第三方是否值得信任,能否能提供高質量的隨機數均是問題。除此之外,區塊鏈是警惕中心化的,而第三方在某種程度上是中心化的,這與一些DApp開發者的理念不相符合。在以太坊上,Oraclize是為鏈上節點提供隨機數的第三方。Oraclize是一個預言機,獨立于區塊鏈系統之外,智能合約發送請求給Oraclize,當Oraclize監聽到鏈上相關請求后,生成隨機數并將結果返回區塊鏈。
Web3游戲NFT市場Fractal已上線以太坊:11月2日消息,由Twitch聯合創始人Justin Kan于2021年12月推出的Web3游戲NFT市場Fractal已上線以太坊,包括Fractal錢包、SDK、Launchpad和交易市場,后續也將上線其他EVM兼容鏈,主要考慮因素包括流動性、社區和網絡速度。
此前報道,今年4月,Fractal完成3500萬美元種子輪融資,Paradigm和Multicoin Capital領投。[2022/11/2 12:09:19]
第二種方式最符合區塊鏈精神,是一個不同參與者合作生成隨機數的偽隨機數生成器,但它涉及到激勵機制的設計問題,以及人為控制的作弊問題。RANDAO采用的即是這種方式,它以智能合約的形式封裝了偽隨機數生成算法和對應的業務邏輯,為以太坊提供隨機數服務,任何人都可以參與生成RANDAO隨機數。在隨機數生成周期,每個參與者都需要提交一個數字,而來自所有參與者的數字集合將被作為種子生成偽隨機數,因為無法知曉他人提供的種子,該方法產生的結果難以被破解。智能合約可以向RANDAO請求隨機數,但需要支付獎金給生成隨機數的參與者。
第三種方式,隨機數不是從合約外部引入,而是把區塊鏈的鏈上信息做為種子,由智能合約根據種子生成偽隨機數。這種方法最大的缺陷就是一旦黑客知道了隨機數的生成算法,也能獲取正確的種子,就能輕易地對智能合約發起隨機數攻擊。不同于傳統偽隨機數生成算法中種子的私密性,區塊鏈上的種子幾乎是“透明”的:它是鏈上的區塊信息,所有節點上的智能合約都能夠取到,那么從原理上講,黑客用于攻擊的惡意合約同樣可以獲得這些數值。不過,因為缺乏成熟的隨機數提供方,以及對中心化隨機數的警惕、對鏈上自治的追求,通過智能合約計算隨機數依然是EOS上眾多DApps首選的方法,這也是DApps深陷黑客危機的原因所在。攻防:道高一尺魔高一丈
Beosin:EthTeamFinance項目遭受到了漏洞攻擊事件簡析:據Beosin EagleEye 安全預警與監控平臺檢測顯示,ETH鏈上的EthTeamFinance項目遭受漏洞攻擊,攻擊合約0xCFF07C4e6aa9E2fEc04DAaF5f41d1b10f3adAdF4通過LockToken合約的migrate函數沒有正確驗證_id和params的漏洞,將WTH,CAW,USDC,TSUKA代幣從V2流動性池非法升級到V3流動性池,并且通過sqrtPriceX96打亂V3流動池的Initialize的價格,從而獲取大量refund套利。共計套利了約1300多萬美元。[2022/10/27 11:49:12]
FFGAME可能是史上最倒霉DApp——游戲還沒正式運營就遭到攻擊。黑客很快破解了隨機數,然后在游戲中不斷獲勝,輕松拿走FFGAME平臺放入游戲中的初始資產,1332個EOS。FFGAME還沒準備迎敵,城門就已失守。在DApp的攻防戰中,攻擊者們通常有兩種方法來利用隨機數盜取資產。第一種方法是獲取正確的隨機數種子,通過偽隨機算法計算出游戲結果,然后根據結果下注,保證百分百勝率。第二種方法是在知道偽隨機算法和種子來源的情況下,通過改變種子的數值讓偽隨機算法計算出自己下注的游戲結果,從而保證百分百勝率。EOSDice是一個被黑客用第一種方法攻破后,修改了偽隨機數算法,旋即又被黑客用第二種方法攻破的DApp。不過,值得贊賞的是,EOSDice也是一個被攻破兩次但依然堅持開源的EOS游戲。
以太坊L2網絡總鎖倉量為50.4億美元:金色財經報道,L2BEAT數據顯示,截至6月2日,以太坊Layer2上總鎖倉量為50.4億美元。其中鎖倉量最高的為擴容方案Arbitrum,約25億美元,占比49.74%。其次是dYdX,鎖倉量9.65億美元,占比19.15%。Optimism占據第三,鎖倉量9.08億美元,占比18.03%。[2022/6/2 3:58:54]
EOSDice第一次被攻擊發生在11月4日上午3:15,攻擊者為jk2uslllkjfd,共被盜取約2500個EOS并轉入火幣。EOSDice的偽隨機數生成算法中使用的隨機種子主要是:tapos_block_prefix();tapos_block_num();name();game_id;current_time();pool_ol_eos.amount。種子中的后四個,也就是帳戶名、id、開獎時間、合約余額都比較容易獲取,隨機數的安全性主要依賴于前兩個種子,也就是referenceblock的信息。在EOSDice的實時開獎機制中,開獎action的referenceblock在默認狀態下是執行當前action的上一個區塊,該區塊已經存在,其信息可以提前獲取。因此,黑客可以通過種子預先算出結果,再下注。
EOSDice在被攻擊后把實時開獎改為異步延時開獎,并重新上線運營。只不過二次攻擊很快發生,在11月10日上午11:19,賬戶名為coinbasewa11的攻擊者盜取了約4900個EOS,并轉入bitfinex。在異步延時開獎機制下,referenceblock的指向發生了變化。開獎action的referenceblock是在下注時還未生成的區塊,其信息難以提前獲取,也就不能搶先計算出游戲結果。但黑客們謀劃了新手段:首先,讓攻擊合約模擬EOSDice的游戲合約,只要兩種合約運行在同一個區塊,就會取到相同的種子,計算出相同的結果;然后,因為EOSDice偽隨機算法的種子包括賬戶余額,黑客可以在攻擊合約中一次次修改余額的數值來改變種子進而改變運算的結果,直到其最終滿足自己的下注條件;最后,在通過上述計算“碰撞”出“正確”的賬戶余額后,黑客只需要向真正的游戲合約賬戶轉入被計算好的EOS,就能保證開獎時必然中獎。
救贖:沒有最好,只能更好
鏈上隨機數問題沒有完美的解決方案。區塊鏈上不僅沒有真隨機數,連傳統的偽隨機數也沒有。EOS官方示例中采用的隨機數生成法類似于上文討論的第二種方式——用不同參與者的私密數據的集合作為種子,生成難以被預測的偽隨機數。以Dice為例,玩家和莊家需要提前生成密鑰,把公鑰先傳到鏈上,開獎的時候再提交各自的私鑰,作為種子生成隨機數,再由隨機數判定開獎結果。這可能是目前最安全的偽隨機數生成方式,但它給玩家增加了額外的且并不輕松的操作,提高了游戲門檻,在現實中并未被廣泛的采用。BM在EOS開發者群回答隨機數安全問題時,提出了一個“信任區塊生產者”的方案,也就是說用區塊生產者在打包交易的某個特定時機獲取的某些信息來生成偽隨機數。雖然是在鏈上解決問題,但這種方法更接近于上文討論的第一種方式——由一個中心化的第三方來提供隨機數,雖然難以被破解,但提供者不一定值得信任。屢敗屢戰的EOS上的DApp開發者通常選用上文中的第三種方式——智能合約獲取鏈上數據作為種子,自己生成偽隨機數。在與黑客數次交鋒之后,目前DApp最常用的開獎機制是“二次延時開獎+種子中不設置可控變量”。實時開獎機制下,referenceblock是上一個區塊,其中的種子數據在開獎前就可被黑客獲取;而二次延時開獎,referenceblock是還未生成的區塊,其中的種子數據難以預測,黑客也就無法提前算出開獎結果。種子中不設置可控變量則保證了黑客不能通過改變種子的數值來操控開獎結果。不過,即便如此,“二次延時開獎+種子中不設置可控變量”也不能保證合約隨機數的絕對安全,只能說在目前階段這種方法還未被黑客攻破,相對安全。畢竟不管采用幾次延時,開獎合約能獲取的種子,攻擊合約也一樣能得到,鏈上的種子是“公平”、“透明”的。如何在這種不完美的情況下盡量減少隨機數攻擊帶來的破壞,慢霧團隊給出了一些實用建議:1.多用攻擊者視角審查合約。2.攻擊者一般是通過惡意合約完成攻擊,要思考合約能從什么角度攻擊隨機數。3.隨機數的安全與偽隨機數生成算法相關,也與開獎機制相關,算法和機制要配合設計。4.偽隨機數生成算法不要引入可預測種子和可控種子,避免結果被預測或被篡改。5.了解區塊鏈上的隨機數與傳統隨機數的差別。6.做安全審計。在項目上線和開源前做安全審計,已知的漏洞能被查出,未知的漏洞也能通過風控機制把危害降到最低。結語
“在所有的產生隨機數的事物中,我認為沒有什么能夠超越骰子了”,FrancisGalton在1890年的《自然》雜志中如此寫道。但骰子永遠也不可能滿足計算機應用的需求,一旦要在二進制的世界使用隨機數,我們就需要做出妥協,把自己暴露在黑客攻擊的危險之下。區塊鏈世界的特殊性需要我們做出更多的妥協。因為分布式、因為透明、因為警惕中心化與渴望鏈上自治,在區塊鏈上,沒有真隨機數、也永遠不會有絕對安全的隨機數。隨機數帶來的是一場永久的戰役,在開發者與黑客之間。隨機數會抗所有已知類型的攻擊,但黑客也會不斷發現新的攻擊手段。此地無人生還。
Tags:EOS區塊鏈DAPPAPPPIXEOS區塊鏈存證說法錯誤的是區塊鏈dapp開發費多少錢幣牛牛app官方下載最新版
頭條 媒體:匯眾區塊鏈突然關網,十多億款項不知所蹤據互鏈脈搏消息,10月10日晚,位于北京的匯眾區塊鏈商業項目疑似團伙詐騙跑路,目前官網已無法打開,眾多投資者已無法提現.
1900/1/1 0:00:00編者按:本文來自區塊律動BlockBeats,作者:0x2,0x200x28,Odaily星球日報經授權轉載。認輸的話,說不定可以退點錢給你.
1900/1/1 0:00:00編者按:本文來自區塊律動BlockBeats,作者:區塊律動0x2,星球日報經授權發布。近日,美國國家標準與技術研究所對今年年初發布的區塊鏈技術報告進行了修訂并重新發布,該報告提到了區塊鏈技術原.
1900/1/1 0:00:00熊市漫漫,曾經在我們筆下規模為4000億美元的可交易數字貨幣市場,現今已跌落至2000億美元。然而,傳統資管對這個市場的熱情并未消退。對沖基金的新成立數量在今年達到歷史之最.
1900/1/1 0:00:00編者按:本文來自 哈希派 ,作者:不碎,Odaily星球日報經授權發布。!webp\"data-img-size-val=\"800,450\"\u002F\\>2016年6月,基于以太坊的眾籌.
1900/1/1 0:00:00可能看《曉說》的觀眾對高曉松的認知還停留在見多識廣的文化人、知識分子層面上,人們佩服他的才華。但實際上,無論是文化界,還是知識分子圈層,高曉松對前沿技術的觀察和思考,早就走到了大多數人的前面.
1900/1/1 0:00:00