什么是对象?

Sui 的对象模型可以看作是一个高层次的抽象,将数字资产表示为“对象”。这些对象具有自己的类型和相关行为、唯一标识符,并支持诸如“转移”和“共享”等原生存储操作。设计直观且易于使用,对象模型使得实现各种用例变得轻而易举。

Sui 中的对象具有以下属性:

  • 类型: 每个对象都有一个类型,定义了对象的结构和行为。不同类型的对象不能混合使用或互换使用,确保对象根据其类型系统正确使用。

  • 唯一ID: 每个对象都有一个唯一标识符,区分它与其他对象。这一ID在对象创建时生成并且不可更改,用于在系统内跟踪和识别对象。

  • 所有者: 每个对象都与一个所有者相关联,所有者对对象具有控制权。Sui 上的所有权可以是专属于某个账户的、在网络中共享的或被冻结的,允许只读访问而不能修改或转移。在后续部分中,我们将详细讨论所有权。

  • 数据: 对象封装其数据,简化了管理和操作。数据结构和操作由对象的类型定义。

  • 版本: 从账户到对象的过渡通过对象版本化实现。传统上,区块链使用“nonce”来防止重放攻击。在Sui中,对象的版本充当nonce,防止每个对象的重放攻击。

  • 摘要: 每个对象都有一个摘要,它是对象数据的哈希值。摘要用于加密验证对象数据的完整性,确保数据未被篡改。摘要在对象创建时计算,并在对象数据更改时更新。

总结

  • Sui 中的对象是表示数字资产的高层次抽象。
  • 对象具有类型、唯一ID、所有者、数据、版本和摘要。
  • 对象模型简化了资产管理并支持广泛的用例。

延伸阅读