作者:饕餮思文
字数:1040字左右。
本文由币车HIT(biche.yaofache.com)大V养成计划支持。
在讲共识算法之前,先讲一个关于共识问题的故事,拜占庭将军的故事。
拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。
拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。
接下来说一下,区块链和拜占庭假设的关系了。
共识算法:区块链系统的本质是什么?
区块链的本质是一个分布式应用软件,分布性系统首先要解决的问题就是:一致性问题。举个简单的例子,比如你银行卡里有钱,那么,不管你去任何不同银行查询,你的钱数是不会变的。
总而言之,一致性要求分布式系统中每个节点产生同样的结果或者具备同样的状态。
1)分布式系统作为一个逻辑整体,应该返回正确结果;
2)只要系统里大部分机器没问题,整个分布式系统就能有效运行;
3)系统的性能是可以横向发展的,木桶原理根本不起作用;
4)分布式必须是异步的,也就是每个节点可以按照自己的时序独立工作;
共识算法的目的是什么?
1)奖励机制:
比如,在拜占庭将军中,给忠诚的将军以鼓励,当背叛的将军并没有得到奖励时,被判的机制将会得到削弱。所以,这里引入博弈论:我们不再把节点说成公正/恶意两方,我们认为每个节点是由激励机制决定的。
2)随机性:
1,根据每一个节点的计算力做决定。谁决算力强,谁就有记账(做决策)的权利,比如比特币使用的是POW共识机制。
2,根据每个节点具有的资源来决定。所有的资源不能被垄断,不能一家独大,谁投入的资源多,谁才有资格获得记账权利。这是PoS共识机制。
算法的适用范围:
1,私有链。封闭环境内的,所有节点都可信任:比如大型企业内部网络,学校内部网等。
2,联盟链。半封闭状态,存在不可信任节点,没有限制和资格审核。
3,公有链。开放装填,没有任何限制和资格审核,任何人都可以参与。

今天先到这里,今后继续更新。
网友评论