Sui Move Object讲解

要了解Sui的独特特性,首先要了解Sui中以对象为中心的数据模型。

Sui Move Object讲解

Sui的设计初衷是重新定义数字资产所有权的可能性。重新设计的一个基本部分,也是Sui与其他L1的一个显著区别,是Sui是以对象为中心的数据模型

其他L1如何处理资产所有权问题

在大多数区块链上,数据存储的基本单位是账户。数字资产(例如NFT或Token)存储在个人(用户)账户或智能合约账户中。NFT实际上存在于创建和管理它们的智能合约中。所有者无法控制其他人对自己资产的访问,虽然这些资产不能借出、存储或在其他合约中使用。这些智能合约不包含有关其内部NFT的大量信息,其详细信息是在链下存储的,从而导致数字资产很难发挥重要的效用。

因为没有预先确认资产彼此独立的方法,其他L1上要求按顺序处理每笔交易。验证节点必须为每个区块更新链的整体状态,因此必须检查在一笔交易中采取的操作不与任何其他交易冲突。此过程可能会导致网络拥堵,增加延迟并降低链的吞吐量。

Sui如何处理资产所有权问题

在Sui上,对象是数据存储的基本单位。开发人员定义、创建和管理这些代表用户级资产的可编程对象。一个对象具有不同的属性,包括所有权,其值可以根据创建它的智能合约的管理逻辑进行更新。然而,即使智能合约创建对象,它们也不会存储对象,对象及其属性直接存储在用户账户的链上,可以由所有者直接访问和控制。

对象类型

Sui中定义的每个对象必须拥有key和UID。在浏览器上查看时,可以看到五个基本参数——所有者、对象ID、类型、版本、最后一次交易摘要。构建者还可以通过包含其他字段来自定义对象。

随着不断地发展,不同于其他区块链上的静态模式,Sui上的数字资产将保持动态模式,这得益于字段中添加、删除和扩充信息这一功能。有关资产的信息也会随着时间的推移不断积累,从而增加价值、场景和实用性。

对象所有权

Sui上的大多数资产都由一个地址所有,该地址被记录为对象的数据值。这些资产被称为 "独享对象"。有些资产具有共享所有权,这意味着多个账户必须对更改对象相关数据值的交易进行验证。对象还可以被其他对象拥有,这就使得它们可以组合成新的独特资产,即可组合资产。最后,还有一些不可变对象,它们被锁定且无法更改。

事务处理

当所有事务都是由对象组成时,您就会确切地知道哪些交易是具有相关性的。系统可以对交易进行分段或分组处理,同时实现每个组并行处理。

一个独享对象的价值变化不会影响另一个独享对象的价值变化,因此简单的交易(例如支付或资产转移)可以组合在一起并行处理。这些交易不需要达成共识,因此它们可以以任意顺序发生,而不会对整条区块链的记录保存产生任何影响。这就减少了处理交易所需的时间和精力,改善了延迟性。

涉及共享对象的交易会复杂一些,必须通过共识进行验证。但是,每个共享对象仍然独立于其他对象,相关事务可以组合在一起并与涉及其他对象的事务并行处理。

开始编程对象

在Sui 上进行构建的第一步就是玩转对象。请查看Sui有关对象编程的文档以开始学习。