了解Tendermint共识及其工作原理

中级Jan 10, 2024
Tendermint是一种新的区块链协议,旨在通过使用部分同步网络模型和确定性共识算法来解决拜占庭容错问题。它的设计具间距可扩展性和安全性,可用于创建公共和私有区块链。
了解Tendermint共识及其工作原理

即使从比特币等“最简单”的协议来看,区块链也将是一个令人困惑的领域。所以当我们转向更新的协议时,事情就会变得更加复杂。例如以太坊,甚至是更新的产品,它们吸收了第一代和第二代网络所教给我们的知识,并希望在此基础上创建新想法和概念作为基础。

Tendermint 就是这样一个项目,它希望彻底改变我们开发和使用区块链技术的方式。

Tendermint 是一种新协议,可帮助在对抗条件下对分布式网络中的事件进行排序。更通用拜占庭容错 (BFT)共识算法或原子广播问题,近年来引起了广泛的关注,这是由于比特币和以太坊等基于区块链的数字货币取得广泛成功后造成的。

这两种货币成功地解决了这样一个问题:在没有中央机构的情况下,在公共环境中管理此类网络,创建了我们现在所说的去中心化公共区块链。Tendermint 将该主题的经典学术工作现代化,并通过依赖节点之间的点对点八卦协议简化了 BFT 算法的设计。

通过本文,你将学到👉

深入了解Tendermint


Tendermint 存在于由Cosmos的堆栈中,Cosmos是一个充当调解者并自称为“区块链互联网”的区块链平台;几天前,该平台推出了区块链,真正推出了 Cosmos/Tendermint 生态系统。整个生态系统的运作方式与以太坊类似,但它Tendermint更加模块化、灵活更够且更易于开发。

Cosmos SDK充当生态系统的应用层(类似于以太坊的 EVM),同时Tendermint 既代表共识层 (BFT 容错权益证明共识算法)由作为网络层(Tendermint Core)。

在 Tendermint Core 堆栈下结合的共识算法 + p2p 网络协议通过生态系统的另一个单独元素应用程序区块链接口(ABCI)连接到 Cosmos SDK。

Cosmos SDK是ABCI的基本实现,代表生态系统的模块化部分;它是一个薄应用层,开发人员可以使用它并通过自定义功能进行增强。这使得现有的区块链可以构建基于 Tendermint 的应用程序,这些应用程序可以连接到生态系统并在彼此之间交换消息和价值。

这就是 Tendermint 和 Cosmos 获得“区块链互联网”名称的原因;整个系统希望成为一个枢纽,支持在不同区块链之间实现互操作性 。

该项目背后的一家营利性公司(也称为 Tendermint)位于加州,它将上述三个主要元素分开,然后将网络/共识层连接到 Tendermint 堆栈下。

这样做是为了使技术的组件更易于使用和修复,而当您想要更改某些内容时,无需为整个生态系统进行开发。主要开发人员 Jae Kwon 和 Ethan Buchman 想要创建一些易于理解、实施和开发的东西,Tendermint 就是他们努力的最终结果。

⚡️ 在 Tendermint 之前,构建区块链需要从头开始构建所有三个层(网络、共识、应用层)。以太坊通过提供虚拟机区块链简化了这一过程,任何人都可以在该虚拟机区块链上以智能合约的形式部署自定义逻辑。但仍然存在一个问题:区块链本身的发展问题。 Tendermint 大大简化了流程,因为开发人员只需要考虑应用层。

网络和共识层已经、通过 Tendermint Core 引擎提供;您所需要做的就是通过选择的编程语言调整 ABCI,开发您独特的应用程序并开始使用 Tendermint 的功能。

Tendermint 团队通过采用以太坊的代码库、剥离 PoW 并将最终结果插入到他们的 Tendermint Core 之上来做实现了一点。Ethermint因此得闯将,它类似以太坊的协议,具有权益证明功能。所有现有的以太坊工具(Truffle、Metamask等 ) 都与 Ethermint 兼容,您能将智能合约移植到这里,而无需任何额外的工作。

整个方程式中我们仍然没有提及但对于区块链互操作性非常重要的一个重要元素是跨链通信协议 (IBC)。 IBC 允许异构链在彼此之间转移价值和数据,最终在具有不同应用程序和验证者集的区块链之间实现互操作性。

为了避免未来数百或数千个区块链可能出现的可扩展性问题,Cosmos 提出了一种包含两类区块链的模块化架构:枢纽和区域。

区域是常规的异构区块链,而枢纽是专门设计用于将区域连接在一起的区块链。当区域与枢纽创建 IBC 连接时,它可以自动访问与其连接的每个其他区域(即发送和接收)。因此,每个区域只需要与一组有限的枢纽建立有限数量的连接。

