简析三种零知识证明扩容方案:ZK Rollup、Validium 与 Volition_USD:husdc币

目前以太坊基于零知识证明的扩容方案是ZK-rollup,但其实还有另外两种解决方案——Validium和Volitions。本文简单介绍以上3种基于零知识证明的扩容方案。

ZKrollup

ZK-rollup的运作简单来说是将多笔交易打包在一起,发布到L1上,同时发布一个证明来声称这些交易有效,一旦在L1上验证确实有效,那么zk-rollup的状态就会更新。这套证明机制也被称作「有效性证明」,目前ZK-rollup主要采用的证明机制是zkSNARK和zkSTARK。尤其是zk-SNARK应用最为广泛,而zk-SNARK则是它的改进版,目前使用者并不多。zk-SNARK即zero-knowledgesuccinctnon-interactiveargumentonknowledge,是一种文件很小且很容易验证的加密证明,而简洁jiu就在于非交互式。传统方案是交互式证明,即示证者和验证者之间反复确认。你可以理解为示证者不断向验证者询问「是或不是?」,然后验证者不断给出回答,直到最后碰出一个正确答案来,所以效率很低。而SNARK的解决方案是提前先搞一个「可信初始化」,从而生成公共参考字符串,这样所有的示证者直接访问它就可以了。你可以理解为有一个标准答案,示证者就像批改试卷那样去验证。但SNARK提前生成公共参考字符串提高了效率,但也留下了隐患——万一公共参考字符串泄漏了呢?于是就催生出了STARK。STARK是交互式证明,但它是一种巧妙的交互式证明——通过哈希函数碰撞来保证安全性,因此也比较高效。Validiums

慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。

2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。

3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。

4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。

5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。

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

ZK-rollup是将交易分批发送到L1上去执行,是一种无需信任的「自定义安全性」。Validiums则是直接在链下执行,并通过零知识证明来维护数据,只有需要的时候才在主网上验证取款请求的有效性证明。所以Validiums可扩展性要高于ZK-rollup,但它是把信任交给链外第三方的「弱信任扩容」,会被攻击导致数据不可用或者用户无法取出资金。解决安全的方式是采用PoS机制,用经济激励来确保数据储存在各个节点之中并且随时可用。目前采用Validiums方案的代表项目是ImmutableX,以NFT为中心的扩展解决方案。Vitalik认为Validiums其实被严重低估,因为大多数Dapp用Validiums就已经可以满足运行需求了。Volitions

Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。

2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。

3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。

4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。

此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]

StarkWare团队结合ZK-rollup和validium,创造性地推出了Volitions方案,顾名思义是关于「决断能力」。Volitions方案本质上是同时提供ZK-rollup和validium这两种服务,它们共享同一个状态根,用户可以自行选择每笔交易的DA模式。即便Validium那部分被攻破,ZK-rollup上的资金仍然安全。用户就可以在涉及重要资金往来时选择ZK-rollup模式,共享以太坊的安全性,如果是日常娱乐、社交或者小额交易,自然选择Validium模式来提高速度并节省成本。结语

慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:

1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;

2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;

3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;

4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;

5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;

6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;

7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;

8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;

9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]

以太坊扩容战争还在刚开始,目前占据优势的是Optimisticrollups阵营,它们可以做到EVM兼容甚至完全等效,另外社区运营能力也非常强劲。ZK-rollup落于下风很大程度上是因为一开始就要定制VM,这意味着来自EVM的代码要从头开始编写。不过长远来看,相比于Optimisticrollups,ZKrollups具有内置的隐私和安全优势,未来实现EVM兼容性,很可能胜过Optimisticrollups。而且可以在ZK-rollup和validium之间做决断的Volitions方案,也不失为一种兼顾了各种场景的解决方案。原地址

Harvest.Finance被黑事件简析:10月26号,据慢雾区消息 Harvest Finance 项目遭受闪电贷攻击,损失超过 400 万美元。以下为慢雾安全团队对此事件的简要分析。

1. 攻击者通过 Tornado.cash 转入 20ETH 作为后续攻击手续费;

2. 攻击者通过 UniswapV2 闪电贷借出巨额 USDC 与 USDT;

3. 攻击者先通过 Curve 的 exchange_underlying 函数将 USDT 换成 USDC,此时 Curve yUSDC 池中的 investedUnderlyingBalance 将相对应的变小;

4. 随后攻击者通过 Harvest 的 deposit 将巨额 USDC 充值进 Vault 中,充值的同时 Harvest 的 Vault 将铸出 fUSDC,而铸出的数量计算方式如下:

amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());

计算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的变化将导致 Vault 铸出更多的 fUSDC;

5. 之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常;

6. 最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC;

7. 随后攻击者开始重复此过程持续获利;

其他攻击流程与上诉分析过程类似。参考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。

此次攻击主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在铸币时采用的是 Curve y池中的报价(即使用 Curve 作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制 Harvest Finance 中 fToken 的铸币数量,从而使攻击者有利可图。[2020/10/26]

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

水星链

币赢一文读懂Pendle:LSD战争的背后赢家?_PEN:END

收益率具有跟代币价格相似的波动性,在牛市中上涨,在熊市中下跌。PendleFinance的目标是通过增加牛市中的收益率敞口和对冲熊市期间的收益率下滑风险,为用户提供具有吸引力的收益率.

[0:0ms0-1:110ms