来自@不能说的秘密?的提问:什么是扣块攻击,为什么说它让矿池蒙受损失,而不会损害矿工的利益?
知矿大学小编@OWEN的回答:扣块攻击有两种,一种是为了“双花”而发起的攻击,由比特币链上交易的第一位接受者Hal Finney提出,因此这种攻击也被称为“芬尼攻击”。第二种扣块攻击是指矿工找到合法的区块之后,私自把区块扣下不对外发布。@不能说的秘密的提问,指的就是这一种,下面我们就来介绍这类扣块攻击。
扣块攻击:要说扣块攻击,得从矿池的概念说起。知矿大学在《什么是比特币矿场和矿池?》中介绍过:矿池就相当于项目经理,接入矿池的算力就是服从项目经理工作安排的项目组员。项目是挖矿,尽快找到符合比特币系统要求的解。所有的项目组成员,都按照项目经理的安排推进工作任务,并提交工作成果,项目经理按照“多劳多得”的方式,根据项目成员完成任务的具体情况进行奖励。扣块攻击的问题就出在提交工作成果上。找到符合比特币系统要求的解,对于单独的矿工来说,是极小概率事件。矿池为了更好衡量矿工们的工作量,会给矿工们设置一个合理的提交工作成果(Share)的门槛。挖矿这个过程类似一个抛256枚硬币的游戏,假设系统规定挖出新区块需要从第一枚硬币开始至少连续20枚硬币正面朝上,这个难度对于单个矿工来说太难了,矿池为了更好衡量矿工们的工作量,规定矿工只要从第一枚硬币开始至少连续10枚硬币正面朝上的结果,便计作该矿工的有效工作量证明。扣块攻击是指,恶意矿工在找到满足矿池要求结果,但不满足比特币系统要求的结果时,正常向矿池提交工作证明;一旦得到满足比特币系统要求的结果时,也就是真的挖到区块时,则把这个结果私自扣下,不向矿池提交,矿池便因此损失了对应的奖励。
扣块攻击的危害:扣块攻击对矿池的伤害很大。第三次产出减半之后被扣下一个块,就损失了6.25枚BTC(忽略打包矿工费),按目前价格,约¥40万。矿池持续遭受扣块攻击,矿池的幸运值长期偏低,蒙受巨大损失,严重的甚至会导致矿池的倒闭。
为什么说发起扣块攻击对恶意矿工几乎不会有影响呢?这要从矿池的结算方式说起。目前主流的结算方式是FPPS和PPS+。矿池根据矿工提交的工作量证明,也就是按照理论产出给矿工结算收益。欲对矿池发起“扣块攻击”的恶意矿工,肯定也是选择这样的结算方式。对于恶意矿工来说,提交满足矿池要求的工作量证明(Share)与提交满足比特币系统要求工作量证明,这两者的频次之比是相当悬殊的,初略估计前者是后者的数十万倍,也就是说,矿工向矿池提交数十万次工作量证明,才会有机会碰到一次扣块攻击,10万次有效的工作量变成了9.9999万次,这对矿工收益的影响可以忽略不计。但这个行为频次虽然很低,但每次都是数十万元的损失,这对矿池的损害特别大。
扣块攻击可以预防吗?因为比特币底层协议的原因,目前在技术层面上,矿池对扣块攻击没有有效的预防手段。矿池只能在察觉到幸运值异常之后,再去核对单个用户的出块情况。如果发现某些用户出块数据显著低于平均水平,就把这些有明显嫌疑的矿工移出矿池。当然,这种做法是有可能会错杀的,把没有发起过扣块攻击矿工判定为恶意矿工,但矿池要截断亏损,只能把嫌疑矿工踢出矿池,这也是不得已而为之。
矿池可以通过改变收益的分配模式来防止矿工发起扣块攻击。矿池把分配模式从PPS类换成PPLNS,PPLNS的分配模式下,
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/59309.html
发表回复
评论列表(0条)