權威證明(PoA)

於 2024年12月17日 (二) 02:10 由 Doge留言 | 貢獻 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

權威證明(Proof of Authority, PoA)是一種區塊鏈算法,通過基於身份作為權益的共識機制,實現了相對快速的交易。最著名的採用 PoA 的平台包括 VeChain(唯鏈)、Bitgert、Palm Network 和 Xodex。

權威證明算法(Proof of Authority, PoA),也稱為「聲譽系統」或PoA系統,是一種區塊鏈中使用的共識算法。它通過分布式共識機制,基於被選定為區塊驗證者的節點的身份聲譽,快速驗證交易。在 PoA 系統中,節點無需進行質押,但需要對其身份和可靠性進行驗證。

PoA 算法依賴於一組由 N 個可信節點 組成的驗證者或權威節點。每個驗證者都有唯一的標識符,並假定大多數節點是誠實的,即至少有 N/2 + 1 個節點按照規則運行[1]

這種共識算法與工作量證明(PoW)和權益證明(PoS)機制的主要區別在於,它利用每個驗證者自願公開的真實身份,作為信任的保障和透明度的象徵,使其他節點能夠信任該驗證者,從而讓其負責生成新區塊。通過將聲譽與真實身份綁定,驗證者被激勵維持交易流程,因為任何損害網絡可信度和透明度的行為都將直接影響到該驗證者的個人或機構聲譽,甚至可能導致其名譽在各個領域遭到破壞。

概述 編輯

在基於 PoA 的網絡中,交易和區塊由經過批准的帳戶(稱為驗證者)進行驗證。驗證者運行軟體,將交易打包到區塊中。這一過程是自動化的,無需驗證者時刻監控其計算機。然而,這需要驗證者維護計算機(即權威節點)的安全性,確保其不被入侵。

Proof of Authority 這個術語最初由以太坊聯合創始人兼前首席技術官 加文·伍德(Gavin Wood) 於2017年提出,作為以太坊生態系統的一部分。PoA 主要面向私有網絡,並被實現於 Aura 和 Clique 客戶端中。PoA 的顯著優勢在於,相較於傳統的拜占庭容錯(BFT)算法,PoA 顯著提升了網絡性能[2]

在 PoA 模型下,個人通過獲得資格成為驗證者,因此會有動力保留他們獲得的這一職位。由於驗證者的身份與聲譽綁定在一起,他們被激勵維護交易流程,以避免其身份與負面聲譽相關聯。

與權益證明(Proof of Stake, PoS)相比,PoA 被認為更穩健。PoS 中,儘管雙方可能持有相同數量的權益,但它並未考慮每一方的總持有量,這可能導致激勵機制不平衡。而 PoA 則通過限制每位驗證者不得連續批准多個區塊,降低了單個權威節點對網絡造成嚴重損害的風險。

PoA 適用於私人網絡和公共網絡,例如 POA Network 或 Eurus,這些網絡將信任分布在多個驗證者之間。

工作原理 編輯

首先,必須隨機選擇一組可信節點作為驗證者。為了納入並選擇這些節點,系統會通過一組事先授權的節點進行投票,這個過程使用PBFT(拜占庭容錯 Paxos)類的經典共識算法。這種機制有效防止惡意節點冒充可信驗證者,從而破壞網絡的正常運行。要完成這一選擇,必須對候選驗證者的身份進行驗證。這意味著任何希望參與網絡的人都需要驗證並公開其真實身份,同時願意將個人聲譽作為信任和透明度的保障,供其他節點審查。

由於 PoA 共識算法依賴於驗證者節點在網絡中的聲譽,因此這些驗證者必須妥善維護其身份和聲譽。在採用 PoA 算法的區塊鏈網絡中,驗證者節點通常需要承擔主要責任,尤其在網絡發生故障的情況下。因此,驗證者會盡力確保網絡的正常運行、透明性和可信度。

在共識機制方面,PoA 基於一種礦工輪換方案,這是一個被廣泛應用的策略,用於在驗證者或權威節點之間公平地分配創建區塊的責任。時間被劃分為多個階段,在每個階段中,都會指定一個權威節點作為礦工領導者。每個礦工領導者在其所處階段中,最多只能連續簽署一定數量的區塊

