区块链的不同玩法

|区块君 2018-05-13 09:57:08 750 来源:区块君
摘要:在应用数学里面有一个非常有趣的分支叫(Game theory),中文翻译为博弈论。按照英文确切地翻译过来应该叫做“游戏”理论。但这里的“游戏”可不仅仅是我们平时娱乐的范畴,否则也没

在应用数学里面有一个非常有趣的分支叫(Game theory),中文翻译为博弈论。按照英文确切地翻译过来应该叫做“游戏”理论。但这里的“游戏”可不仅仅是我们平时娱乐的范畴,否则也没有数学的研究价值。从广义上来讲,“游戏”是一种模型,现实世界里很多涉及到策略博弈的场景都可以用这种方式来建模:


那广义游戏模型里面包含哪几个要素呢?


1

规则 :

首先游戏里面必然要有规则,这个规则对所有玩家公开和透明,并且无法随意修改,每个玩家必须遵守规则

2

玩家 :

每个玩家扮演着“理性人”的角色,所谓“理性人”就是可以不择手段将自己的利益最大化

3

奖惩 :

奖励是每个玩家参与这个游戏的动机。奖品是通过相互竞争的方式获得。而惩罚是对玩家的约束,使大家不能随意破坏规则


这三个要素相互作用构成了这个模型稳定的三角结构

就如开头所说,现实世界里很多应用场景可以套用这种模型。比如像股票市场,它有交易规则,并且这个规则受法律保护。利润作为奖品让玩家有参与的动机。投资者就好比是玩家肯定是想法设法让自己赚更多的钱。

 

区块链也一样,一旦涉及到去中心化,那必然就要打造一个游戏模型。就像比特币,你要让大家来帮你维护账本那就需要有激励,所以比特币就是奖励。而获取比特币的方式肯定需要通过一个指定的规则,这个规则肯定是公开和透明的。这个规则就通过代码的形式写在计算机程序里,并且上传在github上,每个人都可以去下载查看。这就是比特币协议(Bitcoin Protocol)。

 

在这套游戏模型里面,规则毫无疑问是最根本也是最重要的一环。由于玩家都很理性,需要将自己的利益最大化,这就同时意味着他们会想方设法寻找规则的漏洞来套利(Arbitarge)。好的游戏规则是不能让玩家轻易套利的,否则就会导致整个体系的大崩坏。根据纳什均衡理论(Nash equilibrium),任何一个玩家采取的策略都是对其余所有方采取策略组合下的最佳对策;当所有其他人都不改变策略时,为了让自己的收益最大,任何一方都不会(或者无法)改变自己的策略。听上去是不是有些烧脑?简单来说就是在每个玩家使用最佳策略来进行博弈的时候,整个游戏会进入一种动态平衡,这种平衡就叫纳什均衡。好的游戏规则最终会使整个系统进入纳什均衡,并且在这种状态下可以使整个系统运行达到最优化。


比特币这套游戏的玩法最终就可以实现纳什均衡

在这种均衡下每个玩家都会乖乖地去维护好账本。这具体是如何做到的呢?

首先这是一套分布式的记账系统,每个玩家所控制的节点都有一套账本,以区块链形式存储(关于区块链的存储形式在我之前的文章里有提到,这里不再赘述)。比特币就是记账的奖励,它产生过程类似于挖矿,所以玩家本身也被称为“矿工”。矿工每“开采”出一个新区块都有固定的奖励,而这个奖励会随时间递减。创世区块是50个比特币,现在是12.5个。乍一看这个规则没毛病,但是值得注意的是,这套规则是建立在区块链上的,所以自然有也没有法律的保护,也就是说对于规则的破坏没有任何惩罚措施。就像我之前说的,每个玩家都会想方设法地追求利益最大化。所以自然会有人想到去恶意地修改账本,从而增加自己的收入。为了解决这个问题,中本聪就发明了一套叫做工作证明的共识机制(Proof of Work),简称POW。下面我们就来讲讲POW :


POW(工作证明):