枢纽还可以防止区域之间的双花。这意味着当区域从枢纽接收到代币时,它只需要信任该代币的原始区域和枢纽即可。第一个枢纽(Cosmos Hub)已在几天前推出。有些链不会完全兼容 Tendermint;开发商设想了所谓的挂钩区域来处理这一问题。

Tendermint 的密码学本身并不那么高级,ECDSA 签名是生态系统中最“奇特”的技术。在最近发布后开展的直播中提到了 BLS 签名聚合、零知识证明和 Ristretto 账户,但这些似乎都还没有出现。

该技术可用于创建公共链和私有链,前者通过 PoS 运行,后者通过许可节点运行;两个系统都将是具有 BFT 能力的。Tendermint Core 上的区块可以有一秒的出块时间,并且立即被视为是终局性;否则,可以安全地假设网络正在遭受 33%的攻击(指超过三分之一的验证者是恶意的攻击)。

恶意节点和拜占庭容错


区块链需要具有拜占庭容错能力,即能够容忍向网络传达虚假状态和消息并危及共识的潜在恶意节点。关于拜占庭容错系统的科普知识很少,因为这个话题在学术界并不那么普遍。

很少有研究集中在最多 7 个节点的小样本规模网络上;Tendermint 开发人员想要能够在更高级别上可扩展的东西。即使比特币引入了能够支持数千个独立节点的系统,该系统也具有(并且仍然具有)单个管理域,这极大地限制了其可扩展性。

Kwon 和他的合作伙伴设想了一种 BFT 协议,该协议可以在非许可的环境中扩展到数百个节点,并以权益证明 (PoS) 作为底层安全机制。他们提出了基于 BFT 的系统,该系统具有我们已命名的两个关键元素:用于达成共识和“八卦”的 Tendermint Core 和用作应用层的 Cosmos SDK。

他们的 BFT 权益证明算法通过使用部分同步网络模型克服了拜占庭将军问题,这意味着对区块进行投票的验证者不需要同时采取行动。该系统中的区块不是按时间表投票的,也没有确定的大小。

⚡️ 在被认为是“完全同步”的比特币中,我们有一个设定的10分钟时间范围,节点必须在该时间范围内查找、收集、验证交易并将其添加到区块中。对于以太坊,这个时间范围仅为15秒。在同步被打破之前,这一切都很好。一些节点可能会离线并遭受延迟问题,在这种情况下,链可能会停止运行或分叉。

Tendermint 的目标是实现一种更加中心化的模型,该模型因其节点以异步方式运行而拒绝这些时间限制。

该协议更加异步:不是每轮都需要预定的时间,而是每轮的每一步都是在超过 2/3 的节点达成共识后才进行的。这种同步性的缺乏是部分的,该项目将其称为“弱异步”。验证者是众所周知的,可以相互沟通以协调他们的努力并确保始终达成网络共识。所有这些都意味着他们的网络实际上永远不会分叉。

Tendermint 定期重新分配验证者提出区块的权利,以稍微缓解此过程中心化的潜在问题。提议区块后,验证者在多轮确定性过程中进行投票。

为了扩展这一点,我们需要认识到,在协议的世界中,我们有非确定性和确定性协议。非确定性协议是我们在完全异步系统中看到的协议。纯异步情况的共识可能取决于随机预言,并且通常会产生较高的消息复杂性开销,因为它们离不开所有通信的可靠广播。

Tendermint 通过走确定性路线来避免这种高额开销;实际上没有什么是随机的,而是通过定义的数学函数完成的,该函数使我们能够预测协议保证做出决策。

在 Tendermint 中,验证者在确定性加权循环格式的帮助下进行轮换。验证者拥有的权益越多,他们被选为领导者的次数就越多。目前,该协议的验证者上限为一百个,但是,如果需要,团队可能会考虑添加更多验证者。这保证了系统在异步环境中的安全性以及在弱同步环境中的活跃性。总体而言,共识机制牺牲了一定程度的活跃性来换取共识安全性和即时终局性。

结语


Tendermint 是一个值得关注的概念,它可能在纸面上看起来和听起来比现实中更复杂。总体来看,它就是具有互操作性的EOS,并与以太坊及其大量克隆项目有很多相似之处。Tendermint 的主要目标是解决区块链互操作性问题,但它在该市场中遭到了强烈反对。Ark、ICONPolkadotAION等类似的项目都有着相同的目标,所以谁会脱颖而出?这还有待观察。

声明:

  1. 本文转载自[captainaltcoin],著作权归属原作者[Dobrica Blagojevic],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

