玩币族移动版

玩币族首页 > 币圈百科 >

研究称EOS网络可以冻结,阻止任何错误

研究称EOS网络可以冻结,阻止任何错误插图

在过去的几周内,EOS区块链协议用户一直遇到网络访问的周期性问题。匿名的智能合约开发人员和安全工程师Dexaran在最近的一篇文章中描述了问题的明显根源:一种廉价的技术,允许黑客仅用几美元就能“拥塞”网络,或将其置于低效率模式。值得的EOS。

貌似,该漏洞使黑客在9月初从EOS博彩应用程序EOSPlay窃取了超过110,000美元的加密货币。但是,EOS母公司Block.one的高管并没有为网络运行正常而感到困惑。

EOS基础:治理,Staking和拥塞模式

EOS.io是由区块链支持的智能合约协议,用于开发和托管去中心化应用程序(DApp)。它采用称为委托权益证明(DPoS)的共识模型,并由EOS核心仲裁论坛(ECAF)监管。 ECAF由EOS的“司法部门”和Block Producers组成,后者是负责在EOS区块链上处理区块的独立实体。

该协议以其同名的本机加密货币支持,目前以总市值计算是第七大资产。这些令牌是内置资源筹集机制的核心,这是EOS的独特功能之一。每当将交易提交到EOS网络时,大生产者都必须对其进行处理。

块生产者验证事务所需的时间长度(以微秒为单位)称为CPU。简而言之,EOS用户和开发人员可以通过放权令牌来访问整个区块链的CPU和带宽资源。每500毫秒产生一次块。每个块生产者有200毫秒的时间来验证块。剩下的300毫秒将留给整个网络分配。

值得注意的是,在200毫秒的上限内,还存在一个百分比阈值,在该阈值下,整个网络开始进行速率限制。换句话说,当一个块达到每个块所允许的总200毫秒CPU的10%的限制时,它将触发CPU分配算法进入“拥塞”模式。

文章的作者解释说:“在达到此限制之前,所有用户都可以自由地在网络上进行交易,因为它没有处于'拥塞模式'。” “一旦超过此限制,用户将被限制回到按比例分配的EOS分配CPU总数中所占的比例。”

根据EOS区块链网络中主要的区块生产商EOS Canada撰写的另一篇文章,如果在给定时刻有1,000个令牌被投入CPU,并且单个账户有20个令牌被投入,那么该帐户将保证2%网络的总CPU容量。

但是,如果网络尚未达到激活速率限制的阈值(不在“拥塞”模式下),则它允许该帐户将交易推到保证的2%以上。一旦超过该阈值,该帐户就不能超过分配额。而且,在“拥塞”阶段,每个用户的CPU量开始减少,直到每个拥塞方用尽CPU并停止执行消耗CPU的操作。

EOS联合创始人兼Block.one首席技术官Daniel Larimer将此机制称为网络的“免费利益”:

“拥有和抵押#eos可为用户按比例分配可用带宽。当人们不使用他们的共享时,它会按比例重定向到其他人。在大量使用期间,用户将不再获得此免费权益。”

问题:拥塞模式太容易触发

Dexaran认为,问题在于拥塞模式太容易触发。经过分析,智能合约开发人员注意到每个小时开始时主要的CPU使用率高峰,据称是由一个名为EOSBetDice的下注DApp引起的。然后,Dexaran决定评估将网络推入拥塞所需的CPU数量。

在实验中,开发人员为CPU投入了7,156个EOS。 Dexaran强调说,可以每月从资源交易所中借用少量EOS,而每月只需花费两个EOS(不到6美元)。为了了解测试将如何影响普通的EOS网络用户,安全工程师预先选择了三个随机用户帐户,这些用户帐户在会话开始之前就在线玩EOSKnights DApp。

然后,开发人员执行了一个合约,该合约以一秒钟的延迟生成了许多延迟的事务,每个事务消耗“ 25到27 ms CPU”。在独占CPU整整一分钟后,合约使EOS网络陷入拥塞。模式。结果,所有三个示例帐户都用完了CPU,因此“完全冻结”了-基本上意味着,所有临时EOS用户当时都无法使用网络上的任何DApp。

两分钟后,上述EOSBetDice DApp(按小时导致常规CPU高峰,与实验无关)按计划开始运行。通过在网络已经超负荷的时候消耗更多的CPU资源,它不由自主地加剧了Dexaran引发的拥塞。该开发人员指出:“你连续消耗的CPU越多,拥塞模式就会越“深”,网络恢复到正常模式所花费的时间就越长。

结果,EOS网络陷入了“更深层次”的拥塞,据报道,所有EOS用户的CPU可用性都降低了35倍。 Dexaran观察到:“无论你为CPU投入了多少EOS,如果使用率超过3%,那么你将被冻结。”

