我决定启动做一款白标 Perp DEX 了

CN
4小时前
在 AI 的加持下,我一个人 + AI,本质上就是一个完整团队。

撰文:Keegan 小钢

其实很久之前,我就已经在规划这件事:自己做一套 Perp DEX,但不是拿去运营,而是把它做成一款白标产品,卖给真正有需求的团队。对于有需求的团队,现在就可以找我先预订这套系统。

这个想法在我脑子里放了很久,也反复推演过很多次。只是因为各种现实原因,一直没有真正启动。但最近我越来越清楚地意识到一件事:如果再不开始,我大概会一直拖下去。所以这次我没再给自己找理由。这个周末,我直接开搞了。

这些年,我已经记不清自己参与过多少套交易系统的设计与实现了。但一个人把一整个系统从架构、协议、撮合逻辑、风控到前后端全都扛下来,这确实还是第一次。

如果放在两年前,这至少是一个十几二十人的团队,投入大半年时间,才能勉强落地的工程。

而现在不一样了。

在 AI 的加持下,我一个人 + AI,本质上就是一个完整团队。而且更重要的是——当所有核心细节都由我一个人把控时,我反而比过去任何一次,都更有信心把它做好。

当然,这件事本身也并不简单。

要真正把一套 Perp DEX 做完整,远不只是把合约和前端后端拼在一起。从账户模型、撮合与清算逻辑、风险控制、资金安全,到异常场景处理,任何一个环节理解不够深入,系统都会在真实交易中出问题。

我要做的 DEX 将采用链下撮合 + 链上结算的混合架构,包含的模块会很多,今天先分享下充提模块的一些设计思考。

充提模块

我所设计的这款 DEX 的充提模块有几个核心功能:

  • 用户可以通过钱包直接调用合约deposit()来完成充值
  • 支持多链充提,要支持最常用的那些 EVM 链
  • 支持跨链充提,用户可以在 A 链充值,在 B 链提现
  • 支持多币种充提,用户可以用不同代币进行充值,也可以提取成不同代币出去

我们需要在多个不同的链上部署合约,提供充值函数。而链下的钱包服务需要监听所有链的合约充值事件,才能结算到用户钱包在链上对应的资产账户上。而结算资产应该采用统一单位,我将采用 USDC 作为统一结算单位。

而多币种充提,要实现的是其他代币和 USDC 之间的自动兑换,这可以通过接入 Uniswap/PancakeSwap 等 DEX 或 1inch/OKX 等聚合器来实现。

主要的挑战其实在于提现。

因为是链下撮合模式,用户的仓位信息、交易盈亏,也只有链下系统才知道,合约无法验证用户可提金额,必须由后端签名授权。那如何防止签名私钥泄露或签名者作恶,是一个难点。

另外,因为允许跨链充提,那用户在 B 链提现的时候,B 链上的合约里不一定有足够的可提资产,如何避免或者减少这种情况,这是另一个难点。

分层提现机制

关于第一个难点,我的方案主要是采用分层提现机制,如下表:

我按照不同的提现金额分为了 4 个层级,第一个层级为小额提现,直接后端 Signer 进行签名即可。但为了保证后端 Signer 的私钥安全,我计划是接入Fireblocks的 MPC 钱包,从而避免 Signer 接触到私钥,同时还能做自动化。

第二个层级也同样有后端 Signer 的签名,但增加了 1 小时的时间锁,在这 1 小时内,合约内的 Guardian 如果发现这边提现有问题则可以在链上取消这笔提现请求。如果没问题,1 小时后就可以执行提现。

第三和第四个层级则会增加链上多签审核的流程。在合约上会配置好 3 个多签审核地址,这种大额提现请求,需要得到 3 个审核者至少 2 个签名才能通过。

而这几个层级里的每一个具体阈值,都应该是可配置的,时间锁也同样是可配置的。

完整的提现路由大致如下:

资金再平衡机制

为了让用户提现时,目标链大概率有足够余额,我设计了一套资金再平衡机制。

给每一条链,按历史提现占比分配目标余额,举例如下:

设置一个定时任务,比如每隔 1 小时,检查每条链上合约有多少资产,当检查到某条链的余额小于安全线了,则从富余链补充到目标余额。比如,再平衡定时任务检查到 Arbitrum 的余额只剩下 40K 了,然后 Base 链上有 100K,则将 Base 链上的 USDC 跨链转 60K 到 Arbitrum。转完之后,Base 链上还有 40K,大于安全线。

另外,如果用户提现的时候,发现合约余额不足,这时候也会触发再平衡,从富余链将资产转入当前链。

还有跨链方案,我选择的是 Circle CCTP,这对于跨链 USDC 是天然最合适的跨链方案。

小结

以上就是我对于充提模块的一些核心设计思考。后面我会陆续分享其他模块的设计和进度,欢迎大家关注。

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接