第五课(上):DEX 入门
在本节课中,我们将系统性地理解 DeFi 中”交易”是如何被设计与实现的。
课程首先从传统金融交易所出发,回顾订单簿的基本结构与两种典型模型,并分析它们在去中心化环境下面临的核心挑战,由此引出去中心化交易所(DEX)的整体架构与非托管结算逻辑。随后,课程重点介绍自动做市商(AMM)这一 DeFi 原生交易机制,在此基础上讨论交易在链上系统中的传播与确认过程。最后,课程聚焦于锚定资产与稳定币场景,介绍不同类型的稳定币,并解释专门为稳定币设计的 AMM 如何提高交易效率并维持价格稳定。
通过本节课,你将形成对 DeFi 交易机制的整体认知框架,为理解后续更复杂的流动性设计与市场机制打下基础。
一、金融交易所
Section titled “一、金融交易所”金融交易服务无处不在。这些分布在全球各地的中心化实体机构,将各类交易者、经纪商以及其他参与者汇集在一起,从而创造相应的价值。无论是使用本国货币,还是使用其他货币购买商品或服务,购买的整个流程通常都需要涉及交易所。
那么,这些交易所是如何运作的?它们由哪些部分组成,其整体架构又是怎样的?本节内容将围绕上述问题,对交易所的运作机制和结构进行拆解与讲解。
交易所的架构
Section titled “交易所的架构”
对于一个金融交易所,通常都会设有交易撮合引擎。交易撮合是指,在存在两个或多个参与方的情况下,各方就资产的价格、数量等交换条件达成一致,从而完成一笔交易。
例如,一方希望使用一笔资金购买某项资产,便会进入交易所参与交易。在这一过程中,一方支付资金,另一方交付资产,双方完成条件匹配后,即可实现撮合并完成该笔交易。
当发现存在可以进行撮合的交易时,相关交易将被提交至交易结算引擎。该部分是资产完成实际交换的主要环节。以上则构成了传统交易所的重要组成部分。
接下来,通过一个例子来理解金融交易所具体的运作方式:
假设存在两名参与者,Alice 和 Bob,在交易结算层中,双方各自持有一种资产:Alice 持有一个黑色的币,Bob 持有一个白色的币,二者希望完成一笔交易。 在这一过程中,Alice 首先提交一个订单,表示其希望使用一个黑色的币交换一个白色的币;与此同时,Bob 也存在相应的交换需求,希望使用自己持有的一个白色的币换取 Alice 手中的一个黑色的币。在理想情况下,双方的交换数量是一致的,Alice 和 Bob 各自希望获得对方持有的资产,且均以一个币换取对方的另一个币,即双方同意按照一比一的比例完成交换。 当这两个订单通过交易撮合引擎完成匹配之后,订单将被发送至结算层进行结算。交易结算层负责执行具体的资产交换操作。当双方订单在结算层完成相关结算后,对应的资产将在各自交易者的账户中完成互换。 上述过程即为交易撮合机制的基本流程,也构成了交易引擎运行的完整过程。

