一家没有大楼的银行
想想一家银行或证券交易所所做的一切:它保管存款,让你把一种货币兑换成另一种,把钱借出去,并为买家和卖家牵线撮合。这一切的背后,都站着一家公司、一张牌照、一栋大楼,以及一堵你别无选择只能依靠的信任之墙。现在,设想把这些服务逐一改写成一份公开的智能合约——一台金融版的自动售货机,地球上任何人在任何时刻都能使用,无需开户、也无需申请。
这便是 去中心化金融,即 DeFi:完全由运行在以太坊这类链上的合约搭建而成的金融服务,中间没有任何公司坐镇。由于每份合约都是公开的、且能调用其他每一份合约,它们便能像积木一样彼此咬合——人们称之为货币乐高。一份借贷合约可以接入一份交易合约,后者再接入一份储蓄合约,而一个新来者无需征得任何人同意,就能在这三者之上搭起一项全新的服务。
难题:你跟谁交易?
拿最基本的服务来说——把一种代币兑换成另一种。传统交易所维护着一本订单簿:一长串人在以某价买入、又以某价卖出,由一台撮合引擎把他们配成对。这在一台高速中心服务器上运转得无比顺畅,可一搬到区块链上就垮了——在链上,每一次更新都很慢,还要花一笔 gas 费。在链上维护一本繁忙的订单簿会贵得令人咋舌,而且到了凌晨三点,对面可能压根就没有愿意成交的人。
于是 DeFi 干脆扔掉了订单簿,转而问了一个更古怪的问题:要是你压根不跟某个*人*交易,而是跟一池资金交易、由它用一道公式给自己定价,会怎样?不必等待对手方,也不需要撮合引擎——只需一份始终敞开、始终报价的合约。这就是自动做市商,即 AMM,它是 DeFi 绝大多数交易背后的引擎。
资金池与一行数学
一个 AMM 始于一个流动性池:一份合约,持有两种代币的储备,比如说 ETH 和一种叫 USDC 的美元稳定币。想赚取手续费的人会把*两种*代币都存入池中——他们就是流动性提供者——于是这个池子如今便有了,比如说,一边 100 个 ETH、另一边 200,000 个 USDC。真正神奇的,是合约用来定价的那条规则。它让两份储备的乘积保持恒定:
x * y = k
x = amount of token A in the pool (e.g. ETH)
y = amount of token B in the pool (e.g. USDC)
k = a constant -- it must NOT change on a swap
Start: x = 100 ETH , y = 200,000 USDC
k = 100 * 200,000 = 20,000,000
Any trade must leave x * y back at 20,000,000.这一道方程,`x · y = k`,*本身*就是那个做市商。合约从不去任何地方查询价格——价格不过是两份储备的比值,而那个常数 `k`,就是储备必须永远遵守的规则。这里 ETH 当前的价格是 200,000 / 100 = 2,000 USDC。这个数字没有任何人手动设定,它直截了当地从池中两种代币各有多少之中流淌出来。
一笔兑换,逐步拆解
现在来看一笔交易是怎么发生的。你想买 ETH,于是往池里送进一些 USDC。你的 USDC 被*加*到了 `y` 那一边,把 `y` 推高。为了让 `k` 保持不变,合约必须返还给你恰好够多的 ETH,把 `x` 往下拉到刚刚好的程度。你并不是以某个固定价格拿走 ETH——你是在沿着曲线滑动,你每取走一个 ETH,池中这种代币就少一点,于是下一个 ETH 就贵上那么一点点。
- 你往池里送进 10,000 USDC。USDC 那一边上升:y 从 200,000 变成 210,000。
- 常数必须守住:x 须满足 x * 210,000 = 20,000,000,于是新的 x = 20,000,000 / 210,000 ≈ 95.24 ETH。
- 池子原本持有 100 个 ETH,现在只剩 95.24 个,于是它把差额交给你:≈ 4.76 ETH。
- 你用 10,000 USDC 换得约 4.76 个 ETH——每个约 2,100 USDC,比你交易前看到的 2,000 略高。这道差距就是滑点,它会随你下单的规模而变大。
提供者所承担的风险
流动性提供者赚取这些手续费,但他们也确实承担着一份值得点明的风险。当 ETH 的外部市场价格变动时,交易者会不断把池子再平衡——买进便宜的那一边、卖出贵的那一边——于是提供者最终所持的总价值,可能比他们当初干脆把这两种代币留在自己钱包里还要少;这一缺口被称作无常损失。手续费有可能盖过它,而这恰恰就是提供者所下的那一注。
小结
DeFi 把金融重建成开放、可组合的合约——人人皆可使用、也可堆叠的货币乐高。它的交易主力——自动做市商——用一个由单一规则 `x · y = k` 定价的流动性池,取代了由人组成的订单簿:每一笔兑换都沿着那条曲线滑动,越大的交易滑得越远,而为池子注资的提供者,则以承受无常损失为代价换得手续费。
由这一个基本构件,应用层的其余部分便生长开来:借贷市场、价值稳稳锚定的稳定币,以及能代表任何东西的代币。接下来,我们将认识这些代币本身——那些在链上每一个池子、每一份合约中流动的、标准化的价值单位。