火星链 火星链
Ctrl+D收藏火星链
首页 > 币安下载 > 正文

COI:硬核:不持有代币也能对 PoS 网络发起攻击?

作者:

时间:1900/1/1 0:00:00

本文为DecentralizedSystemsLab发表的讨论使用最长链规则的PoS系统安全性的文章。按照某种划分方法,PoS系统可以分为链式结构型和拜占庭容错型;文章所阐述的漏洞是链式结构型系统中出现的,因此跟Cosmos的Tendermint这样的拜占庭容错型PoS共识算法无关;Casper不使用最长链规则,而是LatestMessageDrivenGhost,因此也跟这里讲的漏洞无关。

这些漏洞已经影响了超过26类PoS型加密货币。通过这些漏洞,一个攻击者只需使用少量权益就能摧毁任何运行相关软件的网络节点。

在这次公开披露之前,我们从2018年10月开始有规划地通知受影响的加密货币开发团队。大部分团队已经部署了应对措施。

权益证明类加密货币,特别是那些基于链上PoSv3的加密货币,它们与比特币很相似,都使用未花费的交易输出模型和最长链共识规则。

主要的区别在于前者用代币的所有权证明替代了工作量证明。

PoS的潜在优点包括能够降低对环境的影响以及增强对51%攻击的抵抗性。

跨链桥Hop支持Rocket Pool流动性质押代币rETH的跨链桥接:5月31日消息,跨链桥 Hop Protocol 宣布与以太坊流动性质押协议 Rocket Pool 达成合作,支持流动性质押代币 rETH 在以太坊、Optimism 和 Arbitrum 之间的跨链桥接。[2023/5/31 11:50:00]

很多加密货币实际上是比特币代码库的分叉并且加入了PoS的功能。

但是,由于它们盲目复制了比特币的一些设计理念,留下了安全隐患,因此出现了一些在原先代码库中并不存在的新漏洞。

我们将这些漏洞称为「虚假权益」攻击。

从本质上讲,该攻击之所以有效是因为PoSv3的程序在签发珍贵资源之前对网络数据验证不足。

因此,一个攻击者只需使用很少的权益份额,就能用虚假数据填满某个节点的硬盘和内存,致使其崩溃。

我们认为所有基于UTXO和最长链原则的权益证明模型都容易受到这类「虚假权益」攻击的影响。经过调查研究,我们已经发现了一批存在漏洞的加密货币,并在文末附上了列表。

欧易OKX发布第五次储备金证明,未来将持续升级:3月21日消息,据官方公告,欧易 OKX 按月定期发布储备金证明报告,今日正式发布第五次储备金证明(PoR),BTC、ETH、USDT 储备金率均超过 100%,分别为 103%、103%、102%。

据了解,除储备金干净度为 100% 外,欧易是目前唯一一家同时实现默克尔树开源验证、钱包地址所有权开源验证、链上资产开源验证的交易平台。

此前,欧易 OKX 宣布将在未来几个月内升级储备金证明,将基于全览默克尔树、零知识证明的技术来证明偿付能力。全览默克尔树可以让用户直接下载,并验证交易平台公布的全量用户资产是否正确。[2023/3/21 13:17:08]

接下来,我们将详细解释这些漏洞和攻击手法,因为它们会产生一些不易察觉的后果。

虽然事后看来这些漏洞本身很简单,但是想要一劳永逸地解决它们还是很困难,而且现有的解决方案可能会导致分叉。

背景

在深入了解这些漏洞的细节之前,我们将简要介绍一些关于链上PoS机制原理的背景知识。

化妆品巨头美宝莲推出首个数字Avatar“May”:金色财经报道,化妆品巨头美宝莲纽约(Maybelline New York)宣布推出首个数字Avatar“May”,该数字化身将会被用于美宝莲融合现实世界和虚拟世界的宣传活动,未来还将在虚拟产品和服务的发布、虚拟世界相关的激活以及标志性的高性能化妆品特许经营活动中发挥作用。(beautypackaging)[2023/3/1 12:35:26]

权益证明挖矿

与PoW挖矿类似,PoS挖矿也要将区块头的哈希值与难度目标进行比较。

PoS的目标是确保每个权益者挖出下一个区块的概率与他们质押的代币量成正比。

为了达成这一目标,链式结构型PoS机制的哈希值不仅取决于区块头,还取决于权益所有者通过区块中一笔特殊的「coinstake」交易所质押的代币数量。

