从合约角度解读以太坊与Solana上NFT的优缺点via.元宇宙
本文梳理自 FTX US 总裁 Brett Harrison 在个人社交媒体平台上的观点,律动 BlockBeats 对其整理翻译如下:
以太坊 NFT 是由为特定 NFT 合集所创建的智能合约生成的 Token,而 Solana NFT 则是具有固定供应的普通 SPL Token。以下是我在为 FTX 编写过这两种 NFT 之后,关于它们优缺点的看法。
以太坊 NFT
通常,以太坊 NFT 合集是通过部署新的智能合约来创建的,这些合约当前须符合 ERC-721 或 ERC-1155 标准。这样一来,市场仅使用智能合约地址,就能够轻松识别日志事件中的 NFT 转账。例如,所有 Bored Ape Yacht Club 合集中的转账事件都来自一个地址为 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D 的合约。每个合集都使用单独的智能合约还能带来另外一个好处,即合集创建者可以将 NFT 交互的额外逻辑直接编写到智能合约代码中。例如,Crypto Kitties 的合约中就有与分销和育种有关的功能。
但这种方法也有缺点。
首先,智能合约上的所有操作和事件都依赖于合约的 ABI(Application Binary Interface),并且不能保证每个合集都完全采用 ERC-721 或 ERC-1155 接口。再次以 CryptoKitties 为例,它的诞生早于 ERC-721,其传输日志事件的签名与实际的 ERC-721 传输略有不同,因此尝试使用 ERC-721 的 ABI 来进行解析是不起作用的,只能使用 CryptoKitties 特定的 ABI。
其次,每个变更 NFT 原始状态的操作都是对其智能合约的函数调用,需要支付 ETH gas 费用。这包括为所有者以外的其他帐户设置批准,以代表所有者转移 NFT。如果你只有一个 ETH 钱包,但却希望代表所有用户支付转账费用,可能就会很麻烦。如果所有者的钱包中没有 ETH,就无法为此钱包设置批准以进行转账。
最后,没有什么能阻止 ERC-1155 NFT 的创建者未来铸造更多的副本,将最大供应量从 1 更改为大于 1,因此你必须假设此类 Token 可能只是同质性合集中的多个 Token 之一。
Solana NFT
Solana 上的 NFT 都只是普通的 SPL Token(Solana Program Library Token),其供应集固定等于 1,并且通常附加了一些元数据。这使得 Solana 上的 NFT 非常易于部署和传输,无需编写或部署智能合约,也无需像以太坊那样根据 NFT 调用不同的传输函数。
由于 Solana 的交易费用低,在钱包之间转移 NFT 非常便宜。正是这一功能使得未来给 Solana 上的合集收藏者发放空投 NFT 能够成为一件司空见惯的事情,并且不需要支付昂贵的 gas 费用。而通过使用多重签名,Token 所有者之外的钱包地址也可以支付交易费用,所有操作都能在单笔交易中完成。这对于 FTX 来说非常方便,我们希望为所有用户支付 Solana NFT 的转账和提款费用。
Solana 去合约式 NFT 的主要缺点是,很难将合集中的所有 NFT 绑定在一起。通常情况下,弄清一个合集里铸造的所有 NFT 的唯一有效方法,就是直接向创作者询问铸造清单。我认为一些前沿的链上 NFT 合集整理概念可以帮助到 Solana 的 NFT 合集创建者,以及 NFT 市场程序员。这件事可以通过像以太坊这样的智能合约来完成,不过这就有些大材小用。相反,Solana 程序开发员 b.sol 想出了一个更好的主意:用一个 Token 来代表整个合集,并使用该 Token 来铸造相关的 NFT。然后跟随 root 与合集 Token 存储在一起的哈希树,就可以找到使用该合集铸造的所有 NFT。在此之后,市场就可以自动根据合集 Token 的铸造地址,轻松地创建完整的铸造清单。
当前我们仍处于 NFT 创造的早期阶段,我特别兴奋地看到 Solana 上的 NFT 在数量和交易量方面都持续地增长,也期待看到相关协议和工具的发展,使这一生态系统中的所有参与者都能有更加快速便捷的体验。
原文作者:Brett Harrison,FTX US 总裁
原文编译:0x137