2017年9月11日星期一

“中本聪炸弹”:为什么说奖励机制可能导致比特币的失败

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
"中本聪炸弹":为什么说奖励机制可能导致比特币的失败  阅读原文»

前情提要

本文,我们继续讨论比特币相关的话题:

如何定义比特币挖掘的盈利能力?

最初设计时考虑的采矿速度应适应什么原则?

为什么从长远看这些原则会造成虚拟货币的失败等。

假设读者已经了解了比特币的基本机制,熟悉区块链、挖矿、采矿池、区块奖励等概念。

注意:在这篇文章中,仅提出了一个理论上的推测,即在考虑比特币现有机制和各类算法规则的基础上,探讨一下未来比特币网络可能演化的情景。我们并没有深入考虑并分析矿工的支出、世界不同地区的电价、银行利率或设备回收期等因素。

51%攻击

比特币社区的成员很清楚"51%攻击",即如果一个矿工控制了超过一半的挖掘算力(mining hashrate,即采矿哈希值),那么他就能够做到:

  1. 把他的比特币转移到交易所、某个机构或个人,卖出所有的比特币,用于支付商品、服务或者交换传统货币、提现;
  2. 因为拥有51%的算力,能够重新生成从还没向交易所转币的区块,但不将这些新生成的块显示给其他矿工;
  3. 等待区块交付;
  4. 发布生成的块链(只要攻击块链的长度超过原块链2个区块,其他所有的矿工都会将丢弃原块链,接受新块链)。

同时,对于其他矿工而言,将发生下列情况:

  • 其他的矿工将不得不接受欺诈的区块链版本,并认为它是唯一的、真实的块链,因为它更长,比其他所有矿工的挖掘算力总和相比更强大;
  • 只要欺骗者没有花费其拥有的比特币,就将继续保持算力,能够收到商品并保持他的比特币;
  • 欺骗者接收所产生的所有区块的奖励,而不是一个半块的,半块的比特币只有在公平挖矿并将其添加到公共链时才会产生;
  • 在51%攻击中,欺骗者最有可能使用比特币购买另一种加密货币,因为这样做更快速、更安全且不可逆转;

比特币社区也认为,如果发生"51%攻击"的话,将关乎与比特币的存亡问题。

重要的是要注意,无需51%或更高的算力就可以发送一个成功的"51%攻击",的确,有可能利用较小的算力就可以完成这类攻击。例如,拥有30%的算力就有18%的机会能够在一行中生成五个块的链,这将比共享的更长。在这种情况下,攻击者将获得与"51%攻击"相同的权限。万一失败了,攻击者还可以再试一次。接受比特币付款的大多数服务只需要五个"确认",这意味着存在满足这一假设的可能。

挖矿难度调整

每产生一组2016个区块后,比特币网络就会调整挖矿的困难。困难的标准是:挖到一个区块的时间的理想时间是10分钟,因此,开采2016个区块一般需要两周时间。如果仅用一个星期就产生了2016个区块,那么下一组挖矿的难度大概会增加了一倍,这样做是为了保证需要花两周时间才能在同一网络的算力产生下一组的2016个区块;反之,则减少挖矿的难度。

值得一提的是,比特币网络使用软件对挖矿难度的调整范围进行了限制,禁止在一次调整中改变开采的难度超过四倍。

这些规则会对比特网网络产生直接的影响。如果在某一组2016个区块开采期间,挖掘算力增加或减少,会发生以下情况:

  • 不会影响其余矿工以任何方式得到的报酬。奖励是由矿工的算力决定的而不是他们分享的共同算力。例如,如果一半的算力已经停工了,其余的矿工将开采两倍的区块,但这需要加倍的时间,而收入会保留。
  • 会直接影响产出率。如果99%的矿工停止采矿了,那么下一次采矿难度重新评估的时间将延长到4年,生成一个块将需要大约16小时。

比特币的作者设想上述算法可以通过推出低功率的设备、恢复其余设备的合理的边际来平滑的调整比特币网络的性能。然而,这种独特的挖矿困难重新评估机制却为矿工们打开了另一个策略的大门:他们可能会通过人为地降低网络性能来欺骗算法。毕竟,当挖矿设备突然断电时,当天产生的收入保持在同一水平;当挖矿设备突然启动时,成本就会降低。

挖矿激励与矿工的自由意志

除了收获一个区块(一个已发行的货币)作为奖励外,矿工处理交易数据也会获得奖励,目前的费用大约是块奖金的10%。采矿盈利能力取决于区块奖励(新开采的区块+交易费)和采矿的难度。如果区块奖励的价值高、难度低,那么矿工能够赚更多的钱。本文中我们对这个问题不做深入讨论。

另一个需要说明的问题是,采矿池通常并不能直接控制矿池里的采矿设备。每个参与者和挖矿设备的拥有者都可以自由选择他们想要参加的矿池。从一个矿池跳转到另一个矿池通常是基于利益考虑。

然而,矿池的主人能够统筹安排矿池中的算力,经研究我们认为,所描述的行为策略应该只由20名矿池主来调整和实施:矿工在这里没有丝毫作用,即使他们拥有自己的"自由意志"。

比特币网络的算力稳定情况下,矿工的行为模式

为了简单起见,现在假设你控制了比特币网络的一半算力,你可以保持挖矿机器一直运行,并获得一半的奖励(约为1008块)。

