科普|波卡(Polkadot)的共識是什麼?

2020-12-25 火星財經

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

小編:記得關注哦

來源:區塊鏈資訊

本文來自波卡百科(Polkadot Wiki)的【基礎知識】部分。

原文:https://wiki.polkadot.network/docs/en/learn-consensus

翻譯:PolkaWorld

為什麼我們需要共識

共識是對一種共同的狀態達成一致的方法。為了使區塊鏈的狀態繼續創建並向前推進,網絡中的所有節點都必須一致並達成共識。這是去中心化網絡中的節點能夠保持彼此同步的方式。如果一個去中心化的區塊鏈中節點沒有共識,就無法確保一個節點相信的真實狀態被其他節點所共享。共識的目的是在參與者都有自己「主觀觀點」的網絡中,提供關於狀態的「客觀觀點」。它是這些節點進行通信並達成一致的過程,並且能夠生產出新的塊。

什麼是 PoW 和 PoS?

現在工作量證明(PoW)和權益證明(PoS)已經被用於表示區塊鏈機制的一種簡寫,但這並不能說明全部情況。PoW 是一種對區塊生產者達成一致的方法,也是完全的中本聰共識(Nakamoto Consensus)的一部分,該共識還包括鏈選擇算法(比特幣中的最長鏈機制)。類似地,PoS是一組用於選擇驗證人節點的規則,它並不是特指一個鏈的選擇規則,或者一個鏈如何達到最終性(finality)。通常在節點之間,PoS 算法與拜佔庭協議算法是互相結合的。例如,Tendermint 是一個實用的拜佔庭容錯算法,它使用 PoS 作為其驗證人節點的選擇方法。

為什麼不選擇 PoW?

儘管在達成去中心化共識方面簡單而有效,但使用中本聰共識的工作量證明消耗了海量資源,而且還沒有經濟性或可證明的最終性,而且缺乏有效的措施來抵制壟斷聯盟。

概率最終性 vs 可證明最終性

運行 PoW 的純中本聰共識區塊鏈只能實現概率最終性的概念,然後去達成最終的共識。概率最終性是指在網絡和參與者的某些假設下,如果我們看到創建在給定區塊上的幾個區塊,就可以估計該區塊終結的概率。最終的共識意味著,在未來的某個時刻,所有節點都將同意一組數據的真實性。這一最終共識可能需要很長時間,也無法提前確定需要多長時間。然而,諸如 GRANDPA 或 Ethereum 的 Casper FFG 這樣的最終性工具的設計是為了對區塊的最終性提供更有力和更快的保證,特別是,在拜佔庭協議的某些過程發生後,它們永遠無法恢復。不可逆共識的概念就被稱為可證明的最終性

在 GRANDPA 文檔中,它被這樣表述:

如果協議中的 oracle A 在一段未指明的時間後向所有參與者返回相同的值,那麼我們稱它是最終一致的。

什麼是 GRANDPA/BABE 機制?

混合共識

當我們談到 Polkadot 的共識協議時,大家經常看到兩個縮略詞,GRANDPABABE。我們同時提到了這兩個詞是因為 Polkadot 使用的是混合共識。混合共識可以將最終性工具從區塊生產機制中分離出來。

這是一種在 Polkadot 中獲得概率最終性(總是可以產生新區塊的能力)和可證明最終性(在沒有逆轉機會的規範鏈上具有普遍一致性)好處的方法。它還避免了每種機制的缺點:概率最終性中不知不覺地遵循錯誤分叉的可能,以及可證明最終性中「暫停」(無法產生新的塊)的問題。通過結合這兩種機制,Polkadot 可以快速地生成區塊,而較慢的最終性機制則可以在單獨的進程中運行以完成區塊,而不必承擔交易處理較慢或暫停的風險。

混合共識在過去也曾被提起過。值得注意的是,在以太坊改進建議 EIP 1011 中,曾提議將混合共識作為以太坊向的 PoS 過渡的一步(現已失效),該建議指定了 Casper FFG。

BABE

BABE(Blind Assignment for Blockchain Extension)是在驗證節點之間運行並確定新塊生產者的區塊生成機制。BABE 作為一種算法可以與 Ouroboros Praos 相比較,在鏈選擇規則和 slot(驗證人插槽)時間調整方面有一些關鍵的區別。BABE 根據 stake 和使用 Polkadot 隨機循環機制將區塊生產的 slot 分配給驗證人。

