技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序
电商实战
比特币的共识问题使用了博弈论的研究,这一点有些人知道有些人不知道。但是博弈论到底给比特币这样新诞生的软件带来了什么,可能很多人都不清楚。博弈论的应用和Proof of Work的实施,无疑是非常天才的一个做法。
说到博弈论,很多人多少都知道一点,还有人从美丽心灵里知道纳什的故事。但是博弈论到底是什么呢?
博弈论,英文叫做Game Theory,是20世纪经济学最伟大的成果之一。它研究在一个两个或者多个个体参与的群体博弈行为中斗争各方是否存在着最合理的行为方案,以及如何找到这个合理的行为方案的数学理论和方法。一般博弈论从囚徒困境和选举游戏开始讲起。
囚徒困境
我们一般学习博弈论的时候都听说过囚徒困境。这里是诸多囚徒困境版本里的一个:有嫌疑犯A,B两个人,因为偷银行被抓起来,单独隔离审查。囚犯互相无法交流。警察给与嫌疑犯招或者不招的选择。
选择的结果如果A,B同时招供,各判刑10年。如果一方招供另外一方不招供,则招供一方无罪释放并且获得巨额奖金。不招供一方枪毙之。如果双方都不招供,双方无罪释放。
这个故事里各种奖励处罚可以调节。常用策略是,无论是A或者B分析如下。如果对方选择招供,那么自己招供的时候判刑10年,不招供的时候枪毙,招供好。如果对方选择不招供,那么自己招供可以无罪释放还拿奖金,自己不招供仅仅无罪释放。所以选择还是招供更好。总的来说,招供比不招供好。
但是两个人如果都这样选择了之后,结果就是各判刑10年。但是如果两个人都选择不招供,双方都会无罪释放。可以想象,这样的设定,按照聪明人做出来的选择,正好满足了警察设定规则的初衷,坏人统统入狱。
从某种角度来看,这既反映了规则设定者的强大,又说明在公共环境下,Trust是多么宝贵的财富。
选举游戏
这里我们讲另外一个非常著名的群体博弈论的例子。假设现在有若干个人,大家一起玩选举游戏。这里的选举不是选某个人干什么,而是大家先上交100块钱进一个奖金池。然后每个人可以自由的从1到100里选一个数字出来。没有人知道别人选了什么。数字可以随便选,可以重复。
等大家都选好了数字之后,我们对这些数字求个平均值。最接近平均值2/3的那个人拿走所有的奖金。如果若干个人平局,就平分奖金。只要这些参与游戏的人都是非常非常聪明的人,这个游戏的最终结果是大家都选1。
理由并不复杂。假设大家都选100的话,那么平均值的2/3小于67,所以任何选了67以上的人机会就不大了。所以聪明人想一想,都不应该选67以上的数字。以此一遍遍自己脑子里类推下去,最终聪明人都会得出自己必须选1的结论。
比特币的共识问题
在这两个例子里,都有一个特点。如果系统本身是聪明的,追逐自己利益最大化的,那么一旦系统的制定者设置好了规则之后,整个系统就不以人的意志为转移的向着某个方向收敛。
比特币的共识问题简单来说就是比特币的账本得到整个比特币网络的确定。它的做法是通过挖矿来实现的。所谓挖矿,学名叫做Proof of Work。其实不是新鲜东西。
简单来说,比特币网络里面的每个节点都可以打包交易记录,成为新区块。但是一个新区块要被整个比特币网络接受,需要大抱的节点解一个很难的数学题。这个数学题在比特币里面是对新区块的头做SHA256密码级别的哈希两次。符合要求的解必须是哈希值前面若干位为0。
熟悉SHA256的人知道这个东西很难做,又没捷径只能硬拼算力。但是这些愿意拼算力的节点都是好节点,努力的做好事,由于它们的努力解题勤奋打包,保证了整个比特币网络的稳定。
共识问题中的博弈论
那么为什么这些节点都自愿的做雷锋烧电打包挖矿呢?其最主要的原因是做好人好事在比特币系统里面给与奖励,奖励一开始是50比特币,每隔4年下降一半。我们现在在第三个4年里,现在做好人打包就只有12.5个比特币了。
大家好像还是没有看出来这里面的博弈论到底在哪里。和囚徒困境以及选举游戏比起来,这个地方的博弈论不明显。我们需要展开说一下。
在比特币系统里,如果51%的节点是好人的话,这个系统就是安全的,因为坏人无法篡改账本。因为比特币是一个互联网上的P2P系统,谁都可以进来,所以我们不能阻止居心叵测的节点混进来干坏事。
#p#分页标题#e#
但是我们设想两种不同的情况。情况一是比特币系统是个自娱自乐的小系统,大家挖矿开心,想来就来想走就走。这是比特币系统的早期。币是空气币,毫无价值。所以有心人很容易投入机器占据51%的算力。但是统治了这个网络之后,拿到手的也只是一把空气币。何必浪费钱呢?
情况二是今天的比特币系统。无数庞然大物在挖矿打包做好人。每个新区块的12.5个比特币按照6000美元一枚计算也是8万美元的收入。无数多的人愿意赚这么多的钱而投入机器电力去挖矿,从而保证了系统的稳定性。如此庞然大物的系统,几乎不可能有一个团体有能力去占据51%的算力。因为代价付不起。
情况一是个玩具,情况二是一个极其稳定又分布式的记账系统,现实世界里见得人和见不得人的交易都可以稳定的来使用。
具体来说有三个要素在这个系统里:(1)比特币对法币的价格(2)愿意参与系统里面来做好人挖矿的算力(3)比特币系统的抗攻击能力。我们可以看到一个自我反馈增强(或者减弱)的循环。比特币系统里做好人挖矿的算力越多,系统就越稳定,也就有越多的人愿意用这个系统去做实物交易,从而也就导致了比特币对法币的价格更高,从而促进更多的人进来挖矿,从而系统更稳定。
可以说,只要系统度过了最初的艰难的阶段,那么这个自我增强的循环能力就可以不断入滚滚洪流一样带着比特币系统越滚越大,中本聪根本不需要再做任何的宣称,比特币已经是庞然大物了。这两个例子里,都有一个特点。如果系统本身是聪明的,追逐自己利益最大化的,那么一旦系统的制定者设置好了规则之后,整个系统就不以人的意志为转移的向着某个方向收敛。
博弈论在其他软件的未来
我本人并不是其他共识算法的粉。尤其是某大神在自己的多个作品里推荐的DPoS,更是违反了博弈论的基础,又怎么可能成功呢。EOS上线以后就开始跌跌不休,上线前还有那么多韭菜信。只能说李笑来说的傻逼的共识也是共识真的没错。
但是如果你要理解了博弈论这套东西设定好了规则和目标以后,系统就沿着设定的方向自动运行和发展了的精髓,就能想象其背后革命性的东西了。比特币用博弈论解决的是账本共识问题。但是如果经济学家们有能力在更复杂的系统下设定出目标和规则的话,我们未来的软件世界,实在吓人的无法想象。
只不过世界确实是太复杂了,用好博弈论去解决系统性问题,不是那么容易的。但是既然有了比特币,我想未来这个方向上一定会出现更为叹为观止的软件,自动驾驶不断扩张不需要人干预的软件。
很多人都在谈论智能合约,但我觉得,博弈论如何在这类系统里更深层次的应用,可能才是区块链带给人类最翻天覆地的变化。
【本文为51CTO专栏作者“徐飞”的原创稿件,转载请通过作者微信公众号“飞总聊IT”获取联系和授权】