PAY:简析加密货币支付协议 zkSync 、 xDai 与 everPay 优劣势

距比特币白皮书《比特币:一种点对点的电子现金系统》发布已经过去12年有余,比特币在价值存储上已经被众多机构所认可,但受限于区块链性能和比特币价值的剧烈波动,在体验上和「电子现金」还有很大的差距。而今,随着技术上不断的变革和创新,新的支付结算协议逐渐展露头脚。这些支付结算应用包括everPay,使用存储计算范式构建的高性能支付结算协议;xDai使用PoS构建的侧链,以及zkSync,使用零知识证明技术构建的转账应用等。下面对三个协议进行介绍。

zkSync

zkSync使用零知识证明对交易信息进行压缩,通过Rollup技术将交易批量打包到以太坊。

在以太坊上,协议在以太坊上创建了一个智能合约进行零知识验证,同时利用默克尔树技术进行账户管理,用户的以太地址和相关信息计算成为默克尔根,信息得以压缩。使用该技术,用户转账操作虽然是在链下完成,其账本还是在Layer1上,是通过零知识技术将所有必要转账信息进行压缩,并以批量打包的方式将信息打包到以太坊进验证。

零知识生成证明需要花费大量的链下计算,根据同样使用ZKRollup技术的ZKSwap透露,为提高TPS和计算证明,需要上百万美金的服务器进行计算支持。这些计算仍会成为交易的成本。

Beosin:sDAO项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin?EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的sDAO项目遭受漏洞攻击,Beosin分析发现由于sDAO合约的业务逻辑错误导致,getReward函数是根据合约拥有的LP代币和用户添加的LP代币作为参数来计算的,计算的奖励与用户添加LP代币数量正相关,与合约拥有总LP代币数量负相关,但合约提供了一个withdrawTeam的方法,可以将合约拥有的BNB以及指定代币全部发送给合约指定地址,该函数任何人都可调用。而本次攻击者向其中添加了LP代币之后,调用withdrawTeam函数将LP代币全部发送给了指定地址,并立刻又向合约转了一个极小数量的LP代币,导致攻击者在随后调用getReward获取奖励的时候,使用的合约拥有总LP代币数量是一个极小的值,使得奖励异常放大。最终攻击者通过该漏洞获得的奖励兑换为13662枚BUSD离场。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/21 7:53:09]

xDai

xDai使用PoS共识创建了侧链xDaiStableChain,该侧链提供5秒的区块确认以及0.0002美金每笔的超低额手续费。

安全团队:获利约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]

TokenBridge是xDai的资产跨链协议,通过在以太坊上创建多签智能合约对资产进行锁定。资产释放的时,多签者们通过侧链上的交易信息进行签名。

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]

everPay

慢雾: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]

everPay使用了全新的存储计算范式,将所有的计算过程放在链下,存储共识保障了账本的可信。everPay目前跨链采用了多签合约进行资产锁定。mint资产时,仅需要将代币转入多签合约,协议将以太坊作为预言机获取交易信息,并进行资产mint;资产释放时需要多签者们从Arweave上获取交易信息,按照everPay协议的规则进行交易验证,最后再进行签名资产释放。

Force DAO 代币增发漏洞简析:据慢雾区消息,DeFi 量化对冲基金 Force DAO 项目的 FORCE 代币被大量增发。经慢雾安全团队分析发现: 在用户进行 deposit 操纵时,Force DAO 会为用户铸造 xFORCE 代币,并通过 FORCE 代币合约的 transferFrom 函数将 FORCE 代币转入 ForceProfitSharing 合约中。但 FORCE 代币合约的 transferFrom 函数使用了 if-else 逻辑来检查用户的授权额度,当用户的授权额度不足时 transferFrom 函数返回 false,而 ForceProfitSharing 合约并未对其返回值进行检查。导致了 deposit 的逻辑正常执行,xFORCE 代币被顺利铸造给用户,但由于 transferFrom 函数执行失败 FORCE 代币并未被真正充值进 ForceProfitSharing 合约中。最终造成 FORCE 代币被非预期的大量铸造的问题。 此漏洞发生的主要原因在于 FORCE 代币的 transferFrom 函数使用了`假充值`写法,但外部合约在对其进行调用时并未严格的判断其返回值,最终导致这一惨剧的发生。慢雾安全团队建议在对接此类写法的代币时使用 require 对其返回值进行检查,以避免此问题的发生。[2021/4/4 19:45:30]

借助Arweave衍生的存储计算范式,everPay可以做到实时交易,支持上万TPS;交易批量打包时,1美金可打包百万级交易,协议可以提供免费转账,仅在充值和提现的时候需要支付以太坊矿工费。

对比

安全性

零知识证明技术可以充分的保障zkSync用户在Layer1托管的资产,用户资产在密码学上安全。但是需要注意,目前的Rollup技术都是单节点运行,在Layer2上成功的转账并不代表该交易在Layber1上一定成功,必须要等到交易rollup到Layer1后,交易才能在密码学上进行保障。

由于xDai使用了侧链技术,在侧链上的交易具备共识,因此不存在上述zkSync中交易必须等到Layer1成功打包才能完全确认的问题。但是xDai使用了PoA网络对资产进行跨链,PoA多签私钥的保管者们具备一定的「超级权限」,多签者们进行联合后可以具备作恶的能力。

