原定於 2 月 27 日進行的君士坦丁堡硬分叉被曝再出新「漏洞」,是否會繼續延遲分叉呢?

原文標題:《以太坊被曝再出新「漏洞」?》

據 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。