以太坊分叉在即,本次升級包含哪些EIP?
Wendy/張詠晴編譯
2019-01-09 16:30

 

以太坊君士坦丁堡(Constantinople)分叉即將開始,很多人都對本次分叉感到好奇,不確定是否需要提前做好準備。

 

本次升級包含哪些EIP?

 

EIP 145:以太坊虛擬機器(EVM)的位轉移指令

- 提供與其他算術運算同等成本的本機位轉移。

- EVM缺乏位轉移運算,但支持其他邏輯和算術運算。轉移運算可以透過算術運算進行部署,但所需成本更高,需要耗費更多的處理時間。部署SHL和SHR的運算成本分別是35 gas,而本文建議的操作只需要3 gas。

- 簡單來說就是給協議添加更多功能,讓鏈上活動變得更加方便,成本更低。

 

EIP 1014:Skinny CREATE2

- 為0xf5添加新的操作碼,需要4個參數:endowment、memory_start、memory_length、salt。除了使用keccak256( 0xff ++ address ++ salt ++ keccak256(init_code)))[12:]

來取代常規的sender-and-nonce-hash作為初始化合約位址之外,其他CREATE操作都是不變的。

- 允許與鏈上不存在的位址進行交互,前提是這些位址包含由特定初始化代碼創建的代碼。

- 對於涉及合約交互的狀態通道應用非常重要。

- 簡單來說就是允許你與因為狀態通道而尚未創建的位址進行交互。

 

EIP 1052:EXTCODEHASH操作碼

- 這一EIP介紹了一種新的操作碼,回歸到了合約代碼的keccak256 hash。

- 很多合約需要對合約的位元組碼進行檢查,但不一定需要位元組碼。舉個例子,某合約會檢查另一合約的位元組碼是否屬於可部署範圍之內,或者會分析代碼,將一些帶有符合要求位元組碼的合約加入白名單。

- 目前,合約已經可以透過EXTCODECOPY操作碼來實現這一點,但所需成本較高,特別是大型合約。因此,我們提出了一個全新的操作碼EXTCODEHASH,回歸合約位元組碼的keccak256 hash。

- 簡單來說鏈上活動成本(所需gas越來越少)將會降低。

 

EIP 1283:不需要dirty maps(額外的儲存結構)的SSTORE gas計量

- 這一EIP提出了SSTORE操作碼的gas淨值計量改進,開拓了合約儲存的新應用,在出現不匹配情況時減少了過度的gas成本。

- 簡單來說就是讓鏈上活動成本(所需gas越來越少)變得更低,尤其是針對現階段成本非常高的活動。

 

EIP 1234:君士坦丁堡難度炸彈延遲和區塊獎勵調整

- 由於難度炸彈(也就是「冰河時代」)的推進,平均的出塊時間增加了。這一EIP建議延遲難度炸彈1年,減少區塊獎勵。

- 簡單來說就是在PoS準備就緒之前確保不要「凍結」區塊鏈。

 

本次分叉是否會影響交易或確認時間?

 

出塊時間應在15秒左右。在將來完全切換到PoS之後,出塊時間會發生變化,但目前依然採用PoW,可能會有一些延遲,交易速度太快可能會導致部分交易不可靠。以太坊目前透過叔塊(uncle block)來解決這一問題。

 

本次分叉是否會影響交易費用?

 

費用取決於交易數量。有些EIP會優化智慧合約交互,因此,智慧合約交易成本會減少。然而,我們不知道將來是否又會有一個像加密貓(CryptoKitties)這樣的Dapp出現,導致網路堵塞和費用上漲。

 

本次分叉是否會影響每秒處理的交易數量?

 

平均交易處理數量不變。不過,隨著EIP 1024對狀態通道的優化,我們應該能看到一些二層方案的問世(例如OmiseGo、Loom Network、Raiden等)。

 

本文為巴比特資訊授權刊登,原文標題為「以太坊君士坦丁堡升級Q&A:這裡有你想知道的一切