Casper 機制的歷史起源-第五篇

以太中文網發表於2018-09-29

Casper 機制的歷史起源-第五篇

在這一章節中,我將以Aviv Zohar和Jonatan Sompolinsky設計的GHOST(Greedy Heaviest-Observed Sub-Tree,又稱幽靈協議)原理在權益證明中的應用來重新敘述Casper機制誕生的故事。

我稱它為“友好的Ghost”(編者按:參見動畫片《鬼馬小精靈》的原文片名),正是因為設計的一系列激勵因素是為了保證對抗寡頭壟斷者的遮蔽的抵抗力,該激勵機制能夠強迫卡特爾(壟斷聯盟)對那些非卡特爾驗證器更加地友好。

對卡特爾模型中遮蔽的抵抗力

2015年2月–友好的激勵

在看到寡頭壟斷的情況後(按:見Casper機制的歷史起源——第四篇),我開始探尋一條設計權益證明協議的道路,能在形成卡特爾後仍穩健發展的權益證明協議。而且必須實現的是,在這個新的協議中,卡特爾沒有遮蔽那些不在卡特爾中的驗證者的動機。

我意識到,當進行工作量證明共識的卡特爾分析時,一個佔有51%礦工的卡特爾有動機去遮蔽那些不在卡特爾中的礦工。這些51%的礦工會立刻得到更多酬金的獎勵,並最終會得到更多的區塊獎勵(在區塊難度再調整之後)。

我已經知道了權益證明優於工作量證明的長處了,權益證明協議可以訪問“能防女巫攻擊的資金(存款保證金)”;反之,工作量證明區塊鏈並不能直接控制挖礦算力。

所以我意識到,工作量證明協議是無法檢測出遮蔽的存在的,畢竟因為工作量證明是存在於協議之外的。此外,就我而言,這引導我得出了一個Casper的永久特性:

卡特爾不能隱藏那些已經被遮蔽的驗證者的缺席。

【作者按:說明一下,這也就是說,卡特爾並不能掩蓋一個關於“已經被遮蔽的驗證者的缺失”這一事實。】

所以我清醒地意識到,構建一個卡特爾沒有動機去遮蔽其他驗證者的協議還是有可能的。而且,這還是挺簡單的。在這樣一個協議中,當驗證器出現缺失的(被遮蔽)情況時,卡特爾就必須被懲罰。而且懲罰得程度上足夠嚴重,時間上足夠長久,從而使它不再為了自身利益而去遮蔽那些非卡特爾成員。

我開始興奮起來。這顯示了權益證明從根本上比工作量證明有更強的遮蔽抵抗力,藉此也幫助我肯定了之前關於“安全存款保證金是最重要的”這一直覺判斷。

而且我們還能看到這種協議是怎麼執行實施的:如果一個驗證者不能將區塊納入到鏈中的話,那麼所有那些成功將區塊納入到鏈中的驗證者都會被懲罰。這同時也明確地告訴我們,在卡特爾模型中的遮蔽抵抗力的成本是“一個驗證者故意離線以導致其他線上驗證者損失金錢”。

而因為對於協議來說,它是很難清楚得知驗證著到底是被遮蔽了,還是出於其自身利益而故意離線離線,因此,懲罰相關的離線驗證者也是必需的。

之後,我便馬上建議Jae Kwon和Ethan Buchman他們的Tendermint應該採取我所描述的上述規則。然而他們拒絕了我,因為他們覺得為了某些驗證者離線,而去懲罰所有的驗證者是不能接受的。Jae同時還指出,遮蔽不是什麼問題,因為將會被社群發現,而這個社群也能夠迅速地對卡特爾的行為作出抵抗,並停止使用該區塊鏈。

我半推半就地同意了Jae這個觀點,但是我並不認為這可以成為不作出一切有可能的嘗試以保證卡特爾不會遮蔽其他非卡特爾成員的理由。

去中心化的定義

2015年2月或3月

在三月初的某一時候(或者是二月?),Matthew Wampler-Doty提出了一個關於去中心化的有趣的定義:

判斷一個協議是不是去中心化的,是看這個協議能不能在全部節點都永久性刪除後,僅依靠一個節點仍然能夠恢復過來正常運作。

這一項定義是深受生物學所啟發的,就如同菌絲體藉助一個單細胞就能恢復過來一樣。這個觀點十分的有意思,因為它引導我們注意到Tendermint是不如傳統的區塊鏈協議(比如說工作量證明協議、或者是PPC亦或是NXT中的權益證明協議)那麼去中心化的。

如果在網路中沒有三分之二的權益加權驗證者去有效地簽署區塊的話,那麼Tendermint並不能在沒有硬分叉的情況下實現恢復。相反,Bitcoin、PPC以及NXT在只有一個礦工或者權益所有者保持線上的情況下,是能夠實現恢復的(儘管這會花他們很多的時間去建立區塊)。

“友好GHOST”的誕生

2015年3月–GHOST遇上權益證明

Vitalik和Gavin Wood定了在三月中旬的時候來倫敦見我,而那時我也應該能夠向他們詳述一種權益證明協議方案,然而我卻遠遠沒有準備好。

於是我絕望地第一次潛進有關傳統拜占庭容錯共識機制的文獻之中。然而我並沒有學到什麼。然而,我明確了一點:文獻幾乎完全關注於僅僅制定“安全決策”(大概指的是“只構建所有遵循協議的節點都能最終達成共識的確定區塊”)的共識協議。而這些共識協議,就像Tendermint一樣,永遠不存在任何分叉。

我發現傳統的拜占庭容錯共識協議需要一個可用的“Byzantine Quorum”(

編者按:拜占庭節點集,在Quorum拜占庭系統中使用。Quorum 系統是指共享資料儲存在一組伺服器上,通過訪問伺服器的一個大小恆定的子集(quorum)來提供讀/寫操作。這類協議都含有一個特性:規定訪問的子集大小後,任何一個這樣的子集都包含最新的資料,並且一定可以讀出來。Quorum 拜占庭系統則是在此基礎上保證在伺服器出現拜占庭錯誤時,系統的一致性語義仍然成立。
)來讓協議進行決策制定。而藉此,這也就意味著它並不符合Matthew Wampler-Doty關於去中心化的定義。順便說一下,這個拜占庭節點集,是指有一個節點集足夠大到它包含的大部分節點是正確節點(這個定義在故障計數中是引數化的;我們在之後的章節中還會更多地提到它)。

因此我決定我需要一個可用性偏好的共識協議,而非只是一味制定“安全決策”的協議(相容性偏好)。我需要一個可以積極構建區塊的協議,從而即使是在一個驗證者工作的情況下,這個驗證者還能夠構建一條區塊鏈。

通過使用拜占庭節點集(如果可用的話)在區塊被建立後做出決策,還是可以實現最終確定性的(無論在傳統協議上是否可行)。

Vitalik和Gavin已經到我家門口了,我在有些許困惑和絕望的情況下,做出了一下一個決定:我將調整GHOST使其適用於權益證明。我已經瞭解並且酷愛GHOST,因為它影響了以太坊工作量證明的一部分明細規範。

我堅信,驗證者將會製造一個區塊和“驗證簽名“(區塊上的電子簽名,這個簽名將證明它們有效性和共識權重)的DAG(有向無環圖,英文維基百科,中文維基百科)。在這個GHOST中,將有一個函式能夠接收任何類似的DAG並返還一個“最簡潔的”交易定序。一個包括所有共識行為的記錄將會在DAG中被儲存,並用作於激勵因素。

當然,如果有任何的驗證者經常性地沒有將它們的區塊放入最簡潔的定序的話,那麼每一個驗證者都會被懲罰。

儘管這個協議並非完全可行,亦並非詳盡,但它依舊足夠全面。我有足夠的信心能夠令它發揮作用。

以下是含有具體這些性質的協議模型:

  • 如果必要的話,一個驗證者便能構建區塊。
  • DAG能夠捕捉到所有某一驗證者可能發現的對於協議激勵機制有用的資訊。
  • 卡特爾的遮蔽會被懲罰。

我將我所做的工作一一細說給了Vitalik和Gavin聽。儘管他們都沒有太受觸動(畢竟他們之前期待著一個詳盡的協議敘述),但是他們都能看到我做了足夠多的工作以對得起我所掙的錢(所以我灰常開森!)。

Casper誕生時只是簡單的“友好GHOST”,經過改進以適應權益證明,完工於能夠激勵卡特爾對非卡特爾驗證者“友好”的激勵機制。

從“友好GHOST”發展為“Casper:友好GHOST”的歷程

早在John Dilley在聖弗朗西斯科於Jeremy Gardner的“Crypto Castle(加密城堡)”派對上說服我將這個協議稱為“Casper”之前,有幾個人已經告訴我讓我將這個“友好GHOST”命名為“Casper”了(可惜的是,我不能確鑿地記得是誰提的了)。

在這個派對上,我對Andrew Poelstra關於安全存款保證金解決無利害關係和遠端問題這個觀點,做了點吹毛求疵的行為。(不要擔心,親愛的讀者們,在之後的時間裡,我和他在一塊兒聊得很好很投機。)

在接下來的篇章中,Casper歷史將會提到……

在接下來的幾個篇章中,我將敘述我在定義Casper DAGs的“標準定序”功能上做出的努力。其中將會包括“隨區塊共識”的探索(發生在前面說的那個幫助我命名Casper的派對之前)。最後,這篇長篇博文將止於2015年7月柏林,在那時的柏林,Vitalik和我終於找到了如何令Casper整合實現最終確定性。

原文連結: https://medium.com/@Vlad_Zamfir/the-history-of-casper-chapter-5-8652959cef58

作者: Vlad Zamfir

翻譯&校對: Lola & Elisa

本文轉載自以太坊愛好者

原文連結:https://ethfans.org/posts/the-history-of-casper-part-5


相關文章