关于 Tendermint 的简要概述
你所熟悉和喜爱的区块链通常具有非常严格的结构。这给开发者提供了两种选择:要么在限制性的环境中构建应用,要么分叉代码并创建自己的链。然而,创建自己的链并非易事,你还需要启动一个网络并决定采用哪种共识机制。
免费的交易所推荐:
Tendermint 是一款开源软件,用于启动区块链,允许你用任何语言编写应用。更棒的是,这些应用可以与其他区块链进行通信。
引言
创建加密货币或区块链网络远不止于初始化一个数据库。这需要在安全性、去中心化和可扩展性之间进行精细的激励和权衡。
毫不奇怪,许多团队在探索构建最强区块链生态系统的过程中尝试了各种不同的方法。在本文中,我们将探讨其中的一种方法:Tendermint。
你需要了解的关于 Tendermint 的知识
如果你对区块链有一定的了解,Tendermint 的许多方面会让你感到熟悉。在深入探讨之前,让我们先回顾一些关键概念。
理解区块链架构
Tendermint 是一种区块链堆栈。像 Bitcoin 和 Ethereum 也是如此。请记住,这不仅仅是关于区块链数据库本身,而是关于点对点网络中的节点、它们如何互动,以及你可以用交易和智能合约做的一些有趣的事情。这里的目标是让所有人就一个状态(如数据库的快照)达成一致,即使他们不信任任何其他人。
目前,大多数主要区块链已经找到了实现这一目标的秘诀。然而,它们通常依赖于单一架构:这是一个软件工程概念,意味着组件是相互连接和相互依赖的。你无法简单地取出一部分并将其插入其他东西中。
如果你想要灵活性,单一架构并不是很好。在相反的模型中(具有模块化架构),你可以调整单个组件而无需担心破坏任何东西。在单一结构中,你需要确保在升级一个组件时所有组件保持兼容。
现在我们了解了这种区别,我们可以进一步讨论 Tendermint 协议。
拜占庭容错(BFT)
你可能知道,比特币的一大创新是解决了所谓的拜占庭将军问题。我们不会详细讨论这个问题(如果你感兴趣,请查看我们关于拜占庭容错的文章)。你只需要知道它详细描述了一种参与者必须在分布式环境中进行通信的场景。
这些参与者不知道其他人是否在撒谎,或者他们之间传送的消息是否被修改。如果参与者能够在存在这些问题的情况下就一组事实达成一致,则称系统具有拜占庭容错(BFT)。
显然,在去中心化的环境中,正确处理这一点至关重要。如果加密货币不具备拜占庭容错性,它们实际上是行不通的——你需要某种集中化的协调方,这违背了去中心化的目的。像许多数字货币一样,比特币通过使用工作证明(PoW)共识算法来解决这个问题。
区块链的三层结构
我们了解了单一/模块化架构的区别,以及去中心化加密货币网络需要具备拜占庭容错性。让我们提到我们通常在区块链中看到的三层结构:应用层、共识层和网络层。
共识和网络层是你看到网络节点相互通信,并试图就一组事实达成一致的地方。应用层是你可以自己做事情的地方——想想 Ethereum 中的去中心化应用和智能合约,或者 Bitcoin 中的自定义交易。
Tendermint Core
首先,对术语做一个简要的澄清。在这里,我们将"Tendermint"和"Tendermint Core"这两个术语交替使用,因为我们只关注技术本身。
然而,Tendermint 是公司名称(由撰写原始白皮书的开发者 Jae Kwon 创立),而 Tendermint Core 是该公司实际工作的软件。更具体地说,该软件有两个主要组件:其核心共识引擎(Tendermint Core)和其应用接口(ABCI)。
Tendermint Core 是一个实现容错的系统。从本质上讲,它是一个大型的分布式计算机,能够同时向所有人展示相同的状态。只要至少三分之二的参与者是诚实的,一切都能顺利运作。但这几乎是每个区块链的共同点,对吗?是什么让它如此特别呢?
首先,使用的共识机制是权益证明(PoS)。在每个周期中,从验证者集合中随机选择一个节点。然后,该节点必须提出下一个区块(在所谓的轮询系统中)。如果其他验证者对此感到满意,那么新区块就会被添加,链也会更新。最终性是即时的——与 Bitcoin 或 Ethereum 不同,你不需要等待确认来确保你的交易有效。
但还有更多!Tendermint Core 的架构是模块化的,应用层与共识和网络层分离。用通俗的话说,这意味着你可以将自己的应用层插入到堆栈中。无需担心繁琐的激励或共识算法。
这对终端用户来说可能不是太激动人心。但对开发者来说,能够利用现有的框架意味着他们可以直接开始构建应用,而无需从头开始搭建整个网络。区块链的数据可以被传输到集成层,使开发者能够用任何语言编写软件。
魔法发生在被称为应用区块链接口(ABCI)的东西上。把它想象成 Raspberry Pi 计算机上的 GPIO 引脚。你可以将各种第三方组件连接到这些引脚上,从 LED 到复杂的植物洒水系统。同样,ABCI 定义了区块链与在其上运行的应用之间的边界。
Tendermint Core 的优点
将应用接口与共识机制分离,允许更大范围的去中心化应用将任何编程语言纳入其业务逻辑中。
为了提供一个具体的例子,你只需看看 Ethermint:一个项目,它采用了 Ethereum 代码库,移除了工作证明机制,并将 Ethereum 虚拟机安装在 Tendermint 之上。
这使得一些有趣的事情成为可能。首先,Ethereum 开发者可以轻松地将他们的智能合约移植到新引擎上,或者用 Solidity 语言编写新合约。除了提供 Ethereum 功能外,Ethermint 还像一个权益证明的 Ethereum,让我们瞥见了 Ethereum 2.0 中 Casper 实现可能会是什么样子。
区块链互操作性
“区块链互联网”的承诺是吸引许多人使用基于 Tendermint 的协议的原因。互操作性是加密货币领域期待已久的补充,因为这意味着数百个独立的区块链将变得跨兼容。
目前,许多工作已经投入到 Cosmos SDK 中,这是一个开源框架,允许任何人创建特定应用的公共和私有区块链。这些区块链然后可以通过所谓的 Cosmos Hub 插入到更广泛的 Cosmos 网络中,在那里它们可以与其他区块链通信。
许多流行的项目已经使用 Cosmos SDK 构建,例如 BNB Smart Chain (BSC)、KAVA、Band Protocol、Terra 和 IRISnet。
结语
作为一个区块链引擎,Tendermint 已经吸引了加密货币领域众多利益相关者的关注,从开发者到终端用户。
如果该软件继续获得关注,它很可能成为区块链互联网的基础。正如我们所见,一些项目已经使用 Cosmos SDK 启动,以实现这一愿景。
