当前位置:首页 > 物联网 > 区块链
[导读] 本文中,我们简要地讨论关于PoS协议里,大家公认最大的一朵乌云——长程攻击( long range attack );内容还涵盖了两种目前现行的或预想的解决办法:弱主观性( weak subje

本文中,我们简要地讨论关于PoS协议里,大家公认最大的一朵乌云——长程攻击( long range attack );内容还涵盖了两种目前现行的或预想的解决办法:弱主观性( weak subjectivity )和前向安全密钥( forward-secure keys )。最后,我们提出了一种新的分叉选择规则,使得长程攻击成本更加高昂;这种分叉选择可以结合现有的几种方案,作为预防长程攻击的额外举措。

长程攻击

在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)。

结语

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