去中心化 AI 会话元数据链上锚定:基于 EAS(以太坊证明服务)的可信存证

在去中心化医疗问诊、智能合约自动化审计、以及基于 AI 的法律仲裁协议中,AI 会话与生成建议的“防篡改可信存证(Verifiable Attestation)” 是确立法律效力与责任归属的核心基石。
如果仅仅把大模型的推理结果保存在私有数据库或普通的 IPFS 上:
- 恶意服务商在遭遇诉讼纠纷时,可能会偷偷修改数据库里的历史回答以逃避责任;
- 用户无法向第三方证明“这份高危审计报告确实是由特定的权威 AI Agent 在特定时间针对特定字节码生成的”。
以太坊证明服务(Ethereum Attestation Service, EAS) 是以太坊生态的链上可信证明金本位。
本文深度实战如何利用 EAS 链上/链下证明协议(On-chain & Off-chain EAS Attestations),为每一份 AI 审计报告与关键会话签发不可伪造、可公开溯源的密码学数字证明。
一、基于 EAS 的 AI 会话可信存证架构
graph TD
AIAgent[权威 AI 审计 Agent (持签名私钥)] --> Generate[完成智能合约白盒审计,生成最终报告 JSON]
Generate --> HashCalc[计算报告的 SHA-256 哈希与 IPFS CID]
subgraph EAS 可信存证体系
HashCalc --> Encode[按 EAS Schema 编码证明数据 (EIP-712 结构化数据)]
Encode --> AttestOnChain[方式 1: EAS.sol 链上直接证明 (适用于重大审计报告)]
Encode --> AttestOffChain[方式 2: EIP-712 链下离线证明 (0 Gas! 用户可随时随地验证)]
end
AttestOnChain & AttestOffChain --> EASScan[EAS 官方证明浏览器 / 链上第三方 DApp 毫秒级核验]
二、注册 EAS 智能合约审计专用 Schema
在 EAS 注册表合约中,我们定义一套标准的“AI 审计报告证明 Schema”:
// EAS Schema 字符串定义
string constant AUDIT_SCHEMA = "address contractAddress, string reportIpfsCid, bytes32 reportSha256, uint8 severityLevel, string aiModelName";
在 EAS 注册后获得唯一的 schemaUID(如 0x9b32...)。
三、TypeScript 签发 EAS 链上与链下证明实现
使用 @ethereum-attestation-service/eas-sdk,我们可以极其轻松地签发证明:
// lib/easAuditAttester.ts
import { EAS, SchemaEncoder, Offchain, SignedOffchainAttestation } from '@ethereum-attestation-service/eas-sdk';
import { ethers } from 'ethers';
const EAS_CONTRACT_ADDRESS = '0xC2679fBD37d54388Ce493F1DB75320D236e1815e';
const SCHEMA_UID = '0x9b327b8bf46358bf37e1bb939c36d22ef149fa861d850239634e060c239474ba';
export class EASAuditService {
private eas: EAS;
private signer: ethers.Wallet;
constructor(privateKey: string, rpcUrl: string) {
const provider = new ethers.JsonRpcProvider(rpcUrl);
this.signer = new ethers.Wallet(privateKey, provider);
this.eas = new EAS(EAS_CONTRACT_ADDRESS);
this.eas.connect(this.signer);
}
// 1. 签发链上证明 (On-chain Attestation)
public async attestAuditOnChain(params: {
contractAddress: string;
reportIpfsCid: string;
reportSha256: string;
severityLevel: number;
aiModelName: string;
}) {
const schemaEncoder = new SchemaEncoder(
'address contractAddress, string reportIpfsCid, bytes32 reportSha256, uint8 severityLevel, string aiModelName'
);
const encodedData = schemaEncoder.encodeData([
{ name: 'contractAddress', value: params.contractAddress, type: 'address' },
{ name: 'reportIpfsCid', value: params.reportIpfsCid, type: 'string' },
{ name: 'reportSha256', value: params.reportSha256, type: 'bytes32' },
{ name: 'severityLevel', value: params.severityLevel, type: 'uint8' },
{ name: 'aiModelName', value: params.aiModelName, type: 'string' },
]);
const tx = await this.eas.attest({
schema: SCHEMA_UID,
data: {
recipient: params.contractAddress,
expirationTime: 0n, // 永久有效
revocable: true, // 允许在发现误判时撤销证明
data: encodedData,
},
});
const newAttestationUID = await tx.wait();
console.log(`📜 [EAS On-chain Attested] UID: ${newAttestationUID}`);
return newAttestationUID;
}
// 2. 签发零 Gas 链下离线证明 (Off-chain EIP-712)
public async signAuditOffChain(params: any): Promise<SignedOffchainAttestation> {
const offchain = await this.eas.getOffchain();
const schemaEncoder = new SchemaEncoder(
'address contractAddress, string reportIpfsCid, bytes32 reportSha256, uint8 severityLevel, string aiModelName'
);
const encodedData = schemaEncoder.encodeData([
{ name: 'contractAddress', value: params.contractAddress, type: 'address' },
{ name: 'reportIpfsCid', value: params.reportIpfsCid, type: 'string' },
{ name: 'reportSha256', value: params.reportSha256, type: 'bytes32' },
{ name: 'severityLevel', value: params.severityLevel, type: 'uint8' },
{ name: 'aiModelName', value: params.aiModelName, type: 'string' },
]);
const offchainAttestation = await offchain.signOffchainAttestation(
{
recipient: params.contractAddress,
expirationTime: 0n,
time: BigInt(Math.floor(Date.now() / 1000)),
revocable: true,
schema: SCHEMA_UID,
refUID: ethers.ZeroHash,
data: encodedData,
},
this.signer
);
console.log(`🔏 [EAS Off-chain Signed] UID: ${offchainAttestation.uid}`);
return offchainAttestation;
}
}
四、智能合约链上原生读取 EAS 证明
在业务合约(如保险理赔或 DAO 资金划转)中,可以直接向 EAS 合约查询该合约是否拥有官方权威 Agent 签发的“零高危漏洞”证明:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {IEAS, Attestation} from "@ethereum-attestation-service/eas-contracts/contracts/IEAS.sol";
contract InsuredVault {
IEAS public immutable eas;
bytes32 public immutable requiredSchemaUID;
address public immutable trustedAIAttester;
constructor(address _eas, bytes32 _schema, address _trustedAI) {
eas = IEAS(_eas);
requiredSchemaUID = _schema;
trustedAIAttester = _trustedAI;
}
// 仅允许已获得权威 AI 审计证明的合约开启大额质押
function activateVaultWithProof(bytes32 attestationUID) external {
Attestation memory attestation = eas.getAttestation(attestationUID);
require(attestation.schema == requiredSchemaUID, "Invalid schema");
require(attestation.attester == trustedAIAttester, "Untrusted AI attester");
require(attestation.revocationTime == 0, "Attestation has been revoked!");
require(attestation.recipient == address(this), "Attestation not for this vault");
// 验证通过,激活金库
}
}
五、可信证明生态价值总结
- 不可抵赖与可追溯性:证明一旦上链,AI 模型的名称、版本号、报告哈希与时间戳永久锚定,任何篡改都会导致 SHA-256 校验失败;
- 跨协议可组合信任(Composable Trust):第三方 DeFi 协议或去中心化保险可以基于 EAS 证明构建自动化的费率折扣,让安全审计直接转化为链上可量化的信用资产。
EAS 为去中心化 AI 交付了不可伪造的密码学信任印章。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/qq_40635035/article/details/165614451




