以太坊2.0:什麼是區塊驗證者?
第一章:Serenity,不叫 Shasper
在之前的文章《ofollow,noindex">V神 Devcon4 演講內容雙語分享 》,我們提到以太坊創始人Vitalik在會中明確提出不喜歡 Shasper(Sharding+Casper)這個詞,並希望以太坊社群將以太坊的新階段(即以太坊2.0)稱為Serenity ,以此來表示以太坊下一階段的發展。
第二章:多個階段
Serenity的實現將分為4個階段,大約需要2年的時間來完成。
- 第一階段為階段0,或者稱為信標鏈(Beacon Chain)階段。本階段的重點是使權益證明信標鏈的驗證者(Validators)上線並執行信標鏈。有關信標鏈的說明,請參閱Unitimes往期文章《以太坊協議狀態:信標鏈 》;
- 第二階段的重點是新增分片(shards)作為資料(資料層);
- 第三階段將實現資料的跨分片傳輸,或者在分片內部傳輸。這就意味著,在全新的以太坊網路中,智慧合約在一段時間內是不會執行的;
- 第四階段就是,按照Vitalik的說法,對權益證明以太坊這個全新的世界計算機進行稍加改進和最優化。
第三章:驗證者
驗證者是指為區塊鏈提議新區塊的實體(人或公司),或者是那些確認/證明其他驗證者所提議的區塊的實體。需要明確的是,提議(propose)或者證明(attest)區塊都是通過自動化軟體實現的,不需要手動去提議什麼東西。從技術角度來說,人是無法及時作出反應的。因此,無論是處於何種目的,驗證者就是指一個“節點”,也即一臺會提議和證明區塊的計算機。我們將提議區塊的驗證者稱為“提議者(proposer)”,將驗證該提議的驗證者稱為“證明者(attester)”。也就是說,區塊提議者和區塊證明者都是區塊驗證者。區塊驗證包括兩個環節,即提議區塊(由提議者發起)和證明區塊(由證明者完成)。
再進一步解釋一下吧。
每個區塊的驗證者都是從一個很大的驗證者集合中選擇出來的,所有驗證者都需要在信標鏈中進行登記才能成為驗證者。驗證者是通過隨機數發生器進行隨機選擇的, 該隨機數發生器就是RANDAO+VDF,而那些被選中的驗證者們將組成一個委員會(committee)。
備註:RANDAO是一種將許多參與者提供的隨機數組合成一個單一的輸出數字的方法;VDF 即 Verifiable Delay Functions,可驗證延遲函式,參考《可驗證延遲函式介紹 》。
當某些驗證者被選中進入委員會中的時候,他們將負責對某個狀態進行證明,也即建立下一個區塊。這一過程可以在一個時間段內完成,我們將這個時間段稱為 slot(每個slot中涉及對某個區塊進行提議,以及其他驗證者證明該提議的區塊一切正常),當幾個slots下來之後,所有隨機被選中的驗證者都獲得了機會對提議進行證明,我們稱之為一個週期(cycle)。
呃,好多術語,太專業,好難理解...
別擔心,這就是一些定義。關於驗證者,知道下面這些內容就可以啦。
如何成為一名驗證者?
想要成為一名驗證者,你需要在當前的工作量證明以太坊主鏈的一個智慧合約中抵押32個以太幣(ETH)。之後就會生成一個類似“驗證者會員卡”使你能夠參與到新的權益證明系統中來。
驗證者們將負責1-2個特定的分片,每個驗證者都能對1-2個分片進行區塊提議/證明。 換句話說,一臺計算機(節點)至多可以對2個分片進行驗證。 如果你想要抵押更多的ETH,你必須使用另一臺計算機。因此,抵押池(staking pools)就變得不可行,從而才能增加整個網路的去中心化程度。
可以看出,兩個系統(基於工作量證明的系統和基於權益證明的系統)將在較長的一段時間內共存 ,因為上文中提到的以太坊2.0的前兩個階段中,權益證明系統中不會存在任何的資料傳輸,因為我們依舊需要依靠當前的工作量證明鏈來處理資料交易。
共識機制的轉變是逐步進行的,礦工們不會驟然間失業或者受困於過時的硬體裝置。實際上,這種趨勢對於他們是有利的。
那麼,我可以做多長時間的驗證者?權益證明中的Slasher演算法以及抵押的ETH被罰沒又是什麼東東?如果我們當前沒有交易,那驗證者將會驗證什麼呢 ?
讓我們來逐個地加以說明。
- 任何一個驗證者可以無限期地留在系統中充當驗證者,前提是他行為得當。驗證者會因為表現良好併發揮作用而獲得獎勵:這是他們參與進來的激勵機制;但如果行為失當,則可能無法繼續成為驗證者。
- 如果某個驗證者下線(go offline),那他將定期地損失一部分抵押的 ETH(總共抵押了32個ETH)。隨著時間的推移,這種損失將大幅增加,這也就意味著,離線時間較短所遭受的損失,要比離線時間更長所遭受的損失更少。驗證者不會損失其抵押的所有32個ETH,而是當驗證者一直損失到某個門檻值,也即當只剩下16個ETH時,這個驗證者就會被驅逐出驗證者行列。 被驅逐出去的驗證者需要等待幾個月之後,才能將剩餘的ETH取出來。同時,驗證者還會因為行為失當,即當驗證者聲稱某筆交易是有效的,而實際上該筆交易並非有效時,會因此而損失抵押金。 這種懲罰要嚴重得多,但目前還沒有確定有多嚴重。抵押金的損失就叫做罰沒(slashing,即抵押的一部分ETH被罰沒),進行罰沒操作的演算法就叫做Slasher演算法。
- 在全新的權益證明區塊鏈中,基本上一開始就只有一些空塊(empty blocks)。由於沒有可以引用的資料或分片,在信標鏈中的區塊將不會包含任何特別有用的東西。
這是因為,銷燬 ETH 能夠在一定程度上為每個人帶來價值(因為 ETH 將變得更加稀缺);而如果將這些ETH分發給其他的驗證者,這會導致他們相互攻擊,以便獲得對方被罰沒的 ETH。
結論
驗證者(validator)就是新式的“礦工”,但驗證者不會通過燃耗電力來確認交易,相反,某個驗證者在被系統選中之後,會針對交易搭建區塊,其他驗證者將對該驗證者的行為進行證明。這些驗證者團隊一起構建一條新鏈,且沒有任何一個驗證者要比下一個驗證者擁有更多的權利。想要成為一名驗證者,使用者必須將32個ETH傳送到當前的工作量證明鏈中的一個智慧合約中,這樣就加入到信標鏈中的驗證者行列了,之後系統將隨機選取驗證者來進行區塊提議(propose),委員會中的其他驗證者將對該提議進行證明(attest),也即通過對被提議的區塊進行投票,以此來決定這個被提議的區塊是否有效。好了,有關驗證者的基本知識差不多就這些了,你理解了嗎?
【本文版權屬於Unitimes,轉載請保留版權資訊。未經授權,不得以任何方式加以使用,包括轉載、摘編、複製或建立映象。Unitimes將追究侵權者的法律責任。合作或授權請聯絡[email protected]或新增微信unitimes2017】