Uniswap 是一个建立在以太坊上的去中心化交易协议。它不靠买卖挂单撮合,而是让用户直接和一个由两种 ERC-20 代币组成的流动性池交易。理解 Uniswap,关键不是记住某个版本的功能列表,而是看清这套自动做市机制成立需要哪些条件,以及这些条件在什么情况下会变成限制。
价格从池子余额里算出来
Uniswap 的核心是自动做市商模型。每个流动性池持有两种代币的储备,交易时用一种代币换另一种,池中两种代币的数量随之变化,价格也随比例变化。最基础的定价关系是恒定乘积公式:x 乘以 y 等于 k。这里 x 和 y 是池中两种代币的储备量,k 是交易前后必须保持不变或增大的不变量。
这个公式带来一个直接结果:交易量相对池子深度越大,价格移动越明显,也就是价格冲击;交易量越小,成交价越接近当前池中比例。举例来说,假设某个池子里有 100 个 X 和 1 个 Y,按比例粗略看 1 个 Y 对应 100 个 X。如果有人一次性用 20 个 X 去换 Y,这笔交易相当于池中 X 储备的两成,成交价会明显偏离初始比例,换出的 Y 会少于按初始比例计算的结果。这不是系统故障,而是恒定乘积曲线在大额交易下的正常表现。
因此,Uniswap 的报价不依赖外部交易所的最新成交价,而是由池子自身的储备状态决定。池子越深,同样大小的交易对价格的影响越小;池子越浅,滑点越明显。
运行依赖流动性提供者
Uniswap 的池子不是平台自己充钱维持的。任何人都可以把两种代币存入池中成为流动性提供者,并按贡献获得相应份额。在 v2 中,这种份额由可互换的 ERC-20 池代币表示;到了 v3,每个流动性提供者可以选择特定价格区间,仓位以 ERC-721 NFT 表示;v4 则通过 PositionManager 管理仓位,并在内部记账中使用 ERC-6909。
这意味着 Uniswap 的可用性依赖持续有人愿意提供流动性。没有流动性提供者,池子无法启动,交易也无法以合理价格完成。流动性提供者承担的不是固定利息,而是池中资产价格变化带来的风险,以及价格走出区间后手续费收入停止的可能。资料中提到的无常损失,指的就是持有两种代币放入池中,与单纯持有相比可能出现的价值差异。
手续费归流动性提供者,协议费另算
交易者每次兑换需要支付手续费,费率按池子和协议版本配置。这些手续费归流动性提供者所有,是提供流动性的主要回报来源。协议费则是另一层机制:只有在治理启用后,才可能对支持的池子收取一部分协议费。也就是说,交易手续费和协议费不能混为一谈,前者是池子层面的常规成本,后者需要治理程序才能生效。
以 v2 的常见设定为例,交易会先扣除 0.3% 的手续费,再按恒定乘积公式计算换出数量。手续费留在池中,池子总价值增加,而池代币总量不变,单位池代币对应的价值随之上升。这是 v2 机制下的解释,不能直接套到 v3 或 v4 的所有池子上,因为不同版本和不同池子的费率配置并不相同。
集中流动性提高了效率,也收窄了条件
v2 的流动性沿着整条价格曲线均匀分布,大量资金停留在实际成交价之外。v3 引入集中流动性,允许流动性提供者把资金集中在自定义价格区间内,在相同资金规模下提供更深的流动性,从而提高资金效率。v4 延续了集中流动性模型,同时加入单例池、闪电记账和 hooks 等架构变化。
但集中流动性不是无条件优化。如果市场价格走出流动性提供者设定的区间,这部分流动性就不再参与交易,也就停止赚取手续费。此时仓位可能已经全部转换为两种资产中相对贬值的那一种,直到价格回到区间,或者提供者主动调整区间。换句话说,集中流动性把资金效率提高了,但也把“价格必须留在区间内”变成了赚取手续费的前提条件。
无需许可和不可升级带来的两面性
Uniswap 协议的核心合约部署后不可升级,也没有中心化主体可以暂停交易或回滚成交。任何人都可以兑换、提供流动性或创建新市场,不需要平台审核。这种设计减少了对中心化守门人的依赖,但也意味着一旦交易上链,就没有客服可以撤销。代币本身是否可信、池子是否足够深、价格冲击是否可接受,都需要使用者自己在交易前判断。
资料还提到,Uniswap 曾因代币上架无需预先审核而出现假币问题,后来通过代币列表等社区机制尝试缓解。这类机制能提供参考信号,但不能替代对代币合约和池子状态的独立核查。
结论
Uniswap 的自动做市依赖三个基本条件:有人提供流动性、池子储备足以吸收交易量、链上合约按既定规则执行。它用池子余额而不是订单簿定价,因此大额交易的价格冲击和滑点是机制本身的一部分。v3 和 v4 的集中流动性提高了资金效率,但代价是价格区间成为手续费收入的实际边界。理解这些条件和限制,比记住某个版本的宣传说法更有用。