ERC7857(iNFT)

什么是 ERC7857/INFT

ERC-7857(也称 INFT)是一种面向 智能体/AI 代理的 NFT 标准,支持 可进化元数据、加密功能元数据以及功能性资产的安全转移,弥补传统 ERC-721 在 AI 场景中的不足。

NFT 不适配 AI 的原因

1. Static Metadata(静态元数据)

  • 传统 NFT(如 ERC-721)元数据固定,不支持自我学习或自我演化
  • 无法随着 AI 代理能力或状态变化而更新

2. Insecure Metadata Transfer(元数据传输不安全)

  • NFT 转移只涉及所有权转移
  • 底层功能性元数据未随之安全转移
  • 存在信息泄露或功能丢失风险

3. Publicly Accessible Metadata(元数据公开可访问)

  • NFT 元数据默认公开
  • 缺少原生加密机制
  • 关键功能或敏感信息无法保护

REC7857的技术细节

步骤

  1. 调用 transfer() 方法,开启转账流程。
  2. 合约向 Oracle 发起询问,询问目标 “newDataHash” 相关情况。
  3. Oracle 回复接收方是否能访问 “newDataHash”,回复内容包含 “成功”“序列化”“oldDataHash”“newDataHash” 等信息。
  4. 若 Oracle 回复为 “是”,则把目标代币的所有者从发送方(Sender)变更为接收方(Receiver),同时发布序列化密钥,并将代币的 “oldDataHash” 更新为 “newDataHash”。

提示:“oldDataHash” 和 “newDataHash” 代表它们背后的哈希值和数据

Oracle 现实实现方式
理想的 Oracle 可以通过 TEE/ZKP 实现

image.png

ERC721 和 ERC7857区别

iNFT特点

1. Privacy-Preserving Metadata(隐私保护元数据)

  • 关注在存储和处理数据时保护用户隐私
  • 确保元数据不会泄露敏感信息
  • 可使用加密、匿名化或零知识证明等技术

2. Secure Metadata Transfers(安全元数据传输)

  • 保证元数据在传输过程中不被篡改或泄露
  • 可采用加密传输、身份认证和完整性校验机制

3. Dynamic Data Management(动态数据管理)

  • 支持数据的实时更新、增删改操作
  • 适应数据变化,提高存储和访问的灵活性

4. Decentralized Storage Integration(去中心化存储集成)

  • 与去中心化存储系统(如 IPFS、Filecoin 等)结合
  • 提升数据冗余、可靠性和抗审查性

5. Verifiable Ownership & Control(可验证的所有权与控制)

  • 用户可以证明对数据的所有权
  • 可控制数据的访问权限和操作权限
  • 可通过区块链或加密签名实现验证

6. AI-Specific Functionality(针对 AI 的功能性)

  • 支持 AI 模型对数据的访问和处理
  • 提供数据标注、分析、训练等 AI 相关功能
  • 可能包含优化性能、加速推理或模型安全性功能

TEE流程

image.png

1. TEE 规则 (TEE ORACLE Rules)

  • 2.(1). TEE:
    • a. 使用其私钥解密旧密钥 (Decrypts the old key with its private key)
    • b. 使用旧密钥解密 ‘oldDataHash’ (Decrypts ‘oldDataHash’ with the old key)
    • c. 生成一个新的秘密密钥 (Generates a new secret key)
    • d. 使用新的秘密密钥加密数据以获得 ‘newDataHash’ (Encrypts data with the new secret key to get ‘newDataHash’)
    • e. 使用接收者的公钥加密新的秘密密钥以获得 ‘sealedKey’ (Encrypts the new secret key with Receiver’s public key to get ‘sealedKey’)

2. Oracle (预言机/核心流程)

  • 实现 (Implement)
    • - TEE
      • 1. 发送方将 ‘oldDataHash’ 和加密密钥(使用 TEE 的公钥加密)提供给 TEE (Sender gives ‘oldDataHash’ and encrypted key (encrypted with TEE’s public key) to TEE)
      • 2. (涉及) ‘oldDataHash’, ‘newDataHash’ ((‘oldDataHash’, ‘newDataHash’))
      • 3. 接收方访问 ‘newDataHash’,然后对 ‘oldDataHash’ 和 ‘newDataHash’ 进行签名 (Receiver accesses ‘newDataHash’ and then signs ‘oldDataHash’ and ‘newDataHash’)
      • 4. 发送方发送 ‘newDataHash’ (Sender sends ‘newDataHash’)

3. 附加说明

  • 可以自己生成一个秘密密钥。 (I have black magic to generate a secret key by myself.)
  • - 提示: ‘oldDataHash’ 和 ‘newDataHash’ 代表哈希及其背后的数据。 (Tips: ‘oldDataHash’ and ‘newDataHash’ represent the hashes and the data behind them.)

ZKP验证流程

image.png

1. ZKP 规则 (ZKP ORACLE Rules)

  • 2(1), ZKP:
    • a. 使用其私钥解密旧密钥 (Decrypt the old keys with its private key)
    • b. 使用旧密钥解密 ‘oldDataHash’ (Decrypt ‘oldDataHash’ with the old key)
    • c. 使用新密钥加密数据以获得 ‘newDataHash’ (Encrypt data with the new key to get ‘newDataHash’)
    • d. 使用接收者的公钥加密新密钥以获得 ‘scaleKey’ (Encrypt the new key with Receiver’s public key to get ‘scaleKey’)

2. Oracle (预言机/核心流程)

  • 实现中 (Implementing)
    • - [ ] 发送方将 ‘oldDataHash’ 和加密密钥(旧密钥和新密钥)提供给 ZKP (Sender gives ‘oldDataHash’ and encrypted keys (old key and new key) to ZKP)
    • - [x] ZKP
      • z(z), 最终对 < ‘scaleKey’, ‘oldDataHash’, ‘newDataHash’> 进行签名 (Finally signs < ‘scaleKey’, ‘oldDataHash’, ‘newDataHash’>)
    • - Sender (发送方)
      • 3, 发送方发送 ‘newDataHash’ (Sender sends ‘newDataHash’)
    • - Receiver (接收方)
      • 4, 接收方访问 ‘newDataHash’,然后对 ‘oldDataHash’ 和 ‘newDataHash’ 进行签名 (Receiver accesses ‘newDataHash’, and then signs ‘oldDataHash’ and ‘newDataHash’)

3. 附加说明 (R)

  • - R: 不可以自己生成秘密密钥。所以我需要发送方的帮助来生成密钥,并且接收方应记住稍后更改密钥。(I don’t have black magic to generate a secret key by myself. So I need Sender’s help to generate the key, and Receiver should remember to change the key later.)

4. 提示 (Tips)

  • - 提示: ‘oldDataHash’ 和 ‘newDataHash’ 代表哈希及其背后的数据。(Tips: ‘oldDataHash’ and ‘newDataHash’ represent the hashes and the data behind them.)

iNFT完整流程

image.png

  • 发起 (Initiation): Sender 将旧状态哈希 (oldHash) 和加密密钥 (encKey) 提交给 TEE Oracle。
  • 处理 (Processing): TEE 内部完成解密、生成新密钥、加密新数据得到新哈希 (newHash)、加密新密钥得到密封密钥 (sealedKey),并生成一个包含这些信息的签名。
  • 中继 (Relay): Sender 将 TEE 生成的新哈希 (newHash) 发送给 Receiver。
  • 确认 (Acknowledgement): Receiver 访问数据后,对新旧哈希对进行签名,表示确认接收此状态变更。
  • 执行 (Execution): Sender 调用智能合约的 transfer 方法,提交一个包含 TEE的签名Receiver的签名 的证明 (proof)。
  • 验证与结算 (Verification & Settlement): 智能合约验证证明的有效性。
    • 如果有效: 完成所有权转移、公开 sealedKey 并更新链上数据哈希。
    • 如果无效: 交易回滚。
  • 数据访问 (Data Access): Receiver (或任何相关方) 最终可以从链上获取 sealedKey 来解密并获得新数据。

image.png

AIVerse

1、什么是AIVerse

AIVerse是ERC7857的扩展,实现了具有ai能力的nft的转移流程,扩展了创建agent的质量验证

image.png

2、AIVerse 组件

image.png

3、怎么交互

  1. Create AIverse Accounts(创建 AIverse 账户)
  • 注册并创建个人或组织账户
  • 用于管理个人身份、资产和操作权限
  1. Create Agents(创建智能体)
  • 在平台上生成 AI 代理或智能体
  • 每个代理可独立执行任务或操作
  1. Interact with Agents(与智能体互动)
  • 用户可以与自己或他人的代理进行交互
  • 包括任务指派、指令发送、数据交换等
  1. Trade Agents(交易智能体)
  • 代理可进行买卖或租赁
  • 支持资产化和市场化管理
  • 可基于性能、能力或稀缺性进行定价

课程扩展

  1. eip-7857提案: https://elps.etheroum.org/ElPS/elp-78573

  2. 0G agent-nft示例:https://github.com/0glabs/0g-agent-nft/tree/eip-7857-draft

  3. 0G iNFT 文档:https://docs.0g.ai/developer-hub/building-on-0g/inft/inft-overview