您还可以执行以下操作:

  1. 持续现状,直到下一个挖矿难度调整的阶段;
  2. 关闭你所有的采矿设备;
  3. 等到剩下的矿工花费4个星期的时间得到2016个区块;
  4. 在此之后,比特币网络将减少下一阶段的开采困难;
  5. 打开所有的采矿设备,整个网络将在一周内挖掘出2016个区块。

只需花费一个星期的时间,你将得到约1008个区块的奖励。

第一种情景假设是:五周(上图中最后的4+1周)的时间内,如果挖矿设备正常运行将产生5/2×1008 = 2520区块的奖励,但你需要缴纳五周的电费。第二种情景假设是:挖矿设备仅在第五个星期运行,将得到1008个区块的奖励,只需支付一周的电费。

不妨假设电费只占奖励的90%左右。那么,上述第一种情景下,五周的利润相当于收获了2520×0.1 = 252区块的奖励,而第二种情景下,奖励成本= 10080.9×1008 / 2 = 554.4,即收获了554.4区块的奖励。这意味着第二种情景收获的利润是第一种情景下的两倍。

具有不同参数的经济利润的矿工行为

下面,我们假设:

  • 一个聪明的矿工,控制了整个网络的算力的份额是x;
  • 比特币奖励的所有的2016个区块是A;
  • 两周时间内挖矿设备运行的电费和维护费用等于C。假定房屋租金和停工费用是微不足道的。为了简化计算,故意忽视了设备的折旧费用。

因此,将发生以下情况:

  1. 两周时间,正常运行,矿工的报酬是Ax �CCx;
  2. 如果一个聪明的矿工关闭他的采矿设备,比特币网络产生2016块需要花费1/(1-x)的时间。(例如,如果x=1/3,那么完成任务需要花费5倍的时间。)
  3. 当挖矿困难调整后,聪明的矿工打开挖矿设备,此时网络将花费(1x)倍的时间完成挖矿任务。(例如,如果x = 1/3,那么它将需要2 /3的时间,大约10天。)
  4. 这两个时期的总时间将(1/(1-x)+1-x)×(2周);
  5. 因此,在正常情况下(没有停机时间),在这两个时期内正常工作,可以让矿工获得的收入是:

这意味着所有矿工的利润都比常规时期延长了一倍多。

  1. 一个聪明的矿工(中间有停机时间)在第一个阶段将一无所获,但在第二阶段,会花费较短的获得奖励:

这意味着聪明的矿工获得了一个独特的净利润,另外还节省了x的成本。

  1. 缓慢期内,所有的非断开的矿工将获得Pslow period= A C,

快速期内:Pfast period= A C (1 x),此时奖励是一样的,矿工的工作速度更快。

综上所述,很容易可以看出:

  • 如果矿工的支出正是等于他们的奖励(净利润为零),那聪明的做法会让他们获得A乘以x二次方的净利润。
  • 如果矿工不需要支付电费(100%的盈余),那么他们正常工作比停工,将会获得两倍以上的收入。
  • 让我们找到了功率X为多少的矿工应该关闭设备,以便于最大限度地提高所有矿工的利润率:M = (A C)/A:

由此可知,关键值是:

时,方程式达到最大值。简单举例说明其含义,当M=4%时,聪明的矿工应该暂时禁用80%的算力。

为什么矿工不使用描述的最优策略?

比特币网络总算力示意图,一年内增加了4倍

比特币网络在整个时间段内挖矿难度的增加。从2016年1月开始,难度增加了8倍,就像比特币的价值一样。

上一小节中所描述的最优策略只有在整体网络挖矿困难不随时间增长的情况下才有意义。否则,关闭设备并会不会导致挖矿难度的降低。

直到现在,挖掘算力一直都在快速增加;这是比特币汇率增长的后果之一。矿工的收入以比特币评估,但他们用传统货币支付费用。

【知识】9月10日 - 每日安全知识热点  阅读原文»

2017-09-10 11:05:10 阅读:2254次 收藏 来源: 安全客 作者:trip1e_chee5e

http://p6.qhimg.com/t017313015b51e6034e.png

热点概要:安全研究人员披露D-Link路由器漏洞、欧盟进行网络攻击军事演习、Chrome插件惊现恶意代码、XML的花式利用、哈希可视化――现实世界安全的新守护者、Struct2 Freemarker标签远程执行漏洞分析与复现。


资讯类:


安全研究人员披露D-Link路由器漏洞

http://www.securityweek.com/unpatched-d-link-router-vulnerabilities-disclosed


欧盟进行网络攻击军事演习

http://www.securityweek.com/eu-defense-ministers-put-test-mock-cyberattack


技术类:


利用JS框架绕过XSS缓解方案

http://blog.portswigger.net/2017/09/abusing-javascript-frameworks-to-bypass.html


Unreal IRCd服务攻击实战教程

http://www.hackingtutorials.org/metasploit-tutorials/hacking-unreal-ircd-3-2-8-1/


机器学习对抗资源集合

https://github.com/yenchenlin/awesome-adversarial-machine-learning


开源可定制远程管理工具(RAT)

https://github.com/SySS-Research/outis


XML的花式利用

https://blog.pragmatists.com/xml-be-cautious-69a981fdc56a


哈希可视化――现实世界安全新的守护者

http://www.netsec.ethz.ch/publications/papers/validation.pdf


利用RCE漏洞攻击dRuby RMI Server

没有评论:

发表评论