對于以太坊,2019 年會是重要的一年洒敏,因為按照計劃割卖,以太坊 2.0 將要在今年起航,從 PoW 的舊大陸出發(fā)前往 PoS 的新大陸癣朗。
與此同時,以太坊 1.0 還會繼續(xù)存在并保持進化旺罢。以太坊 1.0 運行在原主鏈上旷余,以太坊 2.0 運行在 Beacon 鏈上。
計劃中的航程估計要有兩年扁达,直到 2021 年正卧,在分片鏈能夠?qū)崿F(xiàn)完整的功能后,1.0 才會把以太坊的實際運行權(quán)交給 2.0跪解,自己則會退出歷史的主舞臺炉旷,作為 2.0 的一個分片或一個主存儲合約而存在。
以太坊 2.0 的 Beacon 鏈是如何運行的叉讥?ETH (Ether)持有人如何從 PoW 鏈「跨」到 Beacon 鏈窘行?以及,跨還是不跨图仓?我們將在本文試著去探討罐盔。
讀懂 Beacon 鏈
先做個簡單的科普:Beacon 鏈是一條全新的 PoS 區(qū)塊鏈,它是以太坊 2.0 的核心組件救崔,卻不是以太坊 2.0 的全部惶看。以下幾點可能是理解 Beacon 鏈的關(guān)鍵:
1. Beacon 鏈是一條 PoS 鏈,運行以太坊的 PoS 協(xié)議 Casper六孵。
2. 以太坊 1.0 就是指 PoW 的主鏈碳竟,但以太坊 2.0 包括 Beacon 鏈、分片鏈狸臣、虛擬機層三部分莹桅,其結(jié)構(gòu)如下圖所示:
3. Beacon 鏈是以太坊 2.0 的中樞,也是 2.0 的第一個和最重要的一個組件。如下圖所示诈泼,所有分片都會連接它并與它通信懂拾,Beacon 鏈為分片鏈提供安全性和最終確認性。
Beacon 鏈主要完成兩個功能:一是執(zhí)行 PoS 共識铐达,包括維護驗證者集合岖赋、選擇驗證者組成委員會、分配驗證者對分片塊進行提議或證明瓮孙、對驗證者實施獎勵和處罰等等唐断。它是驗證者參與質(zhì)押系統(tǒng)并根據(jù)所押權(quán)益獲得收益的渠道,也是整個系統(tǒng)安全性的保障杭抠。
第二個功能是實現(xiàn)分片的通信脸甘。各分片都會將自己最新狀態(tài)的哈希存到 Beacon 鏈的區(qū)塊上,當(dāng) Beacon 鏈區(qū)塊完成時偏灿,相應(yīng)的分片區(qū)塊就被認為是最終確定的丹诀,其它分片就可確信它們并與之跨分片交易。分片鏈與 Beacon 鏈通過「交聯(lián)」實現(xiàn)跨分片通信翁垂,從而將整個系統(tǒng)連接在一起铆遭。
4. Beacon 鏈上沒有虛擬機,沒有智能合約沿猜,也無法處理交易枚荣;Beacon 鏈不存儲現(xiàn)行以太坊區(qū)塊鏈上存儲的信息,它只存儲驗證者列表和 Attestation啼肩。所謂的「Attestation」棍弄,是指經(jīng)過確認并由驗證者簽名的哈希值,它們實時記錄著一個特定分片的狀態(tài)疟游。
5. Beacon 鏈與以太坊 1.0 的 PoW 鏈會彼此獨立地運行大約兩年。在以太坊 2.0 能夠?qū)崿F(xiàn)完整的功能前(目前預(yù)計在 2021 年)痕支,以太坊都運行在 1.0 上颁虐,Beacon 鏈上的區(qū)塊沒有什么實際意義。
以上即是 Beacon 鏈的基本情況卧须。為什么說 Beacon 鏈要到 2021 年才能正式運行以太坊另绩?因為從以太坊的發(fā)展路線圖可知,到這一年以太坊 2.0 才能支持智能合約和資產(chǎn)轉(zhuǎn)移花嘶,實現(xiàn)可用性笋籽。
2021 年前的以太坊 2.0 長什么樣?
在了解了 Beacon 鏈之后椭员,讓我們簡要介紹一下從現(xiàn)在到 2021 年的以太坊 2.0车海,會經(jīng)歷的三個階段:階段 0、階段隘击、階段 2侍芝。
階段 0 (2019 年):啟動 Beacon 鏈
階段 0 專注于讓 Beacon 鏈上的驗證者運行起來研铆。用戶可以在鏈上存入 32 個 BETH (Beacon ETH)成為驗證者,不過在該階段驗證者只管理 Beacon 鏈州叠,此時沒有分片鏈棵红。
Beacon 鏈在早期會盡可能保持簡單的迭代設(shè)計,該階段不支持賬戶咧栗、資產(chǎn)轉(zhuǎn)移和智能合約逆甜。BETH 僅能被驗證者使用,不能在鏈上轉(zhuǎn)移致板,也無法轉(zhuǎn)入交易所交易交煞。
階段 1 (2020 年):啟動分片鏈
階段 1 將加入分片鏈組件,實現(xiàn) Beacon 鏈+分片鏈可岂。但該階段只是試運行分片結(jié)構(gòu)错敢,并不是真正的用分片實現(xiàn)擴展,Beacon 鏈將分片鏈區(qū)塊視為沒有結(jié)構(gòu)或含義的簡單比特集合缕粹。分片鏈此時依然沒有賬戶稚茅、資產(chǎn)和智能合約。
Beacon 鏈將支持 1024 條分片鏈平斩,每條鏈都有一組 128 個驗證者組成的委員會來驗證亚享。Beacon 鏈為每個分片在每個周期隨機選擇分片驗證者,分片驗證者通過「交聯(lián)」證明分片的內(nèi)容和狀態(tài)绘面。
需要指出欺税,在階段 0 和階段 1,以太坊 1.0 和以太坊 2.0 之間沒有數(shù)據(jù)流通揭璃,以太坊依然運行在 PoW 鏈晚凿。
階段 2 (2021 年):啟動虛擬機層
階段 2 將加入虛擬機層,它是以太坊 2.0 的最后一個重要組件瘦馍。實現(xiàn) Beacon 鏈+分片鏈+虛擬機層的以太坊才是一個我們熟悉的完整的公鏈系統(tǒng)歼秽,以太坊 2.0 的可用性將在這個階段正式實現(xiàn)。
此時情组,智能合約被引入系統(tǒng)燥筷,資產(chǎn)也能夠在鏈上自由轉(zhuǎn)移;分片鏈從單純的數(shù)據(jù)標記器變成功能完整的區(qū)塊鏈院崇,交聯(lián)操作支持跨分片的通信肆氓;一些最常用的開發(fā)工具也可能被移植到以太坊 2.0,以支持 EVM2底瓣。EVM2 是以太坊新的虛擬機 eWASM谢揪,基于 Web Assembly,支持多種編程語言實現(xiàn)智能合約。
雖然以太坊的分片技術(shù)路線圖總共包括七個階段键耕,但在進入到階段 2 后寺滚,以太坊就將從 PoW 鏈遷移到 PoS 鏈,從 1.0 時代真正進入到 2.0 時代屈雄。
32 ETH 的船票貴不貴
以太坊 2.0 中的新資產(chǎn)叫 BETH村视,它有兩種生成途徑,一是由以太坊 1.0 中的 ETH 轉(zhuǎn)化而成酒奶,1ETH 生成 1BETH蚁孔;二是在以太坊 2.0 中質(zhì)押 BETH 參與 Staking,作為驗證獎勵生成惋嚎。
由于在階段 0杠氢,用戶可以在 Beacon 鏈存入 32 個 BETH 成為驗證者,姑且可以理解為花 32ETH 買張船票另伍,跟隨以太坊前往以太坊 2.0 新大陸鼻百。問題是,你愿意上船嗎摆尝?
鑒于在階段 2 之前 BETH 是不能在賬戶間轉(zhuǎn)移和交易的温艇,以太坊及其各種應(yīng)用也依然運行在 PoW 鏈上,所以當(dāng) Beacon 鏈上線后堕汞,用戶會把 ETH 轉(zhuǎn)化為 BETH 的唯一原因是用 BETH 參與 Staking勺爱,以獲得更多的 BETH。
根據(jù)之前的資料讯检,ETH 與 BETH 之間的轉(zhuǎn)換是單向的琐鲁,即只能通過合約用 ETH 生成 BETH,而不能把 BETH 重新?lián)Q為 ETH人灼。
這帶來的一個問題就是 1 枚 BETH 的價格上限為 1 ETH围段,BETH 永遠不會比 ETH 更值錢,因為 1ETH 還包含了一個從 ETH 轉(zhuǎn)為 BETH 的權(quán)利投放;同時奈泪,轉(zhuǎn)為 BETH 還意味著為期兩年的鎖倉期。
不過以太坊創(chuàng)始人 Vitalik Buterin 最近在一次討論中提到了 ETH 與 BETH 雙向兌換的可能性跪呈,以太坊聯(lián)合創(chuàng)始人 Joe Lubin 近日在接受采訪時也表示可能存在雙向機制。但雙向機制可能帶來一個新的問題:BETH 通過 Staking 增發(fā)取逾,但 ETH 不能參與這種增發(fā)耗绿,雙向兌換對以太坊 1.0 鏈上的資產(chǎn)是不利的。
以上兩種不同的方案會影響用戶把資產(chǎn)從 ETH 轉(zhuǎn)為 BETH 的動力砾隅,進而可能影響以太坊從 1.0 過渡到 2.0 的平穩(wěn)性误阻。用戶是否愿意把資產(chǎn)轉(zhuǎn)移到 Beacon 鏈這個問題會在階段 2 到來后變得嚴峻,以太坊采用的解決方案也許會在這兩年內(nèi)根據(jù)情況不斷地調(diào)整和變化。
既然轉(zhuǎn)換方案未定究反,我們不妨先看看用戶遷移資產(chǎn)的另一種決定性的動力:抵押 BETH 參與 Staking 的收益寻定。
至少在目前階段,用戶并不能通過加入權(quán)益池以任意數(shù)量的 BETH 參與進以太坊 2.0 的 Staking精耐,用戶只有在 Beacon 鏈上質(zhì)押 32 BETH (2^5)才可以獲得驗證者資格:用戶在當(dāng)前的以太坊 PoW 主鏈上發(fā)送 32ETH 至一個注冊合約狼速,合約會生成一個「驗證者委員會成員名片」,讓用戶成為以太坊 2.0 的驗證者卦停。
BETH 的質(zhì)押回報率如下表所示向胡,這是 Vitalik Buterin 今年 4 月發(fā)布在 Github 上的一份提案,并且已經(jīng)被添加到以太坊 2.0 的規(guī)范中:
如果總共質(zhì)押了 100 萬個 BETH (2^20)惊完,系統(tǒng)每年最多可增發(fā)約 18 萬個 BETH僵芹,質(zhì)押最大年回報率為 18.1%;如果質(zhì)押 1000 萬個 BETH小槐,每年最多可增發(fā)約 57 萬個 BETH拇派,最大年回報率為 5.72%;質(zhì)押上限為 1.34 億個 BETH (2^27)凿跳,此時每年最多可增發(fā)約 209 萬個 BETH件豌,通脹率維持在 2% 以下,回報率為 1.56%拄显。
以太坊基金會研究員 Justin Drake 認為 3000 萬個 BETH (2^25)的質(zhì)押是最有利于系統(tǒng)健康的苟径,此時通脹率維持在 1%,回報率為 3.3%躬审,假設(shè)每個分片每年平均消耗 1000BETH 的 Gas棘街,通脹率將降至 0.5%,質(zhì)押者的回報率將達到約 5%(鏈聞注:Drake 預(yù)估的是以太坊正式運行在 2.0 上時的最優(yōu)質(zhì)押率)承边。
這里有兩個指標可以用來做比較:一是如今以太坊上通過金融產(chǎn)品存入以太的回報率遭殉,二是 Tezos 與 Cosmos 等 Staking 項目的回報率。
驗證者需要投入的另一個成本是運營成本博助,但它似乎在可接受的范圍內(nèi)险污。
Ethhub 創(chuàng)始人 Eric Conner 在深挖以太坊 2.0 相關(guān)規(guī)范并同相關(guān)研究人員對話后,對驗證者年度運營成本的估計是:每個 Beacon 節(jié)點需要 120 美元富岳,每增加一個驗證器蛔糯,即每多質(zhì)押 32 BETH 時需增加 60 美元。
所以窖式,從回報率的角度來看蚁飒,用戶在階段 2 之前把 ETH 轉(zhuǎn)為 BETH 的動力可能主要取決于三個因素:參與 Staking 的 BETH 數(shù)量、ETH 與 BETH 之間的轉(zhuǎn)換方式萝喘、32ETH 的門檻淮逻。(鏈聞注:本文未涉及幣價波動這一影響因素)
不過無論 32ETH 的「船票」貴不貴琼懊,有兩類用戶可能都會在第一時間參與進以太坊 2.0,他們?yōu)橐蕴?2.0 的運行提供支撐爬早,即使 2.0 還沒有正式運行以太坊:
一類用戶是區(qū)塊鏈生態(tài)的參與者哼丈,尤其是以太坊生態(tài)的參與者,投入 32ETH 是有價值的筛严;一類用戶是以太坊一直以來的支持者醉旦,他們手中 32ETH 的「成本價」可能并沒有那么高,同時作為在未來也會長期持幣的用戶脑漫,用 BETH 參與 Staking 可以讓他們獲得更多的 BETH髓抑。
如何保證 PoS 鏈的安全性?
Beacon 鏈是 PoS 共識优幸,如果用戶缺乏動力把 ETH 轉(zhuǎn)為 BETH 參與 Staking吨拍,會不會影響以太坊 2.0 的安全性?
實際上网杆,以太坊 2.0 通過機制設(shè)計保證了自身較高的安全門檻羹饰。
首先是懲罰機制。如果驗證者有惡意行為碳却,比如同時給兩個區(qū)塊投票队秩,其質(zhì)押的代幣就會被罰沒。
如果以太坊 2.0 共識失敗昼浦,將意味著有 1/3 的活躍驗證者違反了消減條件馍资,也就是說,一次成功的攻擊伴隨著的是質(zhì)押代幣總量中的 1/3 被銷毀关噪,這是攻擊者要付出的成本——不同于 PoW鸟蟹,在 PoS 下「作案」是要把「作案工具」一并沒收的。
另一個使兔,是 Beacon 鏈的「驗證者集-委員會-證明者」的區(qū)塊驗證方式:活躍的驗證者構(gòu)成驗證者集建钥,該集的一個隨機抽樣子集形成委員會,委員會中的證明者對區(qū)塊簽名驗證虐沥。
即使驗證者集中有超過 1/3 的驗證者是不誠實的熊经,委員會被不誠實驗證者掌控(即不誠實驗證者超過 2/3)的概率也很低,并且隨著委員會驗證者數(shù)量的增加欲险,委員會被掌控的概率迅速降低镐依。
假設(shè)我們有 1000 位驗證者,其中 333 位是不誠實的天试,當(dāng)一個委員會由 1 名成員組成時槐壳,該委員會被不誠實驗證者掌控的概率是 33.3 % ;當(dāng)委員會由 13 名成員組成時秋秤,被掌控的概率則只有 10 %宏粤。
以太坊 2.0 在初始階段的委員會驗證者數(shù)量下限是 128 位,即使不誠實者控制了驗證者集中的 1/3灼卢,攻擊成功的概率也不到萬億分之一绍哎。
以太坊 2.0 如何實現(xiàn)隨機性鞋真?
在有效的機制設(shè)計下,影響以太坊 2.0 安全運行的最重要的一個因素就是隨機性涩咖,Beacon鏈諸多協(xié)議的執(zhí)行都是基于「隨機數(shù)」來完成的。因此檩互,我們簡單介紹一下以太坊2.0中隨機性的來源特幔。
以太坊 2.0 是通過 RANDAO + VDF (Verifiable Delay Function,可驗證延遲函數(shù))來解決隨機性問題的蚯斯。
RANDAO 是一種生成隨機數(shù)的方式饵较,它會內(nèi)建在 Beacon 鏈的邏輯中拍嵌,參與者(此處就是驗證者)各自獨立提供一個隨機數(shù),RANDAO 將這些隨機數(shù)相加得到一個新的數(shù)字循诉,并把該數(shù)字作為隨機數(shù)輸出横辆。
但 RANDAO 有一個缺點:最后一個公開隨機數(shù)的人是可以預(yù)測 / 操縱隨機數(shù)結(jié)果的。因為他知道前面全部的值狈蚤,所以能夠通過自己出隨機數(shù)還是不出來影響最終的輸出募疮。因此,我們需要在 RANDAO 之上加入 VDF阿浓。
VDF 簡化來講是指在輸入一個值后,需要運算很長的一段時間才能得出結(jié)果筋蓖,但這個結(jié)果是可以輕易被驗證的退敦。VDF 把 RANDAO 產(chǎn)生出來的隨機數(shù)作為種子去生成新的隨機數(shù),而系統(tǒng)使用的是 VDF 提供的新隨機數(shù)瓮下。
因為 VDF 隨機數(shù)的計算時間足夠長(以太坊 2.0 中, VDF 為 102 分鐘)讽坏,最后一個公開隨機數(shù)的人是無法在自己提供隨機數(shù)的時間內(nèi)計算出結(jié)果的,也就無法通過自己的行為來影響最終的隨機數(shù)(以太坊 2.0 中迷捧,RANDAO 每 6.4 分鐘就完成一個隨機數(shù)的輸出胀葱,這個時間 / 過程也被稱為一個 epoch)。
RANDAO 的周期是 6.4 分鐘庆锦,VDF 的周期是 102.4 分鐘轧葛,因此以太坊 2.0 中會有 16 個 VDF 同時運行肥荔,為系統(tǒng)每隔 6.4 分鐘生成一個隨機數(shù)燕耿,Beacon 鏈將以此為基礎(chǔ)完成自己的工作姜胖。
需要注意的是,區(qū)塊鏈上的隨機數(shù)問題是個難題右莱,RANDAO + VDF同樣也需要被進一步驗證。
做個勇敢的探索者
以太坊 2.0 客戶端 Nimbus 的測試網(wǎng)已經(jīng)上線亚再,它被稱作 testnet0晨抡,運行了一條能夠在節(jié)點間同步信息的 Beacon 鏈,并且節(jié)點可以分布在遠程的設(shè)備上耘柱。
此版本設(shè)置了 400 個驗證者節(jié)點來維護網(wǎng)絡(luò)的運行,其中有 50 個驗證節(jié)點是留給「勇敢的探索者」的镜遣,任何人都可以加入士袄。這里我們提供一條小貼士:如果遇到問題谎僻,可以在 Status 的 #status-nimbus 頻道進行詢問寓辱。
使用 Go 開發(fā)的以太坊 2.0 客戶端 Prysm 以及使用 Rust 開發(fā)的 Lighthouse 都即將發(fā)布測試網(wǎng)。如果一切順利讶舰,Beacon 鏈,即階段 0 的以太坊 2.0跳昼,會在今年年底上線肋乍,就如路線圖中規(guī)劃的一樣。
幾乎所有人都尊重和喜愛以太坊堪伍,但人們也會談到它的「歷史包袱」觅闽。如果說以太坊是一艘船,它似乎是一艘笨重的船蛉拙,難以協(xié)調(diào)、行動遲緩吮廉。
但笨重的船也有它自己的優(yōu)勢畸肆,它有更完備、更安全的基礎(chǔ)設(shè)施轴脐、它有更堅持、更徹底的分布式路線令野,如果把目光放長遠徽级,這種船或許才是能承載更多生態(tài)、承擔(dān)更長旅程餐抢,最后到達未知大陸的船低匙。