可编程交换

Understanding Programmable Swaps | Cardano Explorer (cexplorer.io)

我们认为 Axo 是贸易领域区块链项目的重要创新者。在本文中,我们将深入探讨可编程交换的本质,它构成了 Axo 的基石。

利用卡尔达诺的潜力
卡尔达诺的智能合约由链上验证器和链下代码组成,提供强大的安全性。图灵完备的链下代码允许执行复杂且资源密集型的计算,而不影响交易成本。链上验证器提供了与其他区块链模型相当的安全级别。

这项创新具有开创性,因为它能够实现可编程互换和算法自动做市商(AAMM)等概念,否则这些概念是不可行的。

Axo 团队有效地利用了 UTxO 模型的功能和 SC 平台的设计,能够执行复杂的逻辑,根据规范和链上状态在链下部分执行所有可编程交换。

尽管有链下订单匹配引擎,但由于链上验证器,该协议就像完全在链上执行一样安全。

在卡尔达诺上,可以满足去中心化和点对点通信的需求,同时构建现代可扩展的金融应用程序。

可编程交换
将可编程交换视为交易者意图的最紧凑表示,体现在具有链上状态的铸造 NFT 中。

可编程交换包含四个要素:

订单类型
触发器
行动
资产

订单类型传达掉期偏好,例如立即资产交换(市价订单)或按设定价格掉期(限价订单)。

触发器设置交换激活的条件。市价订单无需触发,立即生效,从而立即进行资产互换。

限价订单有价格触发。它保持不活动状态,直到市场价格与设定价格一致,激活掉期并触发操作。

该操作概述了激活后交换的操作,从而创建交易。

资产是拟议行动的主题。

该图展示了限价订单类型的可编程掉期。交易者设定了一个条件,当 HOSKY 价格等于或超过 ADA 价格时,将 HOSKY 兑换为 ADA。本次互换涉及 10000 HOSKY。

在 Axo 协议中,有来自许多交易者的高度碎片化的可编程互换。掉期由订单匹配引擎相互匹配并执行。

可编程掉期允许以优雅的方式执行多种订单类型。另一个例子可能是平均美元成本(DCA)、动态流动性供给、投资组合管理策略等。

可编程交换的创建与 NFT 铸造过程相关,该过程发生在承诺阶段。可编程交换通过 NFT 铸造提交到区块链,封装交换执行的所有基本数据。 NFT 铸造的并行性是一个关键优势。

一旦可编程交换被记录在分类账中,它就会过渡到承诺阶段。这是可编程交换移至执行池之前的等待阶段。在下一个块中,可编程交换被放置在执行池中,可以从中选择和使用它们。

要执行交换,至少需要两个块。初始区块用于承诺阶段,在此期间会铸造一个新的 NFT,代表新的交换意图。一旦可编程交换被记录在区块链中,交换只能在后续块中进行。

对于每个附加块,可以提交新的可编程交换,但也执行已经提交的交换。

执行池分为两部分:Active Frontier 和 Inactive Frontier。 Active Frontier 包含可调度的交换,并且可以在满足所有触发器定义的条件时在当前块中执行。相反,非活动边界包含不可执行的交换,因为并非所有激活条件都得到满足。

该图展示了 Axo 协议与 Cardano 区块的交互。新的可编程交换在区块中提交。从 Axo 的角度来看,这发生在承诺阶段,这意味着交换 5、6 和 7 只能在后续区块中执行。位于活跃前沿的互换 1 和 2 目前正在进行资产互换。交换 3 和 4 位于非活动前沿,等待满足所有激活先决条件才能过渡到活动前沿。

让我们看看两个块之间的可编程交换会发生什么。

交换执行涉及匹配区块 N 中 Active Frontier 的可编程交换并为区块 N+1 生成交易。多个可编程交换用作输入,从中不仅可以创建交易,还可以创建包含未消耗资产的新可编程交换输出。

如下图所示,出现了一个新的交换8来自交换 1 和 2 的 s,作为新交易的输入(由红色箭头表示)。

所有可编程交换从区块 N 中的承诺阶段过渡到活动或非活动前沿(由绿色箭头表示)。互换 5 和 6 转移到活跃前沿(它们是可调度的),而互换 7 则留在非活跃前沿。

此外,交换 3 从区块 N 中的非活跃前沿转移到区块 N+1 中的活跃前沿(以紫色箭头突出显示)。与此同时,掉期 4 仍处于非活动边界(由蓝色箭头标记)。

新的交换 9 和 10 在新区块 N+1 中提交。

这些过程在具有大量可编程交换的每个块中重复出现。

在给定的市场条件下,活跃前沿中的掉期交易可能会转移到非活跃前沿中。

每个可编程交换最终都会达到其使用寿命 (EOL),这意味着它可以因不再需要而被丢弃。

有两种情况会导致可编程交换被破坏。

一种是以另一个可编程交换的形式提交取消订单,这会破坏现有的可编程交换。另一个是当可编程交换达到其 EOL 时。这意味着预定的行动已经完成或者时间已到。

下图说明了 Axo 协议中的各种操作。执行引擎是 Axo 的链下组件,处理取消订单(防止其在掉期中使用)、执行掉期并更新活动和非活动前沿(根据市场波动重新定位可编程掉期)。

Axo 协议在处理可编程交换方面脱颖而出。其订单匹配引擎可以将不同订单类型的可编程掉期配对,例如将市价订单与限价订单进行匹配。

假设提交了市价订单 M。只要有流动性,该订单就可以以最优惠的价格执行。假设这个价格是由限价订单L提供的,并且L出售的资产足以完全满足市价订单M。然后使用 M 和 L 作为输入 EUTxO 提交交易 T。交易T包含交换的资产,这些资产可供提交市价订单M的代理人使用,因此资产直接转移到代理人的钱包中。生成一个新的 UTxO,持有市价单未用完的剩余资产,从而创建一个新的可编程掉期——新的限价单。

下图展示了执行交换的交易。交易输入包括代理 1 的市价订单 M 和限价订单 L。交易将资产转移到代理 1 的地址,并提交新的限价订单 L’,持有互换中未使用的剩余资产。

观察到使用限价订单的流动性来满足市价订单的要求,这种方法在流动性背景下被证明是非常有效的。

Axo 非常高效地利用资源
承诺阶段 NFT 的铸造是并行处理的理想结构。这使得能够在每个块周期中同时铸造可编程交换,从而消除延迟和排序要求。承诺阶段优化并发性并为高吞吐量铺平道路。

可编程交换的执行需要最少的信息,从而减少内存使用和成本。

卡尔达诺的架构允许开发人员将基本功能集成到应用程序的链上部分,而包括交易准备在内的复杂功能则在链下处理。链上验证器仅验证 UTxO 支出条件是否满足。

链下功能编译交易,然后使用验证器脚本在链上进行验证。这些脚本可以确认所需的状态转换。

Axo 协议复杂的逻辑,包括订单匹配引擎和可编程交换的执行引擎,位于应用程序的链下部分。

值得注意的是,由可编程交换促进的自动化和算法执行过程完全是在链上进行的。这意味着没有与外部 API 的连接,没有外部软件可以访问合约,也没有必要的组件存储在链下。

在 Cardano 的编程模型中,链下组件负责为交易选择 EUTxO。然而,实际执行仍然发生在链上。

这表明Axo协议提供的模型不仅是独立的,更重要的是,它是去信任的并且使用智能合约实现。

这种设计理论上可以实现与现代中心化交易所相当的效率,同时保持去中心化和资产自我托管的特点。

Axo 协议适用于高度碎片化的可编程交换。它们在应用程序的链外部分配对,只需要每个程序中存储最少的信息可能的交换。

一旦 Axo 协议可以利用 Hydra 头进行可编程交换来扩展交易,这种优雅简单、碎片化设计的影响就会变得显而易见。活跃前沿中的所有 EUTxO 都可以转移到 Hydra 头部执行,执行后返回到第 1 层进行交易结算。由于每个可编程交换代表尽可能小的意图,因此它确保了层之间最有效的信息交换。

可编程交换的一个显着特征是它们的组合能力。可编程交换的这种可组合性意味着它们可以合并,进行类型检查,从而生成新的、独特的可编程交换。可组合性是函数式编程的一个基本方面,可编程交换的组合代表了实现金融合约的最函数式编程方法。

结论
可编程交换是一种完全在链上执行的独立、无需信任的金融合约。它是链上代码的自治单元。这允许自动化和算法交易,并在链外处理复杂的逻辑。将交换转移到其他层并返回很容易。

这些交换是独一无二的,因为它们可以相互组合,进行类型检查,并生成新的独特的可编程交换。

可编程互换的设计分散了流动性,使得机构级市场首次在链上成为可能。这带来了与中心化交易所相当的高效率,同时保持了资产的去中心化和自我托管。

总体而言,可编程互换是去中心化金融领域的关键组成部分,可以提高资本市场的效率和安全性。