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

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


本章描述了我們對權益證明研究的一個階段,從我們發現遠程攻擊問題的解決方案開始,到我們首次意識到傳統區塊鏈共識研究的存在和重要性為止。

這個“wild west(狂野西部)”時期的特點是充滿著廣泛的實驗,探索和無知。因此,本章的大部分內容是相對紊亂的協議設想的集合。 由於,很遺憾地,我被踢出了一個金融加密郵件列表,以及我對Jae Kwon的Tendermint的不斷研究和了解(我之後立馬變成了它的粉絲)這兩件事意味著這個wild west(狂野西部)時代的終結。

“歸零點”的權益證明共識機制

2014年9月20日--2014年12月

我們最初相當自信,認為我們很快將解決權益證明問題,因為我們已經探索到解決無利害關係和遠程攻擊的方案。 然而,我們很快發現(幾乎)所有的關鍵技術問題仍然沒有得到解決。

我們當初並不知道區塊是怎麼樣被產生出來的。 我們也不能明確地知道激勵機制是什麼,我們知道的僅僅是在你一旦簽署“雙重簽名”,就會失去你的保證金,不管這句話到底意味什麼。我們沒有清楚地表達我們的協議設想和我們經常隱含的時間假設(例如同步時鐘和可預測的網絡延遲)之間的關係。 我們依靠的是這樣的一個觀點:客戶端最終將選擇相同的鏈,因為它們有相同的分叉選擇規則(來提供“共識”),而且沒有完全意識到這種機制嚴重依賴於同步性假設。

存款保證金週轉和共識的最終確定

從我們有關解決遠程攻擊問題的方法中,我們發現我們需要一種方式讓區塊鏈的各個客戶端對安全存款保證金的一系列更改達成“最終的”一致,也就是說這種協議一旦簽署,將是不可逆轉的。

這些變化的分叉對於一部分被綁定的利益相關者意味著客戶端可能永久地失去共識:在時間T時下線並計劃在T+1時上線的客戶端需要有一個保證,使得它們所看到的在時間T投入的為時間T+1準備的存款不會因為在區塊鏈中分叉而“未放置”。 有關說明,請參閱此圖。

持有不正確的存款保證金清單信息的客戶端可能容易被攻擊,因為非共識機制下的安全存款保證金的價格為0。

至此,我們就知道,我們必須為權益證明取得“最終確定的共識”。

我有一個想法,使用安全保證金本身來給區塊鏈設置檢查點,用權益證明檢查點替換開發人員設置的檢查點。 客戶端可以使用這些檢查點的哈希值來驗證存款列表是否發生過更改。 這些檢查點將在每X個塊後發生,並且高度在N * X處的塊的“檢查點”將在高度(N + 1)* X處開始檢查(通過它們“最長鏈”的共享尾端,給予它們時間去同意),在這個過程中將需要絕對多數的綁定權益,因此在同一高度存在的兩個有效檢查點將肯定會觸發懲罰條件。 (Vitalik通常更喜歡更連續,更低支出的機制,並獨立地提出“弱主觀性”評分規則,以更漸進的方式提供最終結果。)

“區塊製造者”和“驗證簽名”的抽樣

最初我們清楚地認識到,我們需要一個系統來對有存款保證金的權益持有者進行抽樣以組建區塊(對他們的安全存款保證金按比例抽樣),以便產生一個不斷成長的區塊鏈。 而且,顯而易見的是,我們可以通過額外採樣一組綁定的權益持有者從而在區塊上創建“驗證簽名”,讓區塊鏈更為安全。 因為有存款保證金的權益持有者不需要進行工作量證明,而且他們能夠在看到一個新的塊後立即作出有意義的經濟承諾。

我現在還沒有花太多精力來推導這個抽樣過程的熵產,因為抽樣是為了防禦持有預先決定份額的綁定權益的攻擊者,而不是防禦那些進行賄賂攻擊的對手(能夠在採樣之後,收買節點後對其進行賄賂攻擊的對手)。 因此,我們經濟的安全必須來自與因違反經濟承諾而產生的Slashing條件,而不是僅僅來自於抽樣本身。

Slashing條件/懲罰條件

於是我們開始兼顧懲罰條件(slashing conditions)。 當一個保證金節點在相同高度處創建或簽署兩個區塊時,那這樣他們的存款保證金就會被削減,並且這種行為會被認為是“明顯不良的行為”。

