跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 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(核心小区运营商)管理,负责区块生成。 这些区块由网络中的所有节点验证。 请参阅 [此处](./learn.md#kaia-network-topology),了解有关该网络拓扑的更多信息。

Network topology

通过采用和改进伊斯坦布尔 BFT,Kaia 实现了快速终结。 由于验证和共识是针对每个区块进行的,因此不会出现分叉,一旦达成共识,就能立即保证区块的最终性。

此外,BFT 算法中通信量增加的问题也通过利用随机选择的 "委员会 "得到了解决。 CN 共同组成一个 "委员会",在每个区块生成时,使用 VRF(可验证随机函数)选出其中一部分作为 "委员会 "成员。

Concept of council and committee

由于共识信息只在委员会成员之间交换,因此即使 CN 总数增加,通信量也能限制在设计水平之下。

目前,Kaia Mainnet 可以提供每秒 4000 笔交易的高吞吐量,区块生成间隔为一秒。 目前有 50 多个共识节点可以参与 CNN(共识节点网络),随着 Kaia 继续积极优化算法,这一数字还将不断增加。

让这个页面变得更好