风险提示:理性看待区块链,提高风险意识!

工作量证明(PoW)的内部攻击模型

2个回答

会小白4星评价

2020-05-05 15:15:38

工作量证明(PoW)的内部攻击模型

虽然,POW算法其实并没有协调选择博弈论中的安全性,因为多数联盟可以形成和有益的审查和回复块。但是当我们考虑PoW的攻击时,通常不会考虑到矿工联合攻击,而是想到购买矿工设备或者对更重链进行挖矿。这篇文章主要是谈论PoW对抗控制半数哈希力攻击的能力,不允许租用,或贿赂矿工,或与矿工进行任何其他形式的合作。

外部攻击

外部攻击者购买足够的GPU或者ASIC直到完成对可信网络的51%攻击”,或者至少不与攻击者合作。

假设通过给1个GUP可挖矿的区块链增加X哈希力,并且会让这个X哈希算力的GPU矿工从挖这个区块链转移到其他区块链(因为如果不这样,攻击者的链就会获利变少)。GPU挖掘假设是一种有效的、完全竞争的区块链市场。

在这个简单模型”中,对于有T算力的区块链,攻击者需要的算力是X=T/2,这些是非常多的GPU。

同时,假设通过增加X的ASIC算力,ASIC网络的算力提升了X。ASIC挖矿区块链是一种垄断市场。在另个简单模型”中,如果要攻击T算力的ASIC区块链,则需要有T算力才能发动攻击。

事实上,真实的情况是介于两者之间。区块链GPU矿工市场并不是完全竞争的,区块链ASIC矿工也不是完全垄断。

尽管这非常有趣,但是我们尽量保持简单:不再讨论ASIC,假设我们就需要T/2的算力,来攻击拥有T算力的区块链。

而且,这其实应该是充分竞争”的场景,因为矿工在发现有攻击者出现的时候,就会立刻去挖别的,因为区块链受到攻击意味着利润降低。

所以,我们模型的关键,就是持有T/2的算力,就可以攻击拥有T算力的区块链。

内部攻击者

内部攻击者不会去购买足够的GPU来获得T/2的算力,而是购买更少部分的算力X= p*T。内部攻击者开始挖矿,并且现在网络最诚实的部分拥有Y = T - X = (1 - p)*T算力。内部攻击者继续在最长的链上挖矿,获得区块奖励,和其他矿工竞争。

内部攻击者会将挖矿奖励用于购买更多算力。假设在我们的模型,内部攻击者能够以每月1+r的速率来增加算力。也就是说,如果内部攻击者在0月份获得X算力,那么在1月份就会获得X(1 + r)的算力。

同时也假设最诚实的矿工也投资来获得更多算力,但是按照每月1+h的速率增加。

在这个实验中,我们假设1 + r > 1 + h。攻击者都会想要最大化自己的算力。最诚实的矿工专注于利润。攻击者也许会因为这种利益获得赞助,或者长期的策略。最诚实的矿工不会和这个攻击者合作,并且不知道有攻击者的存在(攻击者会看起来是诚实挖矿,但是自私挖矿会增加r – h的值)。

在N个月之后,内部攻击者已经有了X(1+r)^N的算力,而且网络还剩下Y(1+h)^N算力。攻击者在获得和网络同样算力的时候,就胜利了。 X(1+r)^N =Y(1+h)^N <==> ((1+r)/(1+h))^N = Y/X = (1-p)/p 我们把(1+r)/(1+h)比例成为攻击者的优势”,并且记为a。所以当a^N = (1-p)/p时,攻击者胜利。

内部攻击者有a和初始哈希力的比例p,因此可以在经过N = ln((1 - p)/p)/ln(a) months月后,进行成功的攻击。同时,也不一定就是月份,在任何阶段数学都是不变的,只要我们能够计算出a”。

下面表格中的数字可以帮助我们理解:

根据上面的数字,对于内部攻击来说,每个月都有5%, 10% 和25%的涨幅,而且网络的初始算力有10%, 20% 或者 30%。

那么对于这个模型,我们有多少的安全性呢?

了解这个内部”策略的外部攻击者有选项。如果他们知道他们会在N个月后进行攻击,而且他们也知道自己的a是多少,然后他们就会计算需要的初始算力比重。也就说,他们可以计算出自己所需要的GPU、

如果攻击者知道他们所需要的GPU,已经a的值,那么他们就可以计算所需要的月数来获得他们攻击目标的大多数算力。

那么区块奖励让我们获得了什么?

增加区块奖励可以增加购买算力的成本。攻击者之前可以买得起10%的算力,但是现在可能只能买得起5%的算力,来开始他们的攻击。

如果将区块奖励翻倍,那么就会延迟区块奖励: ∆N =ln((1 - p/2)/(p/2))/ln(a) - ln((1 - p)/p)/ln(a) = (ln((2 - p)/p) - ln(p/(1 - p)))/ln(a) = ln((2-p)/(1-p))/ln(a) 所以如果增加区块奖励,就可以降低a的值,然而降低了购买哈希算力p的能力,从而也降低了∆N = ln((1-p)/(2-p))/ln(a)攻击成功的概率。

