SudoSwap的NFT自动做市商AMM机制讲解

22-08-24 18:19
阅读本文需 21 分钟
总结 AI 总结
看总结 收起
原文标题:《一文讲清-NFT 市场新秀 SudoSwap 的 AMM 机制-创新挑战与局限》
原文来源: 十四君


NFT 交易市场的近期颓势频现,整个市场的流动性大幅降低,而此时 8 月异军突起的 SudoSwap 则凭借一超多强的增长数据,让基于 AMM 机制的交易市场映入大众视野。


基于链上数据分析截至 8.20 日,已有上千种 NFT 项目进驻,涉及 8.5W 个 NFT 的交易完成,累计 2000W 美金的交易量。


本文将从 NFT 交易市场的主流模式出发,通过还原 Uniswap 的经典恒积公式,来深入解说 SudoSwap 的独特定价函数以及功能细节,最终从各点优缺来点评对交易市场发展的价值。


1、NFT 交易市场的主流模式


对交易市场的运作模型的分类依据 3 个核心方面:如何发布、如何竞价、哪里撮合成交。


对此 3 方面的不同实现导致了其流量来源、运作成本、市场受众对象的差异。


1.1、类 Punk 的内置市场


大名鼎鼎的 CRYPTOPUNKS(加密朋克),其实内置了一个交易市场,集合了链上发布、链上竞价、链上成单的各类机制,均在短短 230 行的合约内实现详情可见:【合约解读】CryptoPunk 世界上最早的去中心化 NFT 交易市场。


同样有项目内置的市场的项目还有:StepN、Axie Infinity、NBA Top Shot 等等。


纵观下来,其实实现成交不复杂,但每个环节上链非常不利于 NFT 核心的流动性问题,作为买方在卖家确定是否售卖之前就得锁入资金,不限制等待期的情况让 punk 的合约日常锁定了 6400 个 ETH。


mmexport1661052908732.jpg


而一个独有艺术品应该被怎样的价格销售的定价问题,是需要合理的公开拍卖机制来协助撮合,每次出价先付 gas 的模式只能说在高净值的 Punk 里还能忽略,长尾 NFT 只能望尘莫及。


顶级蓝筹可能并不需要直接的交易流动性,因为大部分的忠实长期 Holder,想必未来顶级蓝筹将会逐渐成为金融附属品,应用在借贷、租赁等市场,交易市场上可能是有价无市,无人挂单的情况。可拓展阅读:【源码解读】以太坊新标准 EIP-4907 是怎样实现 NFT 租赁的?


所以作为早期市场,Punk 的机制探索有全环上链的高度信任优势,也有限于流动性与定价的劣势。


1.2、类 OpneSea、X2Y2 的第三方市场


此类市场均为目前按交易总值计算下的龙头,整体运作模式则是链下发布与撮合定价,链上成单。


多种多样的拍卖机制让价格的合理性得到评估,而 Opensea 的新协议 Seaport 堪称是时代最强合约设计之一,通过大量汇编优化将 gas 成本降低 30%,且各种订单模式的灵活性拉满,在 Seaport 开源开放的情况下,非常利于各类垂类项目(gamefi,创作版权等等)将交易能力内置


mmexport1661052911620.png


此类平台要说其劣势,首要的是中心化程度太高,几乎都需要用户将 NFT 授权给平台的合约,甚至像 X2Y2 这种代码充斥大量代理升级的设置,完全有瞬间变卖跑路的能力。


其次定价的合理性还是来源于当前的关注度,对长尾 NFT 项目而言似乎总处于死亡螺旋中,开启初期太依赖于项目方会不会来事,否则可能连白名单 mint 都会一级发售不完。而近期较火热的 free mint 反而是对市场信心低迷的表现。


1.3、小结


在 SudoSwap 之前,似乎 NFT 注定就不易流通,只能借助于平台庞大的规模来实现点对点的交易,在这样的情况下:


突破口一是更有使用场景的 NFT,可以从提供基础的应用价值来支撑市场价格。可拓展阅读:NFT 租赁提案 EIP-5006 步入最后审核!让海外大型游戏的链改成为可能


其次是 SudoSwap 通过称为「官方池」的 Based Ghouls Pool ,也为长尾 NFT 项目带来方便「做事」的工具平台。


为何他能帮助长尾实现农村包围城市,拼多多大战淘宝?让我们从实现机制进一步拆分其发布、定价、成交来分析。


下图为截止 8.20 号 SudoSwap 的核心数据表现:


mmexport1661052917452.png

mmexport1661052920183.png


2、如何理解 AMM 机制


