研究称EOS网络可以冻结,阻止任何错误
时间:2019-10-05 来源:区块链网络 作者:不详
在过去的几周内,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将此机制称为网络的“免费利益”:
问题:拥塞模式太容易触发 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网络推向拥塞模式。”
另外,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的用户在过去几周中也遇到了问题,尽管该应用程序本身并未受到损害。布雷迪欣说:
据他介绍,从10月1日开始,玩家必须在CPU中分配“最多10,000个EOS”,以使游戏不会在垃圾邮件会话中为他们停止。同时,Block.one的Larimer已带到Twitter,向社区保证EOS“正在正确运行”。他写道:
但是,有些社区成员希望有所不同。美国EOS区块生产商CypherGlass首席执行官Rob Finch认为:“对EOS的攻击与BTC或ETH上的高额垃圾邮件之间的区别在于,你仍然可以支付更高的费用来通过BTC或ETH发送交易。”他加了:
另一个EOS用户,区块链企业家Jared Moore确认该网络不可用于DApps或他的钱包。他还想知道Block.one是否会“帮助EOS社区并发布有关如何防止REX攻击的指南”。 Cointelegraph已联系Block.one进行进一步评测,一旦获得更多信息,便会更新该文章。 |