協商一致機制
共識機制(算法)是無信任實體之間達成共識的一種方式。 在區塊鏈技術中,它用於就區塊是否有效達成共識。 區塊鏈網絡的性能取決於所採用的共識機制的性能,它對區塊鏈應用的可用性有重大影響。
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 的節點基本上分幾個階段與網絡中的所有節點進行通信。 這一特性限制了節點的數量,因為通信量會隨著節點數量的增加而呈指數增長。