了解Tendermint共识及其工作原理

中级Jan 10, 2024
Tendermint是一种新的区块链协议,旨在通过使用部分同步网络模型和确定性共识算法来解决拜占庭容错问题。它的设计具间距可扩展性和安全性,可用于创建公共和私有区块链。
了解Tendermint共识及其工作原理

即使从比特币等“最简单”的协议来看,区块链也将是一个令人困惑的领域。所以当我们转向更新的协议时,事情就会变得更加复杂。例如以太坊,甚至是更新的产品,它们吸收了第一代和第二代网络所教给我们的知识,并希望在此基础上创建新想法和概念作为基础。

Tendermint 就是这样一个项目,它希望彻底改变我们开发和使用区块链技术的方式。

Tendermint 是一种新协议,可帮助在对抗条件下对分布式网络中的事件进行排序。更通用拜占庭容错 (BFT)共识算法或原子广播问题,近年来引起了广泛的关注,这是由于比特币和以太坊等基于区块链的数字货币取得广泛成功后造成的。

这两种货币成功地解决了这样一个问题:在没有中央机构的情况下,在公共环境中管理此类网络,创建了我们现在所说的去中心化公共区块链。Tendermint 将该主题的经典学术工作现代化,并通过依赖节点之间的点对点八卦协议简化了 BFT 算法的设计。

通过本文,你将学到👉

深入了解Tendermint


Tendermint 存在于由Cosmos的堆栈中,Cosmos是一个充当调解者并自称为“区块链互联网”的区块链平台;几天前,该平台推出了区块链,真正推出了 Cosmos/Tendermint 生态系统。整个生态系统的运作方式与以太坊类似,但它Tendermint更加模块化、灵活更够且更易于开发。

Cosmos SDK充当生态系统的应用层(类似于以太坊的 EVM),同时Tendermint 既代表共识层 (BFT 容错权益证明共识算法)由作为网络层(Tendermint Core)。

在 Tendermint Core 堆栈下结合的共识算法 + p2p 网络协议通过生态系统的另一个单独元素应用程序区块链接口(ABCI)连接到 Cosmos SDK。

Cosmos SDK是ABCI的基本实现,代表生态系统的模块化部分;它是一个薄应用层,开发人员可以使用它并通过自定义功能进行增强。这使得现有的区块链可以构建基于 Tendermint 的应用程序,这些应用程序可以连接到生态系统并在彼此之间交换消息和价值。

这就是 Tendermint 和 Cosmos 获得“区块链互联网”名称的原因;整个系统希望成为一个枢纽,支持在不同区块链之间实现互操作性 。

该项目背后的一家营利性公司(也称为 Tendermint)位于加州,它将上述三个主要元素分开,然后将网络/共识层连接到 Tendermint 堆栈下。

这样做是为了使技术的组件更易于使用和修复,而当您想要更改某些内容时,无需为整个生态系统进行开发。主要开发人员 Jae Kwon 和 Ethan Buchman 想要创建一些易于理解、实施和开发的东西,Tendermint 就是他们努力的最终结果。

⚡️ 在 Tendermint 之前,构建区块链需要从头开始构建所有三个层(网络、共识、应用层)。以太坊通过提供虚拟机区块链简化了这一过程,任何人都可以在该虚拟机区块链上以智能合约的形式部署自定义逻辑。但仍然存在一个问题:区块链本身的发展问题。 Tendermint 大大简化了流程,因为开发人员只需要考虑应用层。

网络和共识层已经、通过 Tendermint Core 引擎提供;您所需要做的就是通过选择的编程语言调整 ABCI,开发您独特的应用程序并开始使用 Tendermint 的功能。

Tendermint 团队通过采用以太坊的代码库、剥离 PoW 并将最终结果插入到他们的 Tendermint Core 之上来做实现了一点。Ethermint因此得闯将,它类似以太坊的协议,具有权益证明功能。所有现有的以太坊工具(Truffle、Metamask等 ) 都与 Ethermint 兼容,您能将智能合约移植到这里,而无需任何额外的工作。

整个方程式中我们仍然没有提及但对于区块链互操作性非常重要的一个重要元素是跨链通信协议 (IBC)。 IBC 允许异构链在彼此之间转移价值和数据,最终在具有不同应用程序和验证者集的区块链之间实现互操作性。

为了避免未来数百或数千个区块链可能出现的可扩展性问题,Cosmos 提出了一种包含两类区块链的模块化架构:枢纽和区域。

区域是常规的异构区块链,而枢纽是专门设计用于将区域连接在一起的区块链。当区域与枢纽创建 IBC 连接时,它可以自动访问与其连接的每个其他区域(即发送和接收)。因此,每个区域只需要与一组有限的枢纽建立有限数量的连接。