如果是兩個不同高度上不同的分叉中的兩個區塊呢? 這就很棘手了。 我們確信我們需要抑制分叉,而分叉可能是由綁定的權益持有者參與任何(其他)的分叉造成的。 但是我們仍然需要允許保證金節點在其特定視角中的最高分分叉上進行靈活的驗證簽名而不被懲罰。 一名權益持有者在分叉1的區塊上籤署後,又在分叉2的某區塊上籤署,如果在創建簽名之時分叉2的評分高於分叉1,那麼權益持有者的做法是沒有問題的。這完全類似於以下情況,對一個PoW(工作量證明)礦工來說,當一個區塊上的攻擊者分叉變得長於它的受害者分叉後,他在攻擊者區塊中挖礦是沒有問題。 但是當時,我們沒有可行的工具讓在不同高度的兩個分叉簽署的權益持有者受到懲罰,又不因其簽署了最高評分的鏈而懲罰綁定權益持有者。

我們探討了懲罰規則(保留綁定存款保證金的權益持有者的承諾“我永遠不會簽署不是“給定”區塊鏈擴展出來的區塊)。如果所有保證金節點可以對同一分叉作出該承諾,那麼我認為這個規則可以非常有效地防止區塊鏈分叉。然而如果他們不能保證,那麼它們將不再能夠參與到其中或失去他們的存款保證金。 這似乎看起來非常嚴重,所以我知道,我們必須確保綁定的權益持有者能夠對同一個分叉作出該承諾,讓懲罰規則有效實施。

即使當時我不知道有關懲罰條件的相關性或存在性,但它也算是我傳統的共識機制進行的第一次研究。在之後我們通過Casper的“投注循環”研究到“共識狀態終結”時, Vitalik總是想保持懲罰規則簡單易懂,(如果我沒搞錯的話)他直到幾個月後才樂衷於研究跨高度懲罰規則,也就是我們開始運用Casper的”投注循環“來研究”確定的共識狀態“的時候。在任何情況下,我都不能說服自己,綁定的權益持有者能夠在同一個分叉上做出這些承諾(除非他們在一個非常老的區塊上做出承諾,例如在本章前面提到的檢查點示例)。所以說啊,達到共識是出人意料的艱難。

拜占庭(Byzantine)證明的審查制度

我和Vitalik開始關注拜占庭式行為的審查制度,因為這種審查制度可能破壞基於安全存款保證金方法的經濟安全性,並且拜占庭證明對於觸發懲罰規則是必要的。

請注意,雖然我們不是(或者至少我不是)非常清楚傳統共識機制研究的實際內容,我們依舊使用了術語“拜占庭行為”,並且(至少我)認為區塊鏈已經“解決了拜占庭將軍問題”。 當我還是一個比特幣粉時,我就從Andreas Antonopoulos那裡瞭解了這一點。

我敢說,客戶將能夠識別拜占庭證明的審查制度,通過:1)觀察拜占庭證明或可證明的拜占庭行為2)嘗試在相關區塊鏈鏈條中引入拜占庭證明機制。 該過程將被那些交互式客戶端協議所使用,通過該協議客戶端可以將正在審查中的區塊鏈視為無效,或者至少可以獲得具有比區塊鏈中非審查中的分叉更低的分數。然而那時,我並沒有意識到我所做的共時性假設(按:共時性,是瑞士心理學家榮格1920年代提出的理論,指“有意義的巧合”,用於解釋因果律無法解釋的現象,如夢境成真,想到某人某人便出現等。榮格認為,這些表面上無因果關係的事件之間有著非因果性、有意義的聯繫,這些聯繫常取決於人的主觀經驗。)。

“狂野西部”時代的終結,權益證明時代的新篇章

2014年11月,Peter Todd和Vinay Gupta分別使得我不得不看清這樣一個事實,我陷入了共時性假設(Peter Todd主要針對我說的,網絡消息如區塊和驗證簽名將在一個可接受的時間內到達所有客戶端 ,而Vinay重點關注了我對於所有客戶端將有同步的時鐘這一假設)。 他們讓我意識到,我不能將共時性外包給“網絡堆棧”來實現,相反的是,我必須盡我所能減少我提出的權益證明協議對這些假設的依賴。所以,這便標誌了我對共時性假設的興趣的濫觴。 乃斯(歡呼)!

我開始定義一個協議,在網絡中用“乒乓機制”信息有效地創建心跳包,而不用根據消息到達情況的時鐘和時間假設。 在我那時提出的PoS權益證明協議中,p%的安全存款被採樣,用於每個區塊上驗證簽名,並且這些存款加權簽名的q%個單位需要包含在鏈中的下一個區塊裡,使得下一個區塊有效。

我曾經試圖在沒有做共時性假設的情況下,跳過離線的區塊製造者,然而失敗了。 而且無論我怎麼嘗試(不考慮時間假設),綁定的權益持有者們似乎都有可能對於是否跳過某個區塊製造者一事無法達成一致。

經濟與博弈理論VS計算機科學:有關金融加密郵件列表的爭論

這個郵件列表由我們的朋友EminGünSirer和Byron Gibson管理,他們正努力讓學者參與到區塊鏈的研究中來。