Polkadot 中的驗證人將參與每個 slot 的抽籤,通過這個抽籤告訴驗證人是否是該 slot 的區塊生成候選人。Slot 是不連續的時間單位,通常為 6 秒。由於這種隨機機制,多個驗證人可能是同一個 slot 的候選者。其他時候,一個 slot 可能是空的,從而導致區塊時間不一致。

一個 slot 有多個驗證人

當在一個給定 slot 中有多個驗證人是區塊生成候選者時,所有驗證人都要生成一個區塊並將其廣播到網絡中。此時這是一場比賽。區塊最先到達大部分網絡的驗證人會獲勝。根據網絡拓撲和延遲,這兩個鏈將繼續生產區塊,直到最終確定啟動並切斷分叉。請參閱下面的「分叉選擇」了解其工作原理。

Slot 中沒有驗證人

當隨機抽籤滾到足夠低的位置,沒有驗證人獲得區塊生產的資格時,一個 slot 可能沒有區塊。我們通過在後臺運行二級循環式驗證人選擇算法來避免這種情況。通過該算法選擇生成塊的驗證人總是可以生成區塊,但如果同一 slot 也從 VRF 選擇的驗證人生成主區塊,則忽略這些副區塊。因此,一個 slot 可以有一個主區塊或一個副區塊,並且不會跳過任何 slot 。

VRF:https://wiki.polkadot.network/docs/en/learn-randomness

有關 BABE 的更多細節,請參閱研究草案文檔。

https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html

GRANDPA: 最終性工具GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement) 是為 Polkadot 中繼鏈實現的最終性小工具。

它在一個部分同步的網絡模型中工作,只要 2/3 的節點是誠實的,並且能夠在異步設置中處理 1/5 的拜佔庭節點。

一個顯著的區別是,GRANDPA 在鏈上而不是區塊上達成協議,大大加快了最終確定過程,即使在長期的網絡分區或其他網絡故障之後也是如此。

換句話說,只要超過 2/3 的驗證人證明一個包含某個塊的鏈,所有指向該塊的塊都將立即完成。

協議

有關協議的完整說明,請參閱論文的標題 3 部分。

https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf

實施

Rust 是 Substrate 框架的一部分。

https://github.com/paritytech/substrate/blob/master/frame/grandpa/src/lib.rs

有關更多詳細信息,請參閱 W3F 研究頁上的 GRANDPA。

https://research.web3.foundation/en/latest/polkadot/GRANDPA.html

分叉選擇

帶著 BABE 和 GRANDPA 混合機制,波卡的分叉選擇變得清晰起來。BABE 一定要建立在 GRANDPA 最終確定的鏈上。當在最終確定之後有分叉時,BABE 通過構建具有最主要區塊的鏈來提供概率最終性。

在上面的圖像中,黑色塊是已終結的。一個是主區塊,兩個是副區塊。即使最上面的鏈是最新終結塊上最長的鏈,但它不合格,因為它在評估時獲得首選的次數比下面那條少。

對比

中本聰共識

中本聰共識由最長鏈規則組成,使用工作量證明作為其防止女巫攻擊和領導人選舉的機制。

中本聰共識只給了我們概率最終性。概率最終性表明,過去的某個區塊的安全程度,僅取決於它擁有的確認數量,或在該區塊上構建的區塊數量。隨著工作量證明鏈中構建在某特定區塊上的區塊越來越多,這條鏈也會花費更多計算資源。然而,包含了該區塊的鏈不一定總是被認可的鏈,因為某位具有無限資源的參與者可能構建競爭鏈,並花費足夠的計算資源來創建不包含特定塊的鏈。在這種情況下,比特幣和其他 PoW 鏈使用的最長鏈規則將轉移到這條新的鏈,讓新鏈成為主鏈。

PBFT / Tendermint 共識

請參閱與 Cosmos 對比文章中的相關內容。

https://wiki.polkadot.network/docs/en/learn-comparisons-cosmos#consensus

Casper FFG

GRANDPA 和 Casper FFG(友好型最終性工具 Friendly Finality Gadget)的兩個主要區別是:

在 GRANDPA 中,不同的投票者可以同時為不同高度的塊投票GRANDPA 只依賴最終的塊來影響底層塊生產機制的分叉選擇規則Casper CBC

Coming soon!

資源

GRANDPA 論文:GRANDP 最終性工具的學術描述。包含算法的形式化證明。

https://github.com/w3f/consensus/blob/master/pdf/grandpa.pdf

Rust 實現:一個參考文檔和附帶的 Substrate 模塊。

