Sphinx 项目不仅仅想要在 StarkNet 上实现更高效的订单簿交易平台,还希望能够基于 StarkNet 高效的底层基础设施,帮助用户实现跨链交易。
每一条新公链或者 Rollup 上都会有不少被重复建造的基础设施,正在逐渐走向成熟的 StarkNet 生态也是一样。然而,Sphinx 项目不仅仅想要在 StarkNet 上实现更高效的订单簿交易平台,还希望能够基于 StarkNet 高效的底层基础设施,帮助用户实现跨链交易。
什么是 Sphinx
Sphinx 是第一个部署在 StarkNet 上的,支持原生跨链的中央限价订单簿 (CLOB) DEX。是的,在底层公链的性能已经足够突破交易效率的瓶颈之后,AMM 效率低下,无常损失等劣势就会更加明显。因此新公链以及 Layer2 上的 DEX 逐渐采用订单簿作为底层交易系统已经成为了一个明显的行业趋势。
Sphinx 第二个明显的优势,便是其可以支持跨链交易。我们知道目前在 StarkNet 生态中,由于底层技术已经原生支持了账户抽象功能,因此 StarkNet 生态中可使用的钱包都是智能合约钱包。也就是说,已经被用户所熟知的 MetaMask 钱包是无法使用的。
但是 Sphinx 可以通过构造无信任的桥,允许来自其他链(如 Ethereum、Polygon、Arbitrum 等)的用户使用他们熟悉的 Metamask 远程存入资产并进行交易。通过这种方式,Sphinx 将进一步发挥可组合性,充当各条公链的流动性聚合层,同时不会出现 AMM 的无常损失或滑点等问题。
Sphinx 如何实现跨链交易
要想实现 Sphinx 的跨链交易,首先需要解决两个问题:
- 将消息从源链桥接到 StarkNet;
- 代表用户在 StarkNet 上执行;
为了解决第一个问题,Sphinx 需要让用户在源链签署一个无 gas 的 EIP-712 信息(这个信息可以是:提交限价买入订单、取消订单或提取资金等)。然后通过一个信息传递桥在链间进行转发。当然,这就涉及到选择一个安全的跨链桥的问题。
然而遗憾的是,目前上主流的跨链解决方案,要不是基于乐观假设的,要不是通过 multisig 的多钱钱包,由一些中心化实体控制的。这些解决方案都在安全性上进行了妥协。
因此,Sphinx 选择了与 Herodotus 进行合作,使用存储证明在区块链的共识层实现 ZK 跨链。也就是利用 StarkNet 的廉价计算来读取 Ethereum 上的状态,并使用 SNARK 证明将消息桥接回源链上,以此实现真正安全的信息跨链。
聚合流动性
在成功地解决了跨链交易的问题后,Sphinx 再进一步,可以实现对不同链不同 AMM 交易资金池之间的聚合。
正如上图所示,未来 Sphinx 可以将不同链间的交易价格以及流动性都统一到位于 StarkNet 的交易中心,也就是 Sphinx 的订单簿系统中。当实现这一步后,主流公链见交易平台的交易价格与流动性都将得到统一,因此用户也将减少因为套利等原因而被动接受次优价格的问题。
Sphinx 的用户界面
Sphinx 非常特立独行的一点是,其在用户界面上参考了彭博终端使用了命令行界面来与合约交互。
以下截图是其操作指南,比如用户希望向系统中提交一个 ETH 对 USDC 的买单,价格 1200USDC/ETH,数量 0.5ETH,则需要在命令行界面输入「BID ETH USDC 1200 0.5」并点击回车。
好吧,或许对于专业交易者来说这样可以提高效率,但对于普通用户来说确实是增加了使用的门槛。当然目前的 Sphinx 还处于测试阶段,未来在正式版中或许会增加用户更为熟悉的图形交互界面。