一文讀懂CasperLabs:智慧合約平臺的突圍之路

買賣虛擬貨幣
經常有藍狐筆記的讀者問,當前的智慧合約平臺(如以太坊)雖然不錯,但整體來說,智慧合約平臺的擴充套件性限制了它的大規模採用,如果是這樣,新的智慧合約平臺是否有機會?這是個好的問題。一方面,以太坊和EOS等先發者已經具有了一定的開發者生態,還有不錯的應用場景探索。例如以太坊的DeFi和EOS的遊戲和社交,尤其是以太坊DeFi鎖定超過10億美元的資產,在這方面的探索如火如茶。但另一方面,整個加密應用的使用者規模還很小。基於以太坊的dApp的日活使用者當前不到2萬,其他使用者數相對較多的平臺如EOS,也沒能超越這一級別。從目前看,所有智慧合約平臺,還沒有出現突破百萬活躍使用者的dApp,如果那一天到來,將會是整個加密領域的真正里程碑時刻。誰能率先實現百萬活躍使用者的dApp,誰就能在加密領域佔據領先位置。如果說,這是加密世界的網景時刻,那麼要抵達這一個時刻,需要兩個方面的條件。一是dApp場景的繼續挖掘,以尋求產品和市場的契合度,這方面當前的以太坊和EOS等公鏈一直在努力,試圖找到能夠引爆主流人群需求的場景和應用。二是需要真正去中心化的且是可擴充套件的區塊鏈。只有滿足安全和可擴充套件性兩方面的條件,智慧合約平臺才能既有獨特價值,也能承載主流人群規模的應用。所以,在接下來的幾年時間,加密領域最重要的命題之一依然是:如何實現安全和可擴充套件性兼具的智慧合約平臺?雖然以太坊和EOS等公鏈是先行者,但不妨礙其他公鏈的探索和努力,這其中包括Tezos、Nervos、Solana、Polkadot、Harmony等平臺從不同的技術路線和場景方向進行探索。雖然先行者已經取得了領先,不過,如果我們把視野再放大,就會發現,今天的市場規模還很小,使用者數還很少。在這樣的情況下,很難說已經是市場的終局。如果從技術發展和商業發展角度看,今天依然處於早期的拓荒階段。在這一階段,有先行者,有領先者,不過,其他後發者並非沒有機會。至於什麼時候格局確定?這個可能需要三年,也可能需要五年。中間什麼時候殺出程咬金?誰也不知道。但可以肯定的是,今天的格局肯定不是終局。藍狐筆記一直關注智慧合約平臺,之前也介紹過一些新的平臺。今天藍狐筆記要介紹的也是新來者:智慧合約平臺CasperLabs。為了方便大家記憶,CasperLabs以下簡稱為Casper。跟其他公鏈一樣,它也有自己的大夢想,它想成為受開發者歡迎的平臺,為大規模使用者提供去中心化服務的平臺。那麼,它又有什麼不同,靠什麼安身立命?
Casper如何安身立命:Highway協議首先,Casper是一個智慧合約平臺,跟其他智慧合約平臺一樣,為開發者提供執行協議和應用的基礎設施。而另外一方面,它強調的不是單純的高tps,而是要安全和可擴充套件性兼得。目前已經有了這麼多智慧合約平臺,Casper如何安身立命?有什麼殺手鐧?它最核心的技術選擇是基於CBC Casper PoS的共識演算法,並在此基礎上擴充套件出Highway共識協議。Casper之所以聲稱自己可以真正兼顧安全和可擴充套件性,很大程度上源於其技術路線的選擇。而這個技術路線的核心之一就是CBC Casper PoS。CBC 英文為“correct-by-construction”,大意是按照構建逐步校正的意思,它是一種驗證架構正確性的流程,透過構建數學模型推演,確保最終的正確交付。CBC Casper是“correct-by-construction”共識協議系列,這些共識協議共享相同的非同步證明以及拜占庭容錯。這一系列協議透過定義其協議狀態和協議狀態轉移來描述。Casper的計算模型支援檢測何時可以並行合約的執行,且區塊訊息格式允許在鏈中“合併”分叉,可以避免不必要的孤塊。CBC Casper PoS跟以太坊的Casper-FFG不同,以太坊需要考慮從PoW向PoS的過渡,而是CBC  Casper是純粹的PoS機制,不包含任何PoW,只有提議區塊和實現區塊最終性的驗證者才能獲得獎勵。Casper的Highway共識協議是基於CBC Casper PoS的擴充套件。Highway共識協議是Daniel Kane、Vlad Zamfir以及Andreas Fackler三人的研究成果。其中,Vlad Zamfir是以太坊知名的核心研究人員。
Highway共識協議最與眾不同的地方在於:兼具安全和活性。它跟PoW不同(完全同步的協議),Highway是部分同步的協議,可以實現更高頻次的出塊,換言之,具有更好的吞吐量和可擴充套件性。什麼是兼具安全和活性?安全就是說Highway共識協議的決定不會前後矛盾,活性則是說共識協議的節點會永遠保持做決策,區塊不斷增長。總結來說,Highway協議對CBC Casper進行了兩個方面的擴充套件:一是,透過高效方法實現對不同閥值下安全性的檢測;二是,提出在CBC Casper框架下的活性策略,也就是針對網路參與者何時建立協議訊息所制定的策略規範。簡單來說,Casper的Highway協議如何運作?1.summit結構Highway協議為實現最終性,它提供了一種全新的summit(峰頂)結構。與此同時,為了實現活性,它使用偽隨機生成的領導者序列限制訊息的生成來實現,這導致產生blockdag的可預測結構。

