去中心化应用不一定需要构建在以太坊[2]或者某一条公链上。当我们在谈论 DEX 的时候,几乎都是指 Uniswap[3] 这样的运行在以太坊上的智能合约程序。本文会探讨一种新的 DEX 构建模式,它具备 Uniswap 的自动做市的特性,具备区块链一样的安全特性,但是没有 MEV,并且拥有几乎无限的性能拓展能力。
Uniswap 是怎么运行的?
自动做市的思想源自 Uniswap,若要打造新型的 DEX 应用离不开 Uniswap 的构建哲学:用最简单的算法,借助区块链将做市的权利从专业的机构下放到每一个用户。
Uniswap V3[4] 的全局系统架构如上图所示,V3 的智能合约是运行在 EVM 上的,而 EVM 是运行在每一台 geth 节点中。因此 V3 的计算过程会被成千上万的节点进行运算,并通过 PoW 获得统一的共识。
深入 V3 合约,V3 本质上是通过 Router 对多个 NFT [5]的流动性进行聚合,每一个 NFT 都是个人用户提供的流动性池,有自己的曲线和做市区间。当用户向 V3 合约请求价格时,Router 会进行聚合计算,产生一个当前最优价格。用户会签署该价格并发送给 Uniswap 合约进行执行,这笔交易会同步更新多个 NFT 的状态,为用户提供安全可靠的兑换功能。
新一代 DEX 的原型
在构建原型之前,我们需要学习一下 everPay 和 evePay bundle 交易。everPay 是基于 Arweave SCP 的区块链金融基础设施,具备实时转账,账本可验证的特性,用户和开发者可以使用 everPay 进行实时的代币结算。
Bundle 交易是 everPay 的一种交易类型(opAction),可以进行多对多的转账,一笔交易中要求多个转出方的签名,交易在 everPay 上执行时,如果有一笔转账失败,则整个交易回滚。是一种多对多的事务性转账功能。
熟悉 Uniswap V3 之后,再加上 SCP 的基础知识以及 everPay 提供的 bundle 交易,就可以创建新一代的 DEX 了。
将 Uniswap V3 的 Router 合约 替换为 Router 节点:一种任何人都可以部署的路由网关节点。router 会采集 LP 的信息,和 V3 一样,收到请求后可以聚合出最优价格和兑换路径。
将 V3 的 NFT 替换为 LP 节点:拥有私钥和自动化的签名程序,LP 节点程序依照用户设定的曲线公式和区间进行报价和 bundle 签署。LP 的报价信息和做市曲线会在启动时提交给 router,并和 router 保持网络通讯。router 会将有效的 bundle 订单发送给 LP 节点进行签署,LP 按照自有的做市规则进行判断和签署,成功的签名发送给 router。
交易流程:
- 用户向 router 请求一个报价
- router 根据采集到的多个 LP 信息,生成最优的报价和兑换路径
a. bundle 兑换路径实例:userA tranfser tokenA to lpB, lpB transfer tokenB to lpC, lpC tranfer tokenC to userA
- 用户认可该报价则进行签名,router 通知所有 LP 进行签名,LP 也会对报价进行确认
- router 采集了该 bundle 交易的所有签名后,将 bundle 提交 everPay 进行执行
新一代 DEX 具备的优势:
- 完全分布式的 P2P 网络,router 和 LP 节点可以由任何人部署,无法被中断和关闭
- 具备无限的性能,每个 router 都可以提供上百个 LP 连接,为上万的用户提供 LP 聚合。整个网络中可以部署无数个 router
- 没有 MEV,用户签署的 bundle 订单是什么价格,收到的 token 就是多少。如果 LP 无法支付对应的 token,整个交易回滚——相当于没有发生
- 密钥和资产保存在 LP 自己手中,攻击向量分散,黑客偷盗资产需要逐个 LP 突破,网络的资产安全性极高
该网络对于用户体验极好,用户只需要访问一个连接了某台 router 节点的 UI,根据 router 的价格进行签名确认即可。router 和 LP 之间使用 websocket 通讯,能让一笔定在在数秒能就完成签名,并通过 everPay 实时执行,交易速度非常快。同时,用户的价格所见即所得,不用担心在以太坊上出现的 MEV:被 flashbot 走滑点利润。
唯一的劣势是做 LP 需要跑节点,该劣势也可以改善。比如我们的手机钱包可以成为 LP,用户在手机上滑动一下做市区间,并选择做市曲线就可以将手机中的闲置资产用于自动套利。用户像玩网络游戏一样加入 DEX 兑换网络,手机上的程序会保持在线并按照用户设定的规则进行自动做市。
总结
从上面的原型可以看出,开发去中心化应用并不需要链上智能合约,上面的系统开发成本也非常的低,这样的开发模式也符合 web2 开发者的思路。我们可以预见,WEB3 时代崛起,一定不会局限在区块链以及 EVM[6] 之中,一定会有更多的范式去产生 WEB3 应用。SCP 是 WEB3 开发非常好的选择,让应用具备区块链不可篡改、可追溯等特性的同时,又能提供大规模应用的可拓展性。
参考资料
[1]
outprog: https://learnblockchain.cn/people/739
[2]
以太坊: https://learnblockchain.cn/article/2226
[3]
Uniswap: https://learnblockchain.cn/article/274
[4]
Uniswap V3: https://learnblockchain.cn/article/2302
[5]
NFT : https://learnblockchain.cn/article/2356
[6]
EVM: https://learnblockchain.cn/article/1229