ABU:简析 Sovereign Rollup 工作原理:与智能合约 Rollup 有何不同?_ARMA价

很多人都在谈论SovereignRollup及其与智能合约Rollup的不同之处,但鲜有人讨论它们是如何工作的?下面我将简要介绍SovereignRollup的工作原理。

首先,我们应该了解「经典区块链」和「模块化区块链」的工作原理,请参阅我最近写的一篇文章。

Rollup的三个功能组件

Rollup有三个主要功能:执行可验证计算、确保交易数据的可用性和分叉选择规则。

安全团队:Rubic被攻击事件简析:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,Rubic项目被攻击,Beosin安全团队分析发现RubicProxy合约的routerCallNative函数由于缺乏参数校验,_params可以指定任意的参数,攻击者可以使用特定的integrator来让RubicProxy合约可以几乎零成本的调用自己传入的函数data。攻击者通过调用routerCallNative函数,把所有授权给RubicProxy合约的USDC全部通过transferFrom转入了0x001B地址,被盗资金近1100个以太坊,通过Beosin Trace追踪发现被盗资金已经全部转入了Tornado cash。[2022/12/25 22:06:32]

A)执行可验证计算:Rollup计算都可以通过使用完整性证明来验证。

安全团队:获利约900万美元,Moola协议遭受黑客攻击事件简析:10月19日消息,据Beosin EagleEye Web3安全预警与监控平台监测显示,Celo上的Moola协议遭受攻击,黑客获利约900万美元。Beosin安全团队第一时间对事件进行了分析,结果如下:

第一步:攻击者进行了多笔交易,用CELO买入MOO,攻击者起始资金(182000枚CELO).

第二步:攻击者使用MOO作为抵押品借出CELO。根据抵押借贷的常见逻辑,攻击者抵押了价值a的MOO,可借出价值b的CELO。

第三步:攻击者用贷出的CELO购买MOO,从而继续提高MOO的价格。每次交换之后,Moo对应CELO的价格变高。

第四步:由于抵押借贷合约在借出时会使用交易对中的实时价格进行判断,导致用户之前的借贷数量,并未达到价值b,所以用户可以继续借出CELO。通过不断重复这个过程,攻击者把MOO的价格从0.02 CELO提高到0.73 CELO。

第五步:攻击者进行了累计4次抵押MOO,10次swap(CELO换MOO),28次借贷,达到获利过程。

本次遭受攻击的抵押借贷实现合约并未开源,根据攻击特征可以猜测攻击属于价格操纵攻击。截止发文时,通过Beosin Trace追踪发现攻击者将约93.1%的所得资金 返还给了Moola Market项目方,将50万CELO 捐给了impact market。自己留下了总计65万个CELO作为赏金。[2022/10/19 17:32:31]

这意味着Rollup交易可以很容易地被第三方参与者验证。

慢雾:Avalanche链上Zabu Finance被黑简析:据慢雾区情报,9月12日,Avalanche上Zabu Finance项目遭受闪电贷攻击,慢雾安全团队进行分析后以简讯的形式分享给大家参考:

1.攻击者首先创建两个攻击合约,随后通过攻击合约1在Pangolin将WAVAX兑换成SPORE代币,并将获得的SPORE代币抵押至ZABUFarm合约中,为后续获取ZABU代币奖励做准备。

2.攻击者通过攻击合约2从Pangolin闪电贷借出SPORE代币,随后开始不断的使用SPORE代币在ZABUFarm合约中进行`抵押/提现`操作。由于SPORE代币在转账过程中需要收取一定的手续费(SPORE合约收取),而ZABUFarm合约实际接收到的SPORE代币数量是小于攻击者传入的抵押数量的。分析中我们注意到ZABUFarm合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但ZABUFarm合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时ZABUFarm合约实际接收到的SPORE代币数量小于攻击者在提现时ZABUFarm合约转出给攻击者的代币数量。

3.攻击者正是利用了ZABUFarm合约与SPORE代币兼容性问题导致的记账缺陷,从而不断通过`抵押/提现`操作将ZABUFarm合约中的SPORE资金消耗至一个极低的数值。而ZABUFarm合约的抵押奖励正是通过累积的区块奖励除合约中抵押的SPORE代币总量参与计算的,因此当ZABUFarm合约中的SPORE代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值。

4.攻击者通过先前已在ZABUFarm中有进行抵押的攻击合约1获取了大量的ZABU代币奖励,随后便对ZABU代币进行了抛售。

此次攻击是由于ZabuFinance的抵押模型与SPORE代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议:项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。[2021/9/12 23:19:21]

B)确保交易数据的可用性:由于Rollup也是区块链,它们要求数据在任何时候可以被任何需要的人访问。

在SCRollup中,智能合约负责此项任务,数据可用性规则由智能合约定义。

C)分叉选择规则:几乎所有的区块链都被设计成不可变的,除非社区协调一致同意对其进行更改,Rollup也不例外。

?SCRollup中的分叉选择规则也是由智能合约定义。

对于SCRollup,完整性证明只包括计算的有效性。分叉选择和数据可用性规则在智能合约中定义,这意味着如果你想在SCRollup中进行任何更改,你必须先更新智能合约。

所以,重要的问题是:如何升级智能合约?

升级智能合约有两种方法:第一种是DAO/Tokenizedsecurity,它违反了Rollup的「共享安全」原则。第二个是多签,它有点中心化并且自身也存在缺陷。

当前Rollup使用将两者混合的方法进行升级。

SovereignRollup工作机制

SovereignRollup中的完整性证明包括所有三个Rollup组件:分叉选择规则、数据可用性规则和执行有效性。因此,我们得到了一个用户管理的独立Rollup。

如果协议想要升级,用户必须更新他们的轻客户端以验证正确的链,这允许用户管理协议。

SCRollup与L1之间有一个信任最小化桥,而SovereignRollup则没有。

SovereignRollup可以与其它SovereignRollup之间建立信任最小化桥,只要它们使用相同的数据可用性层。

新的问题随之产生:SovereignRollup是通过基于轻客户端的智能合约桥连接的,这意味着如果一条链分叉,另一条链也必须分叉。

这个问题可以通过社区协调或由数据可用性层治理来解决。我相信解决方案在未来会出现,但现在还不清楚。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-3:9ms