枢纽还可以防止区域之间的双花。这意味着当区域从枢纽接收到代币时,它只需要信任该代币的原始区域和枢纽即可。第一个枢纽(Cosmos Hub)已在几天前推出。有些链不会完全兼容 Tendermint;开发商设想了所谓的挂钩区域来处理这一问题。

Tendermint 的密码学本身并不那么高级,ECDSA 签名是生态系统中最“奇特”的技术。在最近发布后开展的直播中提到了 BLS 签名聚合、零知识证明和 Ristretto 账户,但这些似乎都还没有出现。

该技术可用于创建公共链和私有链,前者通过 PoS 运行,后者通过许可节点运行;两个系统都将是具有 BFT 能力的。Tendermint Core 上的区块可以有一秒的出块时间,并且立即被视为是终局性;否则,可以安全地假设网络正在遭受 33%的攻击(指超过三分之一的验证者是恶意的攻击)。

恶意节点和拜占庭容错


区块链需要具有拜占庭容错能力,即能够容忍向网络传达虚假状态和消息并危及共识的潜在恶意节点。关于拜占庭容错系统的科普知识很少,因为这个话题在学术界并不那么普遍。

很少有研究集中在最多 7 个节点的小样本规模网络上;Tendermint 开发人员想要能够在更高级别上可扩展的东西。即使比特币引入了能够支持数千个独立节点的系统,该系统也具有(并且仍然具有)单个管理域,这极大地限制了其可扩展性。

Kwon 和他的合作伙伴设想了一种 BFT 协议,该协议可以在非许可的环境中扩展到数百个节点,并以权益证明 (PoS) 作为底层安全机制。他们提出了基于 BFT 的系统,该系统具有我们已命名的两个关键元素:用于达成共识和“八卦”的 Tendermint Core 和用作应用层的 Cosmos SDK。

他们的 BFT 权益证明算法通过使用部分同步网络模型克服了拜占庭将军问题,这意味着对区块进行投票的验证者不需要同时采取行动。该系统中的区块不是按时间表投票的,也没有确定的大小。

⚡️ 在被认为是“完全同步”的比特币中,我们有一个设定的10分钟时间范围,节点必须在该时间范围内查找、收集、验证交易并将其添加到区块中。对于以太坊,这个时间范围仅为15秒。在同步被打破之前,这一切都很好。一些节点可能会离线并遭受延迟问题,在这种情况下,链可能会停止运行或分叉。

Tendermint 的目标是实现一种更加中心化的模型,该模型因其节点以异步方式运行而拒绝这些时间限制。

该协议更加异步:不是每轮都需要预定的时间,而是每轮的每一步都是在超过 2/3 的节点达成共识后才进行的。这种同步性的缺乏是部分的,该项目将其称为“弱异步”。验证者是众所周知的,可以相互沟通以协调他们的努力并确保始终达成网络共识。所有这些都意味着他们的网络实际上永远不会分叉。

Tendermint 定期重新分配验证者提出区块的权利,以稍微缓解此过程中心化的潜在问题。提议区块后,验证者在多轮确定性过程中进行投票。

为了扩展这一点,我们需要认识到,在协议的世界中,我们有非确定性和确定性协议。非确定性协议是我们在完全异步系统中看到的协议。纯异步情况的共识可能取决于随机预言,并且通常会产生较高的消息复杂性开销,因为它们离不开所有通信的可靠广播。

Tendermint 通过走确定性路线来避免这种高额开销;实际上没有什么是随机的,而是通过定义的数学函数完成的,该函数使我们能够预测协议保证做出决策。

在 Tendermint 中,验证者在确定性加权循环格式的帮助下进行轮换。验证者拥有的权益越多,他们被选为领导者的次数就越多。目前,该协议的验证者上限为一百个,但是,如果需要,团队可能会考虑添加更多验证者。这保证了系统在异步环境中的安全性以及在弱同步环境中的活跃性。总体而言,共识机制牺牲了一定程度的活跃性来换取共识安全性和即时终局性。

结语


Tendermint 是一个值得关注的概念,它可能在纸面上看起来和听起来比现实中更复杂。总体来看,它就是具有互操作性的EOS,并与以太坊及其大量克隆项目有很多相似之处。Tendermint 的主要目标是解决区块链互操作性问题,但它在该市场中遭到了强烈反对。Ark、ICONPolkadotAION等类似的项目都有着相同的目标,所以谁会脱颖而出?这还有待观察。

声明:

  1. 本文转载自[captainaltcoin],著作权归属原作者[Dobrica Blagojevic],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!