ZkTLS: Acces anys web2 data in web3 world trustless.
TLS is a widely used foundational internet protocol that ensures the security and integrity of data transmission. Additionally, TLS uses PKI to enable entity authentication. By combining zero-knowledge (zk) with TLS, we construct the zkTLS protocol. The zkTLS can prove the connection process of a TLS connection. This proof enables trustless access for Web3 to any endpoint that supports TLS.
- foundry
- CUDA (optional)
- openssl
- pkg-config
- risc0 backend
- sp1 backend
- sp1
- CUDA Docker Toolkit (optional)
- Clone the repo
git clone https://github.com/the3cloud/zktls.git- Compile the project
cargo b --release --no-default-features -F sp1-backend,r0-backend- Run zktls in command listens
RUST_LOG=info ./target/release/zktls prove -i ./testdata/input.json --mock -t evm -p r0
RUST_LOG=info ./target/release/zktls prove -i ./testdata/input.json --mock -t evm -p sp1- Export verifier contract
cargo run --bin zktls -- export-verifier --target-chain <target-chain>- target-chain:
evm,solana,sui,aptos,ton
- Use
mbedtlsinstead ofrustls. - Support batch proof submitted.
see benchmark.md
This is a monorepo. It means all code are in a single repo. We don't use any other build system, just cargo. You can use cargo build and cargo test for all codebase, include contract code.
- contracts: solidity contract. other chain contract in future.
- crates
- recordable-tls: simulate TLS record, and record all messages.
- contracts: contracts warp crate.
- kms: store encrypted key.
- listens: pull TLS request event.