作者:胡智威、陶颖
摘要:基于区块链的数字藏品市场是 NFT 技术的最主要应用场景之一,然而链上手续费(gas)成本过高在一定程度阻碍了数字藏品市场的发展。本文列举了目前的数字藏品市场对解决 gas 成本过高问题的一些前沿技术方案探索,包括:链外方式、本链方式、多链部署、侧链、Layer2 以及跨链方式等,同时展望了未来的一些技术发展方向。
1. 数字藏品市场和链上手续费
基于区块链的数字藏品市场是 NFT 技术的最主要应用场景之一。随着 NFT 技术被应用于各类实际应用场景,数字藏品市场的使用量也水涨船高。以以太坊为例,根据 ultrasound.money 资料显示,自以太坊实施 EIP-1559 到 2021 年 12 月 16 日截止,数字藏品市场 OpenSea 消耗的 gas 已达到 126,414 ETH 左右,超过普通的链上转移和 Uniswap,成为最大的 gas 消耗应用。
那么,「gas」是什么?为什么数字藏品市场 gas 消耗量这么大?
所谓「gas」是链上手续费在以太坊等区块链平台上的术语。而链上手续费是区块链平台最为常见的技术特征之一。链上事务的运行,包括简单的转移或复杂的智能合约运行等,会使用相应的计算和存储等区块链资源;发起这些链上事务的用户,则会为消耗这些区块链资源而付出相应的链上手续费。区块链通过这种机制来激励区块链网络的维护者,同时避免区块链网络被恶意用户 DDoS 攻击、恶意运行无限循环代码等。因此可以说,链上手续费对保障区块链网络的正常运行有着十分必要且积极的作用。
但是一些复杂的链上流程也给用户带来了较高的链上手续费成本。以以太坊的数字藏品市场为例,用户通常在创建、挂牌授权、转移等多个环节中均需要消耗 gas,例如在转移环节通常就需要用户消耗 0.02 ETH 左右的 gas(根据当时的 gas price 而有所不同。gas price 指链上手续费单价)。当一些数字藏品应用的活动时间比较集中时,以太坊的整体 gas price 也曾飙升。
8 月 26 日,数字藏品应用使 gas price 一度飙升至 1,429 GWei,约为平时的十倍以上
这些 gas 一般都需要数字藏品应用的用户来支付。显然,过高的 gas 会阻碍数字藏品市场的进一步使用与发展,而且还可能影响区块链网络的其他应用的使用(例如 2017 年底以太猫的应用就曾让以太坊网络拥堵)。目前数字藏品市场已经对节省和降低 gas 进行了一些技术探索。
2. 节省 gas 的技术方案
数字藏品的 gas 过高问题,在一定程度上是由数字藏品自身的数据量大、业务流程复杂、以太坊为代表的区块链网络性能与可扩展性仍需提高所导致的。为解决这些问题,相应的可以参考解决扩展性技术、提高效率的各类办法。目前的一些技术探索方向包括:链外方式、本链方式、多链部署、侧链、Layer2 以及跨链方式等。
数字藏品市场降低 gas 的方案(来源:边界研究院)
2.1. 链外方式
既然 gas 产生于链上,最自然的思路是尽量采用链外的方式。主要解决办法包括两类:将原有链上的部分流程放在链外处理、将链上一些流程推迟进行。
部分流程放在链外
结合使用链外流程处理,来减少一些链上步骤。以 Nifty Gateway 为例,通过将一些交换的步骤放在链外进行以减少链上处理步骤,达到降低成本目标。例如原先总共需要 10 步链上操作的交换,通过 Nifty Gateway 的交换流程优化,可将其中 3 到 4 步放在链外进行;链上仅保留必须在区块链上共识确认的步骤,以此来降低整体的链上处理成本[1]。
部分流程推迟
推迟部分流程执行,让业务流程先运行起来,使数字藏品创作者以更低成本先行创作及发布,是一种鼓励性办法,可以为创作者提供更为友好的体验。这类方案的典型代表是 OpenSea 的 Lazy Minting。它采用了中心化的方式,支持创作者先免费创作内容并上架开售,由 OpenSea 使用中心化的方式先来存储和处理,在成交等环节中再在链上确认(产生 gas 消耗),此时买卖双方才通过区块链共识来完成数字藏品交割。
但这类方式并不能完全解决成本问题。Lazy Minting 主要是将 mint 的时机推迟并让买家来承担,严格意义上并没有降低整体成本。
2.2. 本链优化
优化代码编写
Gas 的产生主要由于智能合约的运行过程中耗费了计算和存储等区块链资源。数字藏品创建前,对代码编写上的优化在一定程度上可以减少 gas 的成本。一些优化的办法包括,在开发时选择使用合适的代码库(例如使用 ERC721A 而避免使用 ERC721Enumerable),在编译时使用 Truffle 等工具的优化等[2][3]。
批量聚合
对于已部署在链上的数字藏品,可以采用批量、聚合等方式来降低整体的成本。以 Genie 为例,该聚合工具是支持将不同市场上针对不同数字藏品的多个操作打包在一个事务里,同时综合使用一些链外等方式来降低单个操作的平均成本[4]。
2.3. 多链
除了在本链进行计算、存储的各方面优化,一种比较直接简便的办法是在应用端集成多个区块链网络;用户在使用时可以选择合适的网络。
以 OpenSea 为例,除以太坊平台外 OpenSea 还提供了 Polygon 网络的选项。当以太坊网络成本较高时,用户可以在 OpenSea 的应用上选择切换到 Polygon 网络。
2.4 侧链/Layer 2 方式
除了在应用层面直接集成多链网络外,另一种应用方案的选择是从区块链协议层入手,将数字藏品的许多业务和流程转移到侧链或 Layer2 上进行,以降低成本等[5]。通常,这类解决方案也会提供侧链、Layer2 与原链之间的跨链转移工具。
侧链
侧链通常指与主链并行、有双向桥接功能的区块链网络。以太坊的侧链包括 xDai、Skale、POA Network 等。目前一些数字藏品市场会选择侧链的方式来降低主链上的数字藏品成本。
一个比较典型的案例是 nifty.ink。它支持用户在 xDai 侧链上创作和管理艺术作品,包括链上的创建(mint)、转移(transfer)等等。而如果用户希望将数字藏品作品转移到以太坊上,可以通过 AMB 桥接工具转移(upgrade)到以太坊上,例如发布到 OpenSea 市场上[6]。
其他类似的案例还包括的 Axie Infinity 使用 Ronin 侧链等。
Layer2
与侧链较为类似的是,一些数字藏品市场选择了 Layer2 的技术路线来降低成本。其中较为典型的案例有专为数字藏品应用设计、基于 ZK Rollup 的 Immutable X 及其自有的数字藏品市场。其他的一些解决方案还包括选择 Arbitrum 上的各类数字藏品市场及应用等[7]。
2.5 跨链
跨链技术,除了解决价值和数据流转问题外,也可以作为解决数字藏品成本难题的方案之一。解决区块链的可扩展性问题以及“不可能三角”悖论,跨链协议+应用专有链的方案是一种非常好的选择。
与侧链和 Layer2 解决思路类似的,可以将数字藏品市场部署在一个使用成本较低的应用专有链上;而当需要在更大范围内转移时,再通过跨链协议进行流转。
当前的一些跨链数字藏品方案主要还是采用中心化的网关或跨链桥的方式。不过基于完全去中心化验证的 IBC/TIBC 跨链协议已经可以支持非同质化数据内容的跨链转移。例如,2021 年 中国传统文化数字化艺术品 IDA 在 BSN 文昌链上链登记确权后,以跨链形式依靠 TIBC 跨链协议及跨链枢纽,从 BSN 文昌链经由跨链服务枢纽跨链转移至全球市场[8]。
3. 总结展望
数字藏品的链上成本问题在一定程度上是以以太坊为代表的区块链网络性能与可扩展问题的缩影。值得高兴的是,Layer2、跨链等底层技术在近年来的长足发展、链上应用和生态的繁荣为当前的数字藏品应用提供了切实可行的方案。目前方案包括中心化的推迟处理、本链进行处理上的优化、部署多链、链外采用侧链和 Layer2 扩展技术以及跨链协议等多种方式。
应当指出,当前的一些技术实现上仍然存在着过度中心化(例如一些跨链桥)、技术安全隐患等值得改进之处;基于 IBC/TIBC 等完全去中心化的数字藏品跨链方式崭露头角,有待进一步支持更多应用;基于 Rollup 的数字藏品支持技术还有改进空间[9]。
不过随着区块链可扩展性、跨链技术的不断研发与改进,相关技术对数字藏品应用的支持也会更加完善,技术方案也将更加丰富多样。
参考资料
[1] https://decrypt.co/87515/nifty-gateway-ethereum-gas-fees-nft-trading-investing
[2] https://mirror.xyz/davidcai.eth/cO1XOsvg0NvW9um1unIip7okeK6r1LaZ5FzbhTG9CSg
[3] https://medium.com/@kaymonft/optimizing-nft-smart-contracts-to-reduce-gas-usage-7f4e819eb49d
[4] https://genielabs.notion.site/Genie-FAQ-aaa4c154dc52451fbcb3451e7ab7364f
[5] https://newsletter.banklesshq.com/p/how-to-collect-nfts-on-layer-2
[6] https://docs.tokenbridge.net/amb-bridge/about-amb-bridge
[7] https://newsletter.banklesshq.com/p/the-arbitrum-nft-scene
[8] TIBC 跨链协议及跨链枢纽支持的一体化数字艺术品
[9] https://twitter.com/VitalikButerin/status/1435413681588736007