波卡平行鏈開發套件(PDK):輕鬆建立相容波卡的平行鏈

買賣虛擬貨幣
今天波卡開發者 Bastian 發推介紹了波卡 PDK 之一  Cumulus 的最新開發進展:已經成功從平行鏈向中繼鏈傳送訊息,來操作中繼鏈轉賬了!

PDK 是波卡發揮共享安全和跨鏈的關鍵之一,今天這篇文章我們就來一起了解波卡平行鏈開發套件 PDK。

平行鏈開發套件(PDK)是一組工具,使開發人員可以輕鬆建立與 Polkadot 相容的平行鏈[1]。

為什麼要建立平行鏈?

在深入探討 PDK 是什麼以及如何使用它之前,讓我們回顧一下為什麼開發人員想要建立一個平行鏈並將其連線到 Polkadot。

平行鏈具有兩個主要的附加值,這使其成為開發人員建立獨立鏈的理想選擇:

共享安全性 - 無需再重新佈置鏈自己的驗證人集。
跨鏈通訊 - 允許平行鏈透過 XCMP 協議互操作。

平行鏈可以透過為平行鏈插槽繫結 DOT [2]來租用波卡網路的安全性[3]。這意味著圍繞你的專案建立社羣,並說服驗證者參與網路安全的社會成本降低了。Polkadot 預計將具有強大的安全性,希望從這種安全性中受益的去中心化應用程式專案將希望成為平行鏈。有關透過蠟燭拍賣租賃平行鏈插槽機制的更多資訊,請參見此處[4]。

任何想要與連線到 Polkadot 的其他平行鏈實現無信任訊息傳遞的去中心化應用程式或鏈,都會希望成為平行鏈。主權鏈之間的互操作性涉及一定的約束條件和複雜的協議,以支援廣泛的鏈。使用 Polkadot,如果你將應用構建為平行鏈,則可以立即使用此功能。XCMP 協議[5]將允許任何平行鏈透過在它們之間傳遞訊息來進行互操作。此外,隨著與其他鏈(例如與比特幣或以太坊的鏈)之間的橋樑的啟動,平行鏈也將能夠與這些鏈一起執行。

什麼是 PDK?

之前已經提到過,PDK 是讓開發人員能夠輕鬆建立平行鏈的一組工具。實際上,這意味著 PDK 將包含幾個關鍵元件:

狀態轉換功能 - 應用程式從一種狀態轉移到另一種狀態的一種方式。
收集人節點 - Polkadot 網路中的一種點對點節點,對平行鏈負有一定責任。

狀態轉換函式(STF)可以是應用程式從一種狀態轉換到另一種狀態的任何抽象方式。Polkadot 對該 STF 的唯一限制是它必須易於驗證 —— 通常透過我們稱為見證(witness)或證據(proof)的方式進行驗證。之所以如此,是因為中繼鏈驗證人將需要檢查從收集人節點接收到的每個狀態是否正確,而無需實際執行整個計算。這些證明的一些示例包括有效性證明區塊或 zk-SNARK,它們需要的計算資源比其生成的要少。STF 的證明生成中的驗證不對稱性,是使 Polkadot 擴充套件規模並同時保持高安全性保證的不可或缺的因素之一。

收集人節點是 Polkadot 協議中網路維護者的型別之一。它們負責保持平行鏈狀態的可用性以及從狀態轉換函式的迭代返回的新狀態。它們必須保持線上狀態,以便跟蹤狀態以及 XCMP 訊息將在其自身與其他平行鏈之間路由。收集人節點負責將簡潔的證明傳遞給中繼鏈驗證人,並跟蹤中繼鏈中的最新塊。本質上,收集人節點還充當 Polkadot 中繼鏈的輕客戶端。有關整理者節點的更多資訊,請參見此處[6]。

有哪些 PDK 型別?

目前,唯一的兩個 PDK 是 Parity Substrate[7] 和 Cumulus[8]。Substrate 是一個區塊鏈框架,提供了區塊鏈的基本構建塊(諸如網路層、共識、Wasm 直譯器之類的東西),並提供了構建 runtime 的直觀方法。做 Substrate 的目的是簡化建立新鏈的過程,但它不直接提供 Polkadot 相容性支援。因此,Cumulus 是一個新增的庫,其中將包含所有 Polkadot 相容性粘合程式碼。Cumulus 仍在開發中,但其想法是隻用匯入 crate 並新增一行程式碼,就可以很簡單地採用 Substrate 鏈並新增平行鏈程式碼。

Substrate 和 Cumulus 從區塊鏈格式的抽象中提供了 PDK,但是平行鏈甚至不必是區塊鏈。例如,一條平行鏈只需要滿足上面列出的兩個約束:狀態轉換函式和收集人節點。其他一切取決於  PDK 的實現者。

對於 PDK 來說,一個有趣的想法是擁有一個 roll_up[9] 套件,該套件允許開發人員建立基於 Snark 的平行鏈。如果檢視 roll_up 文章,我們會發現該系統使用兩個角色:更新狀態的使用者和將狀態更新聚合為單個鏈上更新的操作者。我們很容易想到可以如何將其翻譯為平行鏈條款。類似 roll_up 的平行鏈的狀態轉換函式將根據使用者輸入更新狀態(實際上,很可能是容易驗證的 merkle 樹)。操作員將充當收集人節點,它將彙總狀態並建立 zk-SNARK 證明,並將其交給中繼鏈驗證人進行驗證。

建立 PDK

如果你或你的團隊有興趣開發 PDK,請隨時在 W3F 協作 repo[10] 上開啟一個 issue 來徵詢意見。 這類工作可能有補助金。

參考連結

[1]平行鏈: https://wiki.polkadot.network/docs/en/learn-parachains
[2]DOT : https://wiki.polkadot.network/docs/en/learn-DOT
[3]租用波卡網路的安全性: https://wiki.polkadot.network/docs/en/learn-security
[4]此處: https://wiki.polkadot.network/docs/en/learn-auction
[5]XCMP 協議: https://wiki.polkadot.network/docs/en/learn-crosschain
[6]此處: https://wiki.polkadot.network/docs/en/maintain-collator
[7]Substrate: https://github.com/paritytech/substrate
[8]Cumulus: https://github.com/paritytech/cumulus
[9]roll_up: https://ethresear.ch/t/roll-up-roll-back-snark-side-chain-17000-tps/3675
[10]W3F collaboration repository: https://github.com/w3f/Web3-collaboration

免責聲明:

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

推荐阅读

;