早在我加入研究前,關於經濟學與共識的相關性的研究就已經如火如荼地進行著了。我還依稀記得當時, 廣義上講,對於經濟學與基於區塊鏈的共識的相關性的觀點主要分為兩個派系。

Vitalik,Jae Kwon和我或多或少堅持認為經濟分析是研究的核心。 我們從攻擊者成本的角度上討論了安全問題,該成本可以是燒掉的保證金,也可以是PoW裡的電力和資本支出。

Nick Szabo(反對派系的領導人)認為經濟分析沒有比“推測大腦狀態”好到哪裡去,並且他堅持認為容錯和共識協議研究(以或不以區塊鏈為基礎 )是一個純粹的計算機科學問題。他認為,在生活中有“大博弈”和“小博弈”,而協議激勵(小博弈)不會最終影響更大的博弈,因為大博弈牽涉到更大的激勵和收益。

Vitalik和我對這個評價有同樣的反應; 即使“大博弈”的激勵真的會超越“小博弈”,但重要的是協議獎勵機制會盡可能促進保證激勵的協議被認可。

Dominic Williams則站在敏感的”中間地帶“,他認為計算機科學研究是很重要的,在此基礎上再逐步將兼容的激勵機制增加進來。在Szabo分享了他的觀點之後,Dominic也成為了“小博弈/大博弈”論斷的粉絲,他多年來一直給我重複提到很多次。 Dominic的觀點比我的觀點更受歡迎:經濟學是區塊鏈研究的基礎,但另一方面,傳統的共識研究則不是。

當我“略微地惹惱”Nick Szabo的時候,便被踢出了該郵件列表。因為我提出不管一個人習得了多少有關計算機科學的知識,如果他不做經濟分析研究的話,這樣的人是不具討論區塊鏈資格的。

而我從這個列表被除名的原因,則是我對傳統的共識協議文獻的忽略和不瞭解。其實,我是完完全全的不瞭解。 只是直覺強烈地告訴我,它不會是那麼重要的,因為它不是從頭開始就以經濟學來設計的。

這是我第一次非常瞭解傳統的共識性研究。 它在我心中種下了我對以後我將最終遇到的(經濟和非經濟)共識協議感興趣的種子。 無論如何我都沒有動力去立刻拜讀那些有關文獻,畢竟因為它們很晦澀。 但我有意的忽略它們,不去閱讀它們,使我感到有點內疚。

我想借此機會感謝GünSirer在這個郵件列表上積極與周到的參與。 我從來沒有聽說過有這麼高的精度和正確性的分佈式系統和博弈理論。 我認為它幫助了我!

我對Tendermint的簡介

我在那份郵件列表上討論經濟和共識問題的經歷就是我如何初次認識Jae Kwon和Tendermint。Tendermint是一種基於安全存款的權益證明系統,而這個系統又是基於傳統的共識協議。

在閱讀Tendermint白皮書並與Jae本人進行Skype通話後,我可以聲稱,Tendermint是“最簡單安全的權益證明協議”。 在這裡,我理解的“安全”是“安全阻止試圖分叉區塊鏈的賄賂行為攻擊者”。

Tendermint曾有(並且現在還有)這種屬性:每個區塊在被添加(”委託“)到區塊鏈之前已經被完成。 這保證了,無論分叉多麼短,一旦發生分叉或別的情況,至少有1/3的安全存款保證金將被削減。 它在反分叉安全性上比我能找到的其他方式要強得多。 這也意味著我們的很多安全存款週轉問題可以很容易處理。 特別是與我當時工作的權益證明協議相比,它就顯得更加的曼妙和簡單。

Tendermint也是我研究的第一個相容性偏好共識協議。 事實上,學習Tendermint讓我對傳統共識協議也有了一定的瞭解。因此,這一段經歷也使我對共識協議的理解更加深入。

感謝Jae Kwon的啟示,我和Vitalik將綁定存款保證金的權益持有者稱為“繳納保證金驗證者(Bonded validators)”或簡稱“驗證者(validators)”。

在第4章中,我將討論我們對區塊鏈領域中的博弈理論和經濟學的一個非常重要的觀點轉變。 這種觀點的轉變代表了Casper設計理念的最重要的部分。


原文:https://medium.com/@Vlad_Zamfir/the-history-of-casper-chapter-3-70fefb1182fc

翻譯&校對:Lola & Elisa


關於EthFans

建立最好的以太坊中文技術社區,持續推廣和普及以太坊的技術,幫助以太坊釋放區塊鏈和智能合約的潛力,併為開發者提供更好的平臺和機會。我們相信區塊鏈和智能合約會在將來不斷證明其巨大的潛力,並在創新、社會效率,以及新的機會方面會對世界產生巨大的影響。


分享到:


相關文章: