POS长距离攻击

在一个公有链中,一个攻击者如果拥有当下足够多的算力或股权,无疑是可以打破公有链安全性完成攻击的。但是在 PoS 公链中,如果攻击者获得了一些账户的私钥,这些私钥在历史上某一时刻控制了超过51%的股权,也可以完成攻击,这种攻击的方式被称为长程攻击(Long Range Attack)。

在长程攻击中,攻击者首先获得一些私钥,只要这些私钥在历史上曾经获得了足够多的股权,便可以从这一时刻开始分叉进行 51% 攻击,制造一条分叉链出来。而 PoS 的出块不需要进行工作量证明,攻击者可以短时间内让重写历史的分叉链追赶上原本的主链,从而造成PoS链的分叉和防篡改性被打破。

 

 

攻击者能够取得这些私钥不是天方夜谭。

如果PoS公链的早期投资人在二级市场将持有的代币卖掉后,将账户私钥卖给攻击者,攻击者就可以从创世块进行长链攻击,从而可以打破一个链的安全性。如果一些投资者追求短期收益而非价值投资,攻击者从他们手里获得私钥就成为了一个可能的事情。

而为了应对长程攻击,则有各种各样的解决方案被提出:例如使用密钥演化算法更新密钥,以避免密钥被盗。但是如果早期投资者一开始就决定通过出售私钥获利,那么他完全可以保留密钥种子以绕开这一限制。还有一些解决方案基于这样一个事实:如果攻击者挖了一条完全不同的链,长期在系统中运行的节点或许有能力探测出这种异常。但是,这些方案依然存在如下问题:

PoS 长程攻击造成的分叉与 PoW 的分叉有所不同。

PoW 的分叉链难以获得比特币全网算力,比特币矿工很容易从总算力中辨别谁是真正的比特币。

鉴于PoS共识协议在实际运行时,绝大多数股权持有者只是区块链的使用者,并不会一直运行一台服务器。攻击者只要在一个历史节点拥有了相当与PoS实际参与者的股权比例,就可以制造出一条难以辨别的分叉链出来。配合女巫攻击(Sybil Attack),攻击者可以从区块历史和节点数量上都获得和被攻击主链接*的水*,令新加入的节点无法区分,只能通过人工指定的方式选择。

这样新参与者必须咨询受信任节点来安全地加入系统,这一问题被称为“主观依赖”(Weak Subjectivity)

 

PoW 和 PoS 对比

攻击方法POWPOSDPOS
短距离攻击(如贿赂攻击) +
长距离攻击 + +
币龄累计攻击 + +
预计算攻击 +
DDos 可能
女巫攻击(Sybil Attack) + + +

 

目前已知的长距离攻击方法有三种:

1、向前腐化攻击:当曾经的权益持有者卖掉权益之后,他们就不再受到持有的币贬值的约束了,然而,如果***过50%的早期持币者卖掉了手中的币的话,攻击者可以买通他们再重新生成一条他们没有卖掉权益的历史,然后有可能可以创造出一条更长的链。

2、权益流血攻击:不到50%权益的节点可以通过“藏一条链自己的链”这一***简单的方式进行长链攻击,因为在自己的链上,因为出块的只有自己的节点,所以他们会一直获得挖矿奖励。虽然一开始他们生成的链一定短于外面的链,但是只要他们藏的时间足够长,他们的权益终将***过50%,并且慢慢地获得更快的出块频率***过外面的链。

3、权益粉碎攻击:这种攻击方式在不同的POS中有不同的形式,但总体来说,***不到50%权益的节点可以利用自己算力上的优势,或者自己可以随意改变区块时间戳的优势,获得比诚实节点更多的出块机会,然后利用这个优势通过一段较长的时间生成比诚实节点更长的链。

通常应对这三种攻击的应对是检查点,即一段时间需要生成一个由一些节点认证过的区块来保证这个区块之前的链不会再更改。

 

posted @ 2023-02-14 21:34  分类DHCP  阅读(157)  评论(0编辑  收藏  举报