以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

此地無人生還:區塊鏈隨機數的原罪與救贖_區塊鏈:DAPP

Author:

Time:1900/1/1 0:00:00

本文來自:碳鏈價值,作者:李畫,星球日報經授權轉發。生成隨機數不是應該留給人類來做的任務。——MadsHaahr區塊鏈的世界沒有真正的隨機數,但隨機數卻是區塊鏈游戲之魂,至少在目前階段。所以,當偽隨機數讓DApp流下第一滴血后,DApp卻無法斷臂求生。潛伏的黑客們就像嗜血的鯊魚,在嗅到腥味后迅速聚攏過來,圍攻這個有著天生缺陷的獵物。Luckyos、EOS.WIN、DEOSBET、FairDice、EosRoyale、EOSDice、FFGame……這些熱門DApp游戲先后被攻擊,因隨機數漏洞而面臨生死危機。“沒有被攻擊過隨機數的都不好意思說自己做的是DApp”,開發者們如此自嘲。本文采訪了一直關注DApp隨機數漏洞的慢霧科技安全研究員Johan,并就代碼細節問題咨詢了資深DApp開發工程師高金,試圖通過這篇文章,呈現出隨機數的前世與今生、原罪與救贖。原罪:計算機的世界沒有真隨機數

真正的隨機數只存在于物理世界中,比如擲骰子的結果,比如電子組件的噪聲。最早的隨機數生成器是骰子,早在公元前2600年,人類就已經用四面骰來玩拋擲游戲了,迄今為止,它依然是最值得信賴的產生隨機數的方法。

但骰子顯然不能滿足現代世界對隨機數的需求,于是在1995年,RAND公司推出《百萬亂數表》。RAND先通過隨機脈沖發生器生成大量隨機數,再把這些數字集合起來組成隨機數字書,免費提供給人們使用。這本書是20世紀隨機數領域的重要著作,也是人類歷史上第一次產生如此大量的、高質量的隨機數。

Tiger Global旗下127億美元的風投基金錄得20%虧損:4月24日消息,老虎環球基金(Tiger Global Management)最近告知LP,截至去年底,旗下127億美元的風投基金錄得20%虧損。老虎環球基金表示,低估了通脹上升的影響,高估了疫情對其投資組合所帶來業務增長的可持續性。此外,老虎環球基金正在與銀行合作,清算其在其他風險投資基金中的股份。(The Information)[2023/4/24 14:23:50]

與此同時,阿蘭·圖靈在計算機FerrantiMark1中首次內置了隨機數生成指令,利用熱噪聲可以一次性生成20個隨機比特。1999年,Intel更進一步,在i810芯片組上集成了芯片級的真隨機數生成器,通過熱噪聲產生本地源的隨機數。

不過,TRNG每秒只能產生有限的隨機比特,隨機數生成速度低,致使軟件的工作頻率受限,而且TRNG對外界干擾極其敏感,需要耗費大量功率避免非隨機信號對信號源的污染。偽隨機數應運而生。馮·諾依曼創造了最早的偽隨機數生成器,通過給出一個確定的隨機數種子,由確定的算法在每次生成同樣的隨機數序列。只要種子不變,偽隨機數的數序也不會變。自此以后,猜種子破解隨機數便成為黑客的常規攻擊手段,而事實證明,具有好的質量且不易被攻克的種子很難尋覓。但即便如此,因為效率的緣故,計算機軟件還是不得不依賴于偽隨機數。在當前的編程語言中,C++、R、Python、Ruby、PHP等都采用了梅森旋轉算法作為默認的偽隨機數生成方法,它由松本真和西村拓士在1997年發明。梅森旋轉算法把寄存器當時或者之前的狀態作為種子來源,通過線性反饋移位寄存器對輸入進行移位旋轉,周期為一個梅森素數。該算法產生的偽隨機數質量好、產生速度快。偽隨機數的種子來源也可以是真隨機數——CPU通過TRNG不斷產生真隨機數,并將真隨機數存儲在熵池中,當軟件需要使用隨機數時,從熵池里提取一些真隨機數作為種子輸入到PRNG中,通過PRNG得到偽隨機數序列。天塹:區塊鏈不支持生成隨機數

