automata-network/tdx-attestation-sdk
GitHub: automata-network/tdx-attestation-sdk
一款帮助开发者在多云环境中生成Intel TDX Quote并结合Risc0和SP1零知识证明实现链上验证的综合SDK。
Stars: 31 | Forks: 25
# Automata TDX Attestation SDK
[](LICENSE)
## 概述
Automata TDX Attestation SDK 是功能最齐全的 Intel TDX 开发 SDK,它由两部分组成:
* TDX package:帮助开发者从不同的云服务提供商 (CSP) 生成 Intel TDX Quote。
* Risc0 和 Succinct ZK 主机和客户程序。
### 环境准备
请参考 [TDX package](tdx/README.md) 在不同的云服务提供商 (CSP) 中搭建 Intel TDX CVM。
## Intel TDX Quote 生成
使用 [TDX package](tdx/README.md) 生成 Intel TDX Quote,你可以在 [tdx_attestation](tdx/examples/attestation.rs) 中找到一个示例。
## Intel TDX Quote 验证
### 链上验证 Attestation
在 [Automata DCAP Attestation](https://github.com/automata-network/automata-dcap-attestation) 中,我们提供了两种在链上验证 Intel TDX quote 的方式:
```
function verifyAndAttestOnChain(bytes calldata rawQuote)
```
它接受原始 quote 十六进制字符串来执行链上验证,所有抵押品将从 [Automata on-chain PCCS](https://github.com/automata-network/automata-on-chain-pccs) 获取。
```
function verifyAndAttestWithZKProof(bytes calldata output, ZkCoProcessorType zkCoprocessor, bytes calldata proofBytes)
```
第一个参数表示 zkVM 的输出,第二个是 zkVM 类型,第三个是其对应的证明。它支持两种 ZK 技术来执行链上验证:
* [Risc0](https://github.com/risc0/risc0)
- output: Risc0 zkVM 输出的 journal
- zkCoprocessor: 1
- proofBytes: Risc0 zkVM 输出的 seal
* [SP1](https://github.com/succinctlabs/sp1)
- output: SP1 Prover 输出的执行结果
- zkCoprocessor: 2
- proofBytes: SP1 Prover 输出的 proof
链上验证合约已部署到 Automata Testnet,地址为 [0x95175096a9B74165BE0ac84260cc14Fc1c0EF5FF](https://explorer-testnet.ata.network/address/0x95175096a9B74165BE0ac84260cc14Fc1c0EF5FF)。
目前用于 DCAP RiscZero Guest Program 的 [ImageID](https://dev.risczero.com/terminology#image-id) 是 `6f661ba5aaed148dbd2ae6217a47be56b3d713f37c65cc5ea3b006a9525bc807`。
目前用于 DCAP SP1 Program 的 [VKEY](https://docs.succinct.xyz/verification/onchain/solidity-sdk.html?#finding-your-program-vkey) 是
`0021feaf3f6c78429dac7756fac5cfed39b606e34603443409733e13a1cf06cc`。
一个有用的 DCAP zkVM clis 可以在 [Automata DCAP zkVM CLI](https://github.com/automata-network/automata-dcap-zkvm-cli) 找到。
### 链下验证 Attestation
请遵循 Intel 官方 DCAP 仓库 [SGXDataCenterAttestationPrimitives](https://github.com/intel/SGXDataCenterAttestationPrimitives) 来执行链下验证。
## ZK 优化
### Risc0
首先,你需要安装以下内容:
* [Rust](https://doc.rust-lang.org/cargo/getting-started/installation.html)
* [Foundry](https://getfoundry.sh/)
* [RISC Zero](https://dev.risczero.com/api/zkvm/install)
#### 配置 Bonsai
***注意:*** *如需请求 API key,请[在此填写表格](https://bonsai.xyz/apply)。*
使用 Bonsai proving service,你可以生成一个可在链上验证的 [Groth16 SNARK proof]。
你可以通过设置以下环境变量(包含你的 API key 和关联的 URL)来开始。
```
export BONSAI_API_KEY="YOUR_API_KEY" # see form linked above
export BONSAI_API_URL="BONSAI_URL" # provided with your api key
```
### Succinct
首先,你需要安装以下内容:
* [Rust](https://doc.rust-lang.org/cargo/getting-started/installation.html)
* [SP1](https://docs.succinct.xyz/getting-started/install.html)
* [Docker](https://docs.docker.com/get-started/get-docker/)
***注意:*** *如需请求白名单地址,请[在此填写表格](https://docs.google.com/forms/d/e/1FAIpQLSd-X9uH7G0bvXH_kjptnQtNil8L4dumrVPpFE4t8Ci1XT1GaQ/viewform)。*
使用 SP1 Proving Network,你可以生成一个可在链上验证的 [Groth16 SNARK proof] 或 [Plonk SNARK proof]。
你可以通过设置以下环境变量(包含你的白名单地址和关联的 Proving Network)来开始。
```
export SP1_PROVER=network
export SP1_PRIVATE_KEY=""
```
## 致谢
我们要感谢以下项目,它们的先前工作对于本项目的实现起到了至关重要的作用。
* [Risc0](https://github.com/risc0/risc0): Risc0 ZK Optimization,用于降低在链上验证 Intel TDX Quote 的 gas 成本。
* [SP1](https://github.com/succinctlabs/sp1): Succinct ZK Optimization,用于降低在链上验证 Intel TDX Quote 的 gas 成本。它支持 Groth16 和 Plonk proofs。
## 免责声明
该项目正在开发中。所有源代码和功能均未达到生产就绪状态。
标签:Automata, CSP, DCAP, Intel TDX, Risc0, Rust SDK, SP1, Succinct, TEE, ZKP, zkVM, 云计算, 区块链基础设施, 去中心化, 可信执行环境, 可视化界面, 威胁情报, 安全标准, 密码学, 开发者工具, 手动系统调用, 智能合约, 机密计算, 硬件安全, 规则引擎, 请求拦截, 远程证明, 通知系统, 链上验证, 链下计算, 零知识证明