什么是扣块攻击?

互联网 2016-11-26 11:15:00

ee
译者注:扣块攻击,又叫块节流,英文是“Block withholding attack”。

扣块攻击是如何执行的,它的目的是什么,又会给谁带来危险?

编者:当我提出扣块攻击这个概念时,想的是扣押你在矿池挖出的区块。但是扣押区块会形成各种不同攻击的方式。我认为这仍是一个广泛的问题。这也是比特币安全的中心概念。

答案一:

扣块攻击主要有两种。第一种,大家都知道的芬妮攻击,目标是双花发生时所获得的财富收益。第二种目标是对矿池造成的财产损失。一个矿工在找到区块后,可以通过保留经过验证的哈希,并且不进行广播。矿工的成本是微不足道的(拿不到本可分摊的区块奖励),但矿池的损失很大,因为整个矿池失去了获得50BTC(译者注:现在是12.5BTC)区块奖作为对矿工劳动补偿的机会。

答案二:

扣块攻击最简单的形式是把它叫做芬妮攻击,是由Hal Finney 命名的,他也是描扣块攻击的第一人。这种攻击是一种双花攻击的变化,与0确认交易相关。

攻击者生成一个有效的块但是不会广播这个块,但是会广播交易A,交易A是指购买一个物件或者服务。商家会看到没有任何冲突的交易A并接受0确认交易。之后攻击者会广播已生成的有效块和与交易A有冲突的交易B,这时比特币网络会接受有效块并使交易A无效。

攻击的代价是非常大的,因为在攻击者生成块和完成交易A之间存在时间间隙,在此期间网络上的其他人也可以生成有效块并广播它,从而使攻击者生成的有效块变的无效。 因此,只有在成功购买到商品后并且立即释放扣押的区块时,这个攻击才是有效的。 比如说,购买的是软件产品的秘钥。

这种攻击的一般形式,Satoshi Nakamoto 在《白皮书》的第11章有提到。理论上,攻击者可以预先生成任一数量的区块,例如,商家在释放产品前需要一次确认,攻击者将在网络前预先生成两个块,并且使用双倍手续费去广播它。但是每个区块的成本呈指数上升,而且在发布购买前需要接受6次确认的验证使这种攻击只有在攻击者接近网络哈希率50%或者更高的情况下有可能发生。

相关资讯Relevent