阿里巴巴達摩院基礎視覺團隊總監:將于月底逐步開放文字生成圖像產品“通義萬相”:4月12日消息,在2023 香港 Web3 嘉年華會場上的“Web3 技術新風向:人工智慧生成內容 (AIGC) 與隱私運算技術”活動中,阿里巴巴達摩院基礎視覺團隊總監趙德麗發表《阿里巴巴 Composer,釋放 AIGC 的創造力》主旨演講稱,未來 AI 行業的趨勢包括垂直行業 AI 算法的發展會繼續深耕,開源平臺的出現(像達摩院推出的模型 ModelScope)、底層算法的統一等。我們的路線圖在 Text-to-Image 方面先后經歷過 Foundation Models(Composer 1.0)、Customized Generation 與 Controllable Generation(Composer 2.0) 三個階段,今年已發布 ControlNet、Composer 2.0 以及 T2I-Adapter。基于阿里云我們構建了一個“通義萬相”產品,將于月底開放給大家。[2023/4/12 13:59:02]

傳統的偽隨機數生成算法或多或少與單臺機器的物理狀態或運算狀態相關,不同的機器,或者說不同的節點,會有不同的運算結果,這在區塊鏈上是行不通的。區塊鏈是一個分布式的系統,它要求各個節點的運算結果是可驗證、可共識的。區塊鏈需要從零開始設計嶄新的隨機數法則,從而實現不同節點上的智能合約可以使用相同的隨機數。有三種解決方式。第一種是讓可信第三方為合約提供隨機數;第二種是通過基礎合約實現偽隨機數生成器,為其他合約提供一致的隨機數;第三種是讓所有節點上的合約可以采集到相同的種子,再通過偽隨機算法計算出相同的隨機數序列。第一種方式最大的缺陷是需要引入第三方。該第三方是否值得信任,能否能提供高質量的隨機數均是問題。除此之外,區塊鏈是警惕中心化的,而第三方在某種程度上是中心化的,這與一些DApp開發者的理念不相符合。在以太坊上,Oraclize是為鏈上節點提供隨機數的第三方。Oraclize是一個預言機,獨立于區塊鏈系統之外,智能合約發送請求給Oraclize,當Oraclize監聽到鏈上相關請求后,生成隨機數并將結果返回區塊鏈。

未知地址向幣安轉入1149億枚SHIB,價值140萬美元:9月2日消息,Twitter用戶@ShibaPlay發文稱,一小時前,0x59開頭的未知巨鯨地址向0x84開頭的中轉地址轉入1149枚SHIB代幣(約140萬美元),并最終轉入幣安交易所,目前原賬戶余額已清零,交易ID為0xe4e038a3ed95b81aad01c8afc6a9a2769d16402103d800675b4a11098c72e9b9。[2022/9/2 13:05:04]

第二種方式最符合區塊鏈精神,是一個不同參與者合作生成隨機數的偽隨機數生成器,但它涉及到激勵機制的設計問題,以及人為控制的作弊問題。RANDAO采用的即是這種方式,它以智能合約的形式封裝了偽隨機數生成算法和對應的業務邏輯,為以太坊提供隨機數服務,任何人都可以參與生成RANDAO隨機數。在隨機數生成周期,每個參與者都需要提交一個數字,而來自所有參與者的數字集合將被作為種子生成偽隨機數,因為無法知曉他人提供的種子,該方法產生的結果難以被破解。智能合約可以向RANDAO請求隨機數,但需要支付獎金給生成隨機數的參與者。

第三種方式,隨機數不是從合約外部引入,而是把區塊鏈的鏈上信息做為種子,由智能合約根據種子生成偽隨機數。這種方法最大的缺陷就是一旦黑客知道了隨機數的生成算法,也能獲取正確的種子,就能輕易地對智能合約發起隨機數攻擊。不同于傳統偽隨機數生成算法中種子的私密性,區塊鏈上的種子幾乎是“透明”的:它是鏈上的區塊信息,所有節點上的智能合約都能夠取到,那么從原理上講,黑客用于攻擊的惡意合約同樣可以獲得這些數值。不過,因為缺乏成熟的隨機數提供方,以及對中心化隨機數的警惕、對鏈上自治的追求,通過智能合約計算隨機數依然是EOS上眾多DApps首選的方法,這也是DApps深陷黑客危機的原因所在。攻防:道高一尺魔高一丈

Web3基金會公布第14批資助計劃,36個項目入圍:7月11日消息,Web3 基金會公布第 14 期資助計劃項目名單,涵蓋用戶端產品、協議層、合約層、API 工具、代碼模塊、Layer2 和錢包等多個領域,包括 TDSoftware、Simply VC、Perun Network、Dante Network、HugoByte、NeoPower 等 36 個項目。[2022/7/11 2:05:27]

FFGAME可能是史上最倒霉DApp——游戲還沒正式運營就遭到攻擊。黑客很快破解了隨機數,然后在游戲中不斷獲勝,輕松拿走FFGAME平臺放入游戲中的初始資產,1332個EOS。FFGAME還沒準備迎敵,城門就已失守。在DApp的攻防戰中,攻擊者們通常有兩種方法來利用隨機數盜取資產。第一種方法是獲取正確的隨機數種子,通過偽隨機算法計算出游戲結果,然后根據結果下注,保證百分百勝率。第二種方法是在知道偽隨機算法和種子來源的情況下,通過改變種子的數值讓偽隨機算法計算出自己下注的游戲結果,從而保證百分百勝率。EOSDice是一個被黑客用第一種方法攻破后,修改了偽隨機數算法,旋即又被黑客用第二種方法攻破的DApp。不過,值得贊賞的是,EOSDice也是一個被攻破兩次但依然堅持開源的EOS游戲。

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的上一個區塊,該區塊已經存在,其信息可以提前獲取。因此,黑客可以通過種子預先算出結果,再下注。

DeFi可組合型杠桿協議Gearbox即將推出V2版本:7月7日消息,DeFi可組合型杠桿協議Gearbox宣布即將推出V2版本,早期僅針對一個精選的巨鯨名單列表開放,抵押品至少需要5萬美元。V2版將為杠桿用戶新增支持多個資產,還會有新的協議集成,以及支持杠桿穩定幣挖礦、杠桿挖礦Lido stETH、交叉抵押杠桿頭寸等。[2022/7/7 1:57:30]

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區塊鏈DAPDAPPeos幣前景區塊鏈證據保全怎么操作視頻DAPSW價格dapp幣上架交易所

比特幣交易所
熊市下,人還值錢嗎?_LAS:SSD

編者按:本文來自區間集,作者:區間集,星球日報經授權發布。熊市已經持續一段時間了,我們經常能夠看到項目方大規模賣幣發工資的消息,甚至之前還傳出Tokenfund創始人出來找工作的新聞.

1900/1/1 0:00:00
DApp 三道關_APP:DAPP

編者按:本文來自鏈捕手,作者:龔荃宇,編輯:潘宇波,星球日報經授權轉發。「去年加密貓最火的時候,我有一群朋友曾策劃把帶有某種顏色基因的貓全部買斷囤貨,再利用市場稀缺性把價格推高獲利,但最后因為以.

1900/1/1 0:00:00
比特幣冷錢包和熱錢包有什么不同?| 區塊鏈課堂第 81 問_STRONG:Stronger

編者按:本文來自哈希派,作者:不碎,Odaily星球日報經授權發布。比特幣錢包是存儲和使用比特幣的一種工具,按照其使用時的聯網狀態,可以分為冷錢包和熱錢包.

1900/1/1 0:00:00
門羅幣硬分叉后,交易費用降低近90%,平均交易費用僅為2美分_門羅幣:門羅幣是不是騙局呀

門羅幣已于10月18日完成了又一次硬分叉升級。在這次升級中,門羅幣對多項重要的軟件進行了更新,以及針對挖礦軟件的更改。有數據顯示,硬分叉升級后,門羅幣網絡的交易費用因此降低了90%以上.

1900/1/1 0:00:00
Ripple Labs 敦促將XRP相關訴訟移交至聯邦法院,這是下了一步好棋?_PLE:PPL

據NEWSBTC報道,RippleLabs正在試圖將針對自己的一起訴訟案件移交到聯邦法院,RippleLabs的這一行為被認為是下了一步好棋.

1900/1/1 0:00:00
緬懷金庸,區塊鏈江湖上的“六大門派”_RBI:比特幣

編者按:本文來自白話區塊鏈,作者:老白,星球日報經授權轉發。金老爺子走了,也帶走了很多人的江湖夢。毫不夸張地說,金庸對我們絕大多數人的影響,可能比所有諾貝爾文學獎得主加起來,還要多得多.

1900/1/1 0:00:00
ads