风险提示:理性看待区块链,提高风险意识!
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币的介绍、总量及未来前景
下一篇: 区块链分叉是什么意思?
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥265,385.78
37,183.98 USDT
+0.44%
ETH以太坊
¥14,450.05
2,024.64 USDT
+0.17%
USDT泰达币
¥7.20
1.01 USDT
-0.03%
BNB币安币
¥1,632.68
228.76 USDT
+1.48%
XRP瑞波币
¥4.32
0.60570 USDT
+0.51%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥400.46
56.11 USDT
+1.29%
OKBOK币
¥399.62
55.99 USDT
-0.01%
ADA艾达币
¥2.69
0.37700 USDT
-0.89%
DOGE狗狗币
¥0.55410
0.07765 USDT
-0.98%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.585E-5 USDT
-18.53%
Gala
¥0.00
0.02573 USDT
-4.37%
dYdX
¥22.68
3.2068 USDT
-0.62%
比特股
¥0.05
0.006495 USDT
-3.38%
PancakeSwap
¥15.71
2.2207 USDT
-1.33%
Filecoin
¥31.66
4.4749 USDT
-0.34%
FTX Token
¥29.36
4.15 USDT
+15.67%
Conflux
¥1.09
0.1538 USDT
-2.41%
Yield Guild Games
¥2.57
0.3627 USDT
-0.41%
Shiba Inu
¥0.00
8.17E-6 USDT
-2.27%
比特币
¥263,037.62
37183.98 USDT
+0.44%
比原链
¥0.07
0.01001 USDT
-4.95%
最新快讯
更多
汇款公司Kalyssi旗下钱包已集成AlchemyPay法币出入金解决方案
2023-11-28 19:26:47
PlanB:比特币可能不会再低于3.5万美元
2023-11-28 19:23:01
摩根大通和Apollo计划推出代币化“企业主网”
2023-11-28 19:14:28
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
OKX上线MATIC链上赚币产品
2023-11-28 19:06:21
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
下载币界网APP