日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者 | 李火華

出品|白話區(qū)塊鏈(ID:hellobtc)

9 月 14 日,一款名為“EOSPlay”的 DApp 游戲遭遇了新型隨機數(shù)攻擊,一共損失了數(shù)萬個 EOS。

或許很多人對「隨機數(shù)攻擊」這個詞已經司空見慣了,因為在 DApp 遭遇黑客攻擊的事件中,隨機數(shù)攻擊占了很大一部分,很多 DApp 的隨機數(shù)被黑客破解了。

你或許會問,隨機數(shù)不是隨機的嗎?隨機意味著不可預測,為什么還會被黑客破解呢?

這還得從隨機數(shù)說起。

隨機數(shù)可以分為真隨機數(shù)和偽隨機數(shù)。真隨機數(shù)需要同時滿足隨機性、不可預測性、不可重現(xiàn)性,而偽隨機數(shù)只需要滿足隨機性,或者是隨機性和不可預測性即可。

真隨機數(shù)只存在于物理世界中,一般需要通過物理手段(包括量子過程)獲得,比如我們日常見到的拋硬幣、擲骰子,生成的隨機數(shù)就是真隨機數(shù)。但是,拋硬幣、擲骰子這種隨機數(shù)生成方法的缺點非常明顯,那就是耗時、耗力,而且也無法滿足現(xiàn)代的計算機世界對隨機數(shù)的需求。

因為效率的緣故,現(xiàn)代的計算機軟件主要依賴偽隨機數(shù)。最早的偽隨機數(shù)生成器由 20 世紀最重要的數(shù)學家之一馮·諾依曼創(chuàng)造,通過一個確定的隨機數(shù)種子,由確定的算法生成偽隨機數(shù)序列。現(xiàn)在的主流計算機編程語言,默認的是將 1997 年發(fā)明的梅森旋轉算法作為生成偽隨機數(shù)的方法。

偽隨機數(shù)最大的缺陷是,只要種子不變,生成的偽隨機數(shù)序列也不會變。換句話說,只要你能拿到種子,你就可以破解隨機數(shù)。

計算機生成偽隨機數(shù)的過程,或多或少與這臺計算機的物理狀態(tài)或運算狀態(tài)有關。也就是說,同一套隨機數(shù)算法,不同的計算機,或是同一臺計算機在不同的時刻,生成的隨機數(shù)是不一樣的。

然而,這種傳統(tǒng)的計算機偽隨機數(shù)生成方法雖然足夠安全,卻并不適用于區(qū)塊鏈。區(qū)塊鏈是一個分布式的系統(tǒng),同一個 DApp 在不同的節(jié)點上運行,采用的隨機數(shù)必須要一致,這樣才能讓各個節(jié)點進行驗證。所以,DApp 的隨機數(shù)來源,不能是運行這個 DApp 的計算機自動生成的,因為這樣的話,不同的節(jié)點計算機運行的結果就不一樣了。

那么,區(qū)塊鏈上的 DApp 隨機數(shù)從哪里來呢?主要有以下三種方法:

第一種方法是通過可信第三方提供隨機數(shù)。比如說專門提供隨機數(shù)的網站 random.org,我們可以通過獨立于區(qū)塊鏈之外的 Oraclize 預言機為以太坊區(qū)塊鏈上的 DApp 獲取隨機數(shù)。當然,這種依賴可信第三方的方法有違區(qū)塊鏈去中心化的精神。

第二種方法是不同的參與者一起合作生成隨機數(shù)。比如以太坊區(qū)塊鏈上的 RANDAO,任何人都可以提交一個數(shù)字,RANDAO 將所有提交的數(shù)字集合作為種子,生成隨機數(shù),其他 DApp 可以付費調取 RANDAO 生成的隨機數(shù),這些費用會獎勵給那些提交了數(shù)字的用戶。因為以太坊的去中心化,你不知道別人提交了什么數(shù)字,所以要破解 RANDAO 的隨機數(shù)種子難度很大。

第三種方法是采集區(qū)塊鏈上的信息作為種子。這也是目前大部分 DApp 所采用的隨機數(shù)生成方法,缺陷是隨機數(shù)的種子“幾乎是”透明的。以本文開頭提到的 EOSPlay 為例子,這款游戲的隨機數(shù)采用的是未來某個區(qū)塊的 ID(哈希值)作為隨機數(shù)的種子。

那么,黑客是如何實現(xiàn)攻擊的呢?根據(jù)區(qū)塊鏈安全公司慢霧科技的分析,可能使用了以下的方法:

1、黑客為自己和項目方租用了大量的 CPU;

2、黑客發(fā)起大量的延遲交易;

3、由于以上兩點原因,導致 CPU 價格被拉高,從而導致其它用戶 CPU 不足;

4、因為 CPU 不足的原因,其他用戶難以發(fā)送交易,黑客得以使用自己的交易占滿區(qū)塊;

5、根據(jù)提前構造的交易內容,黑客可以成功預測出區(qū)塊哈希。

也就是說,雖然哈希算法不可逆,但是黑客可以通過控制輸入實現(xiàn)輸出的控制:控制區(qū)塊內的交易內容,從而控制區(qū)塊信息,進而控制區(qū)塊哈希值,最終達到預測開獎結果的目的。

最后,我們總結一下:

隨機數(shù)可以分為真隨機數(shù)和偽隨機數(shù),真隨機數(shù)只存在于物理世界中,一般需要通過物理手段獲取。為了效率,計算機主要采用偽隨機數(shù),然而由于區(qū)塊鏈的分布式特性,足夠安全的傳統(tǒng)計算機偽隨機數(shù)生成方法并不適用。大部分 DApp 采用的是收集區(qū)塊鏈上的信息作為偽隨機數(shù)的種子,而要想設計足夠安全的偽隨機數(shù),難度非常大,這就是為什么很多 DApp 經常遭受隨機數(shù)攻擊的原因。

你知道區(qū)塊鏈中,有哪些方面/情境下會用到隨機數(shù)嗎?歡迎在留言區(qū)分享你的觀點。

分享到:
標簽:DApp DApp游戲
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定