请看另一个表格。

由于加倍了区块奖励,拥有10%,20%或者30%比重的攻击者,假设他们有5%,10%或者25%的a值,所需要的月份都会增加。假设在哈希算力增加的情况下,网络哈希力也会增加(在完全竞争市场的假设)。

区块奖励翻倍将攻击延迟了10个月。但是,每10个月增加区块奖励,这样来永久推迟攻击,代价非常昂贵。

总结

其实这个模式非常简单,假设攻击者最初有一定的算力,同时也能够按照一定比例来增加算力,这会比现在矿工的算力呈指数级增加。这是可靠的假设,因为利润和算力呈正比,并且因为这使得数学非常可行。

我们可以看到一些数字,究竟攻击者需要几个月,才可以在给定的a值下,完成攻击,而且如果增加区块奖励,他们的攻击会被延迟多久。 所以,很明显如果增加区块奖励,在这个模型中,是可以增加网络的安全性。假设,矿工不会和攻击者合作,而且攻击者会购买哈希算力来进行网络攻击(不论他们是否会在购买后进行诚实挖矿)。

但是,这个模型能否真实使用,仍然需要证实。如果有人提出更加合理的a值,那么就会更好了,当攻击者尝试不同的策略,都可以适用。 这些数字会帮助我们思考有多少安全矿工在抵御这些不和矿工合作的攻击者。


a生涯F役6星评价

2020-05-05 15:16:28

在2014年时,我参加的大部分会议是“比特币会议”,现在尼玛,全改成“区块链会议”。最搞笑的是,哪怕是矿工大会,也会被称为“区块链矿工大会”。

在比特币会议里,工作量证明,是不可或缺的一部分,而在区块链大会中,工作量证明是一种被耻为落后的技术,甚至是被一群无耻贪婪的矿工把持的邪恶的工具。

那工作量证明到底有多不重要呢?

第1章 支撑比特币的四大技术

现在大家讲区块链,都是把它描述成比特币的底层技术。这种描述是不完善的,应该说区块链是比特币的底层技术之一。构成比特币的技术支撑包括了:区块链,工作量证明,点对点网络和加密技术。

这四大技术很难分出谁更重要,对比特币来说,缺一不可。虽然现在市场只突显出区块链的重要性,但是,离开后面三个技术,区块链完全可以改名称为分布式账本,或者叫一个数据库分片技术。比特币最重要的技术绝对不是区块链。

比特币给世界带来的最重要启示或价值,并不是带来了区块链这个技术。最重要的是比特币带来了一种去中心化的可以稳定运行的记账或货币体系,这是一个不需要许可就可以接入,不需要信任任何人就可以转账和验证交易的系统。我们需要信任的是这个网络。

本质上,比特币带给我们的最伟大的价值是一“信任机制”,这种“信任”不来自特定的个人,也不来自特定的主体,不来自任何一个第三方中心化的节点,而是来自是一种去中心化的网络。在这以往是没有过的。即我们只需要“信任”这个网络,只要这个网络不崩溃,我们就可以发交易、验证交易、作支付、发行股票、保存财富、以及任何记账行为。

比特币的这种“信任”是由上述四大技术共同支撑的,抽象出区块链一个技术,无法获得这样的信任。

关键的是这种信任机制是如何建立的?

第2章 为什么我们能信任比特币这个去中心化的网络

现在各种区块链项目的广告,绝对是技术发展史上最夸张的广告。但凡是一个区块链,都敢说自己是不可篡改,去中心化,无需信任,即使它们不包含工作量证明,也不是一个点对点网络。

工作量证明是比特币网络值得信任的不可缺少的因素。工作量证明是依据自由市场和博弈论来构建的。其基本原理是这样的:只要满足特定的计算工作量,任何人都可以在比特币网络添加区块,而你所添加的区块是否会被其他人认可,则取决于你们所有人是否遵守相同的规则。完成计算工作量需要支付购买矿机和电费的成本,如果你成功添加区块,则可以拿走区块奖励和交易手续费。而你如果不和其他人使用相同的规则来添加区块,则你的区块会被其他人孤立掉,原本属于你的区块奖励和交易手续费就没有了。

工作量证明的这种设定是让比特币网络引入一种,只有支付成本才能参与竞争,而参与者遵守规则才有机会获得收益,收益往往大于成本,而违反规则就会损失掉收益白白支付成本。这是一种是以市场为基础的安全机制,通过自由市场的激励和惩罚措施来确保参与者都会遵守规则,从而提供一个可供信赖的网络。

工作量证明是这个可信任网络的关键,不包含工作量证明的区块链产品,如果无法提供一个可替代的安全机制,那就不可以冠于不可篡改这样的词。

第3章 为什么矿工会被污名化

工作量证明对区块链那么重要,但为什么矿工会被如此污名化,基本上整个加密数字货币社区都认为矿工是邪恶的。

矿工的名声坏的原因之一就被认为是阻碍区块链系统升级。这是比特币在扩容和部署隔离见证这两项升级过程中被按上的帽子。Core开发组不想要扩容,只想要隔离见证,而矿工作为一个集体,更希望扩容能被落实。这一场争论,吵了几年。Core开发组和Blockstream公司发起了大量的对矿工的言论攻击,其中之一就是矿工阻止比特币系统升级。

