freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

解读UniSwap NFT市场协议不仅仅是聚合器
2022-12-04 18:07:28
所属地 重庆

作为日交易量达 7.7 亿美元、拥有 400 多万用户的 UniSwap 来说,进军 NFT 市场赛道也意味着新一轮攻防战的开始,众多平台一时都担忧对方是否会抛出类似 SudoSwap 那样初始即王炸的好牌。

然而上线三天市场数据却让人唏嘘不已,在有 500 WUSDC 空投+GAS 优惠的情况下,仅仅获得了 2% 的交易份额。一时之间平庸与无奇的聚合器,成了 UniswapNFT 市场的代名词。

真的只是如此吗?其实当前推出的市场及合约都不是完全版,甚至诸多功能并非开放

请跟随十四君,本文将从 NFT 交易市场运作以及聚合器原理出发,结合 Uniswap 最新推出的Permit 2 和Universal Router 两份协议,深入理解最大的 Dex 平台是如何思考 FT 与 NFTSwap 的困境!

1、背景

1.1、什么是聚合器?

传统意义上,聚合器主要用于数据聚合,它可以跨各个网站收集数据,再将信息分门别类呈现在一个平台,以满足不同用户的需求。而专业的 NFT 聚合器需要从不同的公链与应用收集所有 NFT 交易订单信息,并将它们整合到一个平台。这为用户提供了流畅的交易体验,并提高了交易效率。

因此聚合器的侧重点是:

  • 工具属性:提供单一 NFT 市场并未具备的功能,更侧重用户侧体验

  • 交易体验:下文会梳理各种交易系统架构,可以显著感受到交易过程的割裂,无法一步到位完成一键交易的体验

那为什么 NFT 购买会有聚合的需求呢?让我们先概述下主流 NFT 市场的运作模式

1.2、交易市场主流模式

分类的依据是交易流转生命周期的 3 个核心方面,如何发布、如何竞价、哪里撮合成交,而这 3 方面的不同实现会导致了其流量来源、运作成本、市场受众对象的差异,其典型是:

6jukbgadc32de0vu.png

  • 链上订单:

  • 链下订单:

链上订单的优势是:安全,信息公开,去中心化,但是缺点则是成本高,流量匮乏

链下订单的优势是:成本低,流量易于聚集,但缺点是:中心化,信任成本和取消成本

以上是单一 NFT 交易平台的模式,而聚合器则是一个调用上述单一平台的系统并完成交易的工具。

目前 Uniswap 已然集成了头部 Top 10 的交易平台:OpenSea、X2Y2、LooksRare、Sudoswap、Larva Labs、X2Y2、Foundation、NFT 20 和 NFTX。

目前链下订单的第三方市场模式就是主流,最大的竞争力在于流量与用户习惯,这点即和合约系统设计息息相关,也和用户认知习惯结合。

从卖家角度出发哪儿有买家,易于交易成单自然乐意在哪里挂单,而买家也自然会寻找更多卖家订单的平台来快速成交,而目前虽有巨头 OS,也并非是竞争的终局,因为 OS 虽然妥妥占据 80% 的交易量,但他一直心中期望走web2的上市路线,所以迟迟不发币也不与用户分享收益,从而在今年逐步被x2y2和其他聚合器蚕食部分市场。但其他平台又困于本身流量较小,且新用户多数首选大平台从而发展平平。

1.3、聚合器的工作原理

而聚合器天然是工具属性,他是在调用其他平台的交易系统,而非自建交易协议。

在 Uniswap 集成的 9 个平台中,类似 os,x2y2等都是开放订单池系统的,这个开放的目的是提供程序化实现订单交易的系统,这方面多数是给机器人用的,对平台而言能快速成交就是好平台,开放订单池是个生态共建的互利初衷。

而链上订单系统,则是对主流的 sudoswap, nftx 等链上协议做解析。

聚合是如何替代第三方市场完成成单的呢?举个栗子来看,如下图

