5.1 SBT Architecture

5.1 SBT Architecture

Omni-ID 技术实现的核心是一个动态灵魂绑定代币 (Dynamic Soulbound Token)。我们摒弃了用于艺术品收藏的 ERC-721 标准,采用了专为“非转移性关系”设计的 ERC-5192 (Minimal Soulbound NFTs) 标准。

5.1.1 Compliance with ERC-5192

1. 为什么选择 ERC-5192?

传统的 ERC-721 允许代币自由转移,这对于信誉系统是致命的——如果一个“五星好评”的账户可以被出售给恶意欺诈者,那么信誉将毫无价值。

ERC-5192 是以太坊社区确立的“最小化灵魂绑定接口”标准。它在 ERC-721 的基础上强制实施了锁定逻辑。

2. 锁定机制实现 (Locking Mechanism)

Omni-ID 合约重写了底层传输函数,从代码层面物理阻断了转移路径:

Solidity

// Omni-ID Core Logic
function transferFrom(address from, address to, uint256 tokenId) public override {
    revert("OmniID: Soulbound token cannot be transferred");
}

function safeTransferFrom(address from, address to, uint256 tokenId) public override {
    revert("OmniID: Soulbound token cannot be transferred");
}

// ERC-5192 Interface Implementation
function locked(uint256 tokenId) external view returns (bool) {
    return true; // Permanently locked upon minting
}
  • 唯一性约束 (Uniqueness): 每个钱包地址仅限 Mint 一个 Omni-ID。balanceOf(user) 恒等于 0 或 1。

  • 可剥夺性 (Revocability): 虽然用户不能转移 ID,但协议拥有最高权限(由 DAN 裁决触发)执行 burn() 操作。这是对严重欺诈者(如被证实进行 Sybil 攻击或恶意诈骗)的终极惩罚——“数字死刑”。

5.1.2 Metadata Storage and Update Logic

Omni-ID 必须解决一个矛盾:信誉分需要被智能合约频繁读取(如计算费率折扣),但完整的履历数据过于庞大,无法全部存上链。

为此,我们采用了一种 “双层存储 (Dual-Layer Storage)” 架构。

A. Layer 1: On-Chain Reputation State

存储位置: Ethereum/L2 State Trie

数据内容: 仅存储最核心的量化指标。

Solidity

  • 目的: 允许其他智能合约(如 OES 担保合约、DeFi 借贷协议)通过 IIdentity.getScore(user) 原子化地读取用户信誉,从而实现“高信誉免押金”或“低费率”的自动化逻辑。

B. Layer 2: Off-Chain Contextual Metadata

存储位置: IPFS / Arweave

数据内容: 丰富的展示型数据。

JSON

  • 链接方式: 链上仅存储 tokenURI 指针。

  • 目的: 供前端 DApp、OpenSea 或招聘平台展示用户的详细履历。

C. The Dynamic Update Cycle

Omni-ID 不是静态的 NFT,它是随着用户行为实时进化的。

  1. Trigger (触发):

    当一笔 OES 担保交易完成(Finalized)或仲裁结束时,OES 合约触发 emitReputationUpdate。

  2. Calculation (计算):

    链上的 ReputationController 合约根据预设公式(见 5.2 节)计算新的分数增量 $\Delta S$。

  3. State Mutation (状态突变):

    Controller 调用 Omni-ID 合约的 updateScore(tokenId, newScore)。

    • 权限控制: 该函数被修饰符 onlyProtocol 保护,严禁用户自行修改分数。

  4. Metadata Refresh (元数据刷新):

    若用户的等级发生变化(如从 Level 1 升至 Level 2),合约会触发 BatchMetadataUpdate 事件(EIP-4906),通知 OpenSea 等平台重新拉取最新的 NFT 图像(例如:勋章从铜牌变为金牌)。


本节通过展示双层存储架构,向技术读者证明了 Omni-ID 既具备DeFi 可组合性(链上数据轻量化),又具备Web2 级别的用户体验(链下数据丰富化)。