本文会涉及一些关于PoS挖矿的具体细节,更详细的解释可以在Earlz的博客中找到。

本文重点从1)coinstake交易和2)coinstake交易所花费的UTXO这两方面来阐述PoS机制。

NEAR基金会投资NFT市场Few and Far以发展NEAR NFT生态系统:金色财经报道,下一代NFT市场Few and Far宣布已获得了NEAR基金会的投资,具体金额未公开披露,双方将建立合作伙伴关系以发展NEAR NFT生态系统。在接下来的几个月里,Few and Far将推动NEAR内部NFT项目的成长和发展,以支持从Web2到Web3的顶级品牌和主要IP和Launchpad功能,并领导NFT智能合约标准化、流动性和区块链索引解决方案,为NEAR生态系统及其他领域提供无缝的NFT铸造解决方案和易于使用的市场。(einnews)[2022/9/8 13:16:55]

工作量证明在节约区块验证资源方面起到的作用

众所周知,PoW在比特币共识机制中扮演至关重要的作用,不过它还有一个不那么受重视的作用,就是控制对节点有限资源的访问,例如磁盘、带宽、内存和CPU。

在免许可型公链网络中,一个节点是不能信任其它对等节点的。

因此,为了防止资源耗竭型攻击,比特币节点要先检查区块的工作量证明,再决定是否花费更多硬盘或内存资源存储这个区块。

美股快速走低,道指跌1%:7月21日消息,行情显示,美股快速走低,道指跌1%,标普500指数跌约0.7%,纳指跌约0.6%。(金十)[2022/7/21 2:29:44]

但是,事实表明,检查权益证明比起验证工作量证明要复杂的多,对环境也更为敏感。

因此,许多链式结构PoS机制在有效验证上投入的资源严重不足。

为了理解资源耗竭型漏洞产生的原因,我们必须详细说明一下区块在被验证之前是如何存储的。

一个节点不仅要追踪当前时刻最长的链,还要追踪一整棵分叉链树(因为任何一条分叉链都有可能成为最长链,在这种情况下,节点需要「重组」才能切换到新的最长链上)。

举例来说,不当升级、双花攻击,或者临时网络分区都有可能引发这种情况。

验证这些非主链上的区块是非常困难的。

要完全验证某个区块,你需要上一个区块中未花费的代币集合。

比特币保存的是最长链顶端区块时候的UTXO集合,但是不会保存之前区块时候的UTXO集合状态。在完全验证分叉链上的区块主要有两种方法:

1、将当前视图「回滚」到分叉起始点之前

2、存储之前每一区块时候的UTXO状态

*校对注:将一条链上的所有区块所包含的交易都处理完之后就会形成一个UTXO的集合,这个集合就是该链的最新状态。因此,哪怕在同一条链上,#100区块时候的状态与#101区块时候的状态也是不同的。上文的意思是,虽然每一个区块上都有可能形成分叉,但比特币软件不会把每一个区块时候的状态都专门保存一个副本,而是只保存最新的UTXO集合;若是每一个区块时候的状态都要专门保存,这会变成很大一笔存储开销。

比特币的代码库不支持第二个方法,即使它支持,这也会增加额外的存储成本(比特币的节点性能依赖于大幅裁减不必要的数据)。

比特币代码库目前正是采用第一种方法来处理重组的。

然而,经常回滚的代价也是很昂贵的,因此,回滚和完全验证不会在一有分叉的时候就发生,而是等到分叉链上的工作量证明真的超过当前主链的时候才会进行。

因此,当一个对等节点第一次接收到一个非最长链上的区块或区块头时,我们将跳过完全验证并将这个区块保存在本地存储区。

在将这个区块存储进磁盘之前,比特币代码库会基于PoW机制执行一些初步验证(不过会忽略区块内的交易)。

初步验证仅针对之前的区块头以及当前的区块头,因此节点验证起来非常快。而且这是一个非常有效的防御手段,因为生成一个有效的工作量证明来通过这个初步验证成本很高。

例如,虽然有可能一个比特币节点将一个非法区块存储在硬盘内,但是以这种方式发起资源耗竭型攻击是一个非常不经济的行为。

PoS机制中也存在类似的初步验证过程,就是对coinstake交易进行验证,将它与上一个区块的kernel值一起进行哈希运算,看最后得到的哈希值是否超过难度目标。

