风险提示:理性看待区块链,提高风险意识!
Tendermint拜占庭共识算法框架浅析
首页 > 币界资讯 > 区块链知识 2019-06-14 15:21:54
币界网报道:

写这篇文章的主要动机源于 Cosmos 主网上线,虽然人们对于跨链技术是否是区块链的未来而争论不休,但我坚信跨链是区块链走向未来的必经之路。

想要了解 Cosmos,首先要了解 Tendermint, 它是 Cosmos 的重要组成部分,也是整个 Cosmos 生态的基础 (这篇文章我们不谈论 Cosmos,只谈 Tendermint)。

概念性的讲,Tendermint 是一种能够为多台机器安全和保证数据一致性复制应用程序的软件。而简单来说,Tendermint 是一个通用的区块链开发框架,它主要包括两部分:共识引擎 (Tendermint Core) 和 ABCI(Application Blockchain Interface)协议。Tendermint Core 被称为 Tendermint 核心模块,确保相同的交易在每个机器中都按照相同的顺序被记录下来。ABCI 让交易可以被任何编程语言编写的程序处理。

如果你觉得现在的内容太抽象,我们尝试从简单的内容谈起

共识算法的演进

共识算法是每个区块链网络的关键要素,每一个分布式容错系统都有一个核心问题,如何保证「在不能相互信赖的前提下,创造一个可信任的系统」?我们需要一套可靠的共识协议来保证区块链世界的宏观安全。众所周知的共识算法像工作量证明 (PoW)以及权益证明 (PoS),前者代表为 Bitcoin、Ethereum,但在极端资源耗尽,环境可持续等条件下,PoS 逐渐成为区块链从业者着重选择并研究的课题,Ethereum 也在向这方面发展。

2011 年 BitcoinTalk 论坛权益证明 (PoS) 的概念组织了一场讨论。最初的 PoS 共识类代币,像点点币,实现结果的并不理想。而第一个将 BFT (拜占庭容错) 研究应用到 PoS 公链环境中的正式 Tendermint 的创造者 Jae Kwon。

Tendermint 共识机制

Tendermint 采用 PBFT + PoS 作为共识机制。相较于比特币工作量证明(BFT + PoW),它实现的共识算法更高效和安全。下图是一个简单的状态机,它展示了这套共识机制的运作规则:

blob.png


协议中的参与者叫着「验证者」 (Validator), Tendermint 在创世的时候把 Validator 设定为 100 个。网络中的每一个 Validator 都维护了一份区块链的全拷贝,并且用公钥来识别 Validator 的身份。这些 Validator 轮流对交易区块进行提议,并对这些区块进行投票出块,每一个块占据一个“高度”(height)。并且每轮投票都需要 Validator 用相应的私钥进行签名,这样如果出现问题,就可以找到对应为此负责的 Validator。

由于一些原因可能导致出块失败,例如:当前提议者可能离线了,或者网络非常慢。如果失败,Tendermint 允许其他 Validator 证实一个 Validator 应该被跳过,协议就会开始下一轮的提交,并且一个新的 Validator 会继续提交那个高度的区块。要想成功提交一个块,需要有两个阶段的投票:“预投票”(pre-vote)和“预提交”(pre-commit)。在同一轮提交中,只有超过 ⅔ 的验证人对同一个块进行了预提交,这个块才能被提交到链上。⅔ 既是拜占庭容错的下限,也是 Tendermint 共识系统的安全阈值。如果 ⅓ 或更多的验证者离线或脱机,网路就会停止运行。假设少于 ⅓ 的验证者是拜占庭,Tendermint 保证安全永远不会被破坏,也就是说,验证者(⅔ 以上)永远不会在同一个高度提交冲突的区块。因此,基于Temdermint的区块链永远不会分叉。

Tendermint 的不足之处

Tendermint 是使用一种确定的循环协议方案来选出提议者的;该协议不具备随机性。提议者是根据投票权和验证者被选次数的堆排序算法选出的。攻击者只能通过添加或删除权益来干预协议,但这种干预不能立即生效,因为验证者在系统中移除或者添加权益所需的时间很长。尽管如此,攻击者就可以有更长的时间提前计划好如何操纵提议者的选择。

我们上边还提到,Tendermint 允许 Validator 可以被跳过(就是轮到一个 Validator 出块的时候但是此 Validator 没出块)。Validator 在移到下一轮投票之前等待一小段时间来接收提议者(此轮出块的验证者)提出的整个区块。这种对超时的依赖让 Tendermint 成为一个弱同步协议,而不是一个异步协议。在系统效率上虽然较 PoW 共识机制有很大的提高,但仍有待改善。同时,Tendermint 虽然依靠额外协议管理方法来与寡头垄断验证者进行对抗。但还是无法有效阻止「卡尔特形式」的发生。

最后

本文借鉴参考了很多资料,笔者也在学习过程中,有不当之处还望指出。关于 Tendermint 可探讨之处很多,不是这一篇文章可以概括的,我们以后找机会接着聊。

参考资料:
1.《共识算法的比较:Casper vs Tendermint》https://ethfans.org/posts/consensus-compare-casper-vs-tendermint
2.《干货 | 理解权益证明安全模型的原理》 https://ethfans.org/posts/understanding-the-basics-of-a-proof-of-stake-security-model
3. 《Cosmos 上线诸王了,但是“为什么跨链“依然有待探寻》https://mp.weixin.qq.com/s/az2XnCJDdMi3LrukKY3ypQ
4.《Tendermint: 共识概览》 https://blog.csdn.net/simple_the_best/article/details/77198837 
5. 《干货丨区块链中的随机数》https://ethfans.org/posts/35994

上一篇: Dai稳定币是什么币?Dai币的介绍、总量及未来前景
下一篇: 区块链分叉是什么意思?
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
比特币
61102.32 USDT
¥443,902.24
-1.28%
Solana
137.3 USDT
¥997.47
-0.56%
Filecoin
4.3497 USDT
¥31.60
-1.89%
Curve
0.2964 USDT
¥2.15
-6.5%
柚子
0.5735 USDT
¥4.17
+0.1%
Terra Classic
8.158E-5 USDT
¥0.00
-1.75%
Shiba Inu
1.722E-5 USDT
¥0.00
-3.26%
Conflux
0.156 USDT
¥1.13
-1.27%
狗狗币
0.1225 USDT
¥0.89
-3.47%
dYdX
1.379 USDT
¥10.02
-0.74%
Arweave
25.8273 USDT
¥187.63
-10.11%
以太坊
3383.95 USDT
¥24,584.06
-0.19%
最新快讯
更多
新SwellrswETH池已上线Penpie
2024-06-27 11:34:46
Custodia要求上诉法院指示地区法院撤销对Custodia主账户的拒绝
2024-06-27 11:26:52
Custodia寻求法官撤回授权美联储拒绝其主账户申请的决定
2024-06-27 11:26:52
XT即将上线新一期鲨鱼鳍理财
2024-06-27 11:26:33
WEEX唯客将于7月1日开启第二期Launchpool,投入WXT瓜分37,000ZK
2024-06-27 11:25:57
币界网实时价格午报:PEPE站上0.000012722美元/枚,涨幅达3.03%
2024-06-27 11:23:47
数字资产银行Custodia寻求法官撤回授权美联储拒绝其主账户申请的决定
2024-06-27 11:22:40
下载币界网APP