接下来将更详细地了解撮合交易的细节。交易撮合功能通常通过订单簿实现。 订单簿中一侧为买单,另一侧为卖单,分别反映参与者的买卖意愿。当前,想要购买该资产的最高报价为 418.40 元,而愿意卖出的最低报价为 418.41 元。由于两者在价格上未能达成一致,这两笔订单无法完成撮合。这相差的 0.01 元就是通常所说的价差,它反映了订单簿中询价订单与定价订单之间的差额。 此外还存在一些常见的术语,例如限价订单。限价订单指买家或卖家在下单时指定一个价格,例如价格为 X,买家或卖家仅在该价格或更优价格条件下进行交易。这种订单可以理解为设定了交易的上限或下限。 进一步观察订单簿,还可以看到每个价格对应的可交易数量。通过将每个价格的数量乘以对应价格并加总,即可计算出订单簿的深度。订单簿的深度越大,表示市场流动性越好,市场能够为交易者提供的交易量也越多。通常情况下,交易者会优先选择流动性较好的市场,这样不仅能够提高交易效率,也能降低交易成本。
两种订单簿模型的对比
Section titled “两种订单簿模型的对比”
那么,在区块链上使用订单簿模型的链上交易所是什么样的?中心化服务器的交易所和链上的交易所相比,各自的优劣又是什么?我们将这两者进行一个对比。
中心化服务器订单簿模型:
中心化交易所运行在中心化服务器上,其交易处理速度非常快。这类似于在纳斯达克或其他股票市场进行操作,属于传统金融体系的延伸。
优势:
- 交易速度快:订单撮合速度极快,因为在金融交易中,速度对整个交易过程非常关键
- 无需手续费取消订单:挂单操作本身并未触发实际交易,只有在订单成交时才会扣除相应费用
劣势:
- 缺乏抗审查能力:需要完成
KYC(Know Your Customer)验证,并遵守相关法律和合规要求- 例如,由于乌克兰与俄罗斯的战争,全球首家上市的数字交易所 Coinbase 直接封停了俄罗斯用户的所有账户
- 存在抢先交易风险:交易所可以在用户交易执行之前创建订单,这些订单对普通用户不可见,透明度不足。在传统中心化交易所中,交易的执行者通常无法被外部用户识别,有可能是交易所本身进行相关操作,这类行为难以评估或追查
链上订单簿模型:
链上交易所有几个比较有趣的特征。
优势:
- 抗审查能力强:如果交易所的智能合约没有管理员私钥,那么该链上交易所的抗审查能力就非常强。区块链的运行通常比中心化服务器更加可靠和稳健,其特性使得交易执行过程透明且可验证
劣势:
- 手续费高:每一笔操作都需要支付
gas费用,包括创建交易、取消交易以及资金存取。交易费用的高低取决于网络的拥堵情况和活跃度 - 交易速度慢:订单撮合速度相对较慢,因为区块链的底层存在吞吐量(
TPS)限制 - 无法完全避免抢先交易:存在抢跑交易、尾随攻击以及三明治攻击等现象。由于矿工和交易者有时可能为同一主体,他们可以串联起来实现抢先交易。这其中有一个专业术语称为
MEV(Miner Extractable Value,矿工可提取价值)
订单簿模式的 DEX
Section titled “订单簿模式的 DEX”
接下来,将注意力转向去中心化交易所 EtherDELTA。它是该领域的先驱,也是链上第一个去中心化交易所(DEX)。EtherDELTA 虽然仍有类似中心化交易所的服务器,但主要的交易撮合和挂单都是在链上进行的。首先,需要向交易所存入资金,才能开始交易。这一点与之后将介绍的 Uniswap 等基于 AMM 机制的去中心化交易所有所不同,但基本流程类似:存入代币后,才能创建买单或卖单,并最终将资产撤回到自己的钱包。在 EtherDELTA 中,用户可以在链上设定出售的数量和价格,系统会计算交易的总支出。同时,它也提供类似中心化交易所的订单簿展示,上面显示价格和价差。 总体而言,EtherDELTA 是一个非常成功的早期项目,但最终未能实现广泛应用。那么,我们从中吸取了哪些教训?限价订单簿的去中心化交易所有哪些优势和劣势?
优势:
对于链上交易所而言,其优势主要体现在不需要 KYC 验证,也不需要遵循反洗钱措施,从而具有较强的抗审查能力。
同时,链上交易所仍处于早期阶段,由于技术新颖,没有监管机构能够提供明确的监管方式。在费用结构上,去中心化交易所的手续费通常支付给挂单的做市商,并未直接向交易所支付任何费用。
关于现价订单簿的一个好处是,它不需要承担无常损失。用户在交易中只需支付 gas 手续费及其他相关费用,无需承担额外的无偿损失。关于无常损失的详细内容,将在之后 AMM 部分进行介绍。
劣势:
链上交易所的缺陷也比较明显。首先是手续费问题:在链上操作的每一步,包括交易创建、取消以及资金存取,都需要支付较高的手续费。
此外,其交易速度较慢,因为区块链的底层存在吞吐量(TPS)限制,这一问题影响了许多应用的快速执行。交易速度慢会降低市场竞争效率,使套利行为变得缓慢。而与之相比,中心化交易所的交易速度要远快于限价订单簿的去中心化交易所。
正因以上原因,这些 DEX 被称为去中心化交易所,但实际上并非完全去中心化。即使一个协议声称自己是去中心化,但去中心化的定义有多种,不同部分的去中心化程度也各不相同。例如全球最大的去中心化交易所 Uniswap,其前端也并非去中心化,而是部署在亚马逊云上的前端页面,因此大多数去中心化交易所并不是完全的去中心化。
为什么我们需要 DEX:非托管交易的结算层
Section titled “为什么我们需要 DEX:非托管交易的结算层”非托管意味着用户可以完全掌握自己的资产,正常情况下,任何人都无法获取用户的资产。在去中心化交易所中,用户自行掌控资产,对自己的资产负责,这也是去中心化交易所存在的主要原因之一。
假设有两个人。爱丽丝非常富有,是一个巨鲸,她希望将自己的资金提供给流动交易者,从而赚取相关手续费。如果在中心化交易所中,她需要将资金托管给第三方才能完成操作。但她不信任任何人,不希望任何人掌控这笔资产,因此她选择使用去中心化交易所。
另一方面,鲍勃是一名聪明的交易员,他希望购买某种代币,并希望从可靠渠道进行交易,按照自己的期望执行订单。在中心化交易所中,很难保证交易渠道的可信性,因为这些渠道可能受到交易所自身的影响。而去中心化交易所能够满足这类需求:所有交易的撮合、价格发现以及清算系统,完全基于链上的智能合约执行。
因此,无论是爱丽丝提供流动性,还是鲍勃购买代币,都可以通过去中心化交易所完成。在去中心化交易所中,结算是非托管的,资金完全由用户掌握,只要用户持有自己的私钥,资产始终在自己手中。
DEX 的架构
Section titled “DEX 的架构”
DEX 的基本理念包括价格发现、交易撮合引擎以及交易清算。此前讨论的交易撮合部分以及清算功能,全部在智能合约中定义,这构成了去中心化交易所的底层架构。鲍勃和爱丽丝可以在 DEX 中完成价格发现与交易撮合,交易通过智能合约进行清算,并最终在区块链上执行。
价格发现和交易撮合可以自然地在限价订单簿中实现。但同时存在另一种机制,在交易创建和取消的成本上具有更完善的设计,这就是所谓的 AMM 机制去中心化交易所。
二、自动做市商(AMM)
Section titled “二、自动做市商(AMM)”接下来,将讨论自动做市商(AMM),尤其是短线自动做市商。这是 DeFi 中最受欢迎的去中心化交易所模型,也是推动整个 DeFi 规模显著增长的重要原因。AMM 为低吞吐量和高吞吐量的区块链提供了理想的设置,能够有效提升交易速度和效率,同时降低用户手续费,在 DeFi 中具有重要意义。
为了理解自动做市商(AMM)及其作用,首先需要介绍流动性池的概念。这个想法的核心是让智能合约自动执行做市(Market Maker, MM)的功能,为市场提供流动性。
在之前的订单簿模型中,每笔交易都以买卖报价(bid/ask)形式进行,因此必须有足够的匹配和深度才能完成交易。如果缺乏匹配和深度,交易效率会降低,甚至无法完成交易。市场上的订单越多,流动性越大,市场深度越深,就越有利于实现高效交易。基于此,与其让参与者手动下单,不如让智能合约自动完成所有操作,这便是 AMM 的基础构想。
在流动性池中,有两个不同身份的角色。其中之一是爱丽丝,她向流动池中添加了流动性,为 X Token 和 Y Token 提供交易支持。另一个角色是交易员鲍勃,他希望将 X 换成 Y,并需要向爱丽丝支付了一笔费用。爱丽丝因此获得收益,赚取了部分利息;鲍勃则通过提供 X 成功换得了 Y,完成了交易。这便是流动性池的基础构想。
常数乘积公式
Section titled “常数乘积公式”
为了将流动性提供机制编程到智能合约中,需要一个简单的数学公式。最常用的方式是恒定做市商(Constant Product Market Maker),也就是通过公式 XY = K 来提供流动性。这是一个简单的反比例函数,用于描述池中两种资产的数量关系。
流动性池中有两种资产:X 和 Y,同时存在一个常数 K。在恒定做市商模型中,这两种资产的乘积必须保持不变,即 K 为常数。只要没有额外增加资产 X 或 Y,交易中资产的变化会使 K 保持不变。例如,当交易者用 X 兑换 Y,或用 Y 兑换 X 时,K 的数值保持恒定。
AMM 能够提供即时流动性,即无论交易规模大小,都可以在任何时间、任何地点进行交易,无需等待其他订单匹配。然而,AMM 也存在缺点,其中之一就是滑点问题。在交易执行过程中,如果价格发生变化,可能会产生一定的偏差。滑点的具体定义将在后续内容中详细讲解。
查看债券曲线可以发现一个直观的现象:如果购买资产 X,其价格会提高。由于市场中只有两种资产,且 K 为常数,资产 Y 的价格必然下降。资产 X 和 Y 的数量比率决定了市场价格。这与交易所架构中的价格发现机制相对应,同时也涵盖了做市和交易撮合的功能。一切都浓缩在这个简单的恒定乘积公式中。
让我们通过这个曲线来看 AMM 的运作方式。假设图表中 X 轴表示流动性池中资产 X 的数量,Y 轴表示资产 Y 的数量。当前状态(交易执行前)是资产 X 为 10,资产 Y 为 30,因此常数 K = 10 × 30 = 300。如果交易员希望从市场中取回 10 个 Y 资产,他需要向池中提供多少 X 资产才能满足恒定乘积公式?由于 K = 300,取回 10 个 Y 后,池中 Y 剩下 20 个。为了保持 K 不变,需要提供 5 个 X 资产。交易执行后,流动性池状态变为 X = 15,Y = 20,常数 K 仍保持不变。
这就是债券曲线的运作方式:根据市场状况,可以指定希望购买或出售的资产数量。当沿着债券曲线移动时,价格会发生变化。这是一个连续变化,而非离散的状态;沿着曲线移动,每枚 Y 资产的价格都会与每枚 X 资产的价格略有不同。
当用户的交易规模相对于池子流动性较大时,交易会显著改变池中资产比例,价格会沿着 AMM 曲线快速移动,导致后续成交价格发生偏差,因此成交均价低于(或高于)下单时看到的报价。资金池的流动性越强,实际持有的资金就越多,而在这个资金池上执行的交易规模越小,预期滑点就越小。
之所以称之为预期值,是因为它是可以计算出来的。您可以根据流动性池状态估算您将获得多少滑点,也就是基本上可以计算出价格的下降幅度。
在预期滑点之外,还会出现意料之外的滑点,而这主要与其他交易有关。如果你的交易是 TC,而在你的交易之前还有另一笔交易 TD 被执行,那么你原本可能认为自己会在曲线上的最上端点完成交易,但实际执行却发生在第二个点,因为在你之前已经有交易改变了资金池的状态。这意味着你最终获得的成交价格可能会比预期差得多,在这种情况下,你会得到一个更差的执行价格。
当然,也存在相反的情况,你也可能比较走运,出现意想不到的滑点,从而获得更优惠的成交价格。因此,实际结果取决于区块链网络本身的异步特性。你无法真正确定自己的交易是否会恰好在某一个特定的区块链状态下被执行。

