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,它是随着用户行为实时进化的。
Trigger (触发):
当一笔 OES 担保交易完成(Finalized)或仲裁结束时,OES 合约触发 emitReputationUpdate。
Calculation (计算):
链上的 ReputationController 合约根据预设公式(见 5.2 节)计算新的分数增量 $\Delta S$。
State Mutation (状态突变):
Controller 调用 Omni-ID 合约的 updateScore(tokenId, newScore)。
权限控制: 该函数被修饰符
onlyProtocol保护,严禁用户自行修改分数。
Metadata Refresh (元数据刷新):
若用户的等级发生变化(如从 Level 1 升至 Level 2),合约会触发 BatchMetadataUpdate 事件(EIP-4906),通知 OpenSea 等平台重新拉取最新的 NFT 图像(例如:勋章从铜牌变为金牌)。
本节通过展示双层存储架构,向技术读者证明了 Omni-ID 既具备DeFi 可组合性(链上数据轻量化),又具备Web2 级别的用户体验(链下数据丰富化)。

