ZK proofs are a better solution for ensuring trust for all kinds of contractual and financial interactions.
Contractual and financial interactions or transactions between one or more parties require Computational Integrity.
For e.g. when we send money to someone online or make a payment, then our account balance and the receiving person's account balance will be correctly updated.
All calculations will be done correctly and no one will lose any money.
For this we have always trusted institutions which manage our money. That is the centralised way of doing things.
It is convenient and works most of the time. But yes money also gets stolen and misused.
So if you can't trust institutions, then who can you trust?
We can trust blockchain solutions, which are decentralised tech for Computational Integrity.
So the way the blockchain solutions creates decentralised trust is by allowing everyone to run the computation themselves and then come to a consensus.
This creates two new issues:
1. Privacy: Since everyone can run the computation, this leads to lack of privacy.
2. Scalability: To allow more people to run computations so that we are truly decentralised, we have to assume limits on computation power of the hardware people are using. This in turn limits the throughput of this computation network.
That's what Zero Knowledge proofs help us with.
ZK proofs have two parties, a Prover and a Verifier.
The Prover does the computation and creates a proof, which doesn't reveal any private data.
The proof contains zero knowledge of the private inputs that were used in the computation.
Then lots of decentralised Verifiers can individually verify this proof and come to a consensus about the integrity of the computation.
Additionally the proof can be verified in exponentially less time than actually doing the computation itself.
So this makes the decentralised proving and consensus exponentially more scalable.
What does exponentially scalable look like?
Typical blockchain system, everyone does the actual computation.
So if each transaction took 1ms, then 10K transactions would take 10K ms or 10s, and 1M transactions would take 16.67 mins.
But to verify proof for 10K transactions will take 9.2 ms and to verify proof for 1M transactions will take just 6.9 seconds.
There are many different approaches to creating Zero Knowledge Proofs.
The 3 key families of proofs are:
1. SNARKS
2. Bulletproofs
3. STARKS
A nice overview of the different ZK proofs based on their characteristics is shared in this article: https://medium.com/starkware/the-cambrian-explosion-of-crypto-proofs-7ac080ac9aed
AI already creates software, hardware is next. Several companies like Circuitmind, Cells and JITX are starting to use AI to do hardware design.
Voxels vs Polygons I like this paper on generating 3D voxels based objects: https://alexzhou907.github.io/pvd As compared to polygon based models, I think voxels are a more accurate way of modeling actual 3D objects. Also seems closer to how 3D printing would work.