驗證者 編輯

要成為驗證者,需要滿足三個要求。這些要求在激勵結構中具有重要意義,能夠推動驗證者採取誠實的行為。

  1. 身份必須被正式驗證,以便通過可靠數據進行交叉核對。
  2. 獲得驗證者資格的難度較高,以確保驗證者的誠實性。
  3. 在建立驗證者的過程中,必須保持完全的一致性

雖然一些平台在這些要求上可能會有所不同,但它們都致力於提供激勵機制,促使驗證者持續參與網絡。另一個對驗證者至關重要的因素是聲譽,因為如果驗證者行為不當,將影響其聲譽,甚至可能被取消驗證者資格。

優缺點 編輯

優點 編輯

權威證明(PoA)共識算法的主要優勢在於降低成本並提高可擴展性。與工作量證明(PoW)共識算法相比,PoA 的共識機制計算成本大大降低,因為它不需要像比特幣那樣依賴挖礦機制。因此,其能耗顯著減少,被認為是一種更加環保的共識算法,符合環境友好理念。

此外,權威證明(Proof-of-Authority)僅需要少量的參與者或節點。這使得網絡能夠更頻繁地更新區塊鏈,同時縮短每個區塊之間的時間,幾乎實現零延遲處理大量交易。因此,PoA 算法是尋求高安全性和高可擴展性的私有區塊鏈的理想選擇[3]

缺點 編輯

PoA 共識算法的主要局限在於其模型放棄了去中心化。事實上,該協議的設計是為了實現集中式的分布化,因為決策權集中在少數特定節點上,而不像 PoW 那樣將權力分散到網絡中的所有節點。

另一個需要考慮的缺點是,PoA 驗證節點的身份必須公開。許多人認為這一點存在隱患,因為這會暴露參與區塊鏈的個人或企業身份,可能引發第三方的惡意操控。如果有人利用驗證者的弱點,迫使他們做出不誠信行為,這將對系統安全性構成威脅[3]

實現 編輯

PoA 的兩種主要實現是 Aura 和 Clique。兩者在工作原理上有所不同,儘管它們都以當前礦工領導者提出新區塊(稱為區塊提議)開始,但 Aura 需要進行額外的區塊接受(block acceptance)輪次,而 Clique 不需要此步驟。

Aura 編輯

Aura 是由 Parity 實現的權威證明(PoA)共識算法。其名稱源自Authority Round(最初稱為 AuRo)。目前,Aura 主要用於以太坊的 Kovan 測試網[4]

在 Aura 中,網絡被視為同步的,所有權威節點在統一的 UNIX 時間內同步操作。

步驟 編輯

  • 每個階段(step)代表一部分權威節點的輪換時間。
  • 每個權威節點可以在其對應的階段中簽署一個區塊。
  • 當前步驟的索引 s 按以下方式計算: s = t / step_duration 其中 step_duration 是一個常數,表示每個階段的持續時間。
  • 當前階段的領導者 l 根據以下公式確定: l = s mod N 其中 N 是權威節點總數。

工作流程 編輯

  1. 在每個階段,領導者 l 將交易隊列 Qb 中的交易打包到一個區塊 b 中,並將其廣播給其他權威節點(區塊提議輪次)。
  2. 接收到區塊後,每個權威節點會將區塊再次廣播(區塊接受輪次)。
  3. 如果所有權威節點接收到相同的區塊 b,則將其加入本地隊列 Qb。
  4. 如果接收到非當前領導者所提出的區塊,則直接拒絕。
  5. 如果沒有交易可用,領導者必須發送空區塊。

異常與投票 編輯

  • 如果權威節點未能在接受輪次中達成一致,系統會發起投票,決定當前領導者是否惡意。
  • 導致投票的原因包括:
    • 未提議任何區塊。
    • 提議的區塊數量超出預期。
    • 提議不同的區塊給不同的權威節點。
  • 投票通過智能合約進行,需獲得多數票通過後,惡意領導者會被移出權威節點集合。
  • 此外,該領導者所提出的所有區塊會被丟棄。

示例:假設有 5 個權威節點:A、B、C、D 和 E。

  • 步驟 1:A 簽署區塊
  • 步驟 2:B 簽署區塊
  • 步驟 3:C 簽署區塊
  • 步驟 4:D 簽署區塊
  • 步驟 5:E 簽署區塊
  • 循環重新開始。

如果 C 在 A 之後嘗試簽署區塊,該區塊將被拒絕,因為它未按嚴格的順序進行。此外,如果某個領導者未能在指定時間內提交區塊(例如 B 超時未簽署),下一個權威節點(如 C)可以替代該步驟提交區塊,確保網絡順暢運行。

Clique 編輯

Clique 是由 Geth 實現的權威證明(PoA)共識算法。目前,Clique 用於保護以太坊的測試網絡,包括 Goerli 和 Rinkeby[5]

與 Aura 基於 UNIX 時間不同,Clique 使用區塊編號和權威節點數量的組合公式計算當前步驟及對應的領導者。此外,Clique 允許非當前領導者在每個階段中提議區塊。

關鍵特點 編輯

  1. 為防止單個權威節點提交大量區塊干擾網絡,Clique 設置了一個規則: 每個權威節點只能在每 N/2 + 1 個區塊中提議一次區塊。
  2. 在任一時刻,最多允許 N - (N/2 + 1) 個權威節點提議區塊。
  3. 與 Aura 一樣,如果權威節點出現惡意行為,可以通過投票將其移出權威節點集合。

Clique 提供更高的靈活性,因為非當前領導者也能提議區塊,同時通過限制每個節點的提議次數,確保網絡的穩定性與安全性。

私有區塊鏈 編輯

權威證明(PoA)被認為在私有區塊鏈中更加高效。例如,在一個由可驗證的銀行組成的網絡中,每個銀行都可以作為自己的驗證者。為了確認區塊鏈的狀態,需要獲得大多數驗證者的共識,這將大幅提高交易驗證和共識機制的效率。

PoA vs PoW vs PoS[6] 編輯

協議 優勢 劣勢 安全性 應用場景
權威證明 (PoA) 提高交易驗證速度,適用於開發和維護去中心化應用的平台。 不被視為去中心化;驗證者的身份信息對所有人可見,且聲譽受損的威脅無法完全阻止個體參與有害活動。 在一定程度上可以防禦拒絕服務攻擊和51%攻擊。 Aura, Clique.
工作量證明 (PoW) 快速達成共識,能有效防止垃圾信息,並經過時間驗證。 消耗大量能源,挖礦過程浪費資源;對硬體的依賴可能導致挖礦中心化。 PoW易受51%攻擊、私自挖礦攻擊和日蝕攻擊的威脅。 比特幣、以太坊。
權益證明 (PoS) 相較其他協議,能顯著減少能源消耗,質押簡單,環保友好。 一個基本缺陷是網絡容易被大額持幣者主導。 儘管可防禦51%攻擊,但容易受到長程攻擊的威脅。 以太坊2.0, Peercoin。

安全性與攻擊 編輯

攻擊 編輯

PoA 共識機制在設計上比 PoW 共識更不容易受到攻擊。這是因為該系統不會被一個客戶通過掌控 51% 的計算能力而破壞。在 PoA 共識中,發起 51% 攻擊要求攻擊者控制系統中 51% 的節點。這通常與 PoW 共識的 51% 攻擊不同,後者要求攻擊者掌控 51% 的系統算力。在經過許可的區塊鏈網絡中,控制節點要比獲取計算能力困難得多。

在 PoW 共識網絡中,攻擊者可以通過增加算力(性能)來擴大受控網絡部分,從而提高其控制的比例。但在 PoA 共識中,這種方法毫無意義,因為區塊鏈網絡的決策不受節點的計算能力影響。要想操控超過 51% 的非合法授權的節點,要困難得多。這是因為所有節點事先都經過驗證,如果某個節點無法訪問,網絡可以在批准流程中將其禁止。攻擊者可能會向目標節點發送大量交易和區塊,試圖干擾其活動,使其無法訪問。

DoS 攻擊 編輯

PoA 機制可以有效抵禦這種攻擊:由於網絡節點經過驗證,出塊權通常只授予那些能夠抵禦 DoS 攻擊的節點。如果某個節點在特定時間內無法訪問,通常會被從授權節點列表中禁止。

參考連結 編輯