简析Layer2系统的安全性和效率取舍_MOO:tps币行情

前言:

感谢MatterLabs提出关于部分L1数据链上可用性的问题,我们一直以来都非常重视社区的声音,并会根据社区的需求修改方案。因此,我们想借着这次机会向大家分享ZKSwap开发团队辛勤工作所交付的产品背后的一些思考。

经过非常谨慎细致的思考之后,为了TPS和Gasfee的效率,我们决定将ZKSwap的L2转账放在链下。在ZKSwap的设计中,L1相关的数据在链上,L2相关的数据,比如转账和交易,存在链下。尽管存在链下,这部分数据也会被验证者实时公布。

例如,L2区块7831:https://api.zkswap.info/block/7831/pub-data

三种转账类型

ZK-Rollup协议中,一个区块可以包括三种类型的转账:

安全公司:AurumNodePool合约遭受漏洞攻击简析:金色财经报道,据区块链安全审计公司Beosin EagleEye监测显示,2022年11月23日,AurumNodePool合约遭受漏洞攻击。

Beosin分析发现由于漏洞合约的changeRewardPerNode函数未进行验证,导致攻击者可以调用该函数进行任意值设置。

攻击者首先调用changeRewardPerNode函数将每日奖励值设置成一个极大数,接下来调用claimNodeReward函数提取节点奖励,而节点奖励的计算取决于攻击者设置的rewardPerDay值,导致计算的节点奖励非常高。而在这一笔交易之前,攻击者便通过一笔交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合约存入了1000AUR,创建了攻击者的节点记录,从而使得攻击者能够提取出该节点奖励。最终攻击者通过该漏洞获得约50个BNB($14,538.04)。[2022/11/23 8:01:04]

类型1:来自L1的存款和创建AMM交易对的转账;

纽约梅隆银行和高盛在HQLA x区块链平台上执行首笔证券借贷交易:金色财经消息,纽约梅隆银行和高盛在HQLA x区块链平台上执行首笔证券借贷交易,这两家公司都是HQLA x的投资者。[2022/7/20 2:26:34]

类型2:L2发起且只能被L1验证的转账。比如,公钥转账将需要L1签名来确保L1账户的密钥所有者能将他们的账户与L2账户关联起来,因为电路不能检查确认L1的签名;

类型3:由L2签名验证而无法被L1验证的转账。

ZKSwap安全模型

一个区块内记录的L2转账在L1上只有部分记录。只有区块信息的总结会被记录在L1链上,例如区块哈希、新默克尔根、区块高度等等。

当一个区块的转账被提交到L1上,区块就被创建出来,区块哈希会被验证。由于以太坊内建了sha256算法,所以区块哈希通常也使用sha256进行计算。

跨链DEX聚合器THORSwap已支持ATOM:7月14日消息,基于THORChain的跨链DEX聚合器THORSwap已支持ATOM,用户可以通过THORSwap将原生比特币、以太坊等代币交易为ATOM。[2022/7/14 2:12:56]

为了保持数据可用性,所有的转账数据都应该被提交到L1上,这被称为“公开数据”。一笔转账的公开数据与其在L2上的转账并不完全相同。系统在进入“退出模式”时将使用公开数据,这样任何人都能恢复最近的经过验证的默克尔树。

电路

L2的电路与L1的智能合约能够协同工作,确保ZK-Rollup协议的功能性。L2的电路保证了以下几点:L2转账签名正确、L1/L2转账执行正确、区块信息计算正确、及时有效地更新账户信息——包括默克尔根、账户默克尔树和费用信息等等。

慢雾:Inverse Finance遭遇闪电贷攻击简析:据慢雾安全团队链上情报,Inverse Finance遭遇闪电贷攻击,损失53.2445WBTC和99,976.29USDT。慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者先从AAVE闪电贷借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子获得5,375.5个crv3crypto和4,906.7yvCurve-3Crypto,随后攻击者把获得的2个凭证存入Inverse Finance获得245,337.73个存款凭证anYvCrv3Crypto。

2.接下来攻击者在CurveUSDT-WETH-WBTC的池子进行了一次swap,用26,775个WBTC兑换出了75,403,376.18USDT,由于anYvCrv3Crypto的存款凭证使用的价格计算合约除了采用Chainlink的喂价之外还会根据CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的实时余额变化进行计算所以在攻击者进行swap之后anYvCrv3Crypto的价格被拉高从而导致攻击者可以从合约中借出超额的10,133,949.1个DOLA。

