Why does zk-SNARK require a trusted setup, and what problems might this cause?

Created At: 8/8/2025Updated At: 8/18/2025
Answer (1)

Okay, bro, that's a great question. I'll try to explain it clearly in plain language. This stuff sounds mysterious, but the core logic is actually quite understandable.


Question: Why does zk-SNARK require a trusted setup, and what problems does this cause?

You can think of the entire zk-SNARK system as a super-precise "magic box."

  • Prover: Wants to prove to you that they know a secret (like the route to a treasure map), but they don't want to tell you the route directly. So, they put the secret into this magic box, perform some operations, and the box "dings" and spits out a small note (this is the "proof").
  • Verifier: You take this small note and verify it using a public method. You can be 100% certain they really know the secret route, but you never find out what the specific route is.

Isn't this process amazing? It protects privacy while completing the verification.


1. Why is a "Trusted Setup" needed? — To build that "Magic Box"

Now comes the key question: This "magic box" doesn't appear out of thin air; someone needs to build it first. This "process of building the box" is the "Trusted Setup."

When building this box, to achieve its magical effects like "fast proving" and "small proof size" (which are core advantages of "SNARK" in zk-SNARK), the builder must use some random, secret numbers.

You can think of these secret numbers as the "one-time mold" for building the box.

  1. Generate the Mold: The builder first generates this unique secret mold.
  2. Build the Box: Uses this mold to create the "magic box" (i.e., the system's public parameters).
  3. Destroy the Mold: Once the box is built, theoretically, this "secret mold" must be completely destroyed and never used again.

This secret mold has a very evocative name in the field: "Toxic Waste." Because if it isn't destroyed, the consequences are extremely severe.

So, the essence of the "Trusted Setup" is this: A group or an individual generates a secret (the toxic waste), uses it to create the entire system's operating rules, and then "trustworthily" promises they have destroyed this secret.


2. What problems does this cause? — "Trust" itself is the big problem

The problem lies in this "trustworthy" aspect.

Core Problem: What if the craftsman who built the box secretly kept a copy of the "secret mold"?

The answer is: They would gain the superpower to forge "proofs."

Going back to our initial example: They don't know the treasure map route at all, but they can use their secretly stored mold to fabricate a small note (a fake proof) that looks completely legitimate. When you verify it, your public method will tell you "this note is genuine," so you believe them.

This is catastrophic in the blockchain world.

Take the most direct example: Privacy coins like Zcash use zk-SNARK to hide transaction amounts and addresses.

  • Normal Scenario: I send you 10 coins. I need to prove to the entire network that I indeed have these 10 coins, but I don't want others to know the specific amount.
  • If someone possesses the "toxic waste": They could forge a proof for "I sent myself 1 million coins" out of thin air, without spending a single coin. The entire system would recognize this transaction as valid. They essentially have an infinite money printer, and because the transactions are anonymous, it might go undetected for a long time.

Summarizing the problems:

  1. Centralized Trust Risk: The security of the entire system rests on the participants of the "setup ceremony." You must trust that they are honest and that they technically destroyed the secret perfectly. This somewhat contradicts the "Trustless" spirit of blockchain.
  2. Single Point of Failure: Even if 100 people participated in the setup ceremony, if just one of them is dishonest and retains that "toxic waste," the security of the entire system is compromised.
  3. Impossible to Verify: You cannot use technical means to check if the "toxic waste" was truly destroyed. You can only choose to "believe."

3. How is this problem addressed?

To mitigate this "trust" burden, the community came up with a brilliant solution: Multi-Party Computation Ceremony (MPC).

You can understand this process as:

Instead of finding one craftsman to build the box, you gather thousands of unrelated volunteers to build it together.

Each person contributes a small piece of their own secret to that "secret mold" and then destroys their own piece.

The final "complete mold" is the combination of everyone's secrets. As long as even just one person among these thousands of participants is honest and successfully destroyed their part of the secret, then the final "complete mold" is secure, and no one can reconstruct it.

This shifts the trust from "believing a small group of people are all good" to "believing that at least one person in a large group is good." The latter is obviously infinitely more trustworthy. Projects like Zcash and Filecoin have held large-scale setup ceremonies.

Of course, the most fundamental solution is to develop zero-knowledge proof technologies that don't require a trusted setup, like zk-STARK. The trade-off is that the proof size is much larger than zk-SNARK, but in terms of security, it fundamentally avoids the "toxic waste" problem, aligning better with blockchain's decentralized spirit.

Hope this explanation makes sense!

Created At: 08-09 03:38:28Updated At: 08-10 03:17:52