(1/20) Verifiable Computing 101
While zero-knowledge cryptography is named for its privacy-preserving properties, it is quickly becoming apparent that it is critically important for so much more.
A guide to verifiable computing & the enabling technologies that make it possible
(2/20) Imagine a very complicated financial model that analyzes a huge amount of data and provides a recommendation for whatever security/asset the user provides.
Example: ask it "should I buy $BTC?" and the model will crunch billions of datapoints and reply "yes" or "no."
(3/20) Importantly, this hypothetical model is so computationally intense that it requires a high-end server farm. Even if it could fit it on a personal computing device, it would take days/weeks to run.
While you may have access to the model, someone else needs to run it.
(4/20) So here's the scenario... let's say you are contemplating a huge decision, you send a question off to this model and you get back the response "yes."
Do you trust that result? Enough to put your entire financial future on the line?
(5/20) What if the operator wasn't exactly a good faith actor? What if s/he noticed that you asked about a specific asset that they have a large position in... and that encouraging you to buy in would greatly benefit them?
How do you even know the operator ran the model at all?
(6/20) This hypothetical is a very simple example of distributed computing - a field that deals with the use of interconnected computers (nodes) working together to perform a task or solve a problem.
These computers share computational resources to achieve a common goal.
(7/20) The early days of distributed computing didn't need to address the trust problem. The companies that built distributed infrastructure own the entire network, and the companies that built on them managed trust via contracts and the legal system.
But we are in a new era.
(8/20) In 2008, Satoshi Nakamoto introduced a new paradigm of distributed computing; @Bitcoin was built with the belief that distributed networks can operate without trust entirely, replacing it with cryptography.
The math is verifiable by anyone - no trust needed.
(9/20) Although the field has progressed rapidly since Bitcoin's genesis, the core insight remains unchanged: trustless distributed computing is possible with the use of verifiable cryptography.
So, let's return to our hypothetical and ask "how can cryptography replace trust?"
(10/20) In order to understand the solution, we first need to cover the tools... specifically zero-knowledge cryptography (ZK).
Tl;dr ZK enables one party to prove the truth of a statement to another without revealing any underlying information.
x.com/LogarithmicRex/status/1569119846952235008
(11/20) As it was originally understood, ZK was a technology that was specifically applicable to encryption and privacy. But blockchain technology has introduced an entirely new application for ZK - verifiable compute.
More poignantly, ZK enables trustless, verifiable compute.
(12/20) The details get very complicated very fast, but high level we can create programs that automatically generate ZK proofs as they execute.
Once verified, these proofs mathematically guarantee that the program was not manipulated and the result was honestly generated.
(13/20) In distributed computing, the most important property of ZK is succinctness.
A succinct proof is small (often less than few KBs, regardless of the underlying computation/data) and fast (verification requires much less time/computation than the underlying computation).
(14/20) Returning to our hypothetical - imagine the financial model generates a ZK proof alongside every result.
Now when asked “should I buy $BTC,” the model replies with a result and a proof. Verifying the proof gives you mathematical certainty the result came from the model.
(15/20) Because the ZK proof is succinct, verification is MUCH smaller and faster than actually running the model - well within the capabilities of a personal computer.
And so while maybe you can’t run the model locally, you can prove you would get the same result if you did.
(16/20) While is very important to understand the concept/power of verifiable compute, you can understand the same paradigm from a different angle…
ZK allows us compress computation, so that low resource environments can leverage big computation as if it was run locally.
(17/20) Look at our example; our devices cannot run the model themselves, but ZK allows us to import the result with mathematical guarantees that we’d get the same result if it could be run locally.
Thus, the intense computation is projected into our low-resource devices.
(18/20) Unlocking the insight that ZK can compress computation and project it into resource constrained environments is the key to understand the revolution happening in blockchain.
ZK is how resource-constrained @ethereum evolves into the World Computer.
x.com/LogarithmicRex/status/1861788897057140780
(19/20) Back in 2008, Satoshi deployed cryptography to replace the trust needed to create an application-distributed system.
With ZK we can generalize this concept. Any distributed system can be redesigned as trustless by replacing trust with cryptography.
(20/20) In summary, verifiable compute leverages zero-knowledge cryptography to mathematically prove that a specific result was the honest, un-
manipulated result of a specific program.
With verifiable compute, we can build robust, untrusted distributed systems.