
本研究旨在探讨Sui的基于物件(objects)的程式设计模型,以及它如何活用各式各样的NFT结构,借此对DeFi的大规模应用做出贡献。
我们之前撰写了一份报告,讲述为何我们认为若要定义和建立基于区块链的DeFi原生资产,Sui会是最佳选择。 Sui的基础设计捕捉了区块链上数位资产的本质,并使智能合约能够在其上运作,取代中间人的功能。
链上与链下的差异
在像EVM或Solana这样的区块链上,数位资产的状态(the state of digital assets),或说NFT,是存储在链下的。对于静态(static)的NFT,这是一种可接受的模型,因为这些NFT不会被进行转移或进行任何状态更改。
一个简单的类比是默克尔树,其中NFT是其叶子,而在区块链上发布的只是树的根。
如果使用者经常创建新的NFT,且创建后也不太关注他们,这种模型是有效的;他们不需要对其进行任何修改或转移。然而,如果需要对其中一个NFT字段进行转移或更新,这将变得更加昂贵且需要更长的交易哈希。由于只有树的根被发布在区块链上,每次更新都需要一个默克尔证明。即使是读取NFT也需要一个默克尔证明。

最近由a16z crypto发表的一篇论文《关于可撤销性证明系统的限制,对无状态区块链的影响》探讨了无状态区块链(stateless blockchain)的概念及其取舍。该概念源于对区块链范式的一个挑战,传统上每个验证者都需要存储整个系统的完整状态。这种要求引起了对中心化的担忧,因为随着状态变得越来越大,只有资金充足的组织才能负担得起存储费用。
这引出了无状态区块链设计的概念,该概念建议验证者仅存储系统的一小部分全局状态(例如,仅存储默克尔树的根)。需要发起交易的使用者必须发布证明,证明他们的交易是有效的(例如,指向叶子的默克尔证明路径)。
该论文发现了一个问题:「…当其他(无关的)交易更新全局状态时,使用者必须监控网络并定期更新他们的证明,这可能让使用者的证明变得无效。」不幸的是,这引入了新的安全威胁,因为链下状态管理变得相当繁琐。
当元数据(metadata)存在于链下时,智能合约的调用将会受限。这不仅无法提高产品效率,也无法提高分发效率。从根本上讲,它未能实现去中心化基础设施的目的。
Sui允许我们将NFT的元数据完全存储在链上,其中最值得注意的特点就是能够在链上存储大量的任意数据。在我们之前的报告中,我们给出了关于传统存储成本运作方式的类比。
来用一个简单的例子说明传统存储成本运作的问题:
Alice从Sui Network上线初期开始使用,当时在链上还没有存储太多的数据,她享受着较低的气费(gas fee)。
而Bob在Sui Network成熟后开始使用,因为那时在链上已经存储了大量的数据,导致Bob得支付较高的气费。
Sui的代币经济模型通过存储基金(storage fund)来应对存储成本,具体来说是将过去的交易手续费重新分配给未来的验证者。当链上的存储需求很高时,验证者将获得额外的奖励来弥补他们的成本,而当存储需求较低时,则相反地降低奖励。
它还包括一个删除选项,允许用户透过删除之前存储的链上数据来获得退款。这个机制让用户只会将必要的数据存储在链上。这种租赁模型,通过按期支付的方式支付存储费用,对于在Sui上面的项目来说是很有效率的。当存储成本变得不经济时,它引入了一种基于市场的机制来释放存储空间。

将元数据(metadata)存储在链上确保了代币的可编程性。资产可能会发生变异,有时会组合。通过Sui这种物件导向的(object-oriented)语言进行智能合约编程,将结构(structs)存储在链上有助于可组合性(composability)。如果NFT能够互相通信,甚至是来自不同格式的NFT,那么将会开启新的垂直领域。
在其他区块链上,NFT仅仅是一个拥有权记录,其中包含指向特定链下存储的URL。众所周知,这将让区块链的全面应用有很多局限。
与其他区块链不同,Sui能够在链上存储jpeg图像,并具有丰富的可变(mutable)和不可变(immutable)属性。 NFT不仅仅是我们今天所知道的那样,它们成为了在Sui内具有状态动态(stateful dynamic)特性的链上应用程序。这最终将推动更多创造力的释放、用户的采用和消费者价值的提升。
动态的可演进性
Sui对NFT的愿景为区块链提供了一种不同的想像空间。资产是动态的;它们会变异,经历生命周期,有时甚至组合起来。为此,我们需要有一个基础架构,好让我们能够准确地模拟这些资产的生命周期。
如果NFT不能够模拟复杂且不断演化的资产,它们的用途就被限制在静态的资产上,例如货币、静态PFP等等。 Sui中的动态栏位(dynamic field)很好地模拟了动态资产的生命周期;它们可以存储异质值(heterogenous value)并在访问时仅受到气费的影响,可以随时添加或移除。
想象一下,组合性(composability)和条件逻辑(conditional logic)可以创造出什么:
- 一个基于您在DeFi协议上的交易活动而演进的NFT,随着您的等级提供动态奖励。
- 一个反映我们宏观环境变化的链上结构化产品。
- 一幅艺术作品,在艺术家签名或拍卖时发生变化。
- 一个游戏资产,在您领导一场战斗或进入前十名玩家排行榜时升级。
Sui的编程语言允许在基本层面上对这些生命周期进行建模。这些资产的可演进性不依赖于Sui上的合约更新,让你可以在动态栏位中进行内部状态变更,或者移除和添加子物件(child objects)。
让我们来看一个名为Tails的示例,它具有两个功能 — — key和store。 key将其定义为可拥有的物件,就像一个NFT出现在您的钱包中。 store功能允许免费转移和封装。底部的Tail Badge是一个配饰,在满足某些条件时可以添加或移除。