Casper的共識協議採用的是blockdag的資料結構,如下圖:

在上圖中,訊息被放置到相關的“泳道”上,也可以看到每個“泳道”上訊息的建立者。由於創世區塊是區塊鏈初始化產生的,它位於“泳道”之外。每個普通區塊都指向其主要父塊,上圖用紅色箭頭表示。這些區塊形成了樹結構,稱為主樹。任何普通區塊都可以指向任意數量的區塊作為次級父塊,如上圖中藍色箭頭所表示的。區塊+紅色箭頭+藍色箭頭一起形成有向無環圖,也就是Casper協議中的p-dag。所有的箭頭和所有的頂點一起形成有向無環圖,這就是Casper中所謂的j-dag。

Summit(峰頂)是指j-dag中某個共識值已經確定最終性的情況。為什麼會有這個概念?因為它有很多層,不同層代表不同的共識程度,最後的Summit意味著在某個範圍內所有節點都達成共識,也就是最高點,形成了峰頂。在這個最高的層面上,具有最大程度的共識。反過來理解,這也說明Highway是具有安全閥值的。每個輪次都有領導者,首先由領導者傳送訊息給每個人。其他驗證者在收到領導者訊息後立即傳送訊息給其他人。在經過一些輪次後,每個驗證者都會再次向所有人傳送訊息。這樣,第一條訊息確認的投票成為level-0的訊息,第二條確認足夠數量的第一條訊息,形成level-1訊息,由此類推形成summit(峰頂)。一旦驗證者在其本地協議狀態達到峰頂水平,他們知道最終每個誠實驗證者將會看到所有狀態。

下圖是最終性的示意圖,可以幫助我們理解summit(峰頂)。

上圖左側的矩形代表驗證者,圓點代表訊息。它展示了驗證者0的本地j-dag,對應於j-daglevel的排列(訊息的X座標對應於j-daglevel)。“泳道”上顯示訊息的Y座標與建立者相同。圓點顏色則代表此訊息正在投票支援的共識值。在誠實驗證者的“泳道”內,0-level訊息是從上一次該驗證者投票贊成的共識值改變以來的所有訊息。訊息的第一層投票支援同一個區塊,其他層會引用第一層的訊息及其雜湊,參與“峰頂”的驗證者越多,層次越多,這些訊息投票的區塊就越安全。

2.有彈性的輪次時長

跟大多數的PoS機制一樣,Casper也會將時間劃分為輪次。每個輪次,首先有一個偽隨機選擇的領導者生成訊息,其他人等待領頭人的訊息,收到該訊息之後,才生成自己的訊息。在這一輪次快結束時,每個人都會再傳送一條訊息。也就是說,驗證者為該區塊傳送了兩次驗證訊息。每個輪次的時長並不固定,不是所有驗證者都採用相同的輪次時長。

為實現活性,Highway協議採用非固定輪次時長的機制。它用“高速公路”作為比喻,這也是協議名稱Highway的來源。Highway類似於“數字高速公路”,它有很多車道,每條車道的汽車速度恆定。不同車道的汽車相互之間會傳送訊息。訊息在不同車輛間傳遞的速度不同,協議達成共識的程度也不同。

在任何給定的車道n中,車在1米距離進行2n頻次的跳躍,資訊在不同車道的汽車間的傳遞是動態進行的。由於跳躍頻次不同,訊息傳遞頻次也不同。例如,如果訊息傳到左側的車道,頻次將加倍,傳到右側車道則頻次將減半。這樣,每次跳躍時,都可以遇到左側車道的汽車,而右側則需要兩次跳躍才會遇到。透過這樣的方式,可以保證一定的安全性,同時也可以提高達成共識的速度。

