Evm
為什麼 DAO 軟分叉會有 DOS 攻擊向量?
有人說,最初提出的解決整個DAO情況的軟分叉有一個致命的攻擊向量,對整個網路構成了危險。我不反對這個事實,因為它已被廣泛接受,我只是試圖理解它。最初發布的聲明是:
但是軟分叉創建了一個拒絕服務攻擊向量,如果被利用,將阻止網路以可忽略不計的攻擊者費用處理有效交易。具體來說,攻擊者可以用執行困難計算的交易充斥網路,並通過對 DAO 合約執行操作來結束
來自:http ://hackingdistributed.com/2016/06/28/ethereum-soft-fork-dos-vector/
但這似乎與其他摘錄不一致:
乙太坊交易是原子的——如果拋出異常,所有狀態轉換都會被恢復。這條規則的唯一例外(沒有雙關語)是 gas 支付——在 OutOfGas 例外之前用完的任何 gas 都會被扣除並發送給礦工。
來自:https ://github.com/ebuchman/evm-tools/blob/master/analysis/guide.md
所以在我看來,攻擊向量不會對攻擊者“免費提供”,他們仍然需要支付一些燃料來執行這些無用的操作。假設每個操作使用的氣體確實與每個節點必須執行的實際工作量成正比,在我看來,為了顯著完成攻擊,它仍然需要消耗大量資源。不會嗎?
軟分叉交易不會包含在一個區塊中,因此礦工無法獲得報酬。
與遇到異常的所有其他交易的關鍵區別在於它們包含在區塊鏈中。納入區塊鍊是礦工如何獲得有效報酬的共識。有例外的交易將恢復所有狀態,為礦工支付所有氣體,並包含在區塊鏈中。
攻擊者可以創建一個任意計算密集型和混淆的腳本來呼叫列入黑名單的地址,然後一遍又一遍地執行此操作。這會阻塞資源,並且由於不包括此類交易,因此無法向礦工付款。它是免費的,因為礦工沒有得到天然氣。