比特币和博弈论:我们仍然有待深入
之前的文章中我讨论了为什么比特币的稳定性基本上是一个博弈论命题,且最后以几个问题结束:
我们可以使用系统中策略语言和回报最大化中的交互组件来有效地建模系统吗?这个运算结果模型易于处理吗——我们能从数学上或者使用模拟来分析它吗?最重要地,它的预测与我们实际上观察的东西相符吗?
我们以矿池之间的“块代扣攻击”为大环境来看这些问题。
矿池是将挖矿人的算力聚合在一起进行联合挖矿。假设两个矿池(我们分别叫它们蓝矿池和红矿池)都在想办法最大化它们的挖矿奖励。比方说红色矿池的管理者决定潜入蓝色矿池并且使用一些红色矿池直接或间接控制的算力来降低蓝色矿池的效率。提交份额(部分工作证明)赚取一份回报,但是拒绝任何发现的有效区块并且不给蓝色矿池贡献任何生产性工作,通过该方式可以完成这个任务。初看上去这个方法似乎损人不利己,当然,蓝色矿池的效率受到损害,但是红色矿池也浪费了自己的算力。
要理解这种情况,我们要写下三条在矿池联合挖矿时管理回报的规则:
一个矿池在任何时期的收益都和其成员挖掘的比特币数量成比例,作为这期间挖掘的总区块的一部分计算。 一个矿工的回报和提交的“份额”数量成比例,作为矿池中所有成员提交份额的一部分。 矿工可以简单地创建多个伪身份(“sybils”),每个身份贡献极少量的挖矿资源。因此团体不容易发现一个矿工是否拒绝了有效的区块(也不能惩罚拒绝了有效区块的矿工)。
这些规则多少有些粗略,但因为其分析清楚它们被广泛接受作为一个起点。这种框架中,我们愿意决定一个区块拒绝攻击是否可以带来利益。这明显是一个重要的问题,从数学角度它也是定义明确的。我们已经从方程式中消除了所有人类行为的元素,因此我们可以用一些算法来检查这个答案。假如一开始,蓝色矿池和红色矿池都管理50%的挖矿算力。在这个例子中,我们忽略51%攻击。
块代扣攻击成功获得利益,红色矿池有50%的算力但是赚取了5/9的回报。
现在红色矿池投入一半资源(总数的25%)渗透到蓝色矿池,并且把仅有的份额而不是区块发送给矿池。这意味着所有到达比特币网络的区块,2/3来自蓝色矿池,1/3来自红色矿池。因此挖矿回报会以相同的比例分给两个矿池,2/3 和1/3。
但是蓝色矿池的回报中,蓝色矿池要支付其中的1/3给红色矿池,只留给自己2/3。这是因为红色矿池贡献了1/3的蓝色份额,而矿池以份额而不是区块为基础支付。回想下,蓝色矿池不能辨别不良行为来自于哪些矿工。加上红色矿池直接赚取的1/3,红色矿池的份额是5/9。
这意味着块代扣攻击理论上是可收益的,这就其本身而言是个非常有趣的事实。
但是令人难以置信的是,很长一段时间当人们被问到是否块代扣攻击可以获得收益时,莫名其妙地没有一个人做出上几段列出的计算来发现这个答案。该攻击的收益首次在Courtois和Bahack去年的论文中被指出时并没有引起多大注意。最近Ittay Eyal对它进行了细致的分析,做了一些关于多个攻击矿池情况的整齐的博弈论分析,这也引起了广泛的关注。
关于比特币挖掘稳定性的广泛设想,这不一唯一一个想起来明显的片断示例。至少还有Eyal和Sirer的自私挖矿(selfish mining)和Andrew Miller的羽毛分叉(feather fork)俩大案例,在每个案例中,矿工都可以突破默认协议获得额外潜在的收益,尽管分析这些挖矿模型是比较简单的,但发现这些bug却花费了数年的时间,并且我相信它们并不会是最后的bug.
因为某种原因我要用Bug这个词。如果你想想软件测试和模型校检中用来找到软件Bug和编写正确程序所取得的巨大进步,很难相信我们找不到一个方式来用常规语言表达比特币的策略空间并且自动探索异常的策略。这仅仅是因为博弈论和比特币研究社区没有重合吗?或者是因为某些原因博弈论中开发的用于自动平衡分析的工具不能处理比特币挖矿的域?[1]
比特币提供极佳的试验台来探索并改善我们对于博弈论的认知。由于大型金融股权激励,关于策略的理论知识被认为颇具价值。然而,不像在股票市场,该系统是“封闭”且相对容易建模和分析的。[2]我们只能慢慢地开始利用这个机会,而在这个领域的进一步工作能充实比特币和博弈论。
最后,目前为止关于矿工利用异常策略的证据很少甚至没有。但这没有以任何方式减少我们已经说过的分析类型的重要性,问一问是什么导致了模型与所观察行为之前的差距非常重要,我会在下篇文章中说说这个问题。
[1]比特币社区已经做了一些工作来创建挖矿模拟器。这是个不同的方法,但也是一个有意思的方向。
[2]对于要关闭的系统,我们必须忽略挖矿策略对比特币兑换率的影响等因素。下篇文章会主要讲这个。
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場