zk-SNARK๋?
zk-SNARK๋ Zero-Knowledge Succinct Non-Interactive Argument of Knowledge์ ์ฝ์๋ก, ์ํธํ ๋ถ์ผ์์ ํ์ ์ ์ธ ๊ธฐ์ ์ด๋ค.
์์ง์ ์ฆ๋ช (Zero-Knowledge proof)๊ณผ ์ ์ฌํ๊ฒ, ์ฆ๋ช ์(prover)๋ ๊ฒ์ฆ์(verifier)์๊ฒ ํน์ ์ง์์ด๋ ์ ๋ณด์ ์ธ๋ถ ๋ด์ฉ์ ๊ณต๊ฐํ์ง ์๊ณ ๋ ํด๋น ์ ๋ณด์ ์ค์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ ์ฆํ ์ ์๋ค.
์ด๋ ๋ง์น ์ด์ ๋ฅผ ๋ณด์ฌ์ฃผ์ง ์๊ณ ๋ ์๋ฌผ์ ๋ฅผ ์ด ์ ์๋ ์ด์ ๋ฅผ ๊ฐ์ง๊ณ ์์์ ์ฆ๋ช ํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. zk-SNARK๋ฅผ ํตํด ํ๋ผ์ด๋ฒ์๋ฅผ ์ ์งํ๋ฉด์๋ ์ฆ๋ช ์ ์ ๊ณตํ ์ ์๋ค.
zk-SNARK์ ์ฃผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์์ง์ ์ฆ๋ช (Zero-Knowledge Proofs): ๊ฒ์ฆ์๋ ์ฆ๋ช ์๊ฐ ์ง์์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์ค์ ์ง์์ ๋ณด์ง ์๊ณ ๋ ํ์ธํ ์ ์๋ค.
- ๊ฐ๊ฒฐ์ฑ(Succinctness): ์ฆ๋ช ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์๋ค.
- ๋น๋ํํ(Non-Interactive): ์ฆ๋ช ์๊ฐ ๊ฒ์ฆ์์๊ฒ ๋จ ํ๋์ ๋ฉ์์ง๋ง ์ ๋ฌํ๋ฉด ๋๋ค.
- ์ฆ๋ช ๊ตฌ์ฑ(Proof Construction): G(ํค ์์ฑ์), P(์ฆ๋ช ์), V(๊ฒ์ฆ์)์ ์ธ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ด ๊ธฐ์ ์ ๋ณด์ ํต์ , ์ํธํ, ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ฐ์ดํฐ ๋ถ์์ ํญ๋๊ฒ ํ์ฉ๋๊ณ ์๋ค.
zk-SNARK์ ์๋ ๋ฐฉ์
zk-SNARK์ ์ฐ์ํจ์ ์ง์ ์ผ๋ก ์ดํดํ๋ ค๋ฉด ๊ทธ ์๋ ๋ฐฉ์์ ์ธ๋ถ ์ฌํญ์ ์ดํดํด์ผ ํ๋ค.
zk-SNARK๋ ๋ณต์ก์ฑ ์์ด ์ฆ๊ฑฐ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์ ์ํ๊ณ ๊ฒ์ฆํ ์ ์๋ ์๋ก์ด ์ฐจ์์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
๋ณธ์ง์ ์ผ๋ก zk-SNARK๋ ์ง๋ฆฌ์ ์ค์ฒด๋ฅผ ๋๋ฌ๋ด์ง ์๊ณ ์ง๋ฆฌ๋ฅผ ๊ฒ์ฆํด์ผ ํ๋ ๊ณผ์ ๋ฅผ, ๊ผผ๊ผผํ๊ฒ ๊ตฌ์ฑ๋ ์ํ์ ์ ๊ทผ ๋ฐฉ์์ ํตํด ํด๊ฒฐํ๋ค.
zk-SNARK์ ๋ง๋ฒ์ ์ํธํ์ ์ฝ์, ํ์ ๊ณก์ ์, ๋คํญ์ ๋ฐฉ์ ์์ ๋ ํนํ ์ฌ์ฉ์ ์๋ค.
์ด ๊ตฌ์ฑ ์์๋ค์ ์ฆ๋ช ์๊ฐ ํน์ ์ ๋ณด๋ฅผ ์๊ณ ์์์ ์ฆ๋ช ํ๊ณ ๊ฒ์ฆ์๊ฐ ๊ทธ ์ฆ๋ช ์ ํ์ธํ ์ ์๊ฒ ์ํธ์์ฉํ์ง๋ง, ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ ธ์ถํ์ง ์๋๋ค.
์ด ์์ฒญ๋ ํ์ ์ ํ๋ ์คํ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์ฌ๊ฒจ์ก๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ด์๊ณ , ๋ณด๋ค ์์ ํ๊ณ ์ฌ์ ์ธ ๋์งํธ ํ๊ฒฝ์ ์กฐ์ฑํ๋ค.
๊ธ์ต ๊ฑฐ๋, ์ ์ ํ์ธ, ๊ธฐ๋ฐ ๊ณ์ฝ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ zk-SNARK๋ ์์ ํ ํต์ ์ ๊ฐ๋ฅ์ฑ์ ์ฌ์ ์ํ๊ณ ์๋ค.
zk-SNARK๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋จ๊ณ๋ณ ํ๋ก์ธ์ค๋ก ๋๋์ด ์ดํด๋ณด๊ฒ ๋ค.
1. ํค ์์ฑ(G): ๋น๋ฐ ๋งค๊ฐ๋ณ์ ๋๋ค(lambda)๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๊ณต๊ฐ ํค, ์ฆ ์ฆ๋ช
ํค(pk)์ ๊ฒ์ฆ ํค(vk)๋ฅผ ์์ฑํ๋ค.
2. ์ฆ๋ช
์์ฑ(P): ์ฆ๋ช
์๋ ์ฆ๋ช
ํค(pk), ๊ณต๊ฐ ์
๋ ฅ(x), ๋น๊ณต๊ฐ ์ฆ์ธ(w)์ ์ฌ์ฉํ์ฌ ๋น๋ฐ์ ์๊ณ ์๋ค๋ ์ฆ๋ช
(prf)์ ์์ฑํ๋ค.
3. ๊ฒ์ฆ(V): ๊ฒ์ฆ์๋ ๊ฒ์ฆ ํค(vk)๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ ์์ฒด๋ฅผ ์์ง ์๊ณ ๋ ์ฆ๋ช
์ ๊ฒ์ฆํ๋ค.
zk-SNARK์ ์ญ์ฌ
์์ง์ ์ฆ๋ช ์ด๋ผ๋ ๊ฐ๋ ์ 1985๋ ์คํผ ๊ณจ๋๋ฐ์(Shafi Goldwasser), ์ค๋น์ค ๋ฏธ์นผ๋ฆฌ(Silvio Micali), ์ฐฐ์ค ๋์ฝํ(Charles Rackoff)์ ์ํด ์๊ฐ๋์๋ค.
ํ์ง๋ง 2012๋ ์ ์ด๋ฅด๋ฌ์์ผ ๋๋ฅด ๋นํ์คํค(Nir Bitansky), ๋ ์นด๋คํฐ(Ran Canetti), ์๋ ์ฐ๋๋ก ์น์์ฌ(Alessandro Chiesa), ์๋ ํธ๋ก๋จธ(Eran Tromer)๊ฐ ๋ง๋ โzk-SNARKโ๋ผ๋ ์ฉ์ด๊ฐ ๋ฑ์ฅํ๋ค.
์ด ๋น๋ํํ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ธธ์ ์ด์๋ค.
- ์ง์บ์ ์ถ์(2016): ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ์ค์ ์ ๋ ๊ฐ์ํํ์ธ ์ง์บ์(Zcash)๋ zk-SNARK๋ฅผ ํตํฉํ์ฌ ๋น๊ณต๊ฐ ๊ฑฐ๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- Bulletproofs (2017): zk-SNARKs๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ ๋ค๋ฅธ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ฐํ ๊ธฐ์ ์ด๋ค.
- zk-STARK (2018): ๋ ๋์ ํ์ฅ์ฑ๊ณผ ์ ๋ขฐ๊ฐ ํ์ ์๋ ์ค์ ์ ๋์ ํ zk-SNARK์ ํฌ๋ช ํ ๋ฒ์ ์ด๋ค.
- HALO์ Pickles (2019): zk-SNARK์ ์ต์ ๋ฒ์ ์ผ๋ก, ๊ธฐ์ ์ ๋์ฑ ํฅ์์์ผฐ๋ค.
zk-SNARK์ ์ค์์ฑ
ํ๋ ์ํธํ์ ํ๊ธฐ์ ์ธ ๋ฐ์ ์ ์์ ํ๊ณ ์ฌ์ ์ธ ๋์งํธ ์ธ๊ณ๋ก ๊ฐ๋ ๊ธธ์ ๋ฐํ์ฃผ์์ผ๋ฉฐ, ์ด ์ธ๊ณ์์ zk-SNARK๋ ๊ฐ์ฅ ๋งค๋ ฅ์ ์ธ ๋ณ ์ค ํ๋๋ก ๋น์ ๋ฐํ๊ณ ์๋ค.
๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ธฐ์ ์ ํต์ฌ ์ญํ ์ ํ๋ zk-SNARK๋ ๋จ์ํ ์ด๋ก ์ ๊ฐ๋ ์ด ์๋๋ผ ๊ธฐ์ , ์ ๋ถ, ๊ฐ์ธ ๋ชจ๋์๊ฒ ํ์ ์ค์ด์ฃผ๋ ์ค์ฉ์ ์ธ ๋๊ตฌ๋ค.
zk-SNARK๋ ๊ณต๊ฐ ์๋ ๊ฒ์ฆ์ด ์ด๋ฃจ์ด์ง๋ ๊ฐ๋ ฅํ ์ ๋ขฐ ์์คํ ์ ๊ตฌ์ถํ์ฌ, ์ค๋๋ ์ํธ ์ฐ๊ฒฐ๋ ์ธ๊ณ๊ฐ ์๊ตฌํ๋ ๋ณต์กํ ๋ณด์ ๋ฐ ๋ฌด๊ฒฐ์ฑ ๋ฉ์ฌ์ ์ค์ํ ์ธต์ผ๋ก ์์ฉํ๋ค.
ํ๋ ์ํธํ์ ์ค์ํ ๋ถ๋ถ์ธ zk-SNARK์ ๋ฐฉ๋ํ ์ ์ฌ๋ ฅ๊ณผ ์ค์ ์์ฉ ๋ถ์ผ์ ๋ํด ์์ธํ ์์๋ณด์.
- ํ๋ผ์ด๋ฒ์: ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ์ง ์๊ณ ๋ ์ฆ๋ช ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ๋ฐ์ดํฐ ํ๋ผ์ด๋ฒ์๋ฅผ ๋ณด์ฅํ๋ค.
- ํ์ฅ์ฑ: ๋น ๋ฅธ ๊ฒ์ฆ์ ์ ๊ณตํ์ฌ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ๊ฐ ๋ ๋ง์ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค.
- ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค ๋ณดํธ: ๊ธฐ์ ์ด ๋ฏผ๊ฐํ ๋น์ฆ๋์ค ์ธํ ๋ฆฌ์ ์ค๋ฅผ ๋ ธ์ถํ์ง ์๊ณ ๋ธ๋ก์ฒด์ธ์์ ๊ฑฐ๋ํ ์ ์๊ฒ ํ๋ค.
- ์ ์ ํ์ธ: ์ฌ์ฉ์๊ฐ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์ง ์๊ณ ๋ ์์ ์ ์ ์์ ์ฆ๋ช ํ ์ ์๊ฒ ํ๋ค.
๊ฒฐ๋ก
๊ฒฐ๋ก ์ ์ผ๋ก, zk-SNARK๋ ๋จ์ํ ์ฝ์ด ์ด์์ ์๋ฏธ๋ฅผ ์ง๋๋ค. ์ด๋ ๋ ธ์ถ ์๋ ์ฆ๋ช , ํํ ์๋ ํ๋ผ์ด๋ฒ์, ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ์ง ์๋ ๊ฒ์ฆ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํ๊ธฐ์ ์ธ ์ํธํ ๊ธฐ์ ์ด๋ค.
์ ๋ณด์ ์๋๊ฐ ๊น์ด์ง์๋ก ๋ฐ์ดํฐ๋ ํํ์ด์ ์ทจ์ฝ์ ์ด ๋๋ค. ์ด๋ฌํ ์ํฉ์์ zk-SNARK์ ๊ฐ์ ๊ธฐ์ ์ ๋์ฑ ์ค์ํด์ง๋ค.
zk-SNARK๋ ๊ฐ๋ ฅํ ๋ณด์ ์กฐ์น๋ฅผ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ํ๋ผ์ด๋ฒ์์ ๊ฐ์ธ์ ์์ ๋ฅผ ๋ณดํธํ๋ค.
์ด๋ก ์ ๊ฐ๋ ์์ ์ค์ ์ ์ฉ์ ์ด๋ฅด๋ zk-SNARK์ ์ฌ์ ์ ๋์งํธ ์ ๋ขฐ์ ์ง์์ ์ธ ๋ฐ์ ์ ๋ํ๋ธ๋ค.