区块链网络共识算法的进步,代表着更高的效率和安全级别,在我们了解了比特币的pow和以太坊以及其他链的pos共识之后,可以发现很多共识是从bft共识改进而来。不过,其中也有另一方向的创新者,就是?Tendermint,?Tendermint最典型的代表是Cosmos以及使用Cosmos?SDK创造的项目,还有例如Oasis这样的网络也使用?Tendermint。
本文中,我们总结一下?Tendermint的资料,用来整体了解。
Tendermint是用于在多台机器上安全且一致地复制的应用程序,其安全性表示为即使多达1/3的机器以任意方式发生故障,Tendermint也能正常工作;一致是指每台没有故障的机器看到相同的事务日志并计算相同的状态。
同道大叔十二星座《嘻哈一夏》数字藏品,明日15:00于金色数藏平台开售:据官方消息,金色数藏平台将于7月8日15:00,公开发售同道大叔十二星座《嘻哈一夏》数字藏品。本系列基于同道大叔最具商业价值的十二星座IP创作,发行其中典藏版金牛座500份,其他11款数字藏品各2000份,详情查看原文链接。金色数藏是由金色财经孵化,依托腾讯至信链为底层技术的元宇宙数字艺术文化收藏平台。[2022/7/7 1:57:55]
容忍机器以任意方式发生故障的能力被称为拜占庭容错。区块链技术对BFT进行改造为更强调点对点网络和加密身份验证。交易在块中被批处理形成了一条链,这种区块链数据结构实际上优化了BFT设计。
金色相对论 | Esther:ETH 实现PoS共识和EIP 1559之后,每年的发行量会降低至0-200万:11月27日消息,在今日举行的金色相对论中,针对“可以预测的是阶段0会持续较长的一段时间,这段时间投资者存入的ETH和信标链出块奖励的BETH都无法兑现,这对于以太坊生态来说,是好是坏?有哪些补足办法?”的问题,ECN以太坊中文社区 Esther表示,长期来看,对整体以太坊网络来说,这是一个比较保守和稳健的策略。但上面谈到的新路线图已经对eth1和eth2的合并过程进行了简化和提速,技术上来看,甚至可能在分片之前就能实现合并。但是为了观察PoS链的稳定性和安全性,在合并之前阶段0信标链需要持续运行一段时间,同时还需要对合并进行反复测试,此后社区才会放心从PoW链完全迁移到PoS链上。阶段0还会带来一个不可忽视的直接影响,即ETH的发行量和流通量。由于在合并之前,eth1和eth2并行存在,网络发行量会有所上升。根据Vitalik本人的说法,在接下来1-2年中(eth1和eth2合并前),ETH的发行计划为每年约470万。而完全实现PoS共识和EIP 1559之后,每年的发行量会降低至0-200万。当然Staking也有其不确定性所在,比如说自己跑节点的话可能因为操作失当或是网络因素面临惩罚,对于投资者来说主要还是流动性不足和机会成本方面,现在多家平台已经推出了质押和流动性方案,大家打算参与的话需要多做点功课进行评估。[2020/11/27 22:21:14]
而Tendermint改进后可以称为是一种易于理解的、异步的BFT共识协议。该协议遵循如下所示的简单状态机运行方式:
金色相对论 |?Blockstream缪永权:闪电网络的出现将使得许多山寨币过时:在本期金色相对论之“闪电网络:Hello,TPS”上,金色财经合伙人佟扬对话Blockstream首席战略官缪永权,针对目前闪电网络实际的发展与应用情况如何? 2019年可预见的进展有哪些?当前发展遇到的瓶颈有哪些?缪永权表示,闪电网络正以飞快的速度发展,因为这是一项前所未有的科技,将为比特币成为全球货币铺平道路。2019年,我们将推出更好的闪电网络版本,目前唯一遇到的瓶颈是由于不同的开发团队进度不同,因而不同版本中可能会出现一些小的兼容问题,但都能很快解决。此外也有很多关于闪电网络的谣言在外传播,因为闪电网络的出现将使得许多山寨币过时。[2019/3/7]
分析 | 金色盘面:BTC/USD跌破6000 价格剧震:金色盘面综合分析:BTC/USD早盘突然暴跌,瞬间击穿6000整数关,创出新低5900,随即被多头主力拉起,价格剧震7%以上,短线风险加剧,不建议参与。[2018/8/14]
其中协议的参与者称为验证者,他们轮流提出交易区块并对其进行投票。块在链中提交,每个高度都有一个块。当一个区块无法提交时,协议会进入下一轮,新的验证者可以针对该高度再提出一个区块。
成功提交区块需要两个阶段的投票;称为pre-vote和pre-commit。当超过2/3的验证者在同一轮中为同一块预先提交时,这个块被提交。
图示的右下角有一张一对夫妇在跳polka舞的照片,当超过三分之二的验证者为同一个区块预先投票时,称之为polka。每个预先提交都必须在同一轮中通过一个polka来证明是合理的。
验证者可能由于多种原因未能提交区块,例如当前提议者可能离线,或者网络可能很慢。Tendermint允许他们确定应该跳过验证者。因为验证者等待时间的超时使Tendermint成为弱同步协议,而不是异步协议。不过,协议的其余部分是异步进行的,最终验证者只有在收到超过三分之二的验证者集的意见后才能取得进展。Tendermint的一个简化元素是它使用相同的机制来提交一个块,就像它跳到下一轮一样。
假设少于三分之一的验证者是拜占庭的,Tendermint保证永远不会违反安全性,即验证者永远不会在同一高度提交冲突的块。为此,引入了锁定规则,这些规则调节流程图中可以遵循的路径,一旦验证者预先提交了一个区块,它就会被锁定在该区块上。该验证者必须为它锁定的块投票,并且如果在后面的一轮中有一个用于该块的polka,该验证者只能解锁并预先提交一个新块。
在软件层面,Tendermint由两个主要技术组件组成:区块链共识引擎和通用应用程序接口。称为Tendermint??Core的共识引擎确保相同的交易以相同的顺序记录在每台机器上。应用程序接口,称为应用程序块链接口(ABCI),使交易能够以任何编程语言处理。与其他预装了内置状态机的区块链和共识解决方案不同,开发人员可以使用Tendermint可以对任何编程语言编写的应用程序进行BFT状态机复制。因此,可见Tendermint被设计为易于使用、易于理解、高性能且适用于各种分布式应用程序。
Tendermint已经发展成为可以托管任意应用程序状态的通用区块链共识引擎。这意味着它可以用作其他区块链软件共识引擎的即插即用替代品。
TendermintCore主要通过满足ABCI的协议要求与应用程序通信。Tendermint能够通过在应用程序流程和共识流程之间提供一个非常简单的API来分解区块链设计。
ABCI由以下3种主要的消息类型组成,它们从核心传递到应用程序。应用程序回复相应的响应消息。
DeliverTx消息,区块链中的每笔交易都通过此消息传递。应用程序需要根据当前状态、应用程序协议和交易的加密凭证来验证通过DeliverTx消息接收到的每笔交易。然后,经过验证的事务需要更新应用程序状态。
CheckTx消息类似于DeliverTx,但仅用于验证交易。TendermintCore的内存池首先使用CheckTx检查交易的有效性,并且仅将有效交易中继给其对等方。。
Commit消息用于计算对当前应用程序状态的加密承诺,以放入下一个区块头中。
所以可以总结为,TendermintCore中创建到应用程序的三个ABCI连接;一种用于在内存池中广播时验证交易,一种用于共识引擎运行区块提案,另一种用于查询应用程序状态。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。