要理解Highway的有彈性的輪次時長,需要理解時間“滴答”、生成區塊的領導者以及輪次的概念。在Highway共識協議中,時間劃分為“滴答”,每個“滴答”相當於一毫秒。領導者從當前驗證者中選出,基於領導者的系統,需要有輪次,這也是基於安全的考慮,生成區塊的領導者是無法固定的。因此,不同輪次會有不同的領導者。

在這種情況下,多數PoS鏈採用的是固定輪次時長的方法。而Highway協議與眾不同的是其可調整的輪次時長。每個驗證者選擇輪次指數值。隨著時間的推移,將會自動調整輪次指數值(round exponent),以實現最優效能。

舉個例子,假設輪次指數值為n,驗證者用於操作的輪次時長為2^n“滴答”。具有相同輪次指數n的所有驗證者都有相同的輪次時間表。不過,如果輪次指數n不同,驗證者在輪次時長上也不同。

假設A使用的輪次指數為n,B使用的輪次指數為m,其中n為5,m為7。這意味著,A的輪次時長是32個時間“滴答”(2^5),而B的輪次時長為128個時間“滴答”(2^7)。這意味著,A的輪次時長只持續32毫秒,而B的輪次時長持續128毫秒。也就是說,A的速度要快於B,因此,A可以參與B瞭解的所有輪次,而B只能瞭解A知道的部分輪次。透過調整輪次指數可以增加或減少輪次時長,以實現最佳效能。

此外,Highway協議還提出一個“era”(時代)的概念,era時長也用區塊鏈的時間“滴答”來表示,例如一週(604800000個滴答),其主要目的是在更長的一段時間內(如一週)保持驗證者權重的相對恆定,由此實現所有驗證者都可以同意的偽隨機領導者序列,同時防止攻擊者對領導者選擇進行攻擊。

Highway協議跟傳統的BFT協議不同,一般來說,拜占庭容錯協議主要在交易順序上達成共識,而Highway協議僅就區塊的有效性和區塊的權重達成共識,對區塊投票的驗證者越多權重越大。在這種情況下,系統可以處理同時發生的事件,因為交易順序不重要。Highway也支援區塊合併,在合併過程中也可以檢測是否有衝突的交易。

之所以可以實現這些,Highway協議有兩個核心的設計選擇:

*沒有隻發給特定節點的目標訊息,所有訊息最終會傳送給所有人,且可以驗證較早的訊息。所有節點看到的都是相同的,這算是不斷增長的訊息圖,有點類似於雜湊圖。

*決策方式簡單:投票。透過在訊息圖中執行防止僵持狀態的特定結構,可確保網路的活性。

在這裡,訊息被視為是對共識值的投票,且驗證者遵循多個明確的驗證者最新投票。

總結來說,Highway協議的如下特性值得關注:

· 無須許可性,任何人都可以安裝所要求的軟體並作為新驗證者加入網路(在平臺執行繫結交易以後,並在繫結拍賣中贏得其中的slot)。

· 有彈性:可自動調整輪次時長,以使網路的整體效能達到最佳。

· 部分同步:區塊領導者無需收到已產生的所有訊息即可生成區塊,未收到的區塊交易記錄可在下游進行協調。

· 廣播訊息:協議假定能將任何訊息廣播到區塊鏈網路中的所有其他驗證者,可以處理訊息的延遲,而無需直接的點對點通訊。

· 可證明的最終性:協議提供“最終性檢測器”的形式化計算,它可以發現由總權益大比重支援的交易。當驗證者使用其“最終性檢測器”,發現一些交易具有最終性,那麼其他的驗證者也會將其視為具有最終性的交易。

· 可證明的活性:由於惡意驗證者的總權益不超過1/3,網路將持續產生具有最終性的區塊,且共識的收斂不會停止下來。

總言之,Highway的特色是安全和活性兼備。它區塊的建立是圍繞偽隨機生成的領導者序列進行的,領導者負責區塊的產生。同時,它還採用可變的輪次時長機制,這讓Casper具備彈性,可自我調整網路,以獲得最佳效能。

Casper的開發者友好的整體策略

對任何智慧合約平臺來說,最終的價值來源於使用它的使用者數量和頻次。而要吸引使用者進來,首先需要有dApp開發者構建出符合使用者需求的產品和服務。

這對於Casper來說也一樣,除了其技術路線的選擇之外,Casper最核心的策略之一就是其對開發者友好的整體策略。策略講究聚焦和取捨。這一點從Casper的Slogan也可以看出,它的Slogan是“築夢者的區塊鏈”。換句話說,Casper試圖成為開發者構建各種美好產品和服務的堅實平臺。從其目前的技術基礎和運營方面看,Casper的開發者友好的整體策略值得關注。

1.業務開銷可預測

在區塊鏈上進行交易需要成本,使用者的操作會產生費用。在Casper上,被選中的驗證者需要從交易池中收集交易,並按照一定的次序執行,最後釋出到新區塊上。而使用者提交的費用會按比例分配給所有驗證者。

在Casper上,為了讓dApp的體驗更好,它試圖要達成業務開銷可預測。不受監管的費用市場會導致交易費用的高度波動。在2017年加密貓時代,以太坊的轉賬費用曾經高得嚇人。Casper協議內建的gas價格下限設定足夠高,可以減輕這種波動性。可以防止gas跌至某個特定價格下,讓價格在某個值上自由浮動。

Casper的代幣CLX代幣可用來支付gas費用,而CLX代幣價值是波動的,由此Casper設定了價格下限,雖然消耗的是CLX,但設定的值是法幣值,其基準是單個CLX賬戶之間的轉賬費用花費0.05美元。為了實現這一點,Casper使用去中心化預言機來提供價格資料。

實現業務開銷的可預測,有利於dApp開發者構建自己的商業模式,例如由dApp開發者負擔使用者的交易費用,而dApp透過其他方式向使用者收取費用。由於交易費用的相對可預測,這樣對於構建可持續的商業模式,並實現更好的使用者體驗都有直接幫助。

2.絕大多數開發者無須培訓即可編寫Casper區塊鏈應用

對於智慧合約平臺來說,降低開發者進入的門檻非常重要。這也是Casper的重要競爭策略。首先它支援Rust作為Casper智慧合約的主要程式語言,用於智慧合約的Rust開發套件包括了測試環境、合約執行環境等。

此外,Casper對wasm有很好的支援。平臺也支援其他程式語言進行智慧合約的開發。這樣對於開發者來說,無需太多的學習成本,用自己熟悉的語言即可開發dApp。

3.開發者所需的各種功能

除了開發門檻的降低,還有一些功能也可以幫助開發者更好的構建。例如它的GraphQL介面、賬戶結構、無限多重簽名、可定製支付方式、可讀性好的賬戶名等。

· Casper內建GraphQL介面,可用於狀態查詢,方便開發者隨時瞭解合約的內部狀態,降低開發和運營dApp的門檻。

· Casper的賬戶結構比較靈活,有多級賬戶結構,可以從子賬戶中收回丟失資金。它支援開發者所需的各類授權,其中包括針對丟失金鑰恢復的賬戶許可權模型,在賬戶和合約之間安全共享狀態的許可權模式等。

· 加權的金鑰功能和閥值,可以實現無限多重簽名功能。

· Casper支援開發者制定交易的支付方式。普通區塊鏈通常採用“傳送人付費”模式,而Casper的開發者可設定支援接收人付費的模式。

· Casper使用者名稱是可讀性好的賬戶名,方便構建應用,也有更好的使用者體驗。

· Casper節點內建了遙測和監視功能,可以方便節點運營者和驗證者測試系統效能。

4.可升級的基礎設施

Casper區塊鏈支援將合約儲存在不可變的地址中,支援合約版本控制和升級。這對於開發者來說是很有用,因為合約更新幾乎是必不可免的。同時,Casper還在設計協議和虛擬機器,以實現對併發執行、側鏈、分片的支援。

結語

從Casper的整體來看,跟其他專案相比,以上的兩點有其獨特之處。雖然Casper很關心可擴充套件性,但它同樣重視安全性和去中心化,這是它實現可擴充套件性的前提。Casper的Highway協議是實現這一目標的關鍵,透過“summit”和blockdag結構、偽隨機領導者序列(pseudorandom leader sequence)、彈性的輪次時長等多種設計,實現了安全性和活性。

為了構建生態,Casper的開發者友好的整體策略也讓人印象深刻。它在降低開發者門檻,豐富開發者工具方面、設施可升級等方面都下了不少功夫。

那麼,在眾多的智慧合約平臺中,Casper有沒有機會脫穎而出?現在還無法下定論,但由於它在共識機制設計上的特色和對開發者友好的策略,它的探索值得持續關注。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;