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](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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, 云计算, 区块链基础设施, 去中心化, 可信执行环境, 可视化界面, 威胁情报, 安全标准, 密码学, 开发者工具, 手动系统调用, 智能合约, 机密计算, 硬件安全, 规则引擎, 请求拦截, 远程证明, 通知系统, 链上验证, 链下计算, 零知识证明