币妈妈

下载
币妈妈>资讯>正文

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

币妈妈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。

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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中的⼀种作为⼿续费。

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+2+16+20 = 43字节。总共4个Chunk。

4.3 Transfer

用户通过ZKSwapLayer2发起的转账交易,可实现任意Token的转账。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+2+4+5+1+2 = 19字节。2个Chunk。

4.4 TransferToNew

用户通过ZKSwapLayer2发起转账交易,可实现任意Token的转账。转账对⽅不需要提前创建账户。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+2+20+4+5+1+2 = 39字节。4个Chunk。

4.5 Withdraw

用户通过ZKSwapLayer2发起提现操作,可实现任意Token在Layer1的提现。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+20+2+16+1+2 = 46字节。5个Chunk。

4.6 FullExit

用户可直接从ZKSwapLayer1发起FullExit请求,提取资产,此操作需要Layer2提供证明。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+2+20+16 = 43字节。4个Chunk。

4.7 ChangePubKey

用户通过在ZKSwapLayer2发起提取交易,可实现任意Token在Layer1的提现。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+ 4+2+2+2+20 = 31字节。总共3个Chunk。

4.9 AddLiquidity

用户通过ZKSwapLayer2添加流动性。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+4+5+5+5+5+1+2 = 32字节。总共3个Chunk。

4.10 RemoveLiquidity

用户通过ZKSwapLayer2移除流动性。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

pub data的总⻓度= 1+4+4+5+5+5+1+2 = 27字节。总共3个Chunk。

4.11 Swap

用户通过ZKSwapLayer2实现两种Token之间的兑换。

a. pub data

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

6.2 AddLiquidity Circuit

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

6.3 RemoveLiquidity Circuit

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

6.4 Swap Circuit

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

7.Withdrawal Optimization

ZKSwap V2版本提现操作和区块验证隔离开,区块中的提现个数将不受限制。

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

在某个区块验证后,通过Check Withdrawals函数创建Pending Withdraws,再通过Complete Withdrawls完成提现。Complete Withdrawls函数需要增强可以优先处理某个Pending Withdraws。区块验证是针对多区块聚合实现的。Check Withdrawals针对每个验证后的区块进⾏处理。创建⼀个Pending Withdraw的gas费⽤在7w左右,按照⼀个交易最⼤的gas费⽤1250w来说的话,⼀个区块⽀持的最⼤的提现个数是178笔。

7.1 checkWithdrawals

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

7.2 completeWithdrawals

ZKSwap V2版本预计将于6月份上线,支持Layer 2自主无限上币

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。

声明:该文观点仅代表作者本人,币妈妈信息发布平台,币妈妈仅提供信息存储空间服务。

相关阅读