https://github.com/paritytech/finality-grandpa

相關焦點

  • 波卡 DOT 的用途是什麼?|Polkadot Wiki
    DOT 、KSM、測試網代幣有什麼區別?如果你想了解這些問題,那麼就往下看吧。這篇文章屬於 Polkadot Wiki(波卡百科)的 「DOT」 部分,詳細地介紹了 DOT 的情況。Polkadot Wiki 是由波卡官方撰寫的波卡介紹文檔,PolkaWorld 正在逐步翻譯和連載該文檔。什麼是 DOT?DOT 是 Polkadot 網絡的本地代幣,就像 BTC 是比特幣的本地代幣,或 ether 是以太坊區塊鏈的本地代幣一樣。
  • 波卡常見術語解讀,原來這些詞是這個意思啊!|Polkadot Wiki
    「波卡(Polkadot)常見術語表,在波卡社區走南闖北之必備良品,建議收藏以便隨時查閱。本文出自波卡官方文檔 Polkadot Wiki,由 PolkaWorld 社區翻譯。這個只是上篇,還有下篇哦敬請期待。
  • 波卡平行鏈插槽拍賣號角已吹響, 你對波卡生態了解多少呢?
    Kusama平行鏈插槽拍賣提上日程,是時候要對波卡生態做一個全面的了解了。這篇文章我們從代幣流通、網絡角色、共識機制、獎罰機制、平行鏈插槽拍賣等方面來介紹波卡,希望幫助你對波卡建立一個基本的認識。 01 波卡是什麼?
  • 波卡啟動 NPoS,平行鏈插槽、XCMP、Cumulus 等技術方案值得關注
    小編:記得關注哦來源:HashQuark社區原文標題:波卡啟動 NPoS,平行鏈插槽、XCMP、Cumulus 等技術方案值得關注波卡網絡可擴展性限制了平行鏈插槽數量,預計在 Polkadot 網絡運行的一兩年內,平行鏈插槽將從初期的
  • 波卡入門系列丨Polkadot誕生的背景是什麼?
    畢竟,新城建設,首先在設計上就沒有什麼限制,也可以用最新的設計思路,而舊城改造不得不考慮要照顧已有的一些基礎設施,比如道路管網,排水排汙等等,處處是掣肘。所以,波卡的跨鏈在設計層面就跳出了以往單個區塊鏈的思維,從一個生態的點擴大到能連接許多生態的網絡。這種更加徹底的在底層設計上對區塊鏈的創新,才符合下一代區塊鏈技術的標誌。
  • 一文了解Polkadot(波卡)是什麼?
    Polkadot解決了什麼問題?而Polkadot目前解決的就是擴展性和交互問題,對擴展性的解決來源於它良好的物理架構設計和底層語言的融合。波卡為區塊鏈提供了什麼?區塊鏈技術是Web3網際網路的最核心技術,而Polkadot旨在成為下一代區塊鏈協議,負責將多個專用區塊鏈連接到一個統一網絡中。
  • 波卡代幣(DOT)終於要發貨了,五分鐘學會如何認領
    認領網址是:https://claims.polkadot.network/注意!請認準上面的網址,前幾天竟然有騙子搞出了假的 DOT 認領網站、郵箱等,在騙子網站輸入你的信息可能會危害到你的波卡地址和私鑰!一共四個步驟:檢查以太坊地址 - 生成波卡地址 - 認領 Dot - 確認認領情況。
  • 波卡周報 | 波卡正在開發 Lottery 模塊,激勵大家參與波卡網絡的治理
    波卡的第 12 次全民公投,將 DOT 轉移到另一個地址,投票率為 0.18%,只有 0.14% 的選民投了贊成票。我們在維基中有一個索引供你學習:https://wiki.polkadot.network/docs/en/build-tools-index 波卡理事會成員 PolkaWorld 這周發布了第一份理事會工作報告。目前波卡國庫中發起了 25 個支出提案,已通過 18 個,一共撥款 104,054 個 DOT。
  • 波卡入門系列丨關於平行鏈插槽拍賣, 你想了解的都在這裡
    一、什麼是平行鏈插槽?要想加入波卡網絡,安全的和其他平行鏈進行業務交互,需要通過插槽來實現。插槽只租不賣,通過鎖定一定時間和一定數量的DOT來獲得使用權。平插槽數量有限,波卡官方預計同時運行的插槽的數目上限是100個左右,即同時接入中繼鏈的平行鏈的數目上限為100個左右。
  • 圓桌論壇:向波卡宇宙進發!Polkadot生態大集合
    Bree:波卡有什麼與眾不同的地方呢?第一點,波卡的創始人在他新一期的視頻裡面已經提到,說波卡跨越了以智能為中心的時代,成為了平臺當中的平臺,這依靠的就是波卡提供給大家非常方便的Substrate開發框架,Substrate可以讓開發者從區塊鏈底層技術當中解放出來,15分鐘就可以發一條鏈。
  • 波卡插槽拍賣:下一波可埋伏的利好!
    問題來了,下一個可以埋伏的利好是什麼?顯然是即將競拍插槽的波卡平行鏈。關于波卡和插槽拍賣,鑑叔之前寫文章詳細講過,搞不懂也沒關係,後面我會用一張圖幫你弄清楚波卡生態。目前,波卡平行鏈測試網Rococo V1已經發布,據說1月11日就會開放平行鏈插槽註冊。哪些項目會參與波卡平行鏈拍賣?誰競拍成功概率大?普通投資者該怎麼參與?
  • AOFEX解讀:平行鏈註冊開啟,波卡生態加速
    針對這個亟待解決的問題,行業很多項目都給出了自己的解決方案;其中最受期待的莫過於以太坊2.0與波卡平行鏈。波卡最近也已經到了發展的關鍵時刻,1 月 11 日波卡測試網 Rococo V1 開放平行鏈測試資格註冊,波卡及 Kusama 最重要的平行鏈插槽拍賣將逐漸拉開帷幕。波卡是Gavin Wood在2016年10月受分片機制啟發發起的,並用四年時間開發完成這個項目。
  • 幣贏共識52AMA第十期回顧——解開波卡DApp平臺Plasm的神秘代碼!
    2020年11月26日16:00,幣贏開啟主題為《Polkadot的進化之路——解開波卡DApp平臺Plasm的神秘代碼!》的AMA活動,本次」共識52「活動由幣贏CMO Lorreta洛一主持, Plasm CWO Sota創太參加.《共識52》是由幣贏Coinw團隊傾力打造的區塊鏈垂直領域高端直播對話欄目。
  • 波卡運行原理系列(四)BABE共識簡述
    BABE是目前Kusama、Edgeware等網絡使用的共識之一,用於確定出塊順序。Slot 方式如下情況:1 Slot 沒有人的VRF滿足要求2 Slot 多個驗證者滿足要求則按照Aura順序指定驗證人出塊,被稱為次級Aura區塊,優先級低每個Epoch,將根據最新的Staking情況,重新選擇驗證者集合重新選擇驗證者集合的隨機數來自上一個Slot的隨機值混合BABE通過這個過程確定了出塊驗證者的順序確定出塊(敲定)則需要通過GRANDPA完成,具體可以看波卡運行原理系列
  • 庫幣宣布支持波卡Polkadot (DOT)主網資產映射
    來源:巴比特據庫幣KuCoin交易所消息,庫幣現已上線支持波卡DOT主網資產映射服務,凡是持有DOT(即Polkadot的主網幣)資產的用戶可在庫幣完成映射操作。映射完畢後即可在儲蓄帳戶顯示DOT資產。
  • 為什麼我看好波卡上合成資產這個賽道?
    我們邀請到波卡生態上第一個合成資產項目Coinversation愛好者社區發起人Ericsson,來社群與大家一起聊了聊波卡上的合成資產賽道,密碼極客特意對這次演講進行了整理。以下是分享內容:大家好,我是Ericsson。感謝密碼極客社區的邀請,能夠有幸作為Coinversation愛好者社區發起人來跟大家一起聊一聊波卡上合成資產這個話題。
  • 波卡入門系列丨波卡和Web3基金會是什麼關係, Parity又是什麼?
    之前我們在《一文了解Polkadot(波卡)是什麼?》講述了Web3.0的願景是創建一個更透明、更高效、更安全、削弱壟斷的網絡環境,這也是人們對個人信息掌權訴求的發展結果。區塊鏈作為Web3.0最核心的技術,飛速發展也意味著我們距離實現Web3.0願景越來越近。
  • 波卡平行鏈插槽拍賣號角已吹響,你對波卡生態了解多少呢?
    Kusama平行鏈插槽拍賣提上日程,是時候要對波卡生態做一個全面的了解了。這篇文章我們從代幣流通、網絡角色、共識機制、獎罰機制、平行鏈插槽拍賣等方面來介紹波卡,希望幫助你對波卡建立一個基本的認識。1、波卡是什麼?