以太坊2.0:Casper & 信標鏈
編者按:本文來自Unitimes(ID:Uni-times)背景信息

二級標題
背景信息在本系列的第一篇文章《在本系列的第一篇文章《共識算法二級標題
共識算法
共識算法
共識算法
在傳統的價值和信息交換網絡中,通常有一個中介機構來保護和驗證網絡。例如,銀行為客戶的資產提供安全保障,並對客戶的在線交易和信息進行中心化的控制。而在區塊鏈領域,由於區塊鍊網絡是去中心化的,因此不需要這樣的中介機構。
由於沒有中介機構,區塊鍊網絡就必須使用某種形式的系統來維護安全,並確保添加至分佈式賬本中的新信息的有效性。 [1]為了實現這個目的,區塊鏈使用各種“共識算法”,這些算法是一組被寫入協議代碼中的預定義規則,允許網絡達成共識並實現最終性(finality)。最終性的意思就是“一旦完成了特定的操作,該操作將永遠銘刻在歷史記錄中,並且該操作將不可被逆轉。”[2][備註,有關區塊鏈最終性,讀者可參考Unitimes此前發布的文章《以太坊2.0:》]。
以太坊2.0:
二級標題
二級標題
二級標題
為何需要PoS?
諸如比特幣等工作量證明(PoW) 系統涉及許多通過計算機硬件連接至區塊鍊網絡的礦工。 PoW 共識算法會為每個新區塊設定一個目標值(target value),礦工們會競相成為第一個找到該目標值並添加該新區塊,這樣就可以獲得挖礦獎勵。
為此,他們通過一個哈希函數來運行被提議區塊的區塊頭數據(header data),該哈希函數將返回/輸出一個固定長度的字符串(哈希值)。礦工會一直改變他們輸入的“nonce值”,也即對這個區塊頭重新運算哈希,直到輸入的“nonce值”生成的哈希值與該目標值相匹配。此時,新區塊將被廣播至網絡中的所有節點,這些節點將驗證該區塊並將之添加至賬本中,而成功挖出此區塊的礦工將獲得挖礦獎勵。
PoW 系統的關鍵方面是,找到正確的哈希輸入需要大量的計算能力(也即存在挖礦難度),但是一旦礦工找到了正確的輸入(也即“nonce值”),就很容易驗證輸出(也即哈希函數返回的哈希值)。挖礦過程的難度保證了網絡的安全性,而節點驗證每個區塊是相對簡單的,這使得成千上萬的網絡節點可以維護該區塊鏈的最新記錄。
但不幸的是,通過哈希找到每個目標值的難度需要大量的計算能力和電力,這降低了網絡的效率和礦工的利潤。所有礦工都必須花費大量的電力和計算來試圖確認區塊並贏得獎勵,但只有其中一個礦工會成功地挖出新區塊。正因為如此,每個區塊的挖掘都會造成大量電力和計算的浪費。這意味著儘管PoW 算法能夠保證網絡安全,但該算法的效率非常低。
二級標題
二級標題
二級標題
“Nothing at Stake”的問題
實現PoS 共識證明算法的最大問題之一是“Nothing at Stake (作惡無成本,好處無限多)”的問題。自2013年以來,人們一直在嘗試PoS 共識,Peercoin 等早期採用者很快就遇到了這個問題[4]。
PoS 協議的早期採用允許任何擁有網絡原生代幣的人充當網絡驗證者,這些PoS 項目假定那些擁有代幣的人對網絡的成功有既得利益(即會為了自身利益而自發地參與進來成為驗證者,並誠實地進行驗證)。
在假定擁有更多代幣的人幾乎沒有動機會進行攻擊的前提下,那些擁有更多代幣的人被賦予了更多的驗證權。
然而,早期的PoS 項目很快意識到這種邏輯是有缺陷的。通常,礦工/驗證者只會被提供一個區塊進行驗證。然而,由於延遲的原因,常常會有多個區塊被提議,並向礦工/驗證者提供兩個可供選擇的區塊。
在傳統的PoW 系統中,礦工一次性只能在一條分叉鏈中進行挖礦[5]。要成功地將一條非法的分叉鏈取代之前的“權威鏈”(也即最長鏈),那需要擁有50%以上的網絡算力,這對於比特幣等大型PoW 區塊鍊網絡來說是非常困難的。
而在PoS 網絡中,驗證者是有可能同時對兩條不同的分叉鏈上的區塊進行驗證的,而且不需要承擔額外的費用。事實上,在PoS 採用的早期階段,從理論上講,驗證者在任何可用的分叉鏈上進行staking 都符合自身的經濟利益,因為這樣做,無論哪條分叉鏈被確認,驗證者都會獲得交易費用獎勵,這就是“Nothing at Stake (作惡無成本,好處無限多)”問題。
這種問題的最糟糕後果可以通過以下幾個安全性假設來加以闡述:
驗證者將試圖實現自我利潤的最大化,即便這會損害整個網絡;
沒有驗證者會無私地進行驗證(只在一條鏈上驗證區塊);
驗證者將修改它們的軟件,或者下載修改後的軟件,從而允許他們驗證多條分叉鏈(標準軟件帶有內部邏輯,用於在發生分叉時選擇正確的分叉鏈)。
由於上述這些安全性假設,可能會導致出現多條分叉鏈,使得網絡共識出現延遲並更加複雜,如果不加以解決,還可能導致網絡出現重大的安全漏洞。如果每個驗證者實際上都可以對網絡中每條分叉鏈的區塊進行驗證,那麼惡意驗證者將能夠最少通過1%的驗證權就可以進行雙花攻擊(也即對同一筆代幣花費多次)。他們可以將代幣通過其中一條分叉鏈發送至某個交易所,然後將代幣從該交易所中提現,之後只驗證另一條分叉鏈上的區塊。
二級標題
二級標題

