Uniswap 是基于兑换池,而不是订单簿的去中心化交易协议。而所谓的兑换池,指的则是一个资金池。用户在 Uniswap 中交易的价格则由这个资金池中的通证比例和算法来决定。
对于通证的项目方来说,将任意的 ERC20 token 和一定数量的 ETH 存入Uniswap 就可以创建出一个该 token 同 ETH 的兑换池。之后任意的用户都可以通过这个兑换池进行这个 token 同 ETH 的交易。而在 Uniswap 最新的 V2 版本中,已经支持用户创建任意 token 之间的兑换池。如下图
当兑换池创建好之后,交易的价格,或者说交易汇率,由兑换池中两个 token 的数量比例决定。如果此时交易的汇率同市场汇率不一致,就会吸引用户进行套利,而套利行为本身会改变兑换池中两个 token 的数量比例,最终使得交易汇率同市场汇率对齐。
当兑换池中 token 数量较少时,交易用户将要承担很大的价格滑点,随着兑换池中 token 数量的增加,交易滑点会逐步降低。所以,用户应该尽可能避免在兑换池中进行特别大额的交易。可以看到下图中,一笔 100 ETH 对 USDC 的交易,滑点要 4.25%,另外还需要支付 0.3% 的手续费。
除此之外,Uniswap 为了保护用户的交易不被抢跑,默认设置了 0.5% 的滑点保护。如果用户的交易成交价与当前页面上看到的价格超过 0.5%,Uniswap 的合约中就会拒绝掉这比交易,避免用户损失。当然,用户自己可以控制这个滑点保护的范围,如果用户改成 10%,Uniswap 还会提示该交易可能会被抢跑。
除了创建自己的兑换池和交易之外,用户还可以给其他人的兑换池做市。向兑换池中添加流动性时,需要按照当前的兑换汇率成比例地添加两个 token。
交易过程中收取的手续费(0.3%)会直接添加到兑换池中,作为流动性提供者(也就是向池子中存币的用户)的收益。由于交易的过程会导致两个 token 的数量发生变化,在价格变动较大的情况下,流动性提供者可能会遭受一定损失。
在实际使用过程中,目前 Uniswap 上的通证搜索功能做的还不够好,用户有时无法搜索到自己想要交易的通证,这时候还需要另外去其他地方找到通证地址,在产品上输入地址后方能进行交易,对普通用户来说门槛比较高。
Uniswap 的两个版本均做了严格的代码审计,其中 V1 版本由 Consensys 进行的审计,而 V2 版本则是由 DappHub 完成审计。需要大家注意的是目前 Uniswap 官方只有Disrocd 群,TG 上有人假冒 Uniswap 官方创建了一个群,要警惕冒牌管理员向您骗取 KYC 信息。
Uniswap 这样一个算法决定价格的兑换池,非常适合小项目方拿来为自己的通证进行定价。对于普通用户来说,Uniswap 的兑换池中拥有不错的交易深度,使用 Uniswap 来进行交易也非常的简便。