简析 Sovereign Rollup 工作原理:与智能合约 Rollup 有何不同?_ROL:SPO

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

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

Rollup的三个功能组件

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

安全团队:Defrost Finance被攻击事件简析:金色财经报道,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,Defrost Finance预言机被恶意修改,并且添加了假的抵押token清算当前用户,损失超1300万美元。攻击者通过setOracleAddress函数修改了预言机的地址,随后使用joinAndMint函数铸造了100,000,000个H20代币给0x6f31地址,最后调用liquidate函数通过虚假的价格预言机获取了大量的USDT。后续攻击者通过跨链的方式将被盗资金转移到了以太坊的0x4e22上,目前有490万美元的DAI在0x4e22地址上,有500万美元的DAI在0xfe71地址上,剩余300万美元的ETH被转移到了0x3517地址上。[2022/12/25 22:06:35]

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

Beosin:SEAMAN合约遭受漏洞攻击简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,2022年11月29日,SEAMAN合约遭受漏洞攻击。Beosin分析发现是由于SEAMAN合约在每次transfer函数时,都会将SEAMAN代币兑换为凭证代币GVC,而SEAMAN代币和GVC代币分别处于两个交易对,导致攻击者可以利用该函数影响其中一个代币的价格。

攻击者首先通过50万BUSD兑换为GVC代币,接下来攻击者调用SEAMAN合约的transfer函数并转入最小单位的SEAMAN代币,此时会触发合约将能使用的SEAMAN代币兑换为GVC,兑换过程是合约在BUSD-SEAMAN交易对中将SEAMAN代币兑换为BUSD,接下来在BUSD-GVC交易对中将BUSD兑换为GVC,攻击者通过多次调用transfer函数触发_splitlpToken()函数,并且会将GVC分发给lpUser,会消耗BUSD-GVC交易对中GVC的数量,从而抬高了该交易对中GVC的价格。最后攻击者通过之前兑换的GVC兑换了50.7万的BUSD,获利7781 BUSD。Beosin Trace追踪发现被盗金额仍在攻击者账户(0x49fac69c51a303b4597d09c18bc5e7bf38ecf89c),将持续关注资金走向。[2022/11/29 21:10:04]

这意味着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:15ms0-6:501ms