摘要:Sui 把链上一切都存成带唯一 ID 的对象。本文对照 docs.sui.io 官方文档,用 Suiscan 真实交易与 0x6 时钟对象、本机 GraphQL 查询,讲清对象元数据、所有权类型(独占/共享/不可变)与 Lamport 版本号规则怎么自己核对。
在以太坊上,你的 USDT 是记在合约里的一个数字;在比特币上,余额是一堆未花费输出 UTXO。Sui 走的是第三条路:链上一切都是「对象」——你的 SUI 币、NFT、DEX 的资金池、甚至系统时钟,都是带唯一 ID 的对象。本文只讲机制和核对方法:对象有哪几个元数据字段、所有权类型怎么影响交易路径、版本号按什么规则递增,以及怎么用 Suiscan 浏览器和官方 GraphQL 接口自己核对。
对象的四个元数据:ID、版本、交易摘要、所有者
打开官方文档 docs.sui.io · Object Model,「Object metadata」一节写明每个对象都带四个公共字段。和账户模型最大的不同是:状态挂在对象上,而不是挂在地址上,地址只是对象的「所有者」之一。

| 字段 | 文档定义(意译) | 浏览器里看哪 |
|---|---|---|
| ID(32 字节) | 由创建它的交易摘要 + 该交易内生成 ID 的计数派生,全局唯一、永不改变 | 对象页「Object ID」 |
| version(u64) | 每次被交易修改都单调递增 | 对象页「Version」;交易页 Changes 表的 Version 列 |
| 交易摘要(32 字节) | 最后一笔把它作为输出的交易 | 对象页「Last Tx Block ID」 |
| owner | 决定谁能在交易里使用它 | 对象页 Shared 标签 / Owner's Address |
文档还区分三种「引用」方式:只用 ID(查当前状态)、(ID, version)(查某个历史版本)、(ID, version, digest) 三元组即「对象引用」——交易提交地址独占的对象时,要用对象引用写明版本,让发送方和验证者对对象内容达成一致。这一点和 比特币 UTXO 很像:交易消费某个确定版本的输入、产出新版本;也和 以太坊靠 Nonce 排序 的思路完全不同。
所有权类型:决定走快路径还是共识
打开 docs.sui.io · Types of Object Ownership,表格列出五类所有权以及各自的「版本路径」。读这张表的关键是第三列:Fastpath(快路径)不需要共识排序,Consensus 需要。

Coin<SUI>、个人 NFT。ObjectOwner)。文档没有给出固定的确认毫秒数,只写快路径延迟「最低」、共识「更高」;具体速度会随网络负载变化,本文不写数字。想对比另一条高性能链的思路,可看 Solana 的账户模型与本地费用市场。
版本号怎么涨:Lamport 时间戳规则
docs.sui.io · Object Versioning 给出了规则:一笔交易会把它触碰到的所有对象的新版本统一设为 1 + max(所有输入对象的版本)。官方例子:对象 O 在版本 5、Gas 对象 G 在版本 3,交易后两者都变成 6。这样 (ID, version) 永远不会被复用。
在浏览器里验证:打开 Suiscan 上的一笔主网交易 HQWvwSZNjd…,切到 Changes 标签。这是一笔预言机喂价交易(我们只看结构,与价格无关),5 个被修改对象的 Version 全都是 1035938840。

用官方 GraphQL 查同一笔交易的 objectChanges,输入版本分别是 1035938839(3 个对象)和 1035938740(2 个对象),1 + max = 1035938840,和浏览器显示一致。截图里还能看到:
- Current Owner 是地址(0x9df9…)的,是发送方独占的 Gas 币和权限凭证(Cap);
- 显示为
shared(665650775)的是共享对象,括号里是它第一次被共享时的版本(initialSharedVersion),之后不再变; - 所有者是另一个 0x 对象 ID 的,是挂在父对象下的子对象(动态字段等)。
同一页 Overview 里还能看到本笔 Total Gas Fee 为 0.000247288 SUI(247,288 MIST)、Gas Budget 0.05 SUI——这只是这一笔的截图读数,费用会随交易内容和网络 Gas 价格变化。
看一个共享对象:系统时钟 0x6
打开 Suiscan · Object 0x6。这是 Sui 系统内置的 Clock 对象:标签为 Shared,Type 是 0x2::clock::Clock,Version 是一个很大的数字;下方 Tx Blocks 列表全是 Sui System account 发出的 ConsensusCommitPrologueV4——共识每次提交都会更新时钟,所以它的版本几乎每秒都在涨。

说明:同类浏览器 SuiVision(suivision.xyz)在我们截图环境里弹出了人机验证页,所以本文统一用 Suiscan;你本机用 SuiVision 查同一个对象 ID,字段含义相同。
不靠浏览器:用官方 GraphQL 自己查
想脱离第三方浏览器核对,可以直接问节点。注意截至本文运行时(2026-10-05)的现状:向公共全节点 fullnode.mainnet.sui.io 发 JSON-RPC 的 sui_getObject,现在会返回 -32601,提示公共全节点的 JSON-RPC 已弃用,请迁移到 gRPC 或 GraphQL(见 官方迁移说明)。下面脚本改用 GraphQL 端点,只读、不需要私钥:
#!/usr/bin/env bash
# 只读查询 Sui 主网对象:Clock(0x6),不需要私钥
G=https://graphql.mainnet.sui.io/graphql
Q='{"query":"{ object(address: \"0x6\") { address version digest owner { __typename ... on Shared { initialSharedVersion } } } }"}'
for i in 1 2; do
curl -s "$G" -H 'Content-Type: application/json' -d "$Q" | jq -c '.data.object | {version, digest, owner}'
sleep 3
done
再写一个 owner.sh,把对象地址换成参数、多查 AddressOwner 的地址与 Move 类型。下图为本机真实运行输出:

三点可以自己验证:同一个 Clock 对象相隔约 3 秒查两次,version 和 digest 都变了(共享对象被系统交易持续修改);上一节交易里的 Gas 币 owner.__typename 是 AddressOwner,类型 0x2::coin::Coin<0x2::sui::SUI>——SUI 余额本身就是一个个 Coin 对象;框架包 0x2 是 Immutable。
自查清单
- 拿到对象 ID 后先看 owner:地址独占、Shared、Immutable 还是挂在另一个对象下。
- 看 Version 与 Last Tx:版本只增不减;想看历史状态要用 (ID, version)。
- 交易页 Changes:被修改对象新版本应等于 1 + 输入版本最大值。
- Shared 对象括号里的数字是初始共享版本,不是当前版本。
- 程序化核对用 GraphQL / gRPC,不要再依赖公共全节点 JSON-RPC。
想自己在 Sui 上转账或交互:钱包可以用 欧易 Web3 钱包(是否支持 Sui 以 App 网络列表为准,创建时可填推荐码 CHENGXULVTU);Gas 要用 SUI 付,可在 币安 或 欧易 准备少量 SUI,提现时网络选 Sui(以提现页显示为准),并先小额测试。
相关阅读
- 比特币 UTXO 模型是什么:看懂一笔交易的输入、输出与找零
- Solana 为什么快:PoH、账户模型与交易费怎么看
- 以太坊 Nonce 是什么:卡住交易、加速与取消怎么在浏览器核对
- TON 链怎么运作:分片、Jetton 与钱包地址格式
说明:文中版本号、Gas 读数均为 2026-10-05 截图/运行时的链上状态,会持续变化;机制以 docs.sui.io 官方文档为准。本文只讲技术原理与核对方法,不构成任何投资建议。
