Trusted Setup vs. Transparency (STARK vs. SNARK) TODO
Concept
Many SNARKs require a trusted setup to generate public parameters before the proof system can be used, and if the secret value used in that process (often called "toxic waste") is not destroyed, forged proofs become possible. That's why an MPC ceremony is used to make the setup secure as long as just one participant is honest, and universal, updatable setups like KZG-based ones — which don't need to be redone per circuit — are preferred. STARKs rely only on hash functions and error-correcting codes, so they have no secret parameters at all, making them transparent and eliminating the setup trust assumption. The cost is proof size and verification cost: STARK proofs are generally larger than pairing-based SNARK proofs. Being hash-based is also often cited as giving STARKs a more conservative security assumption against quantum attacks.
Choosing a proof system is a question of trust assumptions before it's a question of performance — if the setup is compromised, everything verified on top of it becomes meaningless.
Code & Formula
# 신뢰된 셋업 vs 투명성(STARK vs SNARK) — 신뢰된 셋업이 있는 스킴은 "독성 폐기물"(toxic
# waste, 셋업에 쓰인 비밀 난수)이 새면 위조 증명이 가능해진다는 걸 토이 버전으로 보여준다.
import random
def trusted_setup():
# 이 비밀(tau)을 아무도 몰라야 안전 — 만약 한 명이라도 저장해 두면 "독성 폐기물" 유출.
tau = random.randint(1, 10**9)
public_params = pow(2, tau, 10**9 + 7) # 공개되는 건 tau 로 만든 파생값뿐
return tau, public_params
def verify_honest_proof(public_params, claimed_value):
return claimed_value == public_params
def forge_with_leaked_tau(tau):
# tau 가 새어 나가면 검증자를 속이는 "증명"을 그냥 다시 계산해서 만들 수 있다.
return pow(2, tau, 10**9 + 7)
tau, params = trusted_setup()
print(f"신뢰된 셋업 공개 파라미터 = {params}")
print("정직한 증명자:", verify_honest_proof(params, params), "(정상 검증 통과)")
forged = forge_with_leaked_tau(tau) # tau 를 안다면 누구나 위조 가능
print("tau 유출 시 위조 증명도 검증 통과:", verify_honest_proof(params, forged))
print("\n반대로 STARK 류(투명성)는 이런 비밀 tau 자체가 없다 — 공개 무작위성(예: 해시)만")
print("쓰므로 '독성 폐기물'이 존재하지 않는다. 대가는 증명 크기가 더 크다는 것.")
Exercise
Prove the same simple circuit using both a library that needs a trusted setup and one that's transparent, then tabulate the presence/absence of setup artifacts, proof size, and verification time.
Practical Connection
When reviewing a validity proof for an L2 rollup, or privacy and off-chain computation verification for a prediction market, on-chain verification gas and setup trust assumptions are decided exactly on this trade-off.
Where it lands in Jayverse
- OFA/Devnet: before trusting an L2 validity proof, write down whether it needs a trusted setup and, if so, whether it was an MPC ceremony with toxic waste destroyed. That answer, not proof size, is the first line of the trust assessment.
- Verex: weigh STARK's larger-proof/no-setup-trust against SNARK's smaller-proof/setup-trust as an explicit gas-versus-trust line item. For private order matching or off-chain computation verification, pick deliberately rather than defaulting to whichever library is easiest to wire up.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| toxic waste | (신뢰 설정에서 파기해야 할) 독성 폐기물, 비밀값 · 트러스티드 세팅에서 반드시 파괴해야 하는 비밀 파라미터를 가리키는 비유. "often called toxic waste" |
| as long as | ~하기만 하면, ~인 한 · 조건 하나만 충족되면 성립하는 상황을 말할 때. "secure as long as just one participant is honest" |
| updatable | 갱신 가능한 · 한 번 만든 설정을 다시 쓸 수 있는 성질을 말할 때. "universal, updatable setups like KZG-based ones" |
| no ... at all | 전혀 ~이 없는 · 어떤 요소가 완전히 부재함을 강조할 때. "have no secret parameters at all" |
| the cost is | 대가는 ~이다, 치러야 하는 대가 · 이점을 얻는 대신 감수해야 하는 단점을 말할 때. "The cost is proof size and verification cost" |
| conservative | 보수적인, 안전을 더 따지는 · 위험을 덜 감수하는 가정·설계를 말할 때. "a more conservative security assumption" |
| eliminate the trust assumption | 신뢰 가정을 아예 없애버리다 · 특정 전제를 필요로 하지 않게 만들 때. "eliminating the setup trust assumption" |
| KZG | KZG 다항식 커밋먼트(Kate-Zaverucha-Goldberg commitment) · 회로마다 다시 만들 필요 없는 범용 업데이터블 셋업 방식의 예. "universal, updatable setups like KZG-based ones" |
| MPC | 다자간 계산(Multi-Party Computation) · 트러스티드 세팅의 비밀값을 안전하게 생성하기 위한 세레모니 방식. "an MPC ceremony is used to make the setup secure" |
| SNARK | 축약 비대화형 지식논증(Succinct Non-interactive ARgument of Knowledge) · 트러스티드 세팅이 필요한 대표적 증명 시스템. "Many SNARKs require a trusted setup to generate public parameters" |
| STARK | 확장 가능한 투명 논증(Scalable Transparent ARgument of Knowledge) · 신뢰 설정 없이 해시 함수만으로 구성되는 증명 시스템. "STARKs rely only on hash functions and error-correcting codes" |
If you study this on a given day, add a note link and a ✅ to this line in the source curriculum (docs/knowledge/math-50-curriculum.md) and this spot will lead straight to the note body. You can also write directly on this page — but regenerating overwrites it, so it's safer to keep anything you want to save as markdown under docs/algorithms/.