# ProbabilitySpace：预测市场的新型 AMM

By [BTX ｜ Research](https://paragraph.com/@btx-research) · 2022-12-10

---

**TL;DR**

传统的恒定函数做市商们 (CFMMs) 不太适合预测市场等应用。它们与时间无关，这意味着没有预测市场所需的流动性分布调整和流动性提供者保护。

在本文中，我们提出了一种与 [YieldSpace](https://yield.is/YieldSpace.pdf) 形式类似的与时间有关的 AMM，随着时间接近到期，它会将流动性分散到“边缘”。这导致在任何时候都有最低数量的 YES 和 NO 储量，从而保护流动性提供者。

我们称之为 ProbabilitySpace。

YieldSpace 的目标是在给定储量比率的情况下对恒定利率进行定价，而 ProbabilitySpace 则试图根据随机过程的波动性和时间对 YES 和 NO 的概率进行定价。

1\. AMM 的推导
-----------

我们希望随着时间的临近到期，AMM 将流动性分散到 100% YES 和 100% NO。

这里我们选择 YES 和 NO 概率来遵循二元期权，YES 和 NO 储量比率的自然对数服从正态分布。

YES 和 NO 的概率应该随着时间的推移而增加或减少。

NO 的概率可以表示为：

![](https://storage.googleapis.com/papyrus_images/9ce392a28f2d3b328415d0a7eb9931ebca514ae9a176bd3d36ab59969c1e542b.png)

其中 _N(d)_ 是正态分布 _N(0,1)_ 的 CDF（累积分布函数）。

![](https://storage.googleapis.com/papyrus_images/9e2be2d3ddc6c5ca6d999e05ac75c9638552fcdb3ac7356ede83fbd83bc576c1.png)

我们还可以将第一个等式写成：

![](https://storage.googleapis.com/papyrus_images/a7fc5d8fd579ff1ba94682c15353ca45bc2df6cc1bff3972c9079128d63b6d15.png)

这意味着价格，作为 NO 和 YES 概率的比率，随着时间接近到期而增加到无穷大或减少到零。

使用 [这篇论文](https://www.jiem.org/index.php/jiem/article/view/60/27) 中的近似公式，我们可以进行单参数和双参数近似，这使得微分方程更容易求得解析解。

### 单参数近似

将 _N(d)_ 近似为：

![](https://storage.googleapis.com/papyrus_images/ac3022490e428ad24c8edd7907e190517a250b582568abf4c30bea733bb190d5.png)

不失一般性，令

![](https://storage.googleapis.com/papyrus_images/c2c90fd5f91e00184d55313f14ae75d91feab0c64b14bffedad35d2d01c755ce.png)

则

![](https://storage.googleapis.com/papyrus_images/bdf996cb7d9ff467654eb2818391fb4c5b5e4e41b8ebdc4eb925bf75a703f952.png)

因此，在时间 _t_ 时

![](https://storage.googleapis.com/papyrus_images/bc92739b0175ed6b4cdb0fb4b38993000be1a6d511a3dd4c209269c232bccd9e.png)

### 双参数近似

将 _N(d)_ 近似为：

![](https://storage.googleapis.com/papyrus_images/ec0030545152dea70b4b8059df41ff7aa5ccc63685bc33f0dad4db4e59a78990.png)

不失一般性，令

![](https://storage.googleapis.com/papyrus_images/e4e87c1092e17263d6b452d97c22aa49fee412eeb9ea8582dc2cb52c4f13520d.png)

则

![](https://storage.googleapis.com/papyrus_images/e04e90be34c4ab3f546e9d0a3cbccc8514b947e68116787f5d42ef98ce0274f9.png)

二阶近似生成的微分方程也难以求解。因此，本文的其余部分，我们使用单参数近似。

我们得到的 AMM：

![](https://storage.googleapis.com/papyrus_images/9d4fb1f7f94a3736dd908bdc7ab8d7b2edcf00f39e660f709ee73aacdc36fa84.png)

看起来与 YieldSpace 非常相似，只是 _t_ 被 1/sqrt(_t_) 替代。

2\. 流动性指纹
---------

我们可以使用 [这篇文章](https://www.paradigm.xyz/2021/06/uniswap-v3-the-universal-amm) 中的技巧分析流动性分布的演化，衡量每个价格 tick 间的流动性。

AMM 的实时价格为：

![](https://storage.googleapis.com/papyrus_images/eeb818921ab12a692ac8a92cd85a742b65fc280061a3ed14b5e5f76bbc78a57a.png)

_y_ 可以被写成关于 _P_ 的函数：

![](https://storage.googleapis.com/papyrus_images/9467acc561e47432ddd4fc8e10bc25a173e9425d1c77c8ba0c062b0692e5bf6b.png)

_P_ 可以用价格 tick 来表达：

![](https://storage.googleapis.com/papyrus_images/ade807887ff91df3492cf52f3411a7751ec1c0e526a3a5514e2103563e36bcdc.png)

因此

![](https://storage.googleapis.com/papyrus_images/7b4b784f35cee63c331066e5455109717bcbc93e1ae468f7c27ec41169fce061.png)

📌 **Desmos 链接:** [https://www.desmos.com/calculator/xozkru6lwz](https://www.desmos.com/calculator/xozkru6lwz)

正如我们从 Desmos 里看到的那样，随着时间在 0 处到期，AMM 按照我们预期的那样将流动性分散到了 100% YES 和 100% NO。

3\. 非常数的 s
----------

上述计算假设 _s_ 随着时间的推移保持不变。

仅当 _x_ 和 _y_ 保持在 _s_ 时才保持不变。

例如, 如果 _x_ = 2, _y_ = 1：

当 _t_ = 0.5, _s_ = ~1.38

当 _t_ = 0.25, _s_ = ~1.33

因此，我们在这里讨论 _s_ 不恒定时 AMM 的演化。

具体来说，我们将 _x_ 在 _t = t0_ 的价格定义为 _P0_，将 _s_ 在 _t = t0_ 的值定义为 _s0_。

![](https://storage.googleapis.com/papyrus_images/6bdd69ac275297239cd41f8fa49e62ff374458d8096f1ad204b2d0dc37660f25.png)

使用以上两个公式，我们可以求解 _x0_ 和 _y0_ ：

![](https://storage.googleapis.com/papyrus_images/fd7bc0df090180ce97111b4c0ffc5117f83f90391aff8a2b82b9a2bd8afe366b.png)

假设当 _t < t0， x = x0, y = y0。_

然后我们可以将 _s_ 表示为 _t_ 的函数：

![](https://storage.googleapis.com/papyrus_images/7ba8ac073ad6434cc4f7bafde27e46cadd03664703670a8eb243d10ffa06df2a.png)

代入 _x0 和 y0_，求解 _s_：

![](https://storage.googleapis.com/papyrus_images/4fc762d36845a574e87ad9068f0914183e9c5105bf08b19afb4694de27ac404f.png)

将 _s_ 代入以下等式：

![](https://storage.googleapis.com/papyrus_images/77ee6c70eaabd2e268d62475b27d28242d6b58011c97f866bf0805bd9df69968.png)

📌 **Desmos 链接:** [https://www.desmos.com/calculator/6j6hpobjph](https://www.desmos.com/calculator/6j6hpobjph)

随着时间的推移，AMM 趋于扁平，这表明无论如何，至少有一定的 YES 和 NO 储量，保护了流动性提供者。

4\. xmin 和 ymin
---------------

xmin 和 ymin 指的是 AMM 实时的允许的 YES 和 NO 储量的最小数量。

假设当 _t < t0， x = x0, y = y0_。

![](https://storage.googleapis.com/papyrus_images/0384139b46630e3bea1209c127bc4169259659c67e14f620ec928e3805ba34f7.png)

如果 _t_ ＞= 1, _x_min = _y_min = 0。

如果 _t_ < 1,

![](https://storage.googleapis.com/papyrus_images/2891f88c785a9056039efa6a6b4d42ba21d7ceaff2adc4a645bf75c6393ffd71.png)

可 swap 出的最大数量：

![](https://storage.googleapis.com/papyrus_images/c64891b0f6a84e3d9adb0ecdbf62a526e2799f7c0cbb2a22ddacb4c2abe9d600.png)

当 _t = 0_，

![](https://storage.googleapis.com/papyrus_images/ed6a3f5bfbb9f31cfb0a75dbf9e298c144d681525044c3ecdf3e48bfd500b6ba.png)

因为 AMM 会穿过 _(x0,y0)_。

5\. 流动性提供者保护
------------

由于 AMM 设计的时间演化，流动性提供者会受到保护：

*   随着时间接近到期，价格会变得更差。
    
*   有最低数量的 YES 和 NO 储量不能换出。
    

假设当 _t < t0, x = x0, y = y0_。

### % 被保护

如果最终结果是 YES，

![](https://storage.googleapis.com/papyrus_images/e5288c366d1b4fe80bef512c8f857970d134ae3fb6666a5de40c28e4bdef6720.png)

如果最终结果是 NO，

![](https://storage.googleapis.com/papyrus_images/cfe2a65bf00bfb6a792957fa3da2f41405d9928194fa211e8194df26a7b2dbad.png)

### 散发损失 (几何意义上的)

假设在时间 _t_ 发生的交易使价格从 _P_ 变为 _Pk_。

![](https://storage.googleapis.com/papyrus_images/86295eb78ed9ab73d6aa0086a69350810240c03924c979015d3fdecee5442302.png)

因此，

![](https://storage.googleapis.com/papyrus_images/33cfd3ed1837f50e68fb863d442ca48e4bca84793e90065ded7816f0810f0c66.png)

### 散发损失 (实际上的)

假设在时间 _t_ 发生的交易使价格从 _P_ 变为 _Pk_。

这是自 _t0_ 以来的第一笔交易，也是到期前的最后一笔交易。

如果最终结果是 YES，

![](https://storage.googleapis.com/papyrus_images/91d8493a8cf5d1bf92a3fb1ddfde2fba8996835804ea95b1be9f45b55580886f.png)

如果最终结果是 NO，

![](https://storage.googleapis.com/papyrus_images/7401eb6d8a8df881825b7c8a338e9c83766e418c0a712c93c32025be9ff582da.png)

📌 **Desmos 链接:** [https://www.desmos.com/calculator/t8e7bp3fw5](https://www.desmos.com/calculator/t8e7bp3fw5)

这个 Desmos 绘制了关于 _t_ 和 _k_ 的实际上的散发损失。随着时间接近到期，实际散发损失会减少。

6\. Balancer 权重方法
-----------------

可以通过数学方式生成相似的 AMM，它们的演化类似于我们上面推导出的 AMM。

在 Balancer 里，

![](https://storage.googleapis.com/papyrus_images/bca1cfe077726239b6da9b10e83631a620ae32490e01467ba930e8c7d1436acc.png)

因此我们可以选择调整权重以满足：

![](https://storage.googleapis.com/papyrus_images/8d1581fa69695316426b5c8886aa40cda92f6fa09fb5d1491c8f5c5a5c6579dc.png)

### 单参数近似

![](https://storage.googleapis.com/papyrus_images/ef001aa53f187ed6f8331edb8738bc6d0dd9b825f43384acca60b115229dcb66.png)

如果我们令在指数上的 _y/x_ 为常数，

![](https://storage.googleapis.com/papyrus_images/8a570f00f15f3d8f1e84d3d1454e68f99688b567f58cd8677f77de19df879965.png)

如果指数上的 _y/x_ 变化，

![](https://storage.googleapis.com/papyrus_images/df964b6ff5b06fe03af45ead69854fa07317f6b792f851569c301d87f4d254e5.png)

我们假设 AMM 在 _t < t0_ 时穿过（_x0, y0）_。

第二个指数上 _y/x_ 变化的函数，表现非常类似于：

![](https://storage.googleapis.com/papyrus_images/7a526233f019d1e233a923318cf729c400c014cfdb3d52ec4a0482922799627a.png)

然而，这两个函数不满足关系 _\-dy/dx =_ (_y/x_) _^_ (_1/sqrt (t_))。具体来说，第一个函数只在 (_x0, y0_) 处满足。

📌Desmos 链接: [https://www.desmos.com/calculator/yb27o12cxd](https://www.desmos.com/calculator/yb27o12cxd)

_感谢 Dan Robinson 提出这个想法，感谢 ayko2718、0xKaden、Allan Niemerg 和 Vanessa Tso 提供的有益讨论和反馈。_

---

*Originally published on [BTX ｜ Research](https://paragraph.com/@btx-research/probabilityspace-amm)*
