History
The Pluto Web Proofs SDK builds upon technologies developed by countless engineers and researchers that have worked over the decades to create better Internet infrastructure. Below is a short and incomplete history of the foundational work that Pluto’s Web Proofs SDK depends on. Please feel free to suggest an edit or inclusion on this page as needed.
Foundational technologies
Transport Layer Security (TLS)
1994 saw the introduction of SSL 1.0 (Secure Sockets Layer) by Netscape. SSL established encrypted links between web servers and browsers. SSL, despite its importance in creating encrypted links between web servers and browsers, had significant vulnerabilities, so eventually, SSL was deprecated and replaced by TLS (Transport Layer Security). TLS provides enhanced encryption and authentication. TLS is the standard protocol for communications security on the internet today.
Both approaches for generating Web Proofs (Origo and TLSNotary) use TLS as the core infrastructure that establishes secure connection between the end user’s device and the internet server that serves the underlying data for the Web Proof.
Zero-Knowledge Proofs (ZKPs)
Zero-knowledge proofs, first introduced in 1985 by Goldwasser, Micali, and Rackoff, are a fundamental cryptographic protocol that enables one party (the prover) to prove to another party (the verifier) that a statement is true without revealing any information beyond the validity of the statement. This breakthrough concept is central to how Web Proofs work.
SNARKs
Succinct Non-interactive ARguments of Knowledge (SNARKs), introduced in 2011-2012, made zero-knowledge proofs practical by making them both succinct (small and quick to verify) and non-interactive (requiring no back-and-forth between prover and verifier). SNARKs are crucial technologies for enabling practical zero-knowledge applications like Web Proofs.
TEEs
Trusted Execution Environments (TEEs) provide isolated execution environments that protect code and data from external interference. TEEs enable confidential compute and are the foundation for TEE-based Web Proofs (which are one of multiple methods of generating Web Proofs).
Many hardware providers have introduced TEE solutions. For Pluto’s TEE approach, we use Intel TDX. TEEs have been criticized as notoriously hard to secure, due to the complexity of the hardware, proprietary supply chains, and several proven exploits to various TEE implementations, but we believe TEEs can have a place in modern cryptography stacks for the right use cases, as long as the relevant trust assumptions associated with TEEs are clearly defined.
IVC
Incrementally Verifiable Computation (IVC), first introduced in 2008, introduced the idea of recursively composing a super-polynomial computation. This technique gave rise to many innovations deriving from IVC, namely Accumulation Schemes (Halo), PCD, and folding schemes.
Nova
Nova, developed in 2021 by researchers from Carnegie Mellon, New York University, and Microsoft Research, first introduced the concept of folding schemes. Folding schemes reduce the task of checking two computational instances into checking a single instance, which enables more efficient recursive proof composition for zero-knowledge proofs. This results in significantly smaller verifier circuits, faster proving times, and less memory overhead, making it extremely useful for low-power client devices.
Protocols for proving provenance of internet data to smart contracts
TLSNotary
TLSNotary is an open-source project developed by the Ethereum Foundation’s Privacy and Scaling Explorations group. TLSNotary has been around for more than a decade, and was recently rebuilt from the ground up in Rust. TLSNotary powers Pluto’s MPC Mode.
Town Crier
Town Crier is an authenticated data feed protocol developed in 2016 that uses Trusted Execution Environments to maintain user privacy while attesting to online data.
DECO
DECO is a 2019 paper that attempts to solve the limitations of TLSNotary and Town Crier.
Origo
Origo is a protocol released in 2024 with an efficient protocol for a TLS oracle with constant communication time using a proxy. We believe we are the first team to develop a working Origo implementation.