Blur.io Gas消耗分析

Tiny Hill

blur的gas消耗好像挺高的,打算尝试看看为什么,分析一下opensea、blur和suduswap的产品逻辑和gas消耗的情况。

这里只比对产品自身的交易方式,不对比聚合器的形式。从一个简单的撮合交易中,交易自身逻辑(剔除nft和token的转账)所消耗的gas大概为:blur消耗为180k,opensea为84k,sudoswap为60k。

0x01

blur的合约地址https://docs.blur.foundation/contracts,主要的合约有BlurExchange和BlurPool,BlurPool很简单,就是用来存bid用的ETH,没有其他逻辑,就不用介绍了。逻辑都在BlurExchange中。逻辑看起来比较比较清晰,如果从gas的角度看,输入参数数据比较多,而且内部的函数调用也是直接的参数传递

0x02

在blur的合约中有个oracle的角色,而且对于买卖两个单子都有一个额外的extraSignature,是由oracle签的,等于要多验签两次。我理解这个应该是项目方的签名,来避免直接绕过前端来发起合约调用。不确定理解是不是正确,欢迎拍砖讨论

0x03

opensea最新版本的协议的seaport合约,使用了大量的汇编,对输入内容的压缩优化做的比较好,可以作为性能对比的对照基准

0x04

sudoswap是完全不同于其他nft marketplace的交易方式。挂单用户实际上是要建立一个单独的合约作为池子来存放NFT或者ETH,好在这个合约是用了最小代理,不是很消耗gas。所以在吃单的时候,就使用预设的价格计算公式进行计算,少了很多检查的逻辑,甚至没有验证签名,所以比较节约gas

此页目录
Blur.io Gas消耗分析