计算coinstake交易的哈希值很容易,难的是验证coinstake交易中输入的UTXO是否合法并且未被花费;但是要检查一笔UTXO是否没有被花费,你就需要该笔交易发生前一个区块时候的UTXO集合状态;如我们上文所说,节点往往是没有专门存储这样一个状态的。

因为完全验证coinstake交易是非常困难的,大多数链上PoS机制提供的是一个经验式或者近似式的验证方法作为替代。

事实证明这些替代性的验证方法通常并不充分并且存在漏洞。

漏洞:「我简直不敢相信还有非权益持有者可以攻击的漏洞」

我们第一次研究这个漏洞的时候,发现Qtum、Particl、Navcoin、HTMLcoin和Emercoin这五种密码学货币都存在这个漏洞,即,在将区块提交至内存或硬盘之前,无法对coinstake交易进行验证。

这五种加密货币的共同之处是它们都采用了比特币的「区块头优先」规则,将区块分成两类独立的信息——区块体和区块头——进行传播。

只有当节点确认了某个区块的区块头通过了PoW验证、并且该区块跟在最长链之后,才会请求区块体的信息。

由于coinstake交易仅存在于区块体而非区块头中,节点无法做到只验证区块头,于是直接将区块头存储在了内部数据结构里。

因此,任何网络攻击者,即使不持有任何权益,也可以恶意填满一个节点的内存。

此种攻击的还有另一个形式,可以针对相同的代码库实施,不过它采用的方式略微不同,而且攻击目标也从节点的内存资源转向了硬盘资源。

可以说,针对节点硬盘的攻击危害更大:如果节点因内存被填满而崩溃,只需简单重启即可恢复。

但是,如果硬盘被填满了,则需要手动干预才能恢复。

如果接收的不是区块头而是区块体,需要执行初步验证也会不同。理想情况下,因为coinstake交易就包含在区块体中,节点软件应该先对其进行验证,再将区块体提交至硬盘。

但是,如上所述,如果这个区块是在一条分叉链上,节点要访问coinstake交易所花费的UTXO会难得多。也许是出于这个原因,这些代码库并没有验证coinstake交易。

对于存在上述任意一个漏洞的加密货币来说,即使是不持有任何权益的人也能对它们发动攻击。

针对内存的资源耗竭型攻击微不足道,从技术的角度来看,我们更需要堤防的是针对硬盘的资源耗竭型攻击。

标签:POSOINCOINCOIPOSH币PEECOINBiblecoin3X Long Dogecoin Token

币安下载热门资讯
比特币:除了重金买巴菲特午餐,币圈营销套路还有哪些?

喜欢看动漫的小伙伴都知道,火影忍者里面的主角鸣人靠着“嘴遁”灭了很多Boss,可见说话的艺术是多么的强大.

1900/1/1 0:00:00
比特币:赋能区块链时代破局者,火星大学全球区块链领袖特训计划报名开始!

市场由熊转牛,区块链创业投资正当时。前有Facebook、摩根大通酝酿发币,后有富达进军比特币挖矿产业,而以瑞银集团为代表的14家金融机构也计划推出“类似比特币”的加密货币,进行跨境交易结算.

1900/1/1 0:00:00
EOS:早间点评:BTC走势渐稳,震荡上行获利把握时机

早间醒来,BTC走势并未出现大跌趋势,反而向上突破了7900美元,完成了昨日晚间并未达到的价位,目前在7700美元震荡,走势尚在可控范围内,局势还算稳定,整体主流币都有上涨.

1900/1/1 0:00:00
以太坊:从3年前接触区块链 到开发出装机量最大客户端Geth 看看人家的职业发展之路

Go-Ethereum,因为是用Go语言编写的,也简称为Geth。Go-Ethereum是以太坊基金会提供的官方客户端软件,也是目前使用最为广泛的客户端,也是很多以太坊开发者入门必用的软件之一.

1900/1/1 0:00:00
USDT:6.7午间行情:中期调整临近 多头且战且退

文章系金色财经专栏作者供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当.

1900/1/1 0:00:00
KIK:注意!BTC可能还会进一步下跌

侦测行情正负面趋势的GTIVeraConvergence-Divergence指标,自4月以来首次发出卖出信号,表明在比特币近期的巨幅上涨停止后,未来可能会进一步下行.

1900/1/1 0:00:00