AMM 的优点和缺点
Section titled “AMM 的优点和缺点”
总结一下 AMM 机制的优点和缺点。
优点:
- 无需维护订单簿:不必不断添加或取消订单,每笔交易都可以自动完成
- 存在套利机会:每笔交易本身都是实际的交易,市场上可能存在价格更高或更低的另一种交易方式
- 实现简单高效:恒定乘积
AMM的实现相对简单,单笔交易的执行效率较高,所需的gas手续费相对较低
缺点:
- 无常损失风险:如果两种加密货币之间的价值发生大幅变化,流动性提供者可能面临资金损失的情况(这一点将在后续详细讨论)
- 低流动性市场滑点高:低流动性市场容易产生高滑点,需要特别注意滑点保护的设置
- 三明治攻击风险:用户可能会遭遇三明治攻击,这种攻击类型在中心化交易所和去中心化交易所中都可能发生,也被称为抢跑攻击
三、交易传播
Section titled “三、交易传播”这一节将讨论影响交易传播的因素。区块链通常由无需许可的点对点网络构建,因此任何节点都可以随时加入或离开。可以把这个点对点网络理解为由全球众多对等节点组成的网络,其中一些节点是矿工。
当一笔交易被创建时,它会在这个无需许可的网络中进行传播。由于网络中节点可能随时变化,交易传播存在一定的不确定性。例如,五秒钟前存在的节点可能在下一分钟就离开了,因此交易无法保证即时到达所有节点。这种网络特性被称为异步网络,也意味着传输延迟无法完全避免,同时网络的流动性和用户响应可能存在波动。与同步网络不同,在异步网络中无法确定某个节点何时会收到其他节点发送的交易。例如,澳大利亚的节点何时会收到北美节点发出的交易是未知的。
假设北美节点设置了 5 个单位的交易费(这里先用通用单位表示,而不具体说明金额)。交易费指的是用户愿意为该笔交易支付的费用,而这笔费用最终由将交易打包进区块的矿工获得。因此,支付的交易费越高,交易被矿工纳入区块的优先级就越高。这实际上是一种“优先竞标”的形式,让高交易费的交易能够更快被确认。例如,假设矿工已经收到两笔交易,交易费分别为 10 和 1 个单位,那么支付 5 个单位交易费的交易很可能会被安排在这两笔交易之间。这样的排序方式体现了交易费对优先级的影响。
异步的点对点网络特点:
采用的是“尽力而为”的传播方式,无法保证特定节点在多长时间内收到交易。交易具有高度透明性,因为所有交易都是公开可见的。同时,在这种点对点网络中,连接数较多的节点通常比连接数较少的节点更有优势。
关于交易的纳入,通常采用费用拍卖模式。目前主要有两种设计机制:第一种是价格 Gas 拍卖(PGA),这与之前在公共点对点网络中提到的模式相同。另一种是密封投标 Gas 拍卖(SGA)。在这种模式下,交易员向特定的中心化服务器或中继器发送交易信息,许多交易员都会这样操作。这种拍卖是密封的、非公开的,只有中标的报价会被转发给矿工。
四、锚定和稳定币自动做市商
Section titled “四、锚定和稳定币自动做市商”在本部分,将介绍锚定资产和稳定币的自动做市商机制。上一节课中讨论了普通货币在 AMM 中的恒定乘积公式 XY=K 及其最优解。然而,对于价格存在相关性的加密货币,这个公式并非最佳选择。接下来,将深入探讨这一问题及其改进方案。
锚定和稳定币的交换
Section titled “锚定和稳定币的交换”
锚定稳定币大多是与美元挂钩的货币,例如 USDC、USDT 或 DAI。此外,还有一些锚定货币,它们是现有资产的代表物或衍生品。例如,比特币的 renBTC、sEther 或 stEther,它们都与基础货币挂钩,仅作为基础币的一种表现形式或衍生品存在,并可以以多种方式进行转移。 这些资产可以以不同方式进行转换。一个有趣的特点是,任何合成资产都可以与另一种合成资产互换,而不会产生价格滑点或偏差。这是因为它们都基于相同的基础抵押品,因此互换本质上只是名称上的变化,实际上甚至不需要真正的交易执行。

