編譯 | Bite@YouMeLiveAPP
自Vitalik在2019年12月提出一個早期以太坊1.0和以太坊2.0合并替代方案之后,研究人員一直在進行積極討論。以太坊1.0到以太坊2.0鏈遷移時候,有兩個重要的因素需要考慮。首先,現有ETH代幣遷移,其次;鏈狀態遷移。
在講遷移之前,先簡單介紹一下橋接(Bridge)及其工作原理:
(1)想要成為驗證者的用戶將需要在一個橋接合約(也即存款合約)中存儲 32 ETH,該合約會部署在當前以太坊主網的一個已知賬戶地址上;
(2)以太坊2.0信標鏈主網將為用戶處理這些存款,并自動將用戶轉變成驗證者;
(3)驗證者將在信標鏈上驗證區塊,并僅通過新發行的ETH來獲得獎勵,
以太坊的故事都是圍繞技術和金融各一半展開講述,隨著以太坊2.0遷移的臨近,考慮技術和經濟方面的挑戰變得至關重要,它們需要被給予同等的重視,
代幣遷移
代幣遷移從技術角度來看,單向橋接與雙向橋接的對比已經得到了充分表達和展示。階段0提案是,以太坊1.0鏈上的用戶將能將他們的ETH鎖定在合約中,并在以太坊2.0的信標鏈上獲得相同數量的代幣。屆時,他們可以將該ETH進行質押,并在以太坊2.0鏈上賺取獎勵。然而,社區也有興趣為在以太坊1.0和2.0鏈之間建立一個雙向橋接,
下圖是 EthHub 上列出的單雙橋接的優缺點,值得注意的是,單向橋接的優點大多體現在技術方面,而缺點則主要集中在經濟方面,也就是說,關于雙向橋接的選擇實質上就是技術與經濟挑戰之間的權衡,
單橋接的優缺點如下:
單向橋接方案保證了安全性,降低了復雜性,但由于Eth 1.0的ETH實際上是被銷毀,鎖倉風險會變大很多。由于恢復驗證器的職責與傳輸機制掛鉤,這也意味著如果你決定停止驗證,在傳輸功能實現之前,無法實現恢復驗證功能,
關于雙向橋接不包括在階段0的原因,以太坊2.0核心開發人員Danny Ryan這樣說:“我們越是將以太坊1.0的共識與2.0聯系在一起,就越是束縛了開發和分叉的進程,這很可能會拖慢以太坊2.0迭代速度。在技術上并非不可行,但它需要所有以太坊1.0客戶端都在2.0輕客戶端上能運行,并對以太坊1.0共識規則進行一些修改,允許在相反的方向上采用類似的銷毀/接收方法。
如果想要實行雙向橋接方案,采取的路徑將會是:(1)發布以太坊2.0的信標鏈(2)一旦穩定的信標鏈和輕客戶端存在,那么要求以太坊1.0客戶端成為以太坊2.0的輕客戶端,并將以太坊1.0與2.0最終確定(3)在以太坊1.0和2.0中增加額外的共識規則,以處理以太坊1.0上的重鑄與以太坊2.0上的銷毀證明。
除非以太坊1.0客戶端就信標鏈的當前狀態達成共識(因此要求以太坊1.0成為以太坊2.0輕客戶端),否則我們無法證明信標鏈的可行性。這就是為什么從邏輯上來說,雙向橋接方案會行不通,”
但與此同時,驗證者能夠將他們的以太坊2.0代幣賣給另一個驗證者,由于鎖倉和風險影響,大概會比當時的價格有一些折扣,盡管如此,如果真的需要,任何人都可以帶著資金退出,這是一個很好的功能,希望能鼓勵更多的參與者安心投入質押,
狀態遷移
舊提案是,在階段2時,當前以太坊1.0鏈的狀態將被轉移到以太坊2.0鏈的分片中。此時,以太坊1.0鏈上的所有資訊都將轉移到以太坊 2.0鏈上,為了拋棄PoW鏈,并將所有數據遷移至信標鏈,Vitalik Buterin提出了一項早期過渡的替代方案,該方案已被更廣泛的社區群體所接受。
另外,還得提到以太坊虛擬機,在之前文章中提到,虛擬機是以太坊的“心臟”,虛擬機使得用戶能夠在不同的硬件架構和操作系統中同時運行同一平臺。EVM的設計就強調正確性而不是效率,而Ewasm是一個建立在現代標準WebAssembly虛擬機上的確定性智能合約執行引擎。它最早是在EIP 48中提出的,未來是以太坊區塊鏈上智能合約的執行引擎,是取代EVM(以太坊虛擬機)的主要候選者,是以太坊2.0路線圖階段2的一部分,
延伸閱讀:
火星獨家 | 以太坊2.0的“心臟置換”:一文讀懂從EVM到EWASM的升級
V神認為,EVM應該很快就會退役,合約應該在Ewasm上使用EVM解釋器(來源),由于EVM使用256位字節碼,因此在EVM處理之前,必須將較小的計算轉換為256位字符串,然而,WASM代碼的設計已經考慮到了生產的需要,消除預編譯是eWASM的一個額外優勢。WASM是一個開放的標準(由谷歌、微軟、蘋果支持),正因為如此,它將允許更多的編程語言(C/C++、JS、Go)用于智能合約開發(包括Solidity)。
有猜測說,階段2之后會有一個分叉,把以太坊1.0的狀態引入到合約中,在遷移狀態之前,會有驗證者賺取獎勵.總體來說,ETH的累計發行量會上升。
V神就此提出了一個提前過渡的替代性建議,這個建議被更廣泛接受,其主要體現在兩方面:(1)擺脫PoW鏈,并將所有轉移到信標鏈上;(2)開發無狀態客戶端。
無狀態客戶端功能主要有5點:(1)用于驗證區塊和見證功能,以及為區塊生成見證的方式;(2)有多種實現方式;(3)Eth1協議的改變,將見證大小限制在1-2 MB左右;(4)無狀態客戶端的開發不需要重新架構,它既不需要無狀態礦工,也不需要webassembly;(5)無狀態客戶端是交換機的一個重要功能,它可以阻止惡意行為。
以太坊1.0系統將作為以太坊2.0的0號分片(最終,將成為執行環境之一,但在開始時,它可以是整個分片)。想要參與以太坊1.0系統的驗證者可以將自己注冊為以太坊1.0友好型驗證者,并且除了他們的信標節點之外,還需要維護一個以太坊1.0完整節點。以太坊1.0全節點將下載0號分片上的所有區塊,并保持更新的全以太坊1.0狀態,
以太坊2.0標志著分片的引入,本質上是將較大的區塊鏈元素分解為更小分片,提高吞吐量,據以太坊2.0的負責人Danny Ryan介紹,成功實行狀態遷移,僅取決于階段0和階段1能否順利且穩定地推出,不然會導致安全性不穩定。
至于核心開發者們的態度:他們似乎就替代提案達成共識,并表示在以太坊1.x無狀態方面尚需進行大量工作,從而將其列為今年的首要任務,但是對于以太坊1.0來說,替代方案是一種利用階段1可擴展數據層更純粹的方法,在付諸行動之前,還有很多領域需要探索,但大多數人對此持積極態度。
參考文章:
Economically Linking 以太坊 1.0 & 2.0:
https://medium.com/@fubuloubu/economically-linking-以太坊-1-0-2-0-e5af0fec02ed
以太坊 2.0 Migration Economics:
https://medium.com/coinmonks/以太坊-2-0-migration-economics-90b83da68213
Eth 1.0 to 2.0 Migration:
https://docs.ethhub.io/以太坊-roadmap/以太坊-2.0/eth-1.0-to-2.0-migration/