1. 程式人生 > >以太坊eip150和eip158

以太坊eip150和eip158

以太坊網路將在區塊號到達2463000時進行一次硬分叉,具體分叉時間將會在中國時間2016年10月18日晚8-9點。可以在 https://fork.codetract.io/ 看到本次分叉的倒計時網頁。

作為一個使用者,我需要做些什麼?

下載最新版本的以太坊客戶端:

如果我不參與硬分叉,會發生什麼?

如果你正在使用一個沒有更新過的舊以太坊客戶端,你的客戶端會同步到分叉前的區塊鏈。你會被困在一個不相容且遵循舊秩序的鏈,你將不能在分叉後的以太坊網路上傳送以太幣或者進行操作。

以太坊中的硬分叉是什麼?

硬分叉是一種對以太坊底層協議的改變,為了升級系統來建立新的規則。所有的以太坊客戶端都需要被升級;不然他們會被困在一條不被相容且遵循舊協議的老鏈。區塊鏈系統的去中心化特性使得硬分叉升級變得困難。在一條區塊鏈中進行硬分叉需要整個社群的合作與溝通,同時也需要各個以太坊客戶端的開發者們進行合作,使得整個分叉過程變得流暢。

硬分叉時會發生什麼?

在就硬分叉中需要做出的改變達成共識之後,這些協議上的改變會被編寫到不同的以太坊客戶端中去,比如geth、parity和ethereumJ。這些改變在一個特定的塊時會被啟用。任何不升級的節點會被廢棄留在保持著原來規則舊鏈上。

我們為什麼需要進行一次硬分叉?

自從9月18日起,以太坊網路就在受到一個人或群體的攻擊,並導致大量的交易被延遲處理。整個網路現在已經充滿了等待處理的交易,它們同時也導致使用者們自己的交易也被延遲的惡性迴圈。你可以把這種行為理解為以太坊區塊鏈上的拒絕服務(DoS)攻擊。

每個在以太坊網路上被處理的合同都會消耗一定的gas費用。使用ADD這樣的簡單操作相對於複雜計算操作,例如用SHA256加密一個特定的數字,會消耗較少的gas。攻擊者通過在他的交易合同中不斷的使用某些特定的opcodes使得整個交易變得計算複雜卻在網路上消耗極少的費用。為了防止攻擊者繼續使用這樣的廉價高計算量合約毀壞整個網路,我們將會提高某些opcodes的價格。

為什麼我們需要兩次硬分叉?兩次分叉會有什麼影響?

兩次分叉各自針對攻擊中產生的不同問題。第一次硬分叉解決的是執行程式碼(opcode)價格過低導致的網路健康問題。像以太坊改善方案150中提出的,“EIP 150 硬分叉”,第一次硬分叉設定在第2463000塊時發生,它將會調整那些因為價格過低而導致攻擊的執行程式碼(opcode)的價格。第二次硬分叉旨在清除那些攻擊者用來充斥氾濫以太坊網路的空賬號,這些賬號導致區塊鏈網路產生腫脹。第二次分叉還在討論中。第二次分叉實現之後,很有可能會有一個“清掃期”,期間可能延遲和處理交易以及網路同步困難的情況仍然會持續直到所有的網路腫脹的情況處理王完畢。

EIP 150硬分叉會怎樣影響合約?

我在哪裡可以找到更多有關這兩次硬分叉會怎麼影響底層協議的技術性文章?

針對以太坊底層協議的更改都被記錄在GitHub的以太坊改造提議庫內。

以下的兩個EIP描述了目前面臨的兩次分叉的計劃:

十分感謝以太坊社群的理解和耐心,感謝聚到一起提供想法,意見以及解決方案去解決這次攻擊,幫助平臺進化的所有不同客服端和平臺的以太坊開發者們。