科普 | PoS协议之长程攻击问题

本文中,我们简要地讨论关于 PoS 协议里,大家公认最大的一朵乌云——长程攻击( long range attack );内容还涵盖了两种目前现行的或预想的解决办法:弱主观性( weak subjectivity )前向安全密钥( forward-secure keys )。最后,我们提出了一种新的分叉选择规则,使得长程攻击成本更加高昂;这种分叉选择可以结合现有的几种方案,作为预防长程攻击的额外举措。本文是区块链协议及相关主题的系列文章之一,我们持续致力于高质量的区块链技术内容创作;欲了解更多当前技术现状的全面概况,请参阅我们关于 Layer 2 方法、随机性、分片论文等相关文章(编者注:中译本见文末)。

长程攻击

在 PoW 中,使用最长链选择规则可以获得令人非常满意的属性:除非恶意攻击者控制了全网超过 50% 的算力,不然无法逆转已确认一段时间的区块。

但是在 PoS 中没有这种特性。尤其是当区块生产者建完块且拿回质押的代币后,对他们来说,用于创建区块的密钥再也没有价值了;这时候攻击者可以尝试以远低于创建区块时质押的代币金额去购买这些密钥。与 PoW 不同,因为 PoS 没有出块之间强制延时的机制,所以买到密钥后,攻击者能够在数分钟内造出一条长于主链的伪链,并被分叉选择规则所接受。

有两种方法能够避免上述问题:

弱主观性( Weak subjectivity )

要求全网节点周期性地检查最新的区块,并拒收那些 “重组了过分久远的记录” 的区块。只要足够频繁地检查区块,使得在释放质押代币的时间段中,肯定包含一次以上的检查,那么节点就永远不会选择攻击者创建的最长链,因为敌手从取出保证金的验证者处购买的私钥,必定只能从 “过于久远” 处开始创建区块(因此节点会拒绝掉这些区块)。

弱主观性方法的不足之处在于,虽然已经存在于网络中的节点不会被攻击者欺骗,但是对于首次加入网络的节点来说,他们没有足够的信息来判断哪条链是先被创建的,因此新节点会倾向选择攻击者创建的较长链。为了避免这种情况,新节点需要以某种方式在链下了解关于主链的知识,这在本质上就是要求他们选择信任网络中的某个主体。前向安全密钥( Forward-secure keys )

还有一种方法是要求区块创建者在出块后,在极短的时间内或立刻销毁他们用来建块的密钥;可以在每次建块时创建新的密钥对,或是通过 前向安全密钥 结构(该结构允许在公钥保持一致的情况下,改变私钥)来完成。这个方法仰赖于节点是诚实的,并且严格遵守协议。因为一旦区块创建者知道未来的某个时间点,可能会有人要买他们的密钥,则密钥价值不为零,区块创建者就没有动机去销毁密钥。且不说要求在某个特定时间点,会有大比例的区块创建者愿意修改他们的文件且移除私钥并不现实;这种仰赖大多数参与者 诚实配合 的协议,与仰赖大多数参与者是 理性 的协议,两者间所带来的安全保障并不不同。PoW 就是建立在大多数参与者是理性的且不会进行勾结的前提之上的,其分叉选择规则和抗女巫攻击也都依赖这个假设。


我们提议的分叉选择规则


参考下图:区块 B 在主链上足够前段的位置,所以产生 B 时大多数(或所有)的在位验证者都已经把保证金取出来了。

攻击者能够接触这些区块生产者,并取得其中 ~2/3 的私钥;因为这时候密钥对于区块产生者来说已经没有价值,所以攻击者能以远低于实际建块质押的金额来买到这些密钥。


因为 PoS 系统没有所谓稀缺资源( 译者注:PoW 中算力稀缺),攻击者能够在非常短的时间内创建一条长于主链的伪链。

我们需要一种分叉选择规则,使得用户(包括第一次接入网络的用户)不会将攻击者创建的链视作主链——不论攻击者构建出多长的伪链,以及有多少恶意验证者为其签名背书。

本文建议的分叉选择规则步骤是:从创世区块开始,针对每个区块通过以下规则选择其子块作为下一个合法区块:

  1. 当前区块被主链采用后,对状态进行快照。
  2. 列出当前时刻,持有代币的所有账户,并做成对照表(公钥 → 持有金额)。
  3. 对于每个候选子块,根据对照表,找出子块及其各自子树(子块后面接着的区块)中签署过至少一笔交易的公钥,并验证之。
  4. (验证)算出每个候选子块及其各自子树中,签署过至少一笔交易的公钥所转移的代币总量;选择转移代币总量最多的子块作为合法的下一个区块。


从图中的例子来说,当前区块是 B ,候选子块是 C1 和 C2 ;C1 的子树是所有合规主链上的区块, 而 C2 的子树是攻击者创建的。

从 B 块状态快照开始,计算签署过至少一笔交易的公钥所转移的代币总量(包含代币转移和质押代币交易),作为主链(C1 )的得分;攻击者创建的链( C2 )得分计算方式相同,但是因为存在重放保护,所有 C2 及其子树中的交易都是由攻击者创建的。