前置流程是

  • 一份订单的可以是卖方或者卖方发起,甚至平台方(含聚合器)发起撮合

  • 首先卖方对 NFT 合约做授权(操作 0 ),从而许可代扣。而这时,其实x2y2:Exchange 可以任何时候直接转移 NFT 合约中卖方的资产,这也是为什么第三方平台中心化过高的原因。

  • 采用链上验签的方式来确定交易意愿,如x2y2:Exchange 或者是 os:Seaport 协议都是如此

  • 订单是源于第三方市场的web2系统,聚合器拿到的是用户签名以及售卖条件(比如 1 个猴子, 50 个 ETH 才可成交)

执行流程是:

  1. 在聚合器平台构建好买卖单参数(含签名与金额)

  2. 用户发送交易到聚合器的链上合约

  3. 聚合器合约则替代了下图中 1 的部分,发送给第三方市场链上的合约

  4. 由于经过了聚合器合约,所以可以实现多笔购买同一笔交易完成

n9jhl2s2ji10qtrh.png

1.4、为什么聚合器可以节约 Gas?

从上述流程来看,聚合器本质还是调用第三方的合约,但是并不意味着交易的下限就是第三方的系统,因为一笔链上交易的成本组成是由 3 个方面的构成

  1. 单笔交易本身的消耗: 21000 Gas

  2. 交易的附带参数消耗:每个非零字节需支付 68 Gas

  3. 交易执行合约时消耗:依据对存储槽的修改使用与 EVM 工作量来计算 Gas 成本

所以能够被节约部分则是:N 笔交易合成 1 笔的过程,节约的 N-1 笔交易本身费用

拓展阅读:【源码解读】你买的 NFT 到底是什么?

结合下图,具体计算下效率

聚合成交是越多越划算:如果该完成单 NFT 交易成交所需的是 20 WGas,则 10 笔作 1 笔成交,可以节约 9* 21000 的 Gas,大概占各自成交 10 笔的 9.45%

聚合本身也有不少消耗:比如 Gem 单笔成交需要 28 W,批量成交 2 个则需要 50 W,大致上每个 NFT 需要均摊 6 W 的聚合损耗,因此在批量成交 3 个以上的时候,才会开始划算

37s7tfqj630b7ttz.png

上图交易类型与 Gas 表(属于随机单独抽取,非统计结果)

1.5、聚合器的价值在哪?

批量交易的功能在一段时间内迎合了项目方炒作,投资客抢购,散户易用工具赛选等诉求,所以具有较好的流量带来订单成交,实际上x2y2的半数订单源于聚合器。

相比于传统交易市场,NFT 聚合器有一些明显的优势,包括:

  • 信息高度聚合:如交易量、地板价、交易价格、数量、顶级持有者、顶级买家等。

  • 操作高度聚合:用户可以通过一个平台在所有市场上查看、交易和购买 NFT。

  • 提高交易效率:信息与操作聚合,易于比价决策

  • 支付方式多样化:理想情况下(第三方市场协议本身支持),则可以在 NFT 聚合平台上用任何代币进行支付。

综合看,是对于项目方本身批量买卖做市,对大户批量扫货交易,对散户观测数据信息各类用户都有所收益和触达,所以聚合器就在工具属性的路上越走越远,竞争点也越发的激烈,即考验合约实现中如何降低那 6 W 的损耗,也考验工具化平台如何更好的呈现数据,

但是笔者认为 Uniswap 的 NFT 市场的主打价值与目标,并非是做一个好用的好工具,而是期望实现一个统一的链上交互协议,针对的正是在支付方式非理想情况下,如何实现更顺滑的交易过程。

2、UniSwap 的 NFT 交换协议

别急,先别用当前低迷的交易量来反击,笔者不是在为项目背书或者写软文,而是从其源码实现中,看到更多的功能点预留,而并非只是当前已开放的功能。

作为日交易量突破 7.7 亿美元、拥有 400 多万用户的 UniSwap 来说,并不存在合约开发能力的不足以及投入资金的不足,更多的问题在于,用户需要的到底是一个怎样的 NFT 交易协议?。

UniSwap 本次并非仅仅发布一个聚合器平台和调度协议,而是发布了 2 个相辅相成的协议 Permit 2 ,和Universal Router

2.1、Permit 2 - 高效且安全的新一代授权协议

