织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

ZeroSwap:基于ZK-Rollup的 DEX(2)

时间:2020-09-30 16:31来源:未知 作者:admin 点击:
六大layer2技术的综合比较,Source:Alex Gluchowski 鉴于ZK-Rollup在安全性上的重视,基于Zk-Rollup的DEX是未来的发展趋势。从ZeroSwap的计划看,它预期是在10月底上线

六大layer2技术的综合比较,Source:Alex Gluchowski

鉴于ZK-Rollup在安全性上的重视,基于Zk-Rollup的DEX是未来的发展趋势。从ZeroSwap的计划看,它预期是在10月底上线,鉴于Uniswap的Layer 2 还没有推出,ZeroSwap有可能成为第一个推出基于ZK-Rollup的AMM模式的DEX。 ZeroSwap的整体框架 从大框架来说,ZeroSwap系统包括了链上智能合约、链下ZeroSwap 服务端、零知识证明系统以及前端用户界面。具体如下图:

ZeroSwap的整体框架,Source:ZeroSwap白皮书

链上智能合约是部署在以太坊上的一组智能合约。用户的代币会存入其中,它还会记录和验证Layer 2状态的更新和对应的证明,它是连接链上和链下的桥梁。ZeroSwap的Layer 2服务端处理链下的交易,一方面它通过接口跟用户发生交互,一方面它监听以太坊链上的交易。 交易请求会放入ZeroSwap的内存池,区块提议者对交易进行Rollup,生成新区块,状态Keeper则负责更新Layer 2中的代币状态,并将其发送给Committer。Committer跟Prove server通信,获得对应交易的证明。这些状态和所对应的SNARK证明会发送到链上的ZeroSwap智能合约。 ZeroSwap的零知识证明系统两个特点。一是具有分布式架构,其Prove server支持多个Prover,多个Prover可以查询Prove server的证明任务,在生成证明后返回给Prove server。二是采用了PLONK的零知识证明算法,它可以极大降低零知识证明的使用门槛。 PLONK的全局信任设置只需要生成一次,电路规模在一定范围内可复用。ZeroSwap的交易过程会反映到其状态树的变化上。ZeroSwap的状态树是高度为34的默克尔树,用于记录当前系统中所有账户的余额状态。 根节点Root的子节点为系统中所有账户节点。账户节点包括普通账户节点和Pair账户节点。普通账户节点用于记录账户内所有代币的状态,可以有多个叶子节点,每个叶子节点代表一个类型的代币以及其数量。Pair账户节点用于记录ZeroSwap中某个交易对资金池的状态。它只包含两个叶子节点,每个叶子节点代表该资金池中其中一个代币的余额和类型。

ZeroSwap上的状态树,Source:ZeroSwap白皮书

总结来说,ZeroSwap在技术有自己的特色,例如它采用了Plonk证明系统,其ZK证明电路可以支持不同大小,其初始可信设置只需一次,且在已有设置上可升级;在Layer 2层面实现了Uniswap的兑换逻辑,有可能成为首个实现基于ZK-Rollup的AMM模式的DEX,如果顺利实现,可以极大降低用户的费用,加快交易速度。 ZeroSwap的用户操作的背后 跟目前Layer 1上的DEX相比,基于Layer 2的ZeroSwap上有哪些操作?这些操作的背后跟Layer 1上的DEX又有什么不一样?从用户前端操作的角度,ZeroSwap比Uniswap多了存入和提取代币的操作,其他操作基本一致。 从交易者的角度,在ZeroSwap上完成交易,需要哪些操作?这些操作的背后是什么? 相对于Layer 1上的DEX交易来说,Layer 2上的DEX交易需要将代币从Layer 1账户上存入到Layer 2的账户,之后才能进行代币的兑换或转账。这里会涉及到代币的存入、转账、兑换以及提取操作。 首先是向Layer 2账户存入代币。用户将以太坊链上的代币存入ZeroSwap的合约,一旦ZeroSwap监听到用户在链上将代币转入ZeroSwap的合约之后,它会根据交易的详情更新状态树。ZeroSwap会根据交易找到相应的账户,并根据存入金额更新账户中该代币的余额。如果账户还没有相应代币的叶子节点,首先会创建该代币的叶子节点,然后在更新状态。叶子节点的状态更新会导致根节点哈希的改变。根节点哈希会与存入交易的SNARK证明一起发送到链上的ZeroSwap合约中。 其次是在Layer 2上进行转账和交易。在ZeroSwap上进行转账就是把一种代币从一个账户发送到其他账户的过程。转账也由用户在Layer-2上发起,ZeroSwap Server收到转账请求后找到相应的收发账户,更新这两个账户下的代币余额状态。更新后的状态树的根节点哈希和转账相对应的SNARK证明一起发送到ZeroSwap的智能合约上。 不过,它并不是链上的代币转移,因为代币还在ZeroSwap合约中。用户在Layer 2上进行交易,它本质上是用自己的代币与Layer 2中代币对资金池中的代币进行兑换。用户将其在ZeroSwap账户下的某个代币发送到相应的代币对账户,ZeroSwap则根据AMM算法计算出用户可以获得的相应代币的数量,并发送给用户账户。 与此同时,ZeroSwap将更新后的状态树根节点哈希以及兑换操作所对应的SNARK证明发送到ZeroSwap合约上。在代币兑换后,跟转账操作一样,链上的代币状态不会发生改变,因为代币还在ZeroSwap合约中。 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容