什么是嫩薄荷

嫩薄荷 是一个低级区块链引擎,可在许多机器上提供安全一致的状态复制。它是一种弱同步(主要是异步)的拜占庭容错(BFT)工具,可用作任意应用程序状态和分布式系统的即插即用共识.

Tendermint最初被认为是比特币工作证明协议的一种更有效,更安全的共识机制,在其存在的过程中一直在发展,现在已成为Cosmos网络的底层共识引擎.

什么是嫩薄荷

薄荷的背景

Tendermint是Jae Kwon于2014年在学术界提出的一个开源项目 出版物 现在已经过时了,但是如果您有时间的话,这是一个有趣的阅读。它解决了状态机固有的难以实现的安全一致复制的问题.

在区块链系统中,容忍恶意行为者破坏节点并传播虚假消息的需求是一项重要功能,可让它们发挥作用并就网络状态达成诚实的共识。但是,通过比特币的工作量证明模型达成共识的方法效率低下且资源密集。 Tendermint提出了一种新的BFT模型,特别是还着重于允许Tendermint软件的主要共识引擎在其他各种区块链网络中使用并与其他编程语言通用兼容.

实用的拜占庭容错

阅读:什么是中本共识?

因此,多年来,对Tendermint的初始概念进行了优化,以利于将其用作具有专有应用程序接口的通用区块链共识引擎。目前,Tendermint是Cosmos Network(一个多链框架平台)的基础架构引擎,通常被称为“区块链Internet”。

总体而言,Tendermint具有一些独特的功能和引人入胜的技术。那么它是怎样工作的?

它是如何工作的?

Tendermint是一个通用的区块链引擎,可以承载任意应用程序状态,主要由2个主要组件组成:

  1. Tendermint核心– Tendermint BFT共识引擎
  2. 应用程序区块链接口(ABCI)–启用以任何编程语言编写的应用程序的BFT复制

嫩薄荷充当 权益证明 BFT的协议。作为即插即用工具设计的,它既直观易用,又经过精心设计以实现高效的互操作性。它可以有效地实现为任何区块链网络的共识机制。 ABCI将共识机制与应用程序状态的P2P层解耦,并在应用程序逻辑和共识引擎之间实现清晰的接口.

Tendermint使用权益证明机制,在阅读以下部分时,务必牢记这一点。让我们看一下2个主要组成部分.

嫩薄荷核心

Tendermint Core是整个Tendermint软件的基础共识引擎,可确保分布式网络中的计算机以相同的方式记录交易的顺序。由于Tendermint是BFT共识机制,因此它与其他BFT系统做出相同的假设,特别是在任何给定实例中,网络中最多不超过1/3的节点可以被拜占庭.

同样,它使用类似于其他BFT机制的基于回合的投票机制。为了更好地将概念应用到上下文中,下面是用于在每个回合中选择领导者节点的类似BFT机制的列表:

  • 实用BFT使用循环样式格式来选择每一轮的领导节点.
  • 经过时间证明可以在新交所内使用随机计时器进行领导者选择流程.
  • 比特币使用Nakamoto共识,其中以彩票形式解决了工作证明计算难题,以确定每一轮的领导者(采矿).

Tendermint使用优化的版本,旨在每秒扩展至数千笔交易,并提供简便的即插即用功能。我们可以将Tendermint BFT中的回合细分为3个阶段:

  • 否定提案
  • 预投票
  • 预先提交

协议的参与者是验证者。验证者根据他们在该回合中的总体权益对网络中的区块进行提议和投票。因此,BFT假设是基于每个验证者的“权重”(由他们的相关权益确定),而不是参与的总节点的⅓.

验证者使用区块链副本维护一个全客户端节点,并使用公共密钥作为其标识符。这 否决提案 阶段是验证者在一轮中提议新的区块.

投票前 阶段是验证者对提议的区块进行投票,如果超过三分之二的验证者对提议的区块进行了预投票,则进入预提交阶段。这被称为 波尔卡.

在预提交回合中,如果有超过三分之二的验证者预提交了预投票的区块,则该区块将提交给区块链。值得注意的是,每次预提交都必须在同一回合中通过波尔卡进行辩护.

提议失败的区块或签署不适当的区块的验证者可能会承担风险 大刀阔斧. 上面重复的三步过程被认为是一轮.