二級標題
“Nothing at Stake”問題的解決方案: Casper
幸運的是,以太坊團隊已經從早期PoS 項目的缺點中吸取了教訓,並設計了Casper 協議來消除“Nothing at Stake”的問題。 2014年,Vitalik 在一篇名為《Slasher》的文章中首次提出了消除“Nothing at Stake”問題的想法[5]。文中提出了一個簡單的解決方案:“讓主鏈意識到其他的分叉鏈。之後,如果一名礦工被抓到同時在兩條鏈上進行挖礦,該礦工將受到懲罰。
”儘管這一概念自被提出以來已經得到了很大的發展,但這一概念成為了Casper 共識算法的基礎。
Casper 是一種用於對那些驗證多條分叉鏈的驗證者或者對網絡造成損害的驗證者進行懲罰的算法。
Casper 的第一個實現將使用以太坊當前的PoW 提議機制在Eth2.0 鏈上引入新的區塊。如果兩個區塊同時被提議,那驗證器只會因為在一條鏈上進行質押而獲得獎勵,因此通過當前的Eth1.0 鏈來下注是有意義的,因為這條舊鍊是最有可能成功的鏈。
更重要的是,Casper 協議引入了一種機制,即如果任何驗證者試圖通過同時驗證多個區塊來支持某條無效的分叉鏈,那該驗證者質押的代幣資產將被銷毀。這是通過執行兩條“Casper 戒律” [6] 的特殊保護機制來實現的:
第一條“Casper 戒律”是,驗證者不能在同一區塊高度發布兩個不同的投票(即不能在同一個區塊高度簽署兩個不同的區塊);第二條“Casper 戒律”是,驗證者不能在已經投票的情況下,在其他投票時間範圍內再次進行投票。任何違反其中一條戒律的驗證者都被認為是惡意驗證者,並且他們的全部存款(不僅僅是他們的質押金) 將被罰沒。為了提高網絡的可用性和減少對交易的審查,那些節點離線的驗證者也會受到適度懲罰。具體參見Unitimes此前發布的文章《Eth 2.0 AMA 第二期| Vitalik:
以太坊2.0 已沒有未解決的研究挑戰
》。 Casper 研究者Vlad Zamfir 將這種全新的PoS 安全機制比作是在PoW 系統中任何發動51%攻擊的人所使用的挖礦硬件都會即刻著火併燒毀[2]。
二級標題
二級標題

二級標題
信標鏈
Casper 權益證明機制將通過信標鏈(beacon chain) 加以實現,信標鏈將是一條與當前以太坊PoW 鏈並行運行的獨立鏈。信標鏈將是Eth2.0 鏈的“系統鏈”,其主要職責將是存儲和維護驗證者註冊表、處理分片鍊和信標鏈之間的交聯(crosslink) 以及在每個epoch 期間打亂和分配驗證者至各個分片鏈中(Eth2.0 系統中將存在1024條分片鏈) 等等。
用戶通過一個將部署在當前以太坊舊鏈上的智能合約中發送32 ETH (質押金) 就可以參與到信標鏈的權益證明協議中來。這筆質押金將生成一個收據(receipt),該收據將包含一個顯示該驗證者被分片至哪條分片鏈的ID (閱讀此文章[12] 了解更多有關分片的信息)。
用戶進行了質押之後,將會成為信標鏈中的待定驗證者(pending validator)。在等待一段時間後,用戶才會被“激活”成為有效驗證者(active validator),之後就可以參與PoS 協議驗證了[9]。只有當信標鏈處理了來自Eth1.0 鏈生成的抵押收據之後,用戶才可以被“激活”成為有效驗證者。被激活的驗證者將輪流提議新的區塊和對區塊的有效性進行投票。在遇到分叉的情況下,驗證者將使用他們客戶端的信標鏈分叉選擇規則來自動地選擇正確的鏈。該分叉選擇規則通過“Last Message DriVEN Greediest Heaviest Observed SubTree (LMD GHOST,由最新消息驅動的GHOST)”來決定哪條鏈才是“規範鏈”。潛在攻擊者如果想要對錯誤的分叉鏈進行驗證,那就必須手動修改或消除LMD GHOST 分叉選擇規則。 [備註:有關LMD GHOST 更多信息,讀者可參考Unitimes此前發布的文章《以太坊2.0:》]
二級標題
二級標題
二級標題
路線圖
路線圖
信標鏈(也即Eth2.0 的階段0) 將有望於2020年初啟動,但只有當系統中質押的ETH 數量達到最低數量要求,且至少存在三個處於生產就緒的客戶端,信標鏈才能成功啟動。預計之後的階段1和階段2將分別於2021年和2020年推出。
階段1將引入基本的分片鏈結構,也即本質上是一個分片結構的試運行階段,用於測試分片系統將如何運行。因此,階段1將不會立即實現分片的全部擴展性潛力。此階段將解決分片鏈的共識和最終性,並將允許信標鏈監控分片鏈的執行。
階段2將見證一個完全集成分片的Eth2.0 系統,分片將成為完全運行的鏈。階段2也將引入全新的以太坊虛擬機eWASM。
需要注意的是,儘管這些階段在概念上是分開的,但由於各階段存在的相互關聯性,因此各階段的工作都在同步進行中。


