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

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

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

作者 | 李火華

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

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

或許很多人對(duì)「隨機(jī)數(shù)攻擊」這個(gè)詞已經(jīng)司空見慣了,因?yàn)樵?DApp 遭遇黑客攻擊的事件中,隨機(jī)數(shù)攻擊占了很大一部分,很多 DApp 的隨機(jī)數(shù)被黑客破解了。

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

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

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

真隨機(jī)數(shù)只存在于物理世界中,一般需要通過物理手段(包括量子過程)獲得,比如我們?nèi)粘R姷降膾佊矌拧S骰子,生成的隨機(jī)數(shù)就是真隨機(jī)數(shù)。但是,拋硬幣、擲骰子這種隨機(jī)數(shù)生成方法的缺點(diǎn)非常明顯,那就是耗時(shí)、耗力,而且也無法滿足現(xiàn)代的計(jì)算機(jī)世界對(duì)隨機(jī)數(shù)的需求。

因?yàn)樾实木壒剩F(xiàn)代的計(jì)算機(jī)軟件主要依賴偽隨機(jī)數(shù)。最早的偽隨機(jī)數(shù)生成器由 20 世紀(jì)最重要的數(shù)學(xué)家之一馮·諾依曼創(chuàng)造,通過一個(gè)確定的隨機(jī)數(shù)種子,由確定的算法生成偽隨機(jī)數(shù)序列。現(xiàn)在的主流計(jì)算機(jī)編程語言,默認(rèn)的是將 1997 年發(fā)明的梅森旋轉(zhuǎn)算法作為生成偽隨機(jī)數(shù)的方法。

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

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

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

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

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

第二種方法是不同的參與者一起合作生成隨機(jī)數(shù)。比如以太坊區(qū)塊鏈上的 RANDAO,任何人都可以提交一個(gè)數(shù)字,RANDAO 將所有提交的數(shù)字集合作為種子,生成隨機(jī)數(shù),其他 DApp 可以付費(fèi)調(diào)取 RANDAO 生成的隨機(jī)數(shù),這些費(fèi)用會(huì)獎(jiǎng)勵(lì)給那些提交了數(shù)字的用戶。因?yàn)橐蕴坏娜ブ行幕悴恢绖e人提交了什么數(shù)字,所以要破解 RANDAO 的隨機(jī)數(shù)種子難度很大。

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

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

1、黑客為自己和項(xiàng)目方租用了大量的 CPU;

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

3、由于以上兩點(diǎn)原因,導(dǎo)致 CPU 價(jià)格被拉高,從而導(dǎo)致其它用戶 CPU 不足;

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

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

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

最后,我們總結(jié)一下:

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

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

分享到:
標(biāo)簽:DApp DApp游戲
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

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

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

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

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定