导读
Cosmos是由Tendermint团队构建的开源社区项目,它的共识算法是基于POS和BFT的共识协议。
Cosmos通过SDK的形式将共识算法和网络模块封装起来,形成一套开箱即用的区块链开发脚手架,本期将为大家带来Cosmos系列文章中Tendermint共识算法的介绍。
Tendermint核心模块
首先我们回顾下,Cosmos中的TendermintCore核心模块主要包含共识算法和网络模块,由于网络模块采用的是我们熟悉的gossip协议,这里就不再赘述。我们编写的应用层的模块通过ABCI与Tendermint核心模块进行交互,在交互的过程中,由Tendermint完成选举Proposer,BFT三阶段共识以及区块执行的逻辑。
1)ABCIApplication
其中ABCI接口可以分为三类:信息查询、交易校验以及共识相关处理,而TendermintCore作为ABCIClient在启动时会与ABCIServer建立三个连接,分别用于这三类接口消息的处理。
韩国加密交易所 Korbit 引入新韩银行的身份验证服务:6月1日消息,韩国加密交易所 Korbit 宣布引入新韩银行的身份验证服务,Korbit 将使用该服务并应用多因素认证(MFA)进行身份认证和存取款。
新韩银行的身份验证服务 Shinhan Sign 是韩国金融界获得科学与信息通信技术部认证为“电子签名认证业务操作标准”,其合规性得到认可,并被韩国通信委员会指定为身份验证机构。[2023/6/1 11:53:05]
在TendermintCore与Application交互的所有消息类型中,有3种主要的消息类型:
·CheckTx消息用于验证交易。TendermintCore中的mempool通过此消息校验交易的合法性,通过之后才会将交易广播给其它节点。
·DeliverTx消息是应用的主要工作流程,通过此消息真正执行交易,包括验证交易、更新应用程序的状态。
·Commit消息通知应用程序计算当前的世界状态,并存在下一区块头中。
?Tendermint共识引擎,包含区块链需要大部分功能实现,主要有:
·?共识算法:BFT+POS算法;
·P2P:采用Gossip算法;
Snap设立AR企业服务部门 首次向企业客户销售其AR技术:金色财经报道,Snapchat母公司Snap周四设立了一个新部门,将帮助其他公司为其网站或应用搭建增强现实功能。该部门名为AR企业服务(ARES),该部门负责人吉尔·波贝尔卡(Jill Popelka)在接受采访时表示,这标志着Snap将首次向企业客户销售其AR技术。该部门首个产品名为“购物套件”(Shopping Suite),将为企业提供功能搭建工具,允许客户虚拟试穿衣服或3D预览产品。[2023/3/24 13:22:46]
·RPC:区块链对外提供的API接口;
·?其它:交易缓存池、消息队列等。
2)POS权益证明协议
接下来介绍Tendermint的POS算法,通过该POS算法可以在验证人集合中选取出下一轮出块的提议人。
上图中,假设有A、B、C三个验证人,分别抵押了1、2、3个代币
法国监管机构AMF全年仅将两个加密货币网站列入黑名单:金色财经报道,法国股市监管机构金融市场管理局(AMF)和审慎监管和决议局(ACPR)在12月21日更新了一份被认定为未经授权投资外汇和加密货币资产的网站黑名单。在新列入黑名单的15个网站中,只有两个网站在其名称中暗示与加密货币有直接联系。这些网站包括24cryptoforextrading.net和cryptoneyx.io。根据公告,AMF和ACPR标记的加密货币相关网站逐年明显减少。2022年,当局在加密货币衍生品类别中共有两个网站被列入黑名单,比去年的24个网站减少92%。(cointelegraph)[2022/12/22 21:59:45]
1.第一轮由于C的抵押资产最多,所以C当选第一轮的提议人;
2.第二轮由于C在上一轮当选过提议人,所以他的vote_power变为pre_votingPower-(stake_a+stake_b)?也就是3-(1+2)==0,而B的vote_power等于pre_votingPower+stake也就是2+2==4,同理A的vote_power等于2,那么这一轮中投票权最大的是B,所以B当选提议人;
3.第三轮A的vote_power为3,B的vote_power为2-(2+0)==0,C的vote_power为?0+3==3,由于A排名在C的前面,所以A当选提议人;
Ripple为CBDC互操作性和金融包容性推出197000美元的黑客马拉松:金色财经报道,Ripple发起了一项奖金为 197000 美元的黑客马拉松,以促进零售 CBDC、金融包容性和互操作性解决方案的开发。该活动被称为 CBDC Innovate,将允许开发人员构建在 Ripple 的去中心化开源区块链 XRP Ledger (XRPL) 上运行的应用程序。
参赛者需要在三个类别中的一个类别中构建或更新金融科技或支付解决方案。第一类侧重于互操作性,预计开发人员将提交一个解决方案,允许 CBDC 与其他数字资产(例如不可替代的代币和稳定币)进行互操作。第二类侧重于面向零售,参赛者将构建一个允许用户与 CBDC 交互的界面。最后一个类别涵盖金融包容性,开发人员将提交一个可以利用这种数字货币优势的解决方案。
根据黑客松页面,参赛者必须在 2022 年 8 月 25 日或之前提交他们的解决方案,获胜者将于 9 月 8 日公布。[2022/7/3 1:47:14]
4.同理第四轮A的vote_power为-1,B的为2,C的为6,所以C当选提议人;
Tendermint的Pos机制有如下优点和缺点:
优点:Proposer的选择方式是与stake相关的,所以应用层可以实现自己的共识,在应用层将计算好Validator的权重传递给Tendermint,Tendermint就会按照应用层需要的方式选择Proposer。
Arbitrum Odyssey生态体验奖励计划将于6月中旬上线:5月19日消息,以太坊扩展方案 Arbitrum 在社交媒体上宣布其生态体验奖励计划 Arbitrum Odyssey 将于 6 月中旬正式上线。
此前报道,以太坊扩展方案 Arbitrum 宣布将举办名为 Arbitrum Odyssey 生态体验奖励计划,用户通过与奖励计划投票选出的 Arbitrum 生态协议交互,完成特定任务,奖品为 Project Galaxy 和加密艺术家 Ratwell 设计和发行的 NFT,参与该计划的 Arbitrum 生态项目通过推特投票决定。目前共有 14 个项目通过社区投票成为 Arbitrum Odyssey 活动一部分,其中第一周为桥、交易平台和支付网关任务,第二周为 Yield Protocol 和 Hashflow,之后分别为 Aboard Exchange 和 TofuNFT(第三周)、Uniswap 和 Apex(第四周)、1inch 和 Izumi/Yin Finance(第五周)、Dodo 和 Swapr(第六周)、TreasureDAO 和 Battlefly(第七周)、Ideamarket 和 Sushi(第八周)。[2022/5/20 3:29:12]
缺点:Round-Robin策略太简单了,容易被坏人预测到下一个Proposer是谁,于是可以提前布局对rProposer发起DDoS攻击或别的攻击。这里Tendermint的解决方法就是验证人节点对外不暴露节点的IP地址。
3)BFT拜占庭容错协议
Tendermint是一个易于理解的BFT共识协议,协议遵循一个简单的状态机原理:
协议中有两个角色:
验证人:协议中的角色或者节点,不同的验证者在投票过程中具备不同的权力。
提议人:由验证人产生。?验证人对交易的区块提议并对提议的区块投票。区块被提交到链上,且每个区块就是一个区块高度。但区块也有可能提交失败,这种情况下协议将选择下一个验证人在相同高度上提议一个新块,重新开始投票。
从图中可以看到,在propose开始阶段,被选中的proposer会给全网络广播一个proposal。如果proposer锁定在上一轮中的block上,那么proposer在本轮中发起的proposal会是锁定的block,并且在proposal中加上proof-of-lock字段。
在Prevote开始阶段,每个Validator会判断自己是否锁定在上一轮的proposal区块上,如果锁定在之前的proposal区块中,那么在本轮中继续为之前锁定的proposal区块签名并广播prevote投票。否则为当前轮中接收到的proposal区块签名并广播prevote投票。如果由于某些原因当前Validator并没有收到任何proposal区块,那么签名并广播一个空的prevote投票。
在Precommit开始阶段,每个Validator会判断,如果收集到了超过2/3prevote投票,那么为这个区块签名并广播precommit投票,并且当前Validator会锁定在这个区块上,同时释放之前锁定的区块,一个Validator一次只能锁定在一个区块上。
如果一个Validator收集到超过2/3空区块(nil)的prevote投票,那么释放之前锁定的区块。处于锁定状态的Validator会为锁定的区块收集prevote投票,并把这些投票打成包放入proof-of-lock中,proof-of-lock会在之后的propose阶段用到。如果一个Validator没有收集到超过2/3的prevote投票,那么它不会锁定在任何区块上。
在precommit阶段后期,如果Validator收集到超过2/3的precommit投票,那么Validator进入到commit阶段。否则进入下一轮的propose阶段。
commit阶段分为两个并行的步骤:
·Validator收到了被全网commit的区块,Validator会为这个区块广播一个commit投票。
·Validator需要为被全网络precommit的区块,收集到超过2/3commit投票。
一旦两个条件全部满足了,节点会将commitTime设置到当前时间上,并且会进入NewHeight阶段。在整个共识过程的任何阶段,一旦节点收到超过2/3commit投票,那么它会立刻进入到commit阶段。
上诉过程简单来说,为了成功提交一个区块,必须经过两阶段的投票,称为pre-vote和pre-commit。当超过2/3的验证人在同一轮提议中对同一个块进行了pre-commit投票,那么这个区块才会被提交。
由于离线或者网络延迟等原因,可能造成提议人提议区块失败。这种情况在Tendermint中也是允许的,因为验证人会在进入下一轮提议之前等待一定时间,用于接收提议人提议的区块。
假设少于三分之一的验证人是拜占庭节点,Tendermint能够保证验证人永远不会在同一高度重复提交区块而造成冲突。为了做到这一点,Tendermint引入了锁定机制,一旦验证人预投票了一个区块,那么该验证人就会被锁定在这个区块。然后该验证人必须在预提交的区块进行预投票。当前一轮预提议和预投票没成功提交区块时,该验证人就会被解锁,然后进行对新块的下一轮预提交。
4)BFT?VSPBFT
通过上文我们可以看到,Tendermint共识算法和PBFT时非常相似的,可以说是PBFT的变种,那我们来比较一下:
相同点:
·?同属BFT体系,抗1/3拜占庭节点攻击。
·?三阶段提交,第一阶段广播交易,后两阶段广播签名。
·?两者都需要达到Quorum法定人数才能提交块。
不同点:
·Tendermint与PBFT的区别主要是在超过1/3节点为拜占庭节点的情况下,当拜占庭节点数量在验证者数量的1/3和2/3之间时,PBFT算法无法提供保证,使得攻击者可以将任意结果返回给客户端。而Tendermint共识模型认为必须超过2/3数量的precommit确认才能提交块。
·?拜占庭节点概念不同,PBFT指的是节点数,而Tendermint代表的是节点的投票权力。
·PBFT需要预设一组固定的验证人,而Tendermint是通过要求超过Quorum法定人数的验证人员批准会员变更,从而支持验证人的动态变化。
总结
总体来说,Cosmos中Tendermint核心模块中POS和BFT共识算法的实现较为简单,不像Polkadot的混合共识那么复杂,但是也是这个原因,可以成为区块链快速开发的脚手架,帮助越来越多的人了解区块链,热爱上区块链。
作者简介
江哲
来自数据网格实验室BitXHub团队主要负责区块链账本互操作技术相关研究工作
据PolkaBase消息,Polkadot创始人GavinWood表示,今年Polkadot的发展明显加快了步伐,但波卡生态仍有潜力尚未爆发.
1900/1/1 0:00:001月11日午间,合成资产发行平台Synthetix官方发文称,上周Synthetix官方在发行多抵押贷款业务中发现了一个Bug。该错误导致一些仅需要进行部分清算的贷款被标记为全部清算.
1900/1/1 0:00:00就像美联储决定在未来几年保持鸽派议程一样,比特币周三收盘价首次突破20,000美元。可以直观感受到,这两个事件证实了加密货币对宏观经济状况的日益依赖,以决定其市场偏向.
1900/1/1 0:00:00今日,加密货币圈终于迎来大面积回调,打断了近期欢乐牛市的氛围。正在跻身资产配置行列里的比特币,24小时内大跌近20%,根据币Coin数据,逾20万人遭遇爆仓,全网爆仓金额将21亿美元,创下近30日内爆仓额之最,其中比特币爆仓额近13亿.
1900/1/1 0:00:001月14日,合成资产协议Synthetix创始人KainWarwick发文公布向以太坊二层扩容方案OptimisticEthereum迁移的主网部署过渡计划.
1900/1/1 0:00:00在熊市中,投资者遇到的最大挑战是怎么克服心理上的恐惧坚持定投;而在牛市中,投资者遇到的最大挑战则是如何既能保证收益最大化、又能避开牛市崩盘,选择一个合适的时机开始卖出.
1900/1/1 0:00:00