币妈妈2021-04-22 16:49:00
ZKSwap V2版本预计将于6月初正式上线,届时新版本将会支持Layer2的自主无限上币,用户可以自主添加自己发行的ERC20 token到ZKSwap的Layer2支付网络和兑换网络,实现免费实时转账任意ERC20代币(包括任何稳定币)以及免费实时兑换任意ERC20代币。
ZKSwap在V1的基础上,V2版本新增了如下功能:
1)"⽆限"上币-⽤户在⽀付⼀定费⽤的情况下,可以⾃主添加任意Token,并可创建交易对;
2)优化电路分支的实现,提升电路效率-⽀持⼀个账户,两个余额的修改;
3)优化提现体验- V1版本中,提现的操作和区块验证操作捆绑在⼀起。由于每笔gas费⽤的限制,导致区块中的提现的个数受限,特别是在聚合验证的情况下,受限更多。V2版本将会优化用户的提现体验。
1. Token管理
ZKSwap V2版本将⽀持三种类型的Token:Fee Token、User Token和LP Token。总共⽀持2^16个Token。
1.1 Fee Token
Fee Token只能由Governor添加,主要为ETH、ZKS、USDT、USDC和BTC等。
1.2 User Token
User Token⽤户可以付费添加。
1.3 LP Token
ZKSwap⽤户创建交易对时,必须⽀付费⽤。LP Token将在⽤户创建交易对时⾃动添加。用户创建的交易对中必须有⼀种Token是Fee Token。User Token能创建的交易对个数受限(由Governor设置)。
1.4 Governor Config
Governor可以设置添加User Token和修改创建交易对⽀付的费⽤。
2.账户管理
ZKSwapV2版本将⽀持2^28个账户。其中账户0为Validator账户。
3. Fee模型
ZKSwap V2版本上的Layer2交易,可以指定Fee Token中的⼀种作为⼿续费。
4. Pub Data of Transactions
ZKSwap V2版本上的所有交易(包括Layer1 / Layer2交易)都需要打包提交Pub Data到Layer1。为了保持最优的电路性能,Chunk⼤⼩为11字节,兑换和转账只需要2个Chunk。
4.1 Noop
ZKSwap V2版本允许存在空交易,来填充Layer2区块。
a. pub data
pub data的总⻓度= 1字节。
4.2 Deposit
用户从ZKSwapLayer1发起充值操作时,系统会将用户Layer1的资产映射到Layer2。
a.接⼝函数
function deposit ERC20 (IERC20 _token, uint104 _amount, address _franklinAddr)
function deposit ETH (address _franklinAddr)
b. pub data
pub data的总⻓度= 1+4+2+16+20 = 43字节。总共4个Chunk。
4.3 Transfer
用户通过ZKSwapLayer2发起的转账交易,可实现任意Token的转账。
a. pub data
pub data的总⻓度= 1+4+2+4+5+1+2 = 19字节。2个Chunk。
4.4 TransferToNew
用户通过ZKSwapLayer2发起转账交易,可实现任意Token的转账。转账对⽅不需要提前创建账户。
a. pub data
pub data的总⻓度= 1+4+2+20+4+5+1+2 = 39字节。4个Chunk。
4.5 Withdraw
用户通过ZKSwapLayer2发起提现操作,可实现任意Token在Layer1的提现。
a. pub data
pub data的总⻓度= 1+4+20+2+16+1+2 = 46字节。5个Chunk。
4.6 FullExit
用户可直接从ZKSwapLayer1发起FullExit请求,提取资产,此操作需要Layer2提供证明。
a. pub data
pub data的总⻓度= 1+4+2+20+16 = 43字节。4个Chunk。
4.7 ChangePubKey
用户通过在ZKSwapLayer2发起提取交易,可实现任意Token在Layer1的提现。
a. pub data
pub data的总⻓度= 1+4+20+20+4 = 49字节。5个Chunk。
4.8 CreatePair
用户通过ZKSwapLayer1发起交易池的创建。创建交易池需要在Layer1创建对应的智能合约(LP代币)。
a.接⼝函数
function createPair (address _tokenA, address _tokenB)
b. pub data
pub data的总⻓度= 1+ 4+2+2+2+20 = 31字节。总共3个Chunk。
4.9 AddLiquidity
用户通过ZKSwapLayer2添加流动性。
a. pub data
pub data的总⻓度= 1+4+4+5+5+5+5+1+2 = 32字节。总共3个Chunk。
4.10 RemoveLiquidity
用户通过ZKSwapLayer2移除流动性。
a. pub data
pub data的总⻓度= 1+4+4+5+5+5+1+2 = 27字节。总共3个Chunk。
4.11 Swap
用户通过ZKSwapLayer2实现两种Token之间的兑换。
a. pub data
pub data的总⻓度= 1+4+4+5+5+1+2 = 22字节。总共2个Chunk。
5. Circuit Optimization
ZKSwapV2版本为了降低AMM相关操作的Chunk个数,需要降低“Branch”的个数。原有设计在状态树上的⼀个Account和⼀个Token的Balance组成⼀个“Branch”。在AMM相关的操作中,如果采⽤Fee Token的⽅式,原有的设计效率⽐较低,需要⽀持1个Account和2个Token的Balance的“Branch”。
1) Account Audit Path (aap)
2)该Account下的2个Balance (balance0 / balance1)在修改前的Audit Pat(bap0/bap1) 3)该Account下的2个Balance (balance0'/balance1')在修改后的Audit Pat(bap0'/bap1')
在修改前电路需要证明:
•balance0 + bap0 ==> b_root0
•balance1 + bap1 ==> 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. AMM Circuit Explanation
6.1 CreatePair Circuit
6.2 AddLiquidity Circuit
6.3 RemoveLiquidity Circuit
6.4 Swap Circuit
7.Withdrawal Optimization
ZKSwap V2版本提现操作和区块验证隔离开,区块中的提现个数将不受限制。
在某个区块验证后,通过Check Withdrawals函数创建Pending Withdraws,再通过Complete Withdrawls完成提现。Complete Withdrawls函数需要增强可以优先处理某个Pending Withdraws。区块验证是针对多区块聚合实现的。Check Withdrawals针对每个验证后的区块进⾏处理。创建⼀个Pending Withdraw的gas费⽤在7w左右,按照⼀个交易最⼤的gas费⽤1250w来说的话,⼀个区块⽀持的最⼤的提现个数是178笔。
7.1 checkWithdrawals
7.2 completeWithdrawals
8. Limitation
1. Fee Token:32个;User Token:16352个;Pair:49152
2.兑换中交易对的2个Token,其中一个必须是Fee Token;
3.兑换时收取的费用将是2个Token中的一个Fee Token;
4.所有交易的⾦额最⼤为120 bit,且任何中间计算变量的最⼤值为120 bit。
以太坊Layer 2必知必会2023-04-26 15:03:27
浅析NFT未来:仅少数项目上涨 出圈项目会成赢家2023-04-26 14:15:26
E-CNY时代来临:当你的工资成为数字人民币2023-04-26 12:43:48
浅谈为什么MEV搜索者矿池并不可行?2023-04-26 12:08:40
"庄家"互撕 曝出加密巨头拉的那些"帮派"2023-04-26 11:59:08
怎样到达Web3世界:使用Web3技术的公司及集成到业务的步骤2023-04-26 11:53:15
稳定币项目 HAI、Starknet 2023 路线图2023-04-26 11:46:35
ChatGPT类产品安全隐患解决?英伟达发布开源工具包2023-04-26 11:26:24
蚂蚁集团发布HOU、AntChainBridge、Web3开放联盟链等多个Web3产品2023-04-26 11:24:46
ChatGPT背后的算力博弈 中国企业亟待打破美国桎梏2023-04-26 10:59:28
简析DWF Labs:出手频繁 颇具争议的加密做市商2023-04-26 10:48:45
NFT 交易平台生存现状研究:后版税战争时代下的龙头之争2023-04-26 09:20:51
以太坊提款功能开启后的带宽使用情况2023-04-26 08:30:24
上海升级提款效应:数据揭示 LSD 项目们的表现2023-04-26 07:28:37
3分钟读懂基于LayerZero的多链抗MEV DEX聚合器Cashmere2023-04-25 20:05:34
对话去中心化流动性质押协议Rocket Pool:如何促进以太坊Staking民主化?2023-04-25 19:02:21
Bankless:欧美都想监管稳定币 他们怎么做?2023-04-25 17:43:44
Coinbase起诉SEC全文:请在合理时间内回应加密规则请愿书2023-04-25 16:43:34
慢雾:Web3 假钱包第三方源调查分析2023-04-25 15:43:36
Binance Sensei介绍:您的Web3 AI导师2023-04-25 13:20:55