比特币系统升级,升级是一个褒义词,但代码改变的本身并不天然是褒义的。事实上代码改变,就是矿工添加区块的规则要改变,添加区块的规则是比特币系统安全机制的目标。这个目标是通过矿工之间的博弈来实现的,矿工通过博弈来实现规则的统一。矿工之间的博弈本来就是比特币系统的安全属性之一,如果要取消掉矿工的博弈,把添加区块规则交给开发者说的“升级”,那比特币的安全属性就大大下降了,这很可能就会变成了一个不可信任的网络。

所以,所谓的矿工阻止比特币系统升级,本质上是比特币系统的安全机制设置的目标之一。如果一个“好的协议更改”因为这种安全机制而受到推迟甚至是阻止,这也是这种安全机制的必要代价。

矿工的坏名声第二大原因就是51%攻击。如果一个矿工持有超过51%的算力,那他有机会发起双花。事实上,这些都是理论上的。而事实操作过程中,因为矿工之间的博弈过程是非常复杂的,没有超过75%的算力,想要成功发起51%攻击是非常难的。

工作量证明还有一个重大的特性,就是开放性,就是无须任何中心化机构的许可就可以加入进来参与博弈。如果有矿工积累到51%的算力,在开放性的设定下,其他利益相关者就会加大算力投入,或者分化矿工来消除掉51%攻击的风险。

更关键的是,工作量证明的经济学设计是让遵守规则收益更大,双花这种不遵守规则受到的风险极大,除非有巨大的收益,否则没人干。51%优势算力真正最可能发生的事是老实挖矿,保护整个网络。

还有第三个污化矿工的原因就是浪费资源。现在pow机制大约每年消耗十亿美元的资源。但这不是一个悲剧,这是一个应当普天同庆的好事。

第4章 批评工作量证明的环保主义是错的

PoW机制的生态,从芯片制造、矿机制造、矿场建造、运输、耗电……,整个生态产生了巨大的财富,提供了大量的工作岗位,整个生态所有人都是收益的,没有人因为这个生态受损。只有人因为生意做的不好,竞争不过对手而倒闭,这是自由市场的正常运行的一部分。

PoW挖矿不但提保护了比特币的价值基础,而且PoW还提高了全世界的制造业水平,包括芯片的设计和生产,PC板的设计和生产,精密电器的运输,大规模电子产品快速部署,廉价能源的利用,废旧能源的再利用,全球产业链的整合。

你能相信在没有PoW之前,有一个四川的小水电站民工会关心远在美帝国主义国会关于区块链的听证会吗?你能相信一万台价格数千的电子产品在一天内部署完成吗?你能相信PoW培养了多少即懂计算机、又懂强弱电、还懂经济学、还学会了英语……的复合性人才吗?……这些是人类最宝贵的财富,因为有了PoW,我们有人类有了共同目标,同一个世界,同一个梦想,让我们围绕在PoW的光环下,改变世界吧。

你一定会担心,人类的能源有限啊,人类应该将能源用在更有意义的事这是环保主义爆徒,无脑白左。

能源是无限的。你应该去四川云南的矿场看一看,问问当地人,在一年前,那里的水电站是什么情况,我告诉你,是废弃的,现在呢,机器轰隆隆响,像是给全村人的播放美妙的歌曲,给当地提供了难于相像的财富。因为PoW的存在,当地人提高了能源利用效率,原本不能用的能源,现在可以用了。大大提高了GDP,当地的从平民百姓,到地方父母官,都热切拥抱PoW带来的高科技。原本只能外出几千里地去打工的当二狗子,现在在PoW矿场当保安主任,自豪地为全世界1%的算力提供保卫工作;原本只能在东莞流水线当一个毫不起眼的电工狗盛,现在成为矿场主管。使用PoW这项技术,将原本不是生产力的人,武装到牙齿,将原本不是能源的水力,变成发光发热的电。我们管这个叫精准扶贫。

PoW是变废为宝的好东西,不是浪费能源的悲剧。

如果你还不服气,我再来告诉你,能源是无限的,你抬头看下那个太阳,我们的太阳,有无限的能源在等着我们开发,就是我们技术不行。我们不是应该约束人类浪费,而是应该追求技术发展,开发出更多的能源供我们人类挥霍。我们就是要用摩尔定律,制造出可以无限浪费的计算机资源,区块链就是在浪费计算机资源的设计啊。只要我们继续努力,我们人类迟早开发出戴森球,直接给太阳造一个外壳,包含亲爱的太阳,把太阳都浪费掉,用来挖矿。

浪费不是错,不能提供浪费的条件是我们人类的耻辱,就像为人父母无法给孩子提供更多的可供浪费的资源是一种耻辱一样,而技术的发展是提高资源生产的第一生产力,而PoW就是推动技术发展的集大成设计。如果你认识不到这一点,你才是悲剧。

第5章 结束语

有没有其他安全设定机制可以取消工作量证明的呢?比如POS?