2.1.1、传统授权机制的局限性

还记得上文中x2y2的架构图吗?新用户期望完成一次 nft 交易,对于如此简单的诉求,首先需要的就是,置换 Weth 和对 Weth 以及对应 NFT 合约做代扣授权。

少则一笔多则两笔交易的成本,还会存在无限代扣风险以及被盗风险。之前的 os 就出现因为挂单不会自动失效,比如上链设置的问题,导致用户从冷钱包转回高净值 NFT 被低价成交的损失。

2.1.2、代扣授权,是 ERC 20 的通病

虽然有已经步入 final 的 Eip-2612:《通过 EIP-712 secp 256 k 1 签名获得 EIP-20 批准》,但从协议的角度来看,ERC 20 的地位仍然是二等代币,因为用户在不持有任何 ETH 的情况下是没有与以太坊交互的能力

p1tvlw8qf85ddgno.png上图表示的是如何使用 Eip-2612 来实现无授权扣款

  1. 爱丽丝签署了链下“许可”消息 msg 和 sig,表明她的授权许可 (基于 EIP-2612) 代币。

  2. 爱丽丝提交的 msg 和 sig,作为她的协议合约交互的一部分。

  3. 该合约调用 permit(),基于 2612 的 Token 合约则验证许可消息和签名,授予许可。

  4. 这时该合约获得基于 EIP-2612 代币的授权,可代扣爱丽丝的 Token 了

是对 ERC 20 标准的改进,解决了这些缺点(额外 approve 支出与无限代扣风险),但只能适用于集成了 Eip-2612 的新代币合约

2.1.3、uniSwap 的 Permit 2 的授权优化机制

为了解决基于 Eip-2612 就必须集成到代币合约层导致的往前兼容性问题(即老 token 无法使用)

permit 2 则是一种任意 token 都可兼容的设计,等于是一个统一的授权管理合约

8xdxfatqrtqzzo3p.png

  1. 上半部:爱丽丝调用 approve()让基于 ERC 20 合约给 Permit 2 合约授予无限授权。

  2. 下半部:爱丽丝签署链下“permit 2 型”消息 msg 和 sig,表示签名许可。

  3. Alice 在协议合约上调用交互函数,带有 msg 和 sig

  4. 协议合约调用 Permit 2 合约,在验证 msg 和 sig 后,从其授权中控制 erc 20 转移

总体来看

虽然要求用户先授权许可似乎是一种倒退。但是,用户不是直接将其授予某个协议,而是将其授予规范的 Permit 2 合约(可以是该公链唯一的)。用户只需进行一次授权,则可以跳过后续所有的协议与其交易的授权操作,改用链下签名替代。等于用户再也无需为与各类协议交互而单独发起的这份交易了

这里还能实现更多极具场景的能力,比如签名授权的自动有效期,从而再也无需担忧长期授权的风险,批量的审批(多笔扣款签名可一笔实现,批量取消代扣授权的签名也可一笔实现)

自动有效期类似:【源码解读】以太坊新标准 EIP-4907 是怎样实现 NFT 租赁的?


34brqjexbocu3bos.png

一旦成型,或者基于 uniswap 本身用户量的普及,一个完全去中心化的,只能通过用户签名来控制授权的协议就会成为人人必备品(谁会拒绝又安全又便宜呢)。

那,这与 NFT 交易市场的合约推出有什么关系呢?

有,当前 Permit 2 已经集成到 Uniswap 同期发布的 Universal Router 中即 NFT 市场的底层协议,代码集成但功能尚未开放(因为 NFT 版的 Permit 2 还未发布),目前也仅小范围在测试 ERC 20 版本的 Permit 2 。

2.2、Universal Router - 统一的 FT 和 NFT 互换协议

此协议的定位是:Uniswap 的下一代路由器,它将代币和 NFT 的 swap 交易统一为一个高度灵活、gas 优化、安全和可扩展的交换路由器

这也意味着后续 400 W 用户所默认使用的 swap 路由功能都将由此协议执行。

他的应用场景是聚合器,但并不只是聚合器,定位的目标是多资产的 swap 协议,可以对(例如 Uniswap 池、NFT 市场)执行交换。