设想一下,如果黑客通过篡改账本来获得的收益还有没有老老实实记账来得多,那自然他也没有任何动机去这样做。工作证明的机制就是基于此存在的。首先他让挖矿变得不容易。挖矿本身其实就是一个寻找哈希值(Hash Value)的过程,因为每一个区块都是通过一个独一无二的哈希值关联的。并且每个哈希值需要符合一定的规范。每当当前的区块被大量的交易信息塞满,那所有的结点就得去新建一个新的区块来存储新的交易内容,并且要找到一个符合规范的哈希值与之关联。而工作证明这套机制就是让这个哈希值没有那么容易被找到。那具体是如何做的呢?


这里使用了一个SHA256的函数,这个函数在我之间文章里也有介绍过。它的特征就是值域均匀分布,并且没有办法逆推。而我们要获得的哈希值就是这个函数的输出,它的输入包含了所有区块的信息(如创建时间,区块高度,交易信息等等),我们设为x,除此之外还有前一个区块的哈希值(prev hash),和一个自变量(Nonce)。所以公式变为:


Hash Value = SHA256(x, prev hash, Nonce)


区块信息x肯定是不变的,prev hash 代表前一个区块的哈希肯定也是不变的,唯一可以改变的就是Nonce,所以Nonce就是这个函数的解。那输出的Hash Value要 符合什么样的标准呢?中本聪定义了一个阀值,规定输出必须要小于这个值。由于输出完全随机,所以只能通过暴力求解。这个设计的精妙之处在于这个阀值可以自动调节的,阀值越小,求解难度也越大。这就是“挖矿”的全过程,所以玩家本身也被称为矿工。如果这时候黑客篡改了其中的交易信息,那输出的哈希就会立马改变而脱离规定的范围,同时后面的区块哈希也会跟着改变。


1.png


所以为了修复这一系列区块的哈希值,就必须要重新再进行多次复杂的求解过程。也就是说对于黑客来讲,他篡改账本而消耗的算力成本会比普通挖矿更大。那假如黑客废了九牛二虎之力真的把账本给篡改了,那他是不是真就能够套利呢?其实不然,因为你只是改了自己节点本地的区块链,所以你必须要把这条链同步到大多数结点上才能让你链上的交易得到确认。而其他矿工节点是否会认同你篡改后的链还不一定呢。


那矿工是如何判断的呢?根据这条链的长度来判断,链越长他的POW越大,所以其他的矿工节点会选择最长的那条链来进行同步,这也是工作证明(POW)机制的由来。所以对于黑客来讲,他在对篡改后的区块链进行挖矿的同时,已经有其他矿工结点开采出新区块了,所以他的那条链会显得更短,从而被其他结点抛弃。除非他攫取超过51%的算力赶超其他结点的出块速度总和,否则最终是竹篮打水一场空。而获得51%的算力显然需要投入巨大的成本,包括硬件,电力等。黑客显然没有动力去这么做。

 

当然POW也并非完美,其中有一点最大被人诟病的地方就是它对于算力的消耗是巨大的,而且大部分的算力都被消耗在无意义的算术求解中,这个对于资源来讲是一种极大的浪费。像Apache的创始人Ben Laurie就抱怨说比特币的挖矿已经消耗了全英国5% 的电力。


2.png



并且未来量子计算机的出现有可能会超越大多数计算机而进行51%的算力攻击。所以针对这些弊端,应运而生了一些区块链的新玩法。

 

POS(权益证明) :

POS是 Proof of Stake的简称。Stake就是持有代币的份额。与POW不同的是,每个玩家是通过提供自己拥有的代币份额来作为验证的标准,而不是通过挖矿的算力证明。简单来说玩家拥有的份额越大,他可以挖到的区块也越多,也就意味着如果黑客要篡改账本的话首先要购置51 %的代币份额才行。所以极大地增加了黑客攻击的成本,而且即使他拥有了51%的份额,也不会进行恶意篡改,因为他已经是这个游戏里最大的股东,攻击它就等于在攻击自己。并且跟POW相比的优势在于,生产区块的过程中,每个节点不需要进行非常复杂的求解,从而也就节省了计算机的算力资源消耗。同时也意味着,每个玩家在短时间内可以产生多个区块。而区块的选择是通过玩家在这个游戏里面所持有的代币总量多少决定的,持有份额最多的那个被选出生产区块,拥有“铸币权”。所以玩家扮演的角色不再是“矿工”而是“铸币师”。但是这个机制有个问题,就是拥有最多筹码的庄家会垄断铸币权,这个显然是不公平。所以针对这个问题,有两种解决方案:


1

币龄(Coin Age)法