同样是发布、竞价、成交 3 大维度,SudoSwap 是链上发布,链上依据 AMM 机制定价,链上成交,有较高的去中心化程度,卖给谁、多少钱由市场说了算。


SudoSwap 的 AMM 机制其实并不复杂,雷同于 Uniswap AMM V3,其 k=x*y 的恒积函数一直是笔者认为的 Defi 中最优美的曲线。


2.1、简述 Uniswap 机制


在 Uniswap 任何人均可以创建一个流动性池,任由大家注入流动性,帮助成交的同时也赚取 LP 收益。


每一笔交易都将改变下一笔兑换的价格,因此还有滑点的设计意为能够接受成交价格滑动范围,这点在 FT 的中相对好处理,因为 ERC20token 可以高度分割。


咱们通过下图来走一遍 Uniswap 的生命周期,来捋一遍 x*y =k 的公式。


2.2、创建阶段


如下图左侧,我想做 LP(流动性提供者),那同时得给出希望构成交易对的 Atoken 和 Btoken 转入合约,每当流动性存入池中时,都会铸造出流动性Token给我(LP),获得量的计算方式依据提供的量占总池子量比例,这些 Token 就代表 LP 对资金池的贡献,LP 可以获取到别人交易过程 0.03% 作为手续费分红。


mmexport1661052923351.png


2.3、兑换阶段


如下图右侧,构建池后当任一 Token 被提取(购买)时,必须按」比例」存入(出售)另一个 Token ,以保持总量的不变,这个比例就是在 K 也等于是 X 和 Y 的兑换率了。


K 这个值虽然是理论恒定值,但是每一笔交易都会产生手续费,意味着其实在 tokenAB 的兑换过程 K 都会逐步增加缓慢上升。


如下图,当已有 ABtoken 的交易对:Atoken-1200 个,Btoken-400 个则当前兑换率为 3 则我通过向合约内转入 3 个 TokenA,并且额外支付手续费,在兑换后智能合约会给我 TokenB 1 个。


这时由于整个系统的 Token 池子总量变化了,导致新的兑换率变化成 3.015。


mmexport1661052926678.png


由于价格完全取决于链上合约实时计算逻辑,交易对的价格只能通过交易来改变,因此一旦 Uniswap 价格与外部价格有背离就会创造了套利机会,这种机制确保 Uniswap 价格始终趋向于市场价格。


笔者非常喜欢这种逻辑,让套利者帮系统变得更好且能盈利,可拓展阅读:一文讲清-DeFI 王者 AAVE 最新的稳定币 GHO 提案


3、SudoSwap 的 AMM 机制原理


其实和 UniSwap 类似,SudoAMM 把 NFT 充当为 TokenA,把 ETH 充当为 TokenB,允许用户在 SudoAMM 上对 NFT-ETH 在指定价格内做市。对于买卖双方而言,通过池子可以实现即时买卖的目的。


其计算公式由于 NFT 不可分割,所以不能直接以 k=X*Y 计量(否则必然有一方剩余),所以 SudoSwap 设计了 SudoAMM,提供了线性和指数两种定价函数。


3.1、线性定价函数(Linear Curve)


在计算曲线程序 LinearCurve.sol 中,新价格是依据梯度累加制计算的。


假设 delta 值是 0.1,意味着每次买入(或卖出)都会将价格加上(或者减去)0.1 ETH。


平时(1E)买入(1.1E) 买入(1.2E) 卖出 (1.1E),由此类推。



3.2、指数定价函数(Exponential Curve)


在计算曲线程序-ExponentialCurve.sol 中,是依据购买次数来每次累乘增加。


假设 delta 值是 1.1,意味着每次买入(或卖出)都会将价格乘以(或者除以)1.1 倍。


平时 (1E) 买入 4 次 (1.46E) 卖出 3 次 (1.1E) 卖出 3 次 (0.75E),由此类推。



3.3、创建流动性池的 LP 权利有多大?


创建流动性池使用的是 LSSVMPairFactory.sol 程序中的 createPairETH 函数方法,非常夸张的是,对比 uniswap 他可以设置的核心参数很多,执行创建会采用 EIP-1167 的标准,也部署一个 mini proxy 合约,可以说即有独立合约的安全性(资产存于新部署的合约地址),LP 有超级管理员权限,对定价函数,增量阈值,初始费用,全局手续费均可以控制。



问题 1:同时购买多个怎么算?会则逐个结算(按线性算)


(买入现货价格) + (买入现货价格 + 1delta) + (买入现货价格 + 2delta) + ... + (买入现货价格 + (n-1)delta),所以这等于是 n(买入现货价格) + (delta)(n(n-1))/2


问题 2:买的 NFT 是哪个?会由用户指定的池子中的任意 NFT


