Ethereum的軟分叉隱藏被DOS攻擊的風險 - 數位貨幣
By Necoo
at 2016-06-29T02:55
at 2016-06-29T02:55
Table of Contents
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
主要用來解決在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
推 DarkerDuck: Simple is the best. ETH很早就有人說合約會BUG抓不完 06/29 03:15
推 Rasin: 我覺得合約要嘛簡化要嘛拿掉 但是拿掉好像就沒亮點了 06/29 10:25
推 john371911: 投票狀況如何?會投票之後要不要硬叉嗎? 06/29 23:34
→ koucc: 合約算是它的精神所在,也可以寫得很簡單,DAO的是挺複雜沒錯 07/05 10:10
→ koucc: 硬叉的消息一直到2hr前才有更新,目前開發團隊的目標是做出 07/05 10:10
→ koucc: 一個可供眾人選擇的硬叉,就像選擇main net和test net一樣 07/05 10:11
→ koucc: 這次每個node可以自己選擇是否叉到新的fork去,在新的fork中 07/05 10:12
→ koucc: 所有HARDFORK_DAO_LIST中的帳戶餘額會被歸0 (用最簡單的 07/05 10:13
→ koucc: 方式來解決這次事件)此次更動的code會有時間讓所有人review 07/05 10:14
→ koucc: 解決消息一出,底下留言算是一片叫好,因為算是回歸了去中心 07/05 10:16
→ koucc: 化的精神,開發團隊提供一個選擇,所有端點共同決定它的未來 07/05 10:17
推 Rasin: 股價還是直直落XD 07/05 17:16
推 john371911: 乙太幣也跌了。那原本的代幣會怎麼樣? 07/05 17:49
→ koucc: 原本的token據說會refund回ether 07/05 22:39
→ koucc: 現在只要dev一有動作不管好壞都是跌啊,習慣它吧 07/05 22:40
推 DarkerDuck: 還不錯的解決方案 07/05 22:42
→ koucc: 我有幾批買在18,17,16高點的,看它下跌都無感了,離線儲存中 07/05 22:43
推 john371911: 感謝分享消息。那被盜走的呢?也可以拿回來了? 07/05 23:44
Tags:
數位貨幣
All Comments
By Margaret
at 2016-07-03T22:32
at 2016-07-03T22:32
By Olivia
at 2016-07-07T15:43
at 2016-07-07T15:43
By Zora
at 2016-07-07T18:01
at 2016-07-07T18:01
By John
at 2016-07-09T06:40
at 2016-07-09T06:40
By Rosalind
at 2016-07-12T07:46
at 2016-07-12T07:46
By Zenobia
at 2016-07-14T08:06
at 2016-07-14T08:06
By Andy
at 2016-07-17T11:11
at 2016-07-17T11:11
By Olga
at 2016-07-21T09:41
at 2016-07-21T09:41
By Faithe
at 2016-07-23T07:35
at 2016-07-23T07:35
By Olga
at 2016-07-27T01:27
at 2016-07-27T01:27
By Brianna
at 2016-07-31T08:07
at 2016-07-31T08:07
By Yuri
at 2016-08-03T06:32
at 2016-08-03T06:32
By Mia
at 2016-08-08T06:26
at 2016-08-08T06:26
By Edith
at 2016-08-12T22:48
at 2016-08-12T22:48
By Jacky
at 2016-08-13T18:40
at 2016-08-13T18:40
By Barb Cronin
at 2016-08-14T23:00
at 2016-08-14T23:00
By Oliver
at 2016-08-17T13:13
at 2016-08-17T13:13
Related Posts
不同平台的交易速度?
By Belly
at 2016-06-26T09:48
at 2016-06-26T09:48
雲端挖礦Hashocean
By Necoo
at 2016-06-26T07:54
at 2016-06-26T07:54
TheDAO現況
By Isabella
at 2016-06-24T11:29
at 2016-06-24T11:29
請問一下近日比特幣匯率?
By Ina
at 2016-06-23T14:59
at 2016-06-23T14:59
比特幣水龍頭6小時6250聰
By Puput
at 2016-06-22T15:41
at 2016-06-22T15:41