Ethereum的軟分叉隱藏被DOS攻擊的風險
Ethereum近日發佈了新的geth版本1.4.8,代號名為 DAO Wars
主要用來解決在The DAO中被偷的ether
說明文件中並解釋了礦工可選擇是否升級1.4.8,
以及升級與否可能有的影響與代價
執行此geth版本若加上 --dao-soft-fork 參數,則不會承認
與Dark DAO合約有關的傳輸,並且若某一block中含有此類
傳輸也將一併被拒絕
但此點卻可能被攻擊者拿來作為DOS攻擊的手段,
其原因就在於被拒絕的傳輸無法收取gas費用,
因此攻擊者可以故意發送一段超耗計算資源的合約,
然後在合約最後寫上:
DarkDAO.splitDAO();
則礦工在執行完超耗計算資源的合約後看到最後這行
只能拒絕,並且無法收取手續費,也因此攻擊者的ether
並不會減少,可以不斷發起攻擊
原本ethereum的設計是,若合約中有超耗計算資源的代碼,
則會被收取高額的gas費用,若gas費用不夠則不會被執行
今天攻擊者可以附加高額的gas費用,來讓他的合約看起來似乎
可被執行,如此一來許多節點將優先執行此交易,
然而產出的block卻是無效的
相較於支援軟分叉的礦工們,不支援軟叉的礦工在此時將產出
較為有效的block,然而這些block最終可能走向分支
攻擊原理大致介紹如上,但問題點很多,
例如對不支援軟叉的節點來說,此合約是可以收取手續費的,
因為他們看到最後一行並不會拒絕掉,所以攻擊者的ether究竟
會不會減少?
再來為何要執行到最後才發現此合約無效?
我的理解是合約由Solidity語言編譯而成,既然是經過編譯才部署的,
在不執行完之前是無法知道裡面有什麼的
以上消息一出,eth行情又有如跳水一般直直落下
實際上軟叉尚未開始運作,而DOS攻擊也不可能真的發生,
但為了解決這個潛在風險,開發小組又得再找尋解決辦法了,
現在被偷的那3.7M ether依然懸而未決,三種可能:
1.大方送給駭客
2.永久凍結,剩下的DAO token = 0.7eth
3.先凍結再靠硬叉搬回DAO
原本最可能的發展是2,現在又新增了變數
※ 編輯: koucc (140.96.180.33), 06/29/2016 02:58:16
推
06/29 03:15, , 1F
06/29 03:15, 1F
推
06/29 10:25, , 2F
06/29 10:25, 2F
推
06/29 23:34, , 3F
06/29 23:34, 3F
→
07/05 10:10, , 4F
07/05 10:10, 4F
→
07/05 10:10, , 5F
07/05 10:10, 5F
→
07/05 10:11, , 6F
07/05 10:11, 6F
→
07/05 10:12, , 7F
07/05 10:12, 7F
→
07/05 10:13, , 8F
07/05 10:13, 8F
→
07/05 10:14, , 9F
07/05 10:14, 9F
→
07/05 10:16, , 10F
07/05 10:16, 10F
→
07/05 10:17, , 11F
07/05 10:17, 11F
推
07/05 17:16, , 12F
07/05 17:16, 12F
推
07/05 17:49, , 13F
07/05 17:49, 13F
→
07/05 22:39, , 14F
07/05 22:39, 14F
→
07/05 22:40, , 15F
07/05 22:40, 15F
推
07/05 22:42, , 16F
07/05 22:42, 16F
→
07/05 22:43, , 17F
07/05 22:43, 17F
推
07/05 23:44, , 18F
07/05 23:44, 18F
DigiCurrency 近期熱門文章
46
127
PTT數位生活區 即時熱門文章