3.借贷完DOLA之后攻击者在把第二步获取的75,403,376.18USDT再次swap成26,626.4个WBTC,攻击者在把10,133,949.1DOLAswap成9,881,355个3crv,之后攻击者通过移除3crv的流动性获得10,099,976.2个USDT。

4.最后攻击者把去除流动性的10,000,000个USDTswap成451.0个WBT,归还闪电贷获利离场。

针对该事件,慢雾给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/6/16 4:32:58]

双验证模式

验证模块对与安全性来说十分重要,是ZK-Rollup协议的基础。

公开数据验证——验证第一类和第二类转账的内容和次序。例如,验证存款需要确保存款数额和信息与L1上记录的相同,并且顺序无误。

区块验证——验证一个区块里的转账被正确执行,并且L2的账户默克尔树根被及时恰当地通过零知识证明进行更新。当一个区块被验证之后,更新的默克尔根就取得了最终性。

总结来说,整体的安全假设如下:

·一个区块的所有转账公开数据在链上;

·验证一个区块中第一类和第二类转账被正确执行;

·证明一个区块内的所有转账被正确执行、账户默克尔树被正确更新、一个区块内的所有转账的公开数据能够匹配;

·证明该区块内所有公开数据都被正确计算;

·提交给L1的区块公开数据与零知识证明系统所证明的数据相同。

公开数据不上链时会发生什么?

如果公开数据不在链上,安全假设“提交给L1的区块公开数据与零知识证明系统所证明的数据相同”就不能被验证。这时候,当L2的零知识证明系统阵营所有转账都被正确执行、默克尔树都被正确更新时,只能说明一个区块内的转账有效,而不能证明来自特定区块的其他转账。

大多数第三类转账都是安全的,但是对于提现操作来说,提现的收款人未经验证,不能被零知识证明系统证明。

对于第一类转账来说,所有可能的第一类转账都能被证明,但不能被验证。类如,零知识证明系统能证明一些非L1发起的存款转账。

由于只有验证着能提交公开数据或者区块证明,所以社区必须信任验证者是诚实的。当验证者诚实时,以上所有的风险都不会存在。对ZKSwap来说,所有公开数据都在浏览器中同步公布,任何人都可以验证公开数据和任何链上区块。

将公开数据存在链下不是一个草率的决定。这个选择背后的主要原因是降低Gas费和提高可扩展性。

Gas费用

保持ZK-Rollup协议运行的一个痛点是Gas。为了向L1提交一个区块,需要消耗以下GasLimit):

一个区块中,最多可以包括120笔交易转账。

如果要在L1提交验证一个区块,需要消耗大约23万GasLimit,calldata费用约占31%。

可扩展性

可扩展性是另一个考虑因素。假设一笔L2转账消耗1850.7Gas,那么ZKSwap将消耗10%的以太坊Gas,整体TPS将在51.5。

这是在只有交易、没有提现的情况,所以正常使用中将消耗更多Gas,TPS会更低。

结论

保护用户资金安全对所有区块链项目来说都很重要,也是ZKSwap的核心价值。当转账的公开数据没有提交上链时,安全性就依赖于零知识证明电路。当验证者诚实时,用户的资产就是安全的。从技术角度来说,如果验证者不诚实,安全性将会是一个问题。这是降低Gas、提高TPS的一个权衡。

考虑到Gas消耗和可扩展性,ZKSwap做了一个艰难的决定,将公开数据不上链,换来对L2用户更高的TPS和更低的Gas消耗。

我们愿意倾听开发者和用户的反馈,让ZKSwap系统更好。我们也可以在任何时间将所有数据上链。事实上,在发布ZKSwap之前,我们已经实现了100%数据可用的版本,所以我们可用随时升级至这个100%ZK-Rollup的版本,提供更高的Gas消耗、更低的TPS,但是更安全。

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

金宝趣谈

TUSDmoom平台介绍_MOO:loot币怎么买

Moom集团旗下公链、算力大数据中心、MoomExchange交易所、MoomWorld区块链新媒体、MoomWallet钱包、区块链项目孵化、数字资产投资管理等七大板块共同构建起完善的“区块链.

[0:0ms0-3:652ms