TEE 与链上确认
使用 Advanced 0G 供应商时,模型在可信执行环境(TEE)里运行。本页解释你能从中得到什么、链上实际验证的是什么、Ghast 在 UI 里展示什么。
一句话讲完
- 每个 Advanced 供应商加入 0G 推理注册表时会在链上注册一个 TEE 签名者地址。
- 推理响应由该密钥签名,供应商以此证明调用确实经过了 TEE。
- 给子账户充值之前,Ghast 会让你确认(acknowledge) 该 TEE 签名者(每个供应商一次链上交易)。
- 链上对每对(你的地址,供应商)维护一个
acknowledged布尔标志。
"确认" 到底是什么
链上 inference.acknowledgeTEESigner(provider, true) 翻转 Inference 合约里的一个标志,记录:"这个用户已确认这个供应商的 TEE 身份。" 它本身不用密码学验证 TEE 远程证明。这是 UX 层的确认,不是 TEE quote 验证。
实际意义:
- 链上知道你显式选择了这个供应商的 TEE。
- 供应商知道可以服务你并从子账户扣费。
- 链下工具与审计可以把确认记录当作"用户在某个时间显式同意了某个 TEE 身份"的证据。
TEE 实际保护什么
TEE 是供应商运行模型的运行环境。它的职责:
- 让你的 prompt 和响应与供应商运营方隔离。
- 让远程证明可以(原则上)验证推理代码就是预期的那个二进制。
- 用一个仅存在于 enclave 内的密钥对响应签名。
TEE 不做的事:
- 它不让供应商变得无需信任。你仍然要相信 TEE 本身(硬件厂商的 enclave)按预期运行。
- 它防不住一个声称跑 TEE 但实际从未真正部署 TEE 的供应商——链上确认本身不能证明 enclave 里跑的是什么二进制。
- 它不加密你到供应商的流量——那是 TLS 的事;TEE 只处理已经到达的请求。
简而言之:TEE 比"把 prompt 发进黑盒、信他们"是有意义的改进。但它不是对运营方的完全无需信任替代。
Ghast UI 里 TEE 确认怎么呈现
在 Settings → Providers → 0G Advanced 里,每个供应商条目显示:
- TEE 签名者地址——从链上注册表拉取。
- 确认状态——
已确认或未确认。 - 重试确认按钮(仅在充值成功但确认交易失败时出现,方便单独重试)。
未确认的 Advanced 供应商不能用于推理——客户端在没有确认的情况下拒绝构造 app-sk-... token。
签了什么
确认操作:
- 是一笔普通的 EVM 交易。你的钱包签名后,Ghast 提交到
https://evmrpc.0g.ai。 - 你支付少量 OG 作为 gas。
- 链上确认是永久的。重复确认是 no-op。
- 没有"取消确认"流程。想停用一个供应商就退款;链上的
acknowledged标志会一直保留。
你能自己验证什么
任何人都可以在链上验证:
- 你的钱包地址在某个区块高度确认了某个供应商的 TEE 签名者。
- 某个供应商注册了某个 TEE 签名者密钥。
仅凭链上数据不能验证:
- TEE 实际跑的是供应商声称的那个代码。
- TEE 签名者密钥真的是在 enclave 内生成的(而不是从外部带进来的)。
这些较弱的性质是对当前链上证明真实位置的诚实描述。确认是一个有用的审计原语;它本身不是 TEE 完整性证明。
