第74届奥斯卡金像奖最佳影片《美丽心灵》讲的是著名数学家、经济学家约翰·福布斯·纳什的真实故事。纳什最广为人知的理论就是博弈论。博弈论里面的经典模型——囚徒困境,也有很多人熟悉了。“囚徒困境”讲的是,两个嫌疑犯作案后被警察抓住,分别关在不同的屋子里接受审讯。警察知道两人有罪,但缺乏足够的证据。
警察告诉每个人:如果两人都抵赖,各判刑一年;如果两人都坦白,各判八年;如果两人中一个坦白而另一个抵赖,坦白的放出去,抵赖的判十年。于是,每个囚徒都面临两种选择:坦白或抵赖。然而,不管同伙选择什么,每个囚徒的最优选择是坦白。
结果,两个嫌疑犯都选择坦白,各判刑八年。
如果两人都能选择抵赖,各判一年,显然这个结果好。但是为什么无法出现这个结果呢?因为两个嫌疑犯之间缺乏信任,彼此并不相信对方可能会坚持抵赖。这就是没有上帝在两个人之间协调行动的结果。如果两个囚徒之间存在一个上帝,囚徒能够坚决的执行上帝的指示,就会出现最优的结果:各判一年出狱。
区块链世界就是一个没有上帝的世界。在没有一个上帝能够协调众多节点,让节点一致行动的情况下,各个节点在一个博弈的环境下,如何合作?
比起“囚徒困境”一次交易定胜负的情况,区块链世界中,众节点面对的是一个无穷次交易的局面。在无穷次交易的囚徒困境中,如果双方能达到互相信任,理论上能够达到最优结果。因此,从博弈论角度,只要节点选择合作,就能够达到整体获取最大的收益。
综上,从理论角度看,区块链系统在设计上只要能够实现合作多方收益大于不合作多方收益,并且该经济系统能够持续运行下去,区块链的各个节点就会选择合作的方式来推动整体系统的持续运转。
在区块链系统中,合作的内容就是所有节点记录同样的数据。在很多区块链系统中,数据就是一个账目的集合——账本。只要所有人的账本是一样的,就可以在账本上面设计一系列经济系统。
“没有上帝”的区块链节点怎样向其他节点证明自己是合作的呢?
“没有上帝”区块链节点又是怎样知道其他节点是选择合作的呢?
如果区块链系统存在中心,那么每个节点只要询问中心即可获得答案。但是由于没有中心的存在,区块链节点只能通过它从P2P网络获取到的信息来判断其他节点的情况,同样它也只能通过发送信息给其他节点来证明自己。
“中本聪”提出了一个工作量证明机制,来实现了这个目的。简单的说,其原理就是通过做一个复杂的计算工作,让节点证明自己是抱着合作目的加入系统的。由于计算工作的复杂性与所有参与到区块链系统中的节点的总计算能力成正比,节点可以通过自己获取到的区块信息,推算出全网的总计算能力。少量的节点如果蓄意不合作,那么由于它们的总计算量比较小,他们无法一直计算出匹配全网算力的区块,因此单个节点可以知道接收到的信息是否是大多数节点所共识的。(这里面,大多数是指计算能力占大比例)
可以看出,工作量证明机制实现了无需向“上帝”询问,节点就可以知道其他节点的合作情况。
如果不合作的节点计算能力占多数,会是怎样的情况?如果不合作的节点之间不是协调一致的,那么他们无法形成有效的合力。因此,“混乱”的节点来扰乱整个区块链系统的运行,其结果相当于只有合作的节点的计算能力是有效的,其他节点都是无效节点,只能浪费合作节点的少量验证计算。如果不合作的节点之间是协调一致的,那么,他们占了大多数算力的时候,合作的节点依照工作量证明机制规则,也会和他们保持一致。
这样的结果是出现了一个以计算力为中心的中心化区块链系统。尽管这种情况违背了“中本聪”最初的设计思想,但作为单个节点,它并不知道出现了这样的中心,区块链的合作节点依然是保持一致的。(历史总是由强者书写的)
综上我们可以得出结论,区块链最核心的特征就是,在没有中心协调的情况下,能够保持多数节点上的数据一致性。这个特性也属于一种“拜占庭容错”。
在工作量证明机制中,节点凭单个区块即可判断出其他节点的合作情况。在权益证明机制(PoS)和股权证明机制(DPos)等共识机制中,节点则需要利用全链的数据来判断其他节点的合作情况。(需要全链的数据来计算币龄、权重等信息)至于需要身份许可机制的联盟链和私有链中,由于每个节点都知道全局的其他节点,所以判断合作情况就容易得多。
原文发布时间为:2017-12-19
本文作者:敖萌
本文来源:雷锋网,如需转载请联系原作者。