2.2.1、协议价值在哪?

价值源于当前执行 NFT 购买的流程上的复杂。

  • 任意 ERC 20 购买 NFT 鲜有协议层支持(除了 opensea 的 Seaport 协议天然支持),导致现在如想实现任意 ERC 20 (如 USDC)直接进行 NFT 购买,则至少需要 2 次交易从 USDC→ETH,从 ETH→NFT,

  • NFT 购买与卖出都需要一笔授权,跨平台交易需要多次授权,导致协议兼容与升级成本高。他可以天然集成 uniswapV2与V3,先执行多次代币交换(如下图),并在一次交易中从多个市场购买 NFT。

其实 OS 集大成之作 Seaport 协议也是实现了任意资产组合之间的互换。而完全链上协议层的支持,则可以让更多应用天然集成了链上 FT 与 FT,FT 与 NFT 直接的互换。

lctjea51n0s701r6.png

多代币支付的最终价值,在于让用户无需常备 ETH 做手续费。再次缩减交易链路,当然这点恐怕还有赖于未来基于 ERC-4337 的蓝图得以实现。

拓展阅读:以太坊账户抽象万字研报:拆解 10 个相关 EIP 提案与冲击千万级日活用户瓶颈的七年之路

当然,目前你并不能在链上交易看到这样的多代币支付的实际操作,因为他并没有完全发布完整(还需 permit 2 的 NFT 版 ),还处于一个等待漏洞计划修改的优化的阶段。

2.2.1、approve 究竟占据了多少资源?

笔者基于链上数据统计,截止 1597 W 区块高度,以太坊累计的 17.57 亿总交易量中。执行 ERC 20 的 approve 功能交易的合计有 4770 W 笔,单笔消耗 gas 平均值为 84699 ,历史平均 gasPrice 为 73 Gwei。

最后按 ETH 换算,累计消耗为 295345 个 ETH,按时价达 3.8 亿美金。

总结

虽然本文看着软,甚至在显著的链上数据(交易量不足)的情况下,还在分析这样交易协议的优缺,归根究底是笔者更看好这样不可升级的无 owner 的协议,完全开放代码与 sdk,任意应用与协议可以集成。同样的,虽然 os 的 Seaport 协议需要庞大的链下中心化系统协同才能运作,但是那样高度优化,功能拉满的多元订单系统,完全对外开源,对无数需要自建内部交易平台的 dapp(如 gamefi)等提供了巨人的肩膀,web3的世界也才能在一个个去中心化的协议之上逐步建立其价值。

  • 目前其协议确实存在局限性

目前想要通过集成该协议来实现 NFT 交互功能的话,核心问题还是太依赖于中心化订单池。如今订单信息是通过 uniswap 官方网站本身对 os,x2y2等的查询,除了类似 SudoSwap 这样完全链上支持的合约直接查询之外(sudoswap 初始概念惊人,但运营惨淡,发布的 token 分配协议太倾斜于开发团队,渐渐地无人问津了)。交易聚合的 gas 优化效果,还是大幅依赖于成交 NFT 的数量,这样一来工具化(针对项目方投资客)的属性定位依旧不变。

虽然 Uniswap 其协议的定位是致力于构建推动加密货币向前发展的公共基础设施,采用的是更易于被开发者和其他 dapp 集成的模式,目前看产品本身的功能还是以聚合器的起始点,却并没有更多适合聚合器用户需求的工具集成。自然一开始是不受待见,哪怕是用 500 WUSDC 做空投。

Uniswap Labs 自收购 Genie 已长达半年,而今日上线的 Uniswap NFT 市场和半年前的 Genie 几乎一样。如今是因为X2Y2、Blur 等懂用户需求的 NFT 市场的出现,原来用户不得不忍耐产品体验辣鸡,而使用产品的时代已经过去。

而 Uniswap NFT 产品负责人 Scott 曾在推特表示,Uniswap 会通过继承 Sudoswap 实现 NFT 交易。期望后续推出的基础设施不能再如此胖协议,而瘦应用了。

# 去中心化 # 交易市场 # NFT # web3.0
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录