ZKSwapV2?版本预计将于6月初正式上线,届时新版本将会支持Layer2?的自主无限上币,用户可以自主添加自己发行的ERC20token?到ZKSwap?的Layer2?支付网络和兑换网络,实现免费实时转账任意ERC20?代币以及免费实时兑换任意ERC20?代币。
ZKSwap?在V1?的基础上,V2?版本新增了如下功能:
1)"?限"上币-??户在?付?定费?的情况下,可以?主添加任意Token,并可创建交易对;
2)优化电路分支的实现,提升电路效率-??持?个账户,两个余额的修改;
3)优化提现体验-V1?版本中,提现的操作和区块验证操作捆绑在?起。由于每笔gas?费?的限制,导致区块中的提现的个数受限,特别是在聚合验证的情况下,受限更多。V2版本将会优化用户的提现体验。
1.Token管理
ZKSwapV2?版本将?持三种类型的?Token:FeeToken、UserToken?和LPToken。总共?持2^16?个Token。?
1.1FeeToken?
FeeToken?只能由Governor?添加,主要为ETH、ZKS、USDT、USDC?和BTC?等。
zkSync推出实验性NFT项目“LIBERTAS OMNIBUS”:金色财经报道,以太坊Layer 2扩容解决方案zkSync在官推宣布推出实验性NFT项目“LIBERTAS OMNIBUS”, 旨在探索新的NFT标准、网络能力、新协议功能、具有惊喜创造者的原型集合,以及市场环境。zkSync表示推出“LIBERTAS OMNIBUS”还为了感谢自主网上线以来的113天里的79,365名活跃社区成员,LIBERTAS OMNIBUS将成为更广泛的NFT社区加入zkSync生态的一种方式。此外,zkSync还公布了NFT智能合约地址为:0xD07180c423F9B8CF84012aA28cC174F3c433EE29。[2023/7/16 10:57:24]
1.2UserToken
UserToken??户可以付费添加。
1.3LPToken?
ZKSwap??户创建交易对时,必须?付费?。LPToken?将在?户创建交易对时?动添加。用户创建的交易对中必须有?种?Token?是?FeeToken。UserToken?能创建的交易对个数受限。?
1.4GovernorConfig?
Governor?可以设置添加UserToken?和修改创建交易对?付的费?。
以太坊扩容方案zkSync将通过OKEx实现法币出入金通道:11月11日消息,以太坊扩容方案zkSync开发团队Matter Labs宣布与OKEx达成合作关系,双方的第一个合作目标是在OKEx上支持直接向zkSync的二层网络提供法定货币的提现和充值功能。zkSync表示此次集成正在进行中,后续OKEx还会提供更多在zkSync上的业务。(Medium)[2021/11/11 6:46:17]
2.?账户管理
ZKSwap?V2?版本将?持2^28?个账户。其中账户0?为Validator?账户。
3.Fee模型
ZKSwapV2?版本上的Layer2?交易,可以指定FeeToken?中的?种作为?续费。?
4.PubDataofTransactions?
ZKSwapV2?版本上的所有交易都需要打包提交PubData?到Layer1。为了保持最优的电路性能,Chunk???为11?字节,兑换和转账只需要2?个Chunk。
4.1Noop?
ZKSwapV2?版本允许存在空交易,来填充Layer2?区块。
a.pubdata?
pubdata?的总?度=1?字节。
ZKSwap将于4月30日进行首次ZKS回购销毁:据ZKSwap经济白皮书约定,ZKSwap协议将收取所有Layer2 Swap交易额的0.3%作为交易手续费,其中0.05%将作为协议手续费定期回购ZKS,所得的ZKS直接销毁。ZKSwap将于每月月底进行ZKS回购销毁并发布相应公告,回购销毁策略如下:通过量化算法在ZKSwap上取每个币种兑ZKS的最优交易路径,将当月手续费全部兑换为ZKS后进行销毁。
首次销毁将于北京时间2021年4月30日进行,销毁后将发布具体数据并进行公示。[2021/4/27 21:03:46]
4.2Deposit?
用户从ZKSwap?Layer1?发起充值操作时,系统会将用户?Layer1?的资产映射到Layer2。
a.?接?函数
functiondepositERC20(IERC20_token,uint104_amount,address_franklinAddr)?
functiondepositETH(address_franklinAddr)?
b.pubdata?
pubdata?的总?度=1421620=43?字节。总共4?个Chunk。?
Matter Labs质疑ZKSwap的用户资金安全问题:2月24日消息,以太坊二层扩容解决方案开发团队Matter Labs发推质疑基于ZK Rollup扩容技术的AMM去中心化交易所ZKSwap,称ZKSwap克隆zksync的代码,甚至懒得从Etherscan上的合约代码中删除Matter Labs的作者身份,也没有发布更改,Matter Labs表示担心ZKSwap的用户资金的安全。“将AMM功能正确地添加到我们的代码中是非常不平凡的,并且需要在ZKP有很强的能力。它还需要由经验丰富的密码学家进行非常彻底的安全审计(不仅仅是你发布的文章中提到的静态代码分析)。你会对自己的用户如此友好以至于开放你的合约和环路(Circuit)的完整源代码吗?”[2021/2/24 17:47:22]
4.3Transfer?
用户通过ZKSwap?Layer2?发起的转账交易,可实现任意Token?的转账。
a.pubdata?
pubdata的总?度=1424512=19?字节。2?个Chunk。
4.4TransferToNew?
用户通过ZKSwap?Layer2?发起转账交易,可实现任意Token?的转账。转账对?不需要提前创建账户。
ZKSwap支持Layer2的LP Token提现到Layer1,开启Layer2网络可组合性的一小步:据官方消息,ZKSwap 支持Layer2的LP Token提现到Layer1,开启了 Layer2网络的可组合性的一小步。这样即使资金在Layer2 网络,通过LP Token的桥接,本质上依然可以享受以太坊DeFi生态中的可组合性。目前,Layer2最大的问题就是可组合性,ZKSwap为了解决这个问题迈出了一小步,ZKSwap已经支持Layer2中的流动性池子中锁定的资金凭证(LP Token), 提现到Layer1了。这样即使大家在Layer2提供流动性并且锁定资金,也可以依然把相关凭证在以太坊网络中完成借贷等操作。[2021/1/31 18:32:47]
a.pubdata?
pubdata?的总?度=142204512=39?字节。4?个Chunk。
4.5Withdraw?
用户通过ZKSwap?Layer2?发起提现操作,可实现任意Token?在Layer1?的提现。
a.pubdata?
pubdata?的总?度=142021612=46?字节。5?个Chunk。
4.6FullExit?
用户可直接从ZKSwap?Layer1?发起FullExit?请求,提取资产,此操作需要Layer2?提供证明。
a.pubdata?
pubdata?的总?度=1422016=43?字节。4?个Chunk。
4.7ChangePubKey?
用户通过在ZKSwap?Layer2?发起提取交易,可实现任意Token?在Layer1?的提现。
a.pubdata?
pubdata?的总?度=1420204=49?字节。5?个Chunk。
4.8CreatePair?
用户通过ZKSwap?Layer1?发起交易池的创建。创建交易池需要在Layer1?创建对应的智能合约。
a.?接?函数
functioncreatePair(address_tokenA,address_tokenB)?
b.pubdata?
pubdata?的总?度=1422220=31?字节。总共3个Chunk。
4.9AddLiquidity?
用户通过ZKSwap?Layer2?添加流动性。
a.pubdata?
pubdata?的总?度=144555512=32?字节。总共3?个Chunk。
4.10RemoveLiquidity?
用户通过ZKSwap?Layer2?移除流动性。
a.pubdata?
pubdata?的总?度=14455512=27?字节。总共3?个Chunk。
4.11Swap?
用户通过ZKSwap?Layer2?实现两种Token?之间的兑换。
a.pubdata?
pubdata?的总?度=1445512=22?字节。总共2?个Chunk。
5.CircuitOptimization?
ZKSwap?V2?版本为了降低AMM?相关操作的Chunk?个数,需要降低“Branch”的个数。原有设计在状态树上的?个Account?和?个Token?的Balance?组成?个“Branch”。在AMM?相关的操作中,如果采?FeeToken?的?式,原有的设计效率?较低,需要?持1?个Account?和2?个Token?的Balance的“Branch”。
1)AccountAuditPath(aap)
2)?该Account?下的2?个Balance(balance0/balance1)?在修改前的AuditPat(bap0/bap1)3)?该Account?下的2?个Balance(balance0'/balance1')?在修改后的AuditPat(bap0'/bap1')?
在修改前电路需要证明:?
balance0bap0==>b_root0
balance1bap1==>b_root0?
account(b_root0)aap==>root?
在balance修改后电路需要证明:?
balance0'bap0==>b_root0'?
balance1?bap1'?==>b_root0'?
balance1'bap1'==>b_root0''?
account(b_root0'')aap==>root'?
6.AMMCircuitExplanation?
6.1CreatePairCircuit?
6.2AddLiquidityCircuit
6.3RemoveLiquidityCircuit?
6.4SwapCircuit
7.?WithdrawalOptimization
ZKSwapV2?版本提现操作和区块验证隔离开,区块中的提现个数将不受限制。?
在某个区块验证后,通过CheckWithdrawals?函数创建PendingWithdraws,再通过CompleteWithdrawls?完成提现。CompleteWithdrawls?函数需要增强可以优先处理某个PendingWithdraws。区块验证是针对多区块聚合实现的。CheckWithdrawals?针对每个验证后的区块进?处理。创建?个PendingWithdraw?的gas?费?在7w?左右,按照?个交易最?的gas?费?1250w?来说的话,?个区块?持的最?的提现个数是178?笔。
7.1checkWithdrawals?
7.2completeWithdrawals?
8.Limitation?
1.FeeToken:32个;UserToken:16352个;Pair:49152?
2.?兑换中交易对的2?个Token,其中一个必须是FeeToken;
3.?兑换时收取的费用将是2?个Token?中的一个FeeToken;
4.?所有交易的?额最?为120bit,且任何中间计算变量的最?值为120bit。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。