首頁 / 科技 / 正文

    什麼是博彩類DAPP 怎麼就成了黑客提款機?

    區塊鏈,一直以透明、開源而聞名,也因此成為近兩年最受人關注的技術。有數據顯示,從2009年比特幣的源代碼公開後,平均每年有8600多個區塊鏈項目加入GitHub,開發者們的DAPP代碼開始大批量湧入。

    被譽為明星項目的EOS,自從主網上線以來,就一直致力於DAPP生態建設,雖然在DappRadar上,EOS的DAPP數量遠不如以太坊的鏈上DAPP數量,但它的高擴展性被開發者們所認可,DAPP的數量和日活也在逐漸增加。

    什麼是博彩類DAPP 怎麼就成了黑客提款機?

    但天下無不bug的程序,開源讓項目更透明,也給了技術高超的黑客以可乘之機。

    就在昨天,知名DAPP EOSDice被黑,造成了4633個EOS的損失。而僅在6天前,EOSDice就已經被黑掉過2545個EOS。

    這已經是EOS DAPP本月第三次遭到黑客攻擊了。這一次的攻擊者是之前攻擊FFGame DAPP的黑客,攻擊手法也是由於使用了可控的隨機數種子。

    上一次EOS合約競猜類遊戲FFGame被攻擊之後,慢霧安全團隊經過技術復盤推測了整個攻擊過程:

    攻擊者是通過部署攻擊智能合約,並且在合約中使用與FFGame相同算法計算隨機數,產生隨機數後立即在inline_action中使用隨機數攻擊合約,導致中獎結果被「預測」到,從而達到超高中獎率。

    根據攻擊復盤,慢霧預警了該攻擊手法,並告誡開發者:不要引入可控或可預測隨機數種子,任何僥倖都不應該存在。

    果不其然,這一次黑客使用了相同的攻擊手法,再次嘗到了甜頭,也給了開發者們警醒的一擊。

    那麼,這個「可控的隨機數種子」究竟是個啥?

    我們都知道,隨機數是區塊鏈上運行智能合約的一個關鍵數值。用程序員的思維來看,只要你告訴我初始狀態,我可以根據你每次給的輸入,預測出它的輸出。

    這裡我們不用了解太多技術層,我們只需要知道,假如想讓隨機數是不可預測的,那就必須保證隨機種子是不可預測的。

    那麼這個隨機數種子就需要從外界輸入。簡單打個比方,它可以是某個商品的銷量,也可以是計算機的系統時間。

    但這些數據太過於簡單,非常容易被黑客預測到並加以使用,從而大幅提升自己在菠菜遊戲里的中獎率,拿走獎金池裡的獎金。

    因此找到一個優良的、不易被控制的隨機數種子,是現在所有菠菜類DAPP面臨的難題。

    什麼是博彩類DAPP 怎麼就成了黑客提款機?

    據DappRadar數據顯示,EOS上有118個DAPP,其中菠菜遊戲類有60多個,幾乎占比了一半!一位資深DAPP開發者表示:「目前來看,區塊鏈第一應用就是賭博,其他應用,暫時還火不起來。」

    因此對於菠菜遊戲來說,智能合約是命脈,是靈魂,任何漏洞都有可能讓資金池中的資金被席捲一空。

    目前菠菜類遊戲的智能合約所參考的隨機數比較局限,可作為隨機種子使用的公開數據仍然比較少,且大部分都有可能被猜出來,因此暫時無法實現真正的隨機。

    曾經有人提出用「EOS RAM的交易數據」或者「某活躍DAPP的公開數據」作為隨機數,但是被社區中的開發者給否定掉了。原因是這些變化無窮的公開數據依然存在着很大問題,並不能直接被使用——

    1、過於依賴其他方數據,必須保證智能合約跟着別人的數據格式同步更新;

    2、變化頻次時高時低,無法保證不間斷的不可預測性。

    從近半年的新聞中可以得知,EOS DAPP的安全事件頻發。目前被報道的已經有FFGame、DEOSBET、EOS Happy Slot、FairDice、EOSDice,以及損失最為慘重的EOSBet。

    什麼是博彩類DAPP 怎麼就成了黑客提款機?

    我們會發現,EOS DAPP遭受攻擊的概率比以太坊DAPP高得多。這不外乎是以太坊DAPP開發模式已經趨向於成熟,內部安全性較為完整,複雜邏輯較少,因此漏洞範圍更低。

    還有一個原因是,目前EOS的開發人員並不多,成熟的開發者就更少了。很多情況下,一個DAPP可能背後只有1-2個程序員,甚至連完整的測試人員都不存在。在這種情況下,漏洞出現的可能性就非常大,也更可能被攻擊。

    多次的黑客攻擊和大額損失都證明了,EOS DAPP現在還是個寶寶,不足以說是一個具有完善保護機制的成熟應用鏈。

    當然,這也是EOS DAPP發展壯大必須經歷的過程。提升其內部安全性,任重而道遠。

    相關推薦