所谓币龄,就是代币持有的时间长度。由于每个区块都有时间标记,所以区块里每一笔交易的时间也是跟出块时间相互匹配的。也就是说你通过当前区块时间减去目标区块时间就可以得出币龄的值。所以我们往往也用区块数来作为币龄的单位,最小值为1。通过引入币龄作为权益证明的另一个参数,可以制衡大筹码庄家的垄断。与POW的公式类似,只不过在这里是用币龄与权益份额的乘积作为阀值。

  Hash Value  <= Coin Age * Stake

所以Coin Age越大,目标的乘积——阀值也越大,也就是说越容易找到一个区块。找到这个区块以后,玩家就获得区块锻造的权利,Coin Age会自动设为0。这时候相当于进入冷冻期,玩家没有办法获得区块锻造的权利,一般冷冻期是1天到90天不等。只有等到解冻之后,才可以恢复Coin Age的值。通过这个办法就很有效得制约了大庄家对铸币权的垄断了。点点币(Peer Coin)作为POS的鼻祖,用的就是这个方式。

2

随机区块选择(Randomized Block Selection)

这个方法是通过引入一个在[0,1]区间内均匀分布的随机数。假设有N个玩家,每次在选择“铸币师”的时候,会给每个玩家分配一个随机数。假设这个随机数是U, 而玩家的代币份额是S,  S/U最大的那个玩家会获取铸币权。这个方法其实是一个伪随机过程,虽然有一个均匀分布的随机数会对结果产生影响,但是拥有份额比较大的玩家被选为铸币师的概率也更大。而且每个玩家的代币数量都是公开的,所以基本上每个玩家也多少可以预测到谁会被选中。应用这个算法比较有代表性的就是Nxt和Black Coin。


POS可以节省算力,所以与POW 相比,交易费也会更低,这对用户来讲是一个利好。当然它也有缺陷,一个比较明显的缺陷就是由于短时间内可以产生多个区块,所以被DOS攻击的可能性也更大。我在前一篇文章讲过DOS,这里不再赘述。即使没有DOS,由于玩家的参与成本降低,所以会有更多节点参与进来铸币,所以网络的运行效率也会比较低。针对这种情况,有些人提出了一些改进版的POS算法,最有代表性的就是DPOS。

 

DPOS(股权委托证明) :

这个机制类似于美国的选举人制度,就是通过投票选出几个超级节点,只有这几个超级节点才可以进行挖矿。典型的代表就是EOS。EOS会选出21个超级节点,100个备用节点,这21个超级节点负责所有交易的验证,记录和区块的生产。至于投票,每个EOS的拥有者都有投票权。你必须用手中的EOS代币来进行投票,1个EOS可以投30票。这30票必须要给不同的候选人,也就是说每个候选人在一次投票的过程中可以获取的票数不能超过一张。30票的数量还是足够多的,所以你也不用纠结到底投给谁。作为回馈,被选上的超级节点需要把出块的奖励分配给给他投票的人。这种机制和美国的参议员选举何其相似!这个办法的好处就是可以极大地提高交易速度,解决网络拥堵,因为只有21个节点。被选上的节点一般属于那种精英节点,首先它拥有非常好的硬件——矿机,它背后的团队有一定的技术水平,更重要的是人靠谱。这个21节点作为去中心化的存在也可以相互制衡。其实仔细观察你会发现,这种玩法慢慢在往中心化方向靠拢,它是完全中心化与完全去中心化之间的一种平衡。这也符合V神(Vitalik Buterin)提出的“不可能三角”理论:即当前的区块链无法同时达到可扩展性(Scalability),去中心化(Decentralization),安全(Security),三者只能得其二。所以在现实应用中,要根据实际场景来做出适当的权衡。DPOS就是对“去中心化”的一种退让。

 

各位读者,你们也可以开动脑筋想想,区块链还可以用什么样的玩法?


审核人:

标签: 区块链 博弈论

觉得不错,给小编个打赏吧

评论
1
0

登录后才可以评论

查看全部(0)

相关阅读

单公子

评论(0

荣格财经名家专栏

展示荣格财经专栏名家个人发布的最新、最热区块链资讯文章。

推荐名家 更多>

最新快评更多>

推荐阅读 更多>

关注微博

关注荣格财经微信公众号

荣格财经读者11群

加入荣格财经技术交流群