在Dexaran的合约和EOSBetDice对网络进行了总共5分钟的压力之后,该网络表面上在接下来的10分钟内一直处于瘫痪状态。经过六分钟后,它已基本恢复,但是EOS在资源交易所处的借出价格仍比正常价格高三倍,这表明由于压力测试,网络当时需要在CPU中分配大量令牌。

在上一次“恶意”操作仅30分钟后,网络就完全恢复了。 Dexaran指出,这使用户“在下一次拥塞会话之前有25分钟的窗口”,因为根据开发人员的估计,攻击可以每小时进行一次。研究人员总结说:“ 7000 EOS足以在相当长的时间内将EOS网络推向拥塞模式。”

“所描述的拥塞会话只会对(1)花费了一定份额CPU带宽的用户,(2)拥有非常低CPU带宽的用户造成问题。所描述的拥塞会话对(1)具有大量CPU可用的DApp没有任何影响,(2)不参与任何活动且CPU完全可用的用户(假设这些用户有足够的CPU来完成一次发送) )。”

另外,Dexaran强调说,尽管有些EOS用户由于故意超载网络而将他或她称为“黑客”,但“我的做法恰恰相反:我正在保护我的投资和你的投资。”

值得注意的是,在Dexaran发布有关EOS拥塞的条目的前几天,开发人员Christoph Michel撰写了一篇博客文章,将最近的EOSPlay赌场黑客事件与网络拥塞联系在一起,从而展示了如何利用网络问题牟利。

据米歇尔说,攻击者从CPU和NET资源租赁市场REX租用了EOS代币,然后将它们堆叠起来以增加他和EOSPlay的CPU数量,以确保赌场保持运转状态,因此仍然可以支付他的赌注。然后,黑客通过类似于Dexaran的交易向网络发送垃圾邮件,并在EOSPlay上玩了几次骰子游戏,押注结果为50/50。鉴于EOSPlay着眼于结果块的块哈希,并从骰子滚动开始,从右边开始,从零到9取前两个字符,因此必须预测结果块的块哈希才能赢得比赛。

Michel解释说:“预测中唯一未知的是区块中包含的交易。” “但是,如果只是垃圾邮件和网络拥塞,使其他人无法发送交易该怎么办?”

根据开发人员的说法,这就是攻击者借用EOS向网络发送垃圾邮件的原因:具有对网络的控制权,因此能够预测区块哈希并赢得他或她的大部分赌注。如果预测有误,攻击者可以向该区块发送另一个随机交易,因此会有额外的“代币翻转”,大大提高了几率。

最终,黑客只使用了300个EOS,价值略高于1,000美元,他或她本可以花几美元租用的。作为回报,固定的获胜奖赏带来了30,000多个EOS,约合110,000美元。

EOS开发人员确保网络“正常运行”,并非所有人都同意

Dexaran的拥塞实验并未引起人们的注意,因为许多用户报告说Twitter和Reddit上存在“ CPU问题”。 Graphene Lab(由智能合约开发人员组成的团队)首席执行官Denis Bredikhin向Cointelegraph证实,基于博彩的EOS投注DApp的用户在过去几周中也遇到了问题,尽管该应用程序本身并未受到损害。布雷迪欣说:

“在垃圾邮件高峰时,即使将8万至1万个EOS分配给CPU,玩家也无法执行任何操作。”

据他介绍,从10月1日开始,玩家必须在CPU中分配“最多10,000个EOS”,以使游戏不会在垃圾邮件会话中为他们停止。同时,Block.one的Larimer已带到Twitter,向社区保证EOS“正在正确运行”。他写道:

“这与攻击者向eth或比特币充斥高额交易垃圾邮件一样。对于令牌持有者来说,网络并没有冻结,只有免费可用的额外带宽。”

但是,有些社区成员希望有所不同。美国EOS区块生产商CypherGlass首席执行官Rob Finch认为:“对EOS的攻击与BTC或ETH上的高额垃圾邮件之间的区别在于,你仍然可以支付更高的费用来通过BTC或ETH发送交易。”他加了:

“许多EOS用户没有足够的CPU来租用更多的CPU,因此确实冻结了他们。 “正确操作”不是IMO的最佳回应。”

另一个EOS用户,区块链企业家Jared Moore确认该网络不可用于DApps或他的钱包。他还想知道Block.one是否会“帮助EOS社区并发布有关如何防止REX攻击的指南”。

Cointelegraph已联系Block.one进行进一步评测,一旦获得更多信息,便会更新该文章。

知识: 区块 用户 网络 开发人员