从 B 块状态快照开始,假设在主链( C1 )上,计算签署过一次及以上交易的公钥所转移代币总量为 p ;而攻击者创建的链( C2 )上,只存在攻击者买到的密钥所创建的交易,这些公钥所转移代币总量为q,则 q&p 永远成立。

如果攻击者创建的链希望获得更高的分数,则从 B 块状态快照开始计算, C2 及其子树中的交易总额必须大于 p ,所以攻击者还需要取得账户中总额大于 (p - q) 的密钥(而且这些密钥在主链 C1 及其子树中还不能签署过交易)(不然这些额度就计入了 p)。但攻击者这时候就头疼了,因为这些密钥持有人还没有在主链进行任何交易,所以他们的账户在快照状态时还有资金,所以攻击者无法用低于快照状态中的金额来取得这些密钥。

因此,即使攻击者以低价取得了截至 B 块为止,8 成的 “至少在主链发起过一笔交易的账户”,攻击者仍至少要付出 0.2p 的作恶成本。

请注意,要让主链具备抗分叉性,需要积累大量有效交易后这种分叉选择规则才有效,所以该选择规则仅适用于面临长程攻击的分叉选择。该分叉选择规则可以结合经典解决方案,先用拜占庭容错型确定性工具(BFT finality gadget)所敲定的区块形成一个区块链的子集,并在这个子链上执行上述分叉选择规则;然后基于上述规则选出的最终区块,再使用其他更合适的分叉选择规则(如,LMD GHOST)。

结语

上述分叉选择规则为预防长程攻击提供了额外举措;虽然这种规则具有一些有趣的特性,但是在投入实际应用前,还有许多研究要做。举例来说,目前还不清楚该规则是否能够提供经济确定性;一切都需要更多长远的分析。

目前,我们正在积极研究防御长程攻击的方法,并即将发布更多资料,敬请期待。

24小时热点

转USDT被骗可以追回吗?给别人转了USDT不给钱怎么办?

能否追回主要看你的操作是否及时。给别人转了USDT不给钱请及 ...

29019

区块链圈小菜鸡

Pi钱包最新版本下载攻略,一文教你成功下载Pi钱包

Pi Network是一个新兴的加密货币项目,旨在让普通人也 ...

147099

区块链圈小菜鸡

最新中国数字人民币股票代码汇总

最新中国数字人民币股票代码有300468、002649、60 ...

68070

波场区块链浏览器

988pay虚拟钱包使用指南分享

988pay虚拟钱包被称为数字货币钱包或者是区块链钱包,方便 ...

598280

波场区块链浏览器

1U等于多少人民币?U币怎么兑换人民币?

U币(如USDT)是一种基于区块链技术的稳定币,其价值与美元 ...

206711

区块链圈小菜鸡

全面解析Sol钱包使用指南:如何安全下载和管理Sol币

了解Sol钱包的使用方法,从如何安全下载Sol币钱包到管理私 ...

1151

区块链网快讯

柚子钱包官网下载使用的教程

柚子钱包是一个区块链数字资产管理工具,支持多种数字货币的交易 ...

14145

波场区块链浏览器

k钱包是什么:数字货币管理和存储工具

在数字货币领域,安全有效地管理和存储资产成为了用户的首要关注 ...

20229

波场区块链浏览器

Pi币在国内是否合法?国家为何不禁止Pi币?

目前,Pi币在国内尚未被明确禁止或合法化,其合法性仍存在争议 ...

285999

波场区块链浏览器

USDT网络选哪个?哪个USDT交易网比较好?

USDT(泰达币)是基于不同区块链网络发行的稳定币,主要有三 ...

13202

区块链圈小菜鸡

热点专题

区块链网是什么

中国区块链价值评价中心 中国区块链价值评价中心于2 ...

5290297

知信链

免费的行情软件app网站在国外有哪些?

区块链看行情的软件,简而言之,就是一类能够实时提供数字货币行 ...

2371744

波场区块链浏览器

雷达币最新进展:2024年主网上线时间及前景预测

近期有传闻称,新加坡的加密货币交易所推出了一款雷达币,这款被 ...

1819370

波场区块链浏览器

2024年最新十大不收费看盘软件排名公布

随着股市交易的普及和技术的发展,投资者对高效、可靠且免费的看 ...

1121393

波场区块链浏览器

元界(Metaverse)

元界(Metaverse)是一个去中心化的公有区块链项目,元 ...

990736

WEEX数字货币

BTC123

BTC123(www.btc123.com)成立于2011年 ...

834744

Kusama 测试网

最全传销名单,请告诉家人朋友,别让他们上当受骗后赔到血本无归

因为互联网的发展,让现代传销具备了更强的隐蔽性,更让社会经验 ...

782513

律动 BlockBeats

中币网zb——中币交易所

ZB.com是一个全球化的数字货币交易所,目前已获得泰国和迪 ...

741726

中币交易所

Bitfinex(香港B网)

Bitfinex交易平台目前仍处于试运营阶段,该平台由iFi ...

720579

Hi元宇宙

DAC币——达芬奇Davinci Coin

达芬奇项目的平台是通过叫作"Dchain"的自身区块链把可以 ...

713926

Mechanism Capital