買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > XLM > Info

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

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

ApeCoin發起提案擬推出兩款新NFT系列,但當前反對票占優:金色財經報道,據ApeCoin論壇消息,社區已發起AIP-206提案擬推出兩款新NFT系列“Ape Coin Armory Club NFT”和“Ape Coin Pet Club NFT”,該提案顯示這兩個系列將分別發行2萬枚NFT,旨在激勵APE持有者并拓展到更廣泛的Yuga Labs生態中的元宇宙社區,最終推動其成為首個跨元宇宙的可穿戴NFT。另據Snapchat當前數據顯示,AIP-206提案的投票結束時間為3月30日,不過該提案似乎沒有得到ApeCoin社區支持,當前結果反對票占比達到83.57%,贊成票比例為9.8%,棄權6.63%。[2023/3/26 13:27:40]

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

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

區塊鏈數字資產管理系統LumiShare獲得320萬美元融資:金色財經報道,區塊鏈數字資產管理系統LumiShare,在其阿布扎比許可的$SRG代幣預售階段,獲得了由阿布扎比王室牽頭籌集320萬美元。所籌集的資金將用于購買黃金儲備,這些黃金將被儲存在阿布扎比一家銀行的安全室中,并進行24小時直播。(finextra)[2022/12/20 21:55:41]

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

去中心化汽車數據洞察網絡DIMO啟動主網:金色財經報道,去中心化汽車數據洞察網絡DIMO Network今天啟動了其主網,旨在讓用戶更好地掌控自己的車輛數據。該公司希望通過使用自己的數據指標來為用戶節省汽車購買和服務方面的費用。(The Block)[2022/12/13 21:40:38]

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

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

FTX請求法院讓BitGo在破產期間保護其資產:金色財經報道,FTX 通知一位聯邦法官,它希望BitGo在破產程序結束時保護其剩余的數字資產。與BitGo的托管服務協議于11月13日簽署,大約一天后,有人完成了“未經授權的轉賬”,從FTX賬戶中轉移了價值3.72億美元的資產。?該公司及其關聯公司在轉移資產之前必須向監督其破產的法官提出要求。FTX 昨天告訴法庭,它對持續的網絡威脅和盜竊感到擔憂。

FTX 已同意向BitGo支付500萬美元的預付費用,該公司將向FTX收取相當于所持有數字資產平均美元價值乘以1.5個基點的月費。在宣布該交易的文件中,該公司的律師估計,根據截至11月16日向BitGo初始轉移價值7.4億美元的資產,FTX 每月將花費大約100,000美元。[2022/11/24 8:02:50]

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

手機 QQ 內測版已加入了隱藏數字藏品功能:金色財經報道,據Tech星球消息,手機 QQ 內測版已加入了隱藏數字藏品功能。用戶可在 QQ 的資料展示設置中看到開關,選擇是否向其他人展示自己的數字藏品。騰訊此前已經在 QQ 音樂、幻核等平臺測試了 NFT,后改名為數字藏品。目前尚不清楚 QQ 的數字藏品有哪些內容,還需等待后續上線后才能得知。[2022/8/10 12:14:05]

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區塊鏈DAPAPP柚子幣eos最新真實消息區塊鏈的幾個大騙局是真的嗎Daps Coinappc幣價格

XLM
ORA:合約變量的“皇帝新衣” |成都鏈安漏洞分析連載第九期 ——外部讀取狀態變量_Storage area network anywhere

針對區塊鏈安全問題,成都鏈安科技團隊每一周都將出智能合約安全漏洞解析連載,希望能幫助程序員寫出更加安全牢固的合約,防患于未然.

1900/1/1 0:00:00
BIO:2018 區塊鏈物聯網行業研究報告_區塊鏈

編者按:本文來自鏈塔智庫,作者:鏈塔分析師團隊,星球日報經授權轉發。自2017年以來,我國政府部門出臺了《物聯網“十三五”規劃》、《關于全面推進移動物聯網(NB-IoT)建設發展的通知》等多項政.

1900/1/1 0:00:00
ROG:獨家專訪比特幣耶穌:分叉戰讓整個加密貨幣生態系統遭受損失_CROGE幣

作者|盧曉明、黃雪姣誰最關心BCH的前途?如果第一個是重倉百萬BCH的比特幣大陸的話,第二個就是被稱為“比特幣耶穌”的RogerVer了.

1900/1/1 0:00:00
GER:東南亞布局加碼,騰訊投資菲律賓數字化服務公司_Voyage

作為市值4000億美元的互聯網巨頭,騰訊與阿里的一舉一動都受到廣泛的關注。在互聯網各個領域的布局上,雙方競爭激烈.

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

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

1900/1/1 0:00:00
KEN:ST(Security Token)——證券Token化的金融實踐_TOK

ST——SecurityToken,近來在圈內的火爆程度與當下遭遇寒冬的資本市場,以及哀嚎遍野的數字貨幣市場形成了強烈而鮮明的對比.

1900/1/1 0:00:00
ads