everPay使用的存储计算范式进行链下计算,链上只保存交易不保存状态,状态由链下计算生成。从以太坊或者其他区块链跨到everPay协议时,通过预言机模式进行资产mint,若外部预言机不存在交易则链下计算的状态并不会被恶意更新。比如ETHmint时,链下的everPay协议收到mint消息会主动去请求以太坊主网,从以太坊主网获取整个交易数据,并对整个交易进行密码学验证,验证通过才能在everPay上生成对应的余额状态。每一次校验使用后的txHash,都会被标记为minted状态,避免重复mint资产。

everPay的交易是由用户签名进行确认,协议内的安全性能得到100%的保障。不过everPay和xDai存在类似的问题,目前也是通过多签技术对Layer1资产进行管理。不过协议还会持续改进安全性,将来会结合区块链存储技术拓展签名透明性:将签名作为治理操作符保存在Arweave上,任何人都可以携带有效的、充分的操作符到Layer1进行有效的资产操作。改进后的方案可以进一步提高安全性、透明性以及降低准入。

性能

ZKRollup借助Layer1共识保障交易安全,压缩后可以将原来的以太坊性能从10-30TPS扩张到2k-3kTPS,这是在共识层面的理论极限。由于压缩的数据最终要重新回到Layer1,因此Layer1和Layer1需要进行资源竞争,这会极大的影响zkSync的TPS。另外,零知识证明技术生成证明需要大量内存和计算资源,4核32GB的机器也需要几分钟才能算出一个区块的证明。目前而言zkSync的实现更像是一个MVP,受限于计算能力,TPS甚至不如以太坊Layer1。要解决计算问题需要等待新的硬件开发投产,如专门为零知识证明设计的FPGA。

xDaiChain使用PoS共识,提供5秒的区块确认,70TPS。xDai的TokenBridge使用PoA网络进行跨链,不像zkSync一样在Layer2和Layer1之间存在性能耦合,不会在同一条链上产生资源竞争问题。虽然PoA在安全性上稍弱,但PoA可能是目前体验上最佳的跨链方式,让跨链应用性能达到最高。

everPay是链下计算,性能仅取决于运载的服务器的性能,目前轻松支持上万TPS。

可用性

zkSync的交互如下:

充值,将以太坊代币发送到zk合约锁定,等待区块确认后产生L2资产;仅收取以太坊充值费用

转账,第一次使用前需要签名并注册Pubkey创建零知识账户;转账费用在0.001美金左右

提现,提现分为普通提现和快速提现,普通提现费用较低,需要50分钟左右;快速提现费用较高,仅需20秒

xDai的交互如下:

充值,使用xDaibridge网站,将代币充值到以太坊合约,完成充值后等待8个区块会在xDaiChain产生余额;仅收取以太坊充值费用

转账,将MetaMask切换到xDaiChain,再使用MetaMask进行转账;转账费用约为0.0002美金

提现,第一步:使用xDaibridge网站,将MetaMask切换到xDaiChain,进行提现第一步交易;第二步:交易打包到xDaiChain后等待8个区块后再将网络切换回以太坊主网,点击Claim完成提现

everPay的交互如下:

充值,打开everPay,使用MetaMask进行充值,等待6个区块后资产充值成功

转账,使用MetaMask签名完成转账,实时到账,转账免费。

提现,选择资产类型和输入提现数量,使用MetaMask完成提现;目前仅支持普通提现,由于需要等待Arweave区块打包,需要等待5-20分钟才能完成提现。将来会提供快速提现功能,用户将协议上的资产转给做市商,市商将资产在1分钟内转给用户。

zkSync和everPay都使用MetaMask进行操作,他们的更像一个Dapp产品,通过网页端配合MetaMask或其他钱包工具进行使用。xDai由于是独立的侧链,使用的过程中需要来回的切换网络,用户体验非常的差。

对于已经熟悉以太坊和以太坊钱包的用户,使用zkSync和everPay都非常的方便;只有精通区块链的用户才具备使用xDai的能力。

由于everPay采用存储计算范式,共识成本极低,因此转账速度和费用方面具有绝对的优势。everPay提供了实时和完全免费的转账。

总结

安全性上zkSync由于使用了零知识证明,更胜一筹。xDai和everPay都将资产托管在原来的链上,使用多签的方式保障资产安全,其中everPay会进一步改进将签名存储在Arweave上以保障操作的透明性和安全性。

性能方面,零知识证明还在发展中,在机器运算能力不足的情况下TPS甚至低于Layer1;xDai仅有70TPS,和以太坊是处于同一量级;everPay目前就可以支持上万TPS,性能远强于zkSync和xDai。

交互上,xDai体验最差,对普通用户基本是不可用的状态。zkSync和everPay都能提供很好的交互体验。everPay采用基于Arweave的存储计算范式,具备极低的共识成本,可以为用户提供免费的转账。目前的零知识证明在工程上还很难满足大规模使用的需求,everPay已经可以为用户提供互联网级别的高性能转账,可用性上everPay更具优势。

我们需要的是一种基于密码证明而非信任的电子支付系统……

——中本聪

正如中本聪所言,在传统电子支付系统中,单一的账本无法达到多方信任的目的,为了提高可信度,人类经过几千年的演化创造了复式会计账,配合复杂的社会法律体系才能完成对帐,而我们真正需要是一种密码学可信的支付系统。比特币应用区块链技术,将账本用密码学保护起来,创造了一个去信任化的支付结算系统。得益于存储计算范式,everPay协议的账本也能达到去信任化以及透明可审计。在可信的基础上,everPay又提供了高性能、易用的区块链支付结算方案,解决了比特币现金大规模应用的痛点。未来,everPay会接入更多的链和代币,为更多的数字资产提供高性能支付结算。

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

地球链

[0:15ms0-0:491ms