b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

分布式系统与计算机网络 漫谈分布式系统(7)

电脑杂谈  发布时间:2018-02-05 22:07:32  来源:网络整理

根据前面的介绍,我们在区块链中使用的消息应该属于签名消息。具体体现在:每一个区块中的交易都进行了签名,保证无法被篡改,也能保证这个消息只能是由最初的发起者发出的。那么,这属于上述第二种情况,难道说区块链网络中忠诚节点的数目没有要求?显然不是这样。比如在比特币网络中,要求恶意节点不能掌握多于50%的算力。为什么两者之间似乎不一致呢?这是因为,「拜占庭将军问题」只是关注一个子问题,它关注的是其中一个将军(称为主将)向其他所有将军(称为副官)发送命令的情况。而最终对所有命令进行汇总则要求所有忠诚的将军达成共识。如果忠诚的将军数目太少,不管最终确定的作战计划是什么,还是会失败,因为叛徒可能不执行这个作战计划。这类似于比特币网络中的情况,其中对于最长链的选择过程,就相当于将军们对所有命令进行汇总的操作(按多数投票)。

在「拜占庭将军问题」中,一个叛徒可能向不同的将军发送不一致的命令。如果算法设计得不好,就可能造成最终无法达成一致。在区块链网络中,类似的行为将会成本很高。这是由于矿工节点发布区块的消息必须经过工作量证明,它如果发布不一致的区块,每个区块都需要工作量证明,这将耗费它大量的算力。另外,这样做也没有动机,它只会产生更多分叉,不会产生最长链。

在「拜占庭将军问题」的框架下,如何看待工作量证明呢?它其实相当于提高了做叛徒的成本,从而极大降低了叛徒超过半数的可能性。这里可以做一个对比,假设历史上存在真实的拜占庭将军问题,那么可以想象,敌军的打入拜占庭将军这个群体中的成本应该是很高的。所以,可以认为将军中的叛徒不至于太多。但对应到计算机网络中,如果没有类似工作量证明的机制,那么成为叛徒矿工的成本就是非常低的。这就很有可能使得叛徒比忠诚的矿工还要更多。

当然,从经济学的角度看,在需要工作量证明的前提下,成为叛徒矿工也是不明智的。因为它既然拥有比较强的算力,还不如按照合理的方式通过挖矿赚取收益更为稳妥。不过这是技术之外的因素了。

除了工作量证明这种机制(Proof of Work)之外,还有一种被称为Proof of Stake的机制。虽然有人质疑这种机制存在缺点(比如nothing at stake),但站在「拜占庭将军问题」的角度,它也是相当于提高了做叛徒的成本。这就好比一个要混入董事会,成本肯定是比较高的,因为他需要首先持有大量股票。

区块链到底是什么?有人说是个无法篡改的超级账本,也有人说是个去中心化的交易系统,还有人说它是构建数字货币的底层工具。但是,从技术的角度来说,它首先是个解决了拜占庭将军问题的分布式网络,在完全开放的环境中,实现了数据的一致性和安全性。而其它的属性,都附着于这一技术本质之上。

在今天这篇文章中,我们从分布式系统的一致性问题开始谈起,直到「拜占庭将军问题」,最后又跟区块链产生了关联。这几部分逐步深入,虽是「漫谈」,逻辑上却是前后贯穿的。

最后,区块链,是不是一项伟大的革新?是。特别是比特币系统,它是分布式系统技术与金融系统业务相结合造就的一次成功的创举。

区块链技术到底会不会颠覆未来呢?我们现在只能说:有可能。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-65268-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...