Note This repository has been archived and is no longer maintained. No further updates, bug fixes, or pull requests will be accepted.
The yellowpages proof service is a Rust-based service that is designed to be run within a Trusted Execution Environment (TEE) on AWS Nitro Enclave to validate inputs and generate cryptographic proofs of Bitcoin ownership linked to new post quantum addresses.
The proof service performs three main functions:
- Validates incoming requests and their associated data
- If validation succeeds, generates a TEE attestation document that serves as proof of valid data
- Uploads the generated proof to the yellowpages data layer
- Runs in AWS Nitro Enclave for hardware-level security isolation
- Requests to the proof service are made via a secure WebSocket connection which includes a Post-Quantum Secure Channel (PQSC) via ML-KEM & AES-GCM
- Input validation (Bitcoin signature, ML-DSA signature, and SLH-DSA signature) and attestation document generation
- Rate-limited API endpoints with CORS support
- Clone the repository:
git clone [repository-url]
cd yellowpages-proof-service- Build the project:
cargo build --release- Run the project:
Note that given this service is designed to be run within a TEE, it is not currently possible to run it locally in full. However, the project includes a test suite that can be run locally to verify the functionality of the service.
cargo run --releaseRun the test suite:
cargo testsrc/main.rs- Application entry point and server setupsrc/prove.rs- Core proof generation and attestation logicsrc/pq_channel.rs- Post-quantum secure web socket channel implementationsrc/config.rs- Configuration managementsrc/utils.rs- Utility functions and helperssrc/end_to_end_tests.rs- End-to-end test suitesrc/fixtures.rs- Test fixtures and mock data
See CONTRIBUTING.md for details on how to contribute to this project.
This project is licensed under the Apache License, Version 2.0. See LICENSE for more details.