一个系统如何自我管理,一直以来是哲学界一个思想命题。当然有一部分科学家也在思考这个问题。在比特币之前,去中心化数字货币的探索从未停止,最终他们都成为了探索中的失败品。一个绕不开的命题就是,要想去中心化,就要建立分布式共识,要想建立分布式共识就必须解决拜占庭将军算法不可扩展的问题。
人类无法完全实现自主式的自律,人类必须依赖秩序的制衡。我们所有的困境都在于我们相信自己是正确的、善良的、理性的、正义的,这里面隐含着一个概念就是我们都是逐利的。由于这个原因就构成了我们每个人在错误与修复这一循环中的第一推动力。
2.分布式拜占庭将军算法源自美国军方火箭技术。简单来讲就是为了防止火箭的操控系统失灵或者操控系统被恶意入侵,科学家就为火箭配备了若干个备用系统,并用此算法得出结论,当正常工作的操控系统大于等于2/3时,火箭不受失灵或恶意的操控系统的影响。即,使用此算法系统的容错率为最大不超过1/3。
至于2/3这个结论是如何得出的呢?关于这点我们需要至少一个专题来进行证明,因此在这里不做论述。大家只要知道这个结果就可以了,这并不妨碍我们对比特币交易系统的理解。
继续我们的故事:
大聪明当然知道“拜占庭将军算法”这个东西的,但他为什么不用这个办法解决他现在面临的部落里的人民之间缺乏信任的问题呢?仅仅是因为他还不能够确定诚实的总人数是否大于2/3么?
当然不是。
大聪明发现一个问题。即使部落里诚实的人大于2/3,在理论上它是可以用“拜占庭将军算法”这套逻辑来解决人们之间对于他的字符串被大家认可的问题,即共识问题。但是,这样以来,为了验证大家是否说了实话,部落里的每个人都要到其他人那里挨家挨户的跑一趟。这样好像也太复杂了,大家凭啥浪费这个时间精力这样做。
试想一下,即使大家愿意心甘情愿的一趟一趟跑,如果这个部落里有4户人家,大家一共要跑9趟,如果这个部落里有10户人家,大家一共要跑81趟,如果有20户人家要跑361趟…
部落里可住着好几千户人家呢。大家要跑多少趟这个数字可是大的惊人。
举个栗子:
1个人住10平米很舒服,2个人住20平米也很好,3个人住30平米也不错…
总之,房间面积和居住人数彼此成线性关系。于是,人数和房间面积可以按照这种比例无限的扩展。
如果1个人住10平米,4个人住20平米,9个人住30平米,16个人住40平米,当房间为100平米时人已经挤爆了。
3.这也就是为什么拜占庭将军共识算法从诞生以来一直被大家忽略的原因。
因为它不能部署于大规模网络节点之中,如果这样做的话网络消息传递的复杂程度会随系统规模的线性扩大呈指数型增长,最终导致系统不可用。
因此,这个算法一直以来都只能应用于航天航空和一些军事领域等不超过100个节点的情况之中。
但对于一个交易系统来说,如果只能支持不超过100个用户节点的话,那么这个用户规模甚至不足已覆盖一个五层的家属楼,这实在称不上是一个交易系统。
换句话说,一个合格交易系统的第一要素必须是可无限扩展的。
于是李四给大聪明出了个注意:
这样吧,咱们用你的字符串做每笔交易之前去酋长那里报备一下不就好了么,我们可都是相信酋长的,你也不用让我们这么费劲了。
但是如果这样做,大聪明手里的字符串就和酋长手里的贝壳没有任何区别了,这依然是中心化的交易方式,我们之前说过什么是中心化在此不做赘述。
难道大聪明就没有办法了么?
--未完--