通过对以太坊上合约地址调用方法的审查,可以发现将 ETH 交换 NFT 的操作为:0x11132000


对应合约方法 swapETHForSpecificNFTs 需要 4 个参数:


swapList 要交易的 token 列表以及要对应购买的 NFT ID。

Recipient 将接收未使用的 ETH 输入的地址

nftRecipient 接收 NFT 输出的地址

deadline   时间戳,超时则订单不执行


由此可见,稀有度的概念在这被磨平了,因为定价与稀有度无关了。


除了在 AMM 机制外,还有 2 个额外功能或者说是限制。


1:每个流动性池只能有一个 LP,多数是项目方自己。

2:限价单功能,用户在存入 NFT 时就可以设定地板价等待成交。


参与者的权利至少不会低于自己理性价格成交,等同于 OpenSea 挂单。


4、总结-SudoSwap 的亮点


4.1、从功能出发


Sudoswap 有强大的「即时定价」优势,市场撮合瞬间定价,通过套利者寻找合适价格。回忆下 Uniswap 的崛起历史,就是因为作为它新物种解决了中小项目方发币的难题,实现农村包围城市成为龙头。


4.2、从场景出发


对于长尾的 NFT 中会有奇效,如今 NFT 只有 2 大种蓝筹和其他,对于 punk、猴子、azuki 而言流动性不是核心问题,原因在前文 punk 部分解释了。对于「其他」,则稀有度的差分其实并不大,反而极度依赖流动性,定价的快捷优势+官方池的推出,基本等同于股票回购机制,帮助项目方会做事。


4.3、从机制出发


诶,并不是 AMM 机制,而是 LP 机制反而让我惊喜,AMM 让卖家可以立马卖出获得即时流动性,而 LP 完全掌控资金池的定价(从价格函数到 delta 值都可自定义,而且还可以随时调整参数)。


这像什么?摆摊开店呀,是平台化而非大商超,项目方自己不仅可以有交易场地,更有控制的能力,不是 opensea 那种读链上地址从而中心撮合,项目方自己可以依据项目发展周期,控制是否回购,涨跌价幅度,意味着权利回归用户,在机制上与收费上(项目方也算用户)。


而 Lp 的收入也能顶替版税,为项目方带来多元化收入平衡


按手续费排序:Punk(0%) < SudoSwap X2Y2(0.5%) < Looksrare(2%) < OS(2.5%)


4.4、从代码出发


优美的代码,总是让十四这样的技术型行业独立研究者感受舒适,而 sudoswap 代码的设计有了不少优化点,整体实现成交的 GAS 费用属于行业一流水平,单 NFT 购买仅需 14WGAS,多笔成交也优于 os,x2y2 等。


按成交 GAS 排序:Punk < SudoSwap < opensea < GEM < Genie < X2Y2 < Looksrare


项目整体有 2 家审计公司背书,虽然审出一堆风险问题,但几乎不威胁到核心机制。笔者整理了相关资料(源码审计报告)可通过公众号后回复」sudoswap」获取。


最终


通过梳理本文逻辑,确实,sudoswap 的异军突起是有一定市场价值的。


其 AMM 机制引入 NFT 做市商天然的可以用金融的玩法来量化套利,只要流动性池子大了后随买随卖便能为 NFT 的价格形成支撑,进一步延伸到 NFT 租赁借贷等场景,立足于帮助长尾项目成功,高度吻合当年 Uniswap 的发家史,未来有可能成长为一个真正的协议。


但是,其 sudoswap 也失去了稀有度的差异,同一系列的 NFT 的价值都是趋同的,NFT 又演变成了另一种意义上的 FT,因此,sudoswap 也场景有局限,只能适用于部分偏长尾的项目,或者同质化较高的应用型 NFT。


看~~

同质化高、长尾、数量众多,是不是每一个词都完全匹配 Gamefi 中的 NFT?没错,好的游戏生态里屠龙刀是必要的,而树枝长剑也是必要的。


笔者认为完全上链的 sudoswap 虽然只支持 721,但未来将会是众多 GameFi 或者创作者经济中优质交易市场模型。易于项目方做事,易于创作者传播,更易于低价高数量的商品通过 AMM 寻找到合理价格。


后续笔者将继续研究 OpenSea,X2Y2,Looksrare,Gem 等头部 NFT 市场平台,从合约出发,看其优势与局限性,有兴趣的看官,速速点赞关注,后续跟进吧~


本文来自投稿,不代表 BlockBeats 观点。      


原文链接


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

举报 纠错/举报
本平台现已全面集成Farcaster协议, 如果您已有Farcaster账户, 可以登录 后发表评论
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交