Tendermint大多数情况下是异步的(或弱同步),因此提交一个块之前可能需要花费几轮时间。提案过程是部分同步的,而投票过程是异步的。根据Tendermint的说法:

“验证人可能由于多种任意原因未能提交区块;也就是说,当前的提议者可能处于离线状态,或者网络可能正在经历等待时间。 Tendermint允许跳过验证器。验证者需要等待一小段时间,才能从提议者那里收到完整的提议块,然后再投票进行下一轮投票。这种对超时的依赖使Tendermint成为弱同步协议,而不是异步协议。但是,协议的其余部分是异步的,验证器只有在收到超过1/3的验证器集后才能取得进展。”

由于其设计,Tendermint保证永远不会违反安全性,因此Tendermint区块链将永远不会分叉。但是,由于大多数验证者必须具有100%的正常运行时间,因此网络可能会暂停.

总体而言,共识机制为共识安全性和即时确定性牺牲了一定程度的活力.

应用程序区块链接口(ABCI)

ABCI是Tendermint灵活性的关键组成部分,它允许应用程序的BFT复制以任何编程语言编写.

Tendermint将ABCI背后的动机描述为当前加密货币平台(如比特币和以太坊)的整体式堆栈设计。整体设计导致协议维护复杂,并限制了其他编程语言与区块链交互的能力。例如,以太坊支持图灵完备的字节码虚拟机,但是编程语言仅限于可以编译为该字节码的语言,例如Solidity和Vyper。.

ABCI的主要实现是Tendermint套接字协议(TSP),也是Tendermint Core与应用程序通信的方式。 Tendermint Core负责维护和验证区块链中交易的规范顺序,而ABCI则验证密码签名,维护交易数据库并允许客户查询交易数据库.

ABCI使用3种主要消息类型:

  • 传送TX
  • CheckTX
  • 犯罪

传送TX 消息伴随着区块链中的每笔交易,并且只能在验证后更新应用程序状态.

CheckTX 该消息用于验证交易,并首先由Tendermint Core的内存池进行验证。仅有效交易在网络上传播.

犯罪 消息计算对当前应用程序状态的承诺,从而使Merkle证明能够针对由 法定人数.

ABCI面向连接,Tendermint Core维护与应用程序的三个ABCI连接.

  • Mempool连接
  • 共识连接
  • 查询连接

Mempool连接 使用CheckTX消息,用于验证在提交交易之前是否应该中继交易.

共识连接 执行已提交的事务.

查询连接 允许客户端查询应用程序状态.

ABCI是Tendermint软件的动态组件,是Cosmos Network的多链框架功能不可或缺的一部分,它是网络的基础区块链引擎.

图片来源– Tendermint文档

嫩薄荷 & 宇宙网络

宇宙网络 是一个多链区块链框架,致力于解决区块链系统的可扩展性和互操作性的主要问题.

区块链互操作性

阅读:区块链互操作性:问题 & 未来解决方案

它由Tendermint经典BFT区块链引擎提供动力,并为独立的区块链提供了更广泛的结构,可插入标准化通信环境中并在其内部运行。该网络允许公共和私有区块链相互通信和交换价值,并通过Tendermint的股权证明共识机制利用可互操作的可扩展性.

此外,Tendermint的ABCI使开发人员可以使用任何编程语言轻松构建各种区块链作为生态系统的一部分。这 Cosmos SDK 是用Go编程语言编写的ABCI框架,并且 乳液JS 是用JavaScript编写的ABCI框架.

围绕多链框架(例如Cosmos和Polkadot)的工作充满了兴奋。您可以在他们的网站上找到有关Cosmos及其与Tendermint集成的更多信息和资源。 文件资料.

结论

Tendermint代表了分布式网络(尤其是区块链系统)中拜占庭容错研究与开发的又一进步。这些类型的创新对于开发更具扩展性和互操作性的区块链网络(如Cosmos)至关重要.

Tendermint和BFT共识的类似进展是很好的例子,说明了加密货币行业在推动尖端技术领域前进的步伐。区块链技术背后的更广泛概念需要更多的创新才能实现其真正的潜力,但是项目步入正轨,并且正在动态改变分布式计算领域.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me