跳至主要內容
本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。 (Crowdin translation page, Contributing guide)

協商一致機制

共識機制(算法)是無信任實體之間達成共識的一種方式。 在區塊鏈技術中,它用於就區塊是否有效達成共識。 區塊鏈網絡的性能取決於所採用的共識機制的性能,它對區塊鏈應用的可用性有重大影響。

Kaia Mainnet 具有以下性能。

  • 每秒可處理 4,000 筆交易。
  • 即時交易終結。
  • 區塊生成時間為一秒。
  • 50 多個共識節點可參與共識進程。

在本文件中,我們將介紹 Kaia 如何實施高效共識流程。

背景介紹

比特幣 使用的是PoW(Proof-of-Work),而以太坊最近轉向了PoS(Proof-of-Stake),即通過節點的賭注來決定區塊生成節點。 通常,這些算法在確定塊的有效性時不涉及節點之間的通信。

因此,在這些系統中,可能會出現分叉,這意味著在同一高度上可以做出兩個或多個不同的區塊。 通常採用 "最長鏈獲勝 "規則來解決分叉條件。 這意味著這些分叉最終會合併成一條典型鏈,但也意味著區塊列表在屬於較短鏈的一段時間內可以被還原。 因此,在這些算法中,無法保證區塊和交易的最終性。 終極性只能在一段時間後以概率的方式實現,而這仍然無法得到百分之百的保證。

在使用區塊鏈平臺的面向客戶的服務中,這種缺乏終局性是一個非常棘手的問題。 因為它必須等到分叉解決,並且在轉移後堆疊了足夠多的區塊,才能相信交易是不可逆轉的。 這對用戶和服務提供商都產生了負面影響。

金融服務就是一個簡單的例子。 假設用戶向某人轉賬,而服務在 30 到 60 分鐘後才能驗證轉賬是否有效。 因為它必須等到分叉合併成一條鏈,並在轉移後堆疊幾個區塊,以確保交易不可逆轉。

PBFT(實用拜占庭容錯技術)

為了避免上述問題,我們需要其他能保證最終性的算法。 BFT 算法就是其中之一,由 Lamport、Shostak 和 Pease 於 1982 年首次發表。 1999 年,米格爾-卡斯特羅和芭芭拉-利斯科夫提出了 "實用拜占庭容錯"(PBFT),它提供高性能狀態機複製。

在上述 PoW 算法中,雖然每個節點都會接收並驗證區塊,但節點之間並沒有信息交換來達成共識。 但在 PBFT 中,每個節點都會與其他參與節點通信以達成共識,只要節點能夠達成共識,就能保證區塊的最終性。

節點之間的通信基本如下圖所示。 但也有一些變體,反映了每個系統的特點。

PBFT message flow

如上所述,參與 PBFT 的節點基本上分幾個階段與網絡中的所有節點進行通信。 這一特性限制了節點的數量,因為通信量會隨著節點數量的增加而呈指數增長。

Kaia 的共識機制

Kaia 的目標是成為一個企業就緒、以服務為中心的平臺。 因此,我們需要解決上面所寫的終結性問題,而且網絡應該能夠允許許多節點參與其中。 為了實現這一點,Kaia 使用了伊斯坦布爾 BFT 的優化版本,該版本實現了 PBFT,並針對區塊鏈網絡的特點進行了修改。

在 Kaia 中,有三種節點:CN(共識節點)、PN(代理節點)和 EN(端點節點)。 CN 由 CCO(核心小區運營商)管理,負責區塊生成。 這些區塊由網絡中的所有節點驗證。 Please refer to here to know more about this network topology.

Network topology

通過採用和改進伊斯坦布爾 BFT,Kaia 實現了快速終結。 由於驗證和共識是針對每個區塊進行的,因此不會出現分叉,一旦達成共識,就能立即保證區塊的最終性。

此外,BFT 算法中通信量增加的問題也通過利用隨機選擇的 "委員會 "得到了解決。 CN 共同組成一個 "委員會",在每個區塊生成時,使用 VRF(可驗證隨機函數)選出其中一部分作為 "委員會 "成員。

Concept of council and committee

由於共識信息只在委員會成員之間交換,因此即使 CN 總數增加,通信量也能限制在設計水平之下。

目前,Kaia Mainnet 可以提供每秒 4000 筆交易的高吞吐量,區塊生成間隔為一秒。 目前有 50 多個共識節點可以參與 CNN(共識節點網絡),隨著 Kaia 繼續積極優化算法,這一數字還將不斷增加。

讓這個頁面變得更好