对于稳定币,大致可以分为三种类型,后面会有专门一节课来介绍稳定币。
-
基于储备的稳定币:背后有真实资产作为支撑,比如美元或者其他等价资产。典型的例子就是
USDT、USDC,这类稳定币通常宣称每一枚代币背后对应一美元的储备 -
基于抵押的稳定币:并不是直接用美元做储备,而是通过抵押加密资产来铸造。例如,可以抵押
BTC或其他加密资产,按照一定的抵押率,换取价值更低的一部分稳定币。比如抵押价值三百美元的BTC,只能铸造出五十美元左右的稳定币,用来应对价格波动带来的风险 -
算法稳定币:这是一种相对较新的类型,它不依赖明确的储备或抵押,而是通过算法来调节代币的供应量,从而试图维持价格稳定。这类稳定币通常被视为一种全新的货币实验,通过供给的增减来影响市场价格
对于稳定币来说,稳定性是最核心、也是最重要的目标。在图表中,X 轴表示时间序列,对应的是从 2020 年 1 月到 2021 年 5 月这一段时间。图中展示了五种不同的代币,包括基于储备的稳定币 USDT 和 USDC,基于抵押的稳定币 DAI,以及算法稳定币 AMPL 和 ESD。Y 轴表示的是这些代币相对于美元的价格。
从图中可以观察到,基于储备或基于抵押的稳定币,例如 USDT、USDC 和 DAI,它们的价格整体都在一个相对可控的区间内波动。而算法稳定币则表现出明显的不稳定性,价格更容易出现大幅波动,甚至发生脱锚的情况。正是因为缺乏直接的资产锚定或抵押支撑,算法稳定币在极端市场条件下更容易失去价格稳定性。因此,尽管它们在设计上被归类为稳定币,但在实际表现中,其价格往往并不稳定。
稳定币 AMM
Section titled “稳定币 AMM”
稳定币在理想情况下汇率始终接近 1:1。正因为这种特性,常见的恒定做市商 AMM(x⋅y=k)并不适合稳定币之间的交易,它更适用于价格波动较大、相关性较低的资产。因此出现了一种更符合稳定币特点的 AMM 机制,专门用于稳定币兑换场景。
这种稳定币 AMM 的优势体现在哪里呢?最直观的一点是:交易规模越大,成交价格反而越有优势。也就是说,在进行大额兑换时,池子能够提供更好的流动性,从而有效降低滑点,这正是稳定币 AMM 在大额交易场景中的核心价值。
不过这种设计同样伴随着成本。由于其底层定价公式相对于恒积 AMM 要更加复杂,稳定币 AMM 上的兑换操作往往需要更多计算步骤,因此可能产生更高的交易费用,最终体现为更高的 gas 成本。
通过一个资产兑换实例对比稳定币 AMM 和传统 AMM :
我们来看一组锚定资产或稳定币之间的兑换示例,并将其与更传统的 AMM 机制进行对比。图中左侧展示的是一种专门用于稳定币或锚定资产兑换的协议,右侧则是传统的 Uniswap 模型。我们将价值 1 亿美元的 DAI 兑换成 USDC,图中显示的汇率,就是实际能够获得的兑换结果。
可以看到,在稳定币 AMM(左侧)中,即便交易规模高达 1 亿美元,滑点非常有限,最终得到的汇率仍然相当接近 1:1。而如果在右侧的 Uniswap 上执行完全相同的操作,同样用 1 亿 DAI 兑换 USDC,最终只会得到约 2270 万美元的 USDC,相当于发生了约 77% 的滑点损失。
从函数曲线上对比稳定币 AMM 和传统 AMM:
从函数曲线上则能更直观的感受到稳定币 AMM 与恒积 AMM 的差异。
紫色虚线是传统的常数乘积 AMM(x⋅y=k,如 Uniswap),当池子中两种资产数量发生变化时,价格会快速偏离 1:1,因此在稳定币之间交易时容易产生较大的滑点。
红色点线表示理想化的恒定价格模型,在这种情况下,无论交易规模如何,价格都始终保持 1:1,但它缺乏对极端情况的保护,实际系统中难以直接使用。
蓝色实线是稳定币 AMM 的不变量曲线。可以看到,在初始状态下(例如 x=5,y=5),以及资产数量接近平衡的区域,曲线非常接近恒定价格模型,这意味着小到中等规模的交易几乎不会引起价格变化,滑点极低;而当池子逐渐偏离平衡、某一种资产被大量兑换时,曲线会逐步向常数乘积模型靠拢,使价格开始明显变化,从而抑制单边资产被迅速抽干。通过在这两种模型之间进行平滑过渡,稳定币 AMM 在保证低滑点的同时,也兼顾了系统的安全性和稳定性,更适合稳定币之间的兑换场景。