比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > BTC > Info

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

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世紀隨機數領域的重要著作,也是人類歷史上第一次產生如此大量的、高質量的隨機數。

Kraken Pro已經開放LMWR充值:金色財經報道,Kraken Pro發推特表示,已經開放NFT市場Limewire代幣LMWR充值,并將于北京時間今日20點開始交易。

此前消息,Limewire此前由Kraken Ventures、Arrington Capital和GSR牽頭的私人融資中籌集了1000萬美元。Limewire計劃在5月以NFT市場的形式重新啟動。[2023/5/16 15:05:13]

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

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

金融科技巨頭Flutterwave獲得盧旺達電子貨幣許可證:金色財經報道,尼日利亞金融科技巨頭 Flutterwave宣布,它已在盧旺達獲得另外兩個牌照,這將有助于其擴大在東非的業務。這些許可證稱為電子貨幣發行人和匯款許可證,由盧旺達國家銀行頒發。

根據一份聲明,擁有這兩個許可證還允許 Flutterwave 部署其包括跨境匯款解決方案在內的一系列產品。包括 Flutterwave 的商店、支付鏈接、發票和結帳在內的產品也將可供盧旺達的個人和企業使用。[2023/3/21 13:15:56]

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

ASIC主席:FTX曾利用澳大利亞監管漏洞獲得金融牌照:金色財經報道,澳大利亞證券和投資委員會(ASIC)主席Joseph Longo呼吁消除監管漏洞,該漏洞允許FTX在沒有完成全套檢查的情況下在該國獲得澳大利亞金融服務許可證(AFSL)。

此外,參議員Deborah O'Neill強調,允許FTX基本上擁有ASIC的簽字而不被監管機構調查的漏洞,給澳大利亞消費者帶來了令人擔憂的前景。(cointelegraph)[2022/12/6 21:25:36]

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

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

Voyager Digital公布其風險管理的最新信息,沒有在Celsius平臺存放客戶資產:6月15日消息,Voyager Digital 公布其資產管理的最新信息,其中表示公司的交易對象都經過其風險委員會的深度盡職調查,Voyager 沒有參與 DeFi 借貸活動、算法穩定幣抵押和借貸,或衍生資產(例如 stETH)的投資。

據悉,Voyager 在 2019 年宣布與 Celsius 建立合作伙伴關系,但由于公司正在進行的盡職調查和風險管理流程,目前 Voyager 在 Celsius 平臺沒有存放客戶資產。(prnewswire)[2022/6/15 4:27:21]

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

游戲短視頻平臺FreshCut完成1500萬美元融資,Animoca Brands等領投:5月18日消息,游戲短視頻平臺FreshCut完成1500萬美元融資,Galaxy Interactive、Animoca Brands和Republic Crypto領投,Hashed、SkyVision Capital、Tamarack Global、C2X、Polygon等參投。(The Block)[2022/5/18 3:26:00]

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區塊鏈DAPPAPPTHEOS區塊鏈dapp游戲dapp幣交易門羅幣app官方下載

BTC
區塊鏈:日均用戶僅 300,但加密貓仍成功融資 1500 萬美元

對很多人來說,加密貓可能和掃雷差不多。但唯一的不同是,掃雷似乎從來沒有募集到任何資金。作為一款基于以太坊區塊鏈的去中心化應用程序,加密貓允許用戶購買、收集、撫養和銷售各種類型的虛擬貓.

1900/1/1 0:00:00
比特幣:美國執法機構調查去年的比特幣價格是否被操控

比特幣的價格波動一直是關注的焦點。不僅是加密貨幣市場,在美國相關部門也對比特幣價格變化有著密切關注.

1900/1/1 0:00:00
TOK:“大錢”遇上區塊鏈

本文來自Bibox,Odaily星球日報經授權轉載。:給債券插上區塊鏈的翅膀 錢的響動在哪里 最近數字資產市場最熱的當屬“STO”.

1900/1/1 0:00:00
比特幣:中國有能力摧毀比特幣

最近,普林斯頓大學和佛羅里達國際大學啟動了一項針對比特幣的研究,結果發現中國對比特幣具有較大的“威脅性”影響力——甚至具有可能最終摧毀整個比特幣網絡的能力.

1900/1/1 0:00:00
區塊鏈:瞄準全球23億玩家,區塊鏈游戲何時才能爆發式增長?

編者按:本文來自白話區塊鏈,作者:李麗詩,星球日報經授權發布。2017年,區塊鏈在世界掀起熱潮,逐漸成為家喻戶曉的名詞.

1900/1/1 0:00:00
區塊鏈:擴容新時代,Layer 2解決方案會是區塊鏈游戲的突破口嗎?

本文來鏈魚魚,作者:鏈小魚,星球日報經授權轉載。還記得去年那個火熱的市場,彼時有不少的所謂“大佬”激情滿滿地表示,“今年將會是應用爆發元年”,口號從去年一直喊到今年,然而一直尚未有一款殺手級應用.

1900/1/1 0:00:00
ads