以太坊被曝再出新“漏洞”?
編者按:本文來自36氪戰略合作區塊鏈媒體“ Odaily星球日報 ”(公眾號ID:o-daily, APP下載 )
編者按:原定於2 月 27 日進行的君士坦丁堡硬分叉被曝再出新“漏洞”,是否會繼續延遲分叉呢?原文來自 trustnodes 、 coindesk ,作者 Trustnodes、 Christine Kim 。
譯者 | 秦曉峰
編輯 | 盧曉明
據 trustnodes 訊息,距離以太坊君士坦丁堡硬分叉還有兩週時間,以太坊被曝出再次發現新“漏洞”。
以太坊基金會(EF)的開發人員 Jason Carver 表示,一個名為Create2的新功能可以允許開發人員替換自毀的智慧合約,從而更改規則,存在盜幣風險。
Create2 是通過 EIP 1014 引入的新功能,被稱為“ Skinny CREATE2 ”,旨在通過允許“確定性部署”來更好地促進以太坊上的脫鏈交易,在部署過程中,它允許開發人員更改程式碼並重新部署到同一地址。)
Carver說:
在君士坦丁堡之前,你可以構建一個無害的合約,一個交易可能有兩種結果:合約產生,交易代幣;合約自毀,浪費一些 Gas。然而在君士坦丁堡之後,選項現在可以變成了:合約產生,交易代幣;合約自毀,浪費一些 Gas;合約替換,所有已被合約批准的ERC20代幣可能會被盜…在君士坦丁堡之前,合約自毀(Selfdestruct)風險性並不大,因為自毀的合約只能消失。現在它可以帶著程式碼返回再次建立,這些程式碼可以轉移所有已批准的所有代幣。
EF 的另一名開發人員 Martin Holst Swende 表示:
如果有人驗證了來源,他就應該注意到Selfdestruct (沒有適當的不活躍期),並避免與之互動(防止被盜)。
正在進行以太坊 1x 升級工作的 Alexey Akhunov 說:
我剛剛得出的結論是,EOA帳戶(普通eth地址)回收與臨時的重放保護(將EOA的nonce重置為0)相結合,將使CREATE2 進一步擴充套件到 EOA 帳戶,使EOA賬戶面臨更大風險……也許 CREATE2 應該被修改為永遠不允許重複nonces,類似於其他的重放保護方案,比如將新建立的契約的nonce分配給TOTAL_TXS,這樣至少可以消除超出預期功能的連鎖效應。
在區塊鏈硬分叉之時會存在重放攻擊的風險,攻擊者在其中一條鏈上發起的交易,去到另一條鏈上重新廣播,可能也會得到確認,這就是“重放攻擊”。“重放保護”是分叉後在兩條鏈之間加了一重保護,比如在 A 鏈上進行一筆交易,那麼 B 鏈上重複的交易會被判為無效。
Martin Holst Swende 上週在Twitter上進行了一項調查,有多少人會意識到君士坦丁堡硬分叉後代碼更改,結果表明,76% 的人並不會意識到這個問題。這也意味著,除非是技術性很強的開發者,非開發人員可能知道這種自毀技巧的機會可能很小。
Carver也表示像此類攻擊方式技術門檻太高,一般人也做不到。“有很多方法可以進行‘社會攻擊’(social attacks),但大多數都需要教育,這肯定會落後於君士坦丁堡自身的升級。”
不過,擺在開發者面前的一個問題是,這些具有自毀功能的智慧合約可能會誘使盜幣犯罪,他們必須考慮將其全部刪除、修改,即使他們想保持原樣,也要教育使用者,讓每個人知道某些智慧契約不是一成不變的,而是可以隨意更改的,他們的錢可能會被盜。
君士坦丁堡硬分叉是否會因為上述原因而推遲?Parity 開發者 Afri Schoedon 表示並不會推遲。ChainSecurity營運長Matthias Egli 則表示,這不是一個“安全漏洞”,而是“一個極端案例”,一旦變更生效,以太坊的開發人員應該警惕。他補充說,在 EIP 1283 之外的其他四個EIP最初設定包含在君士坦丁堡之內,在2月27日的硬分叉之前會繼續接受審計師的審計。
目前以太坊難度炸彈已經爆炸, etherchain 資料顯示,以太坊出塊時間為20.4秒,三週後,將會到達 30-40 秒;日內挖礦收益也從 20000 個降至 13000 個ETH(出塊時間延長,出塊少,所以收益下降),預計未來三週將再次下降 2000-3000 個 ETH。