Polkadot 的 可用性和有效性 (AnV:Availability and Validity)協議使整個網絡能在平行鏈之間有效地分片,同時有着強大的安全性保證。

AnV 協議的階段

可用性和有效性協議(AnV 協議)分爲六個階段。

  • 平行鏈階段

  • 中繼鏈提交階段

  • 可用性和不可用性子協議

  • 二級 GRANDPA 批准有效性檢查

  • 釣魚人反對程序

  • 調用拜占庭式容錯最終性小工具來鞏固鏈

平行鏈階段

AnV 協議的平行鏈階段是平行鏈的收集人向當前分配給平行鏈的驗證人提議候選塊的時候。

候選塊是來自平行鏈收集人的新塊,它可能是有效的也可能不是有效的,並且必須經過有效性檢查才能包含在中繼鏈中。

中繼鏈提交階段

驗證人接下來會對照該平行鏈的註冊代碼所提供的驗證功能來檢查候選塊。如果驗證成功,則驗證人會將候選塊傳遞給八卦網絡(gossip network)中的其他驗證人。但是,如果驗證失敗,則驗證人立即將候選塊視爲無效。

當超過一半的平行鏈驗證人同意特定的平行鏈候選區塊是有效的狀態轉換時,他們會準備候選者收據。候選收據將最終包含在中繼鏈狀態中。這包括:

  • 平行鏈 ID

  • 收集人的 ID 和簽名

  • 父區塊的候選收據的哈希值

  • 塊的擦除編碼片段的 Merkle 根

  • 任何發出信息的 Merkle 根

  • 塊的哈希

  • 區塊執行之前,平行鏈的狀態根

  • 區塊執行後,平行鏈的狀態根

以上信息都是恆定的,但平行鏈的實際 PoV 塊是可變長度的,對於任何獲得完整 PoV 塊的人來說,這都是足夠的信息,可以驗證其中包含的狀態轉換。

可用性和不可用性子協議

在可用性和不可用性子協議階段,驗證人會在網絡中流傳擦除編碼片段。至少 1/3 + 1 個驗證人必須報告他們擁有自己的代碼字段。一旦達到驗證人的閾值,網絡便可以考慮使用平行鏈的 PoV 塊。

擦除編碼

擦除編碼將消息轉換爲更長的代碼,從而可以從代碼的子集中恢復原始消息,而無需代碼的某些部分。代碼是原始消息,上面填充了一些額外的數據,從而可以在擦除的情況下重建代碼。

Polkadot 的可用性方案使用的擦除代碼類型爲 Reed-Solomon 代碼,該代碼已在區塊鏈行業以外的技術中經受了久經考驗的應用。在光盤行業中可以找到一個例子。CD 使用 Reed-Solomon 代碼來糾正由於磁盤表面不一致(例如灰塵顆粒或劃痕)而導致的任何丟失的數據。

在 Polkadot 中,擦除代碼用於保持系統可用的平行鏈狀態,而無需所有驗證人在所有平行鏈上保留製表符。取而代之的是,驗證人共享較小的數據,並可以在 1/3 + 1 的驗證人可以提供其各自的數據的假設下,稍後重建整個數據。

注意:爲了構造完整的平行鏈狀態數據而必須響應的驗證人的 1/3 + 1 閾值對應於 Polkadot 關於拜占庭節點的安全性假設。

釣魚人

釣魚人是平行鏈的完整節點,與收集人相似,但在與 Polkadot 網絡的關係中扮演不同的角色。釣魚人將觀察整個過程並確保不包括無效的狀態轉換,而不必像收集人那樣打包狀態轉換併產生下一個平行鏈區塊。釣魚人需要適度質押一部分代幣在中繼鏈上,這與不要求在中繼鏈上必須要有籌碼的收集人不同。如果發現平行鏈生產過程中發生了不當行爲,釣魚人將提交無效報告。如果對舉報的不當行爲被證明是正確的,他們將得到豐厚的回報,但如果被證明是錯誤的,則可能會失去質押部分權益。因此,釣魚人類似於賞金獵人,他們在完成一項工作時會獲得豐厚的報酬,否則就沒有穩定的報酬。

如何運行一個釣魚人節點

預計與驗證人節點的質押要求相比,運行釣魚人節點的要求會相對適中。在中繼鏈上註冊“釣魚”狀態將需要一定數量的代幣。如果釣魚人提交了不正確的無效報告,則協議可能會大幅 Slash 這些代幣。Slash 風險的存在是爲了防止釣魚人向網絡發送垃圾郵件,因爲重新建立平行鏈狀態對於中繼鏈來說是昂貴的處理過程。

在需求的硬件方面,功能適中的機器理論上就能夠運行一個或多個平行鏈的完整節點。最大的需求可能是存儲每個被釣魚的平行鏈的數據。但是,諸如 prunning 之類的改進意味着,維持一個平行鏈的完整節點所需的最終存儲大小將穩定在一個非常高的水平。對 RAM 和 CPU 的需求可能會隨着所釣魚的平行鏈的數量而擴展,那麼對於釣魚一條平行鏈並且之後會隨之增加釣魚數量,需要一個最低起步配置。每月 10 或 20 個 cloud instance 就足以開始使用。

注意:Kusama 或 Polkadot 網絡中現在尚無釣魚人!一旦有可能,本文內容將通過設置指南進行更新。

項目丨波卡如何在平行鏈之間進行有效的分片?

項目丨波卡如何在平行鏈之間進行有效的分片?

項目丨波卡如何在平行鏈之間進行有效的分片?

來源鏈接:mp.weixin.qq.com