์๋
ํ์ธ์, BQ๊ฐ๋ฐ์์
๋๋ค.
ZK ๊ฐ๋ฐ์ ์์ํ๋ ค๋ ๋ถ๋ค์ ์ํ ์๋ฆฌ์ฆ๋ฅผ ์์ํฉ๋๋ค.
์ฒซ ์ฃผ์ ๋ ์ ํ์ฒด์ ๋๋ค.
Circom์ด๋ Noir์ด๋ , ๋ชจ๋ ZK ์ธ์ด๋ ์ ํ์ฒด ์์์๋ง ๋์ํฉ๋๋ค.
์ผ๋ฐ ์ ์๊ฐ ์๋๋ผ์. ์ด๊ฑธ ๋ชจ๋ฅด๋ฉด ๋ด ์ฝ๋๊ฐ ์ ์ด์ํ๊ฒ ๋์ํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.
โ ์ ํ์ฒด๋?
์ปดํจํฐ๋ ์ซ์๋ฅผ ์ ์ฅํ ๋ ์ ํด์ง ์นธ์ ์ฌ์ฉํฉ๋๋ค. uint256์ 256๊ฐ์ 0๊ณผ 1๋ก ์ซ์๋ฅผ ํํํ๋๋ฐ,
๊ฐ์ฅ ํฐ ์๋ 115792089237316195423570985008687907853269984665640564039457584007913129639935์
๋๋ค. 78์๋ฆฌ ์ซ์์ฃ .
์ด ์ซ์์ 1์ ๋ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? 257๋ฒ์งธ ์๋ฆฌ๊ฐ ํ์ํ๋ฐ, ๊ทธ๋ฐ ๊ณต๊ฐ์ด ์์ต๋๋ค.
๊ทธ๋์ ๋ชจ๋ ์๋ฆฌ๊ฐ 0์ผ๋ก ๋ฆฌ์
๋ฉ๋๋ค. ์ค์ ๋ก 100์ต ์์ด ์๋ ํ ํฐ ์์ก์ด 1์์ ๋ ๋ฐ๋ ์๊ฐ 0์์ด ๋์ด๋ฒ๋ฆฐ ํดํน ์ฌ๊ณ ๊ฐ ์์์ต๋๋ค.
์ ํ์ฒด๋ ์ด "์ต๋๊ฐ ๋ค์์ด 0"์ด๋ผ๋ ํ์์ ์์ ์ ์ ๋์์ผ๋ก ๋ง๋ค์ด๋ฒ๋ฆฐ ์์คํ
์
๋๋ค. ๋ฒ๊ทธ๊ฐ ์๋๋ผ ์๋ ๊ทธ๋ ๊ฒ ์ค๊ณํ ๊ฑฐ์ฃ .
๐ค uint256์ ๋์์ ์ผ์ด๋๋ ์ผ
์๋ฆฌ๋ํฐ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ ์กฐ์ฌํ๋ ์ํฉ์ด ์์ต๋๋ค.
uint256 ์ต๋๊ฐ์ 1์ ๋ํ๋ฉด 0์ด ๋๊ธฐ ๋๋ฌธ์ด์ฃ .
๋ค์ ๋งํด 256๋นํธ๋ก ํํํ ์ ์๋ ํ๊ณ๋ฅผ ๋์ด์๋ฉด, ๋ค์ 0์ผ๋ก ๋์๊ฐ๋ ์ํฉ์ ๊ฒช๊ฒ๋๊ณ ,
์ด๊ฒ ์ ์ ์ค๋ฒํ๋ก์ฐ์
๋๋ค.
TimeLock ํดํน์ด ๋ฐ๋ก ์ด๊ฑธ ์
์ฉํ๋ ์ฌ๋ก์ฃ
๋ฏธ๋ ์์ ์ ์ ๊ธ์ ํฐ ์๋ฅผ ๋ํด์ 0์ผ๋ก ๋ง๋ค์ด๋ฒ๋ฆฐ ๋ค์
์ฆ์ ์ถ๊ธ์ด ๊ฐ๋ฅํ๋๋ก ํด์ ํดํน์ด ๊ฐ๋ฅํ์ต๋๋ค..ใทใท
1๏ธโฃ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ง์ผ๋ ค๋ ๋
ธ๋ ฅ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๊ฐ๋ฐ์๋ค์ ๊ณ์ ๋ฐฉ์ด ์ฝ๋๋ฅผ ์ถ๊ฐํด์์ต๋๋ค.
SafeMath ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๊ฑฐ๋, Solidity 0.8.0๋ถํฐ๋ ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ์ฒดํฌํ์ฃ
ํ์ง๋ง ์ด๊ฑด ๋น์ฉ์
๋๋ค. ๋ชจ๋ ์ฐ์ฐ๋ง๋ค "์ค๋ฒํ๋ก์ฐ ์ฒดํฌ"๊ฐ ์ถ๊ฐ๋ก ์คํ๋๋๊น์.
๋ฌธ์ ์ ํต์ฌ์ ์ด๊ฑฐ์ฃ .
์ผ๋ฐ ์ ์ ์์คํ ์์ ์ค๋ฒํ๋ก์ฐ๋ ์์ธ์ ์ค๋ฅ๋ผ๋์
๊ทธ๋์ ๋ง์์ผ ํ๊ณ , ๋ง๋ ๋ฐ ๋น์ฉ์ด ๋ญ๋๋ค.
2๏ธโฃ ์ ํ์ฒด์ ์์ ํ ๋ค๋ฅธ ๊ด์
ZK์์ ์ฌ์ฉํ๋ ์ ํ์ฒด Fp๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
0๋ถํฐ p-1๊น์ง์ ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ชจ๋ ์ฐ์ฐ์ด mod p๋ก ์ ์๋ฉ๋๋ค.
p-1์ 1์ ๋ํ๋ฉด? 0์ด ๋ฉ๋๋ค.
์ด๊ฑด ์ค๋ฅ๊ฐ ์๋๋ผ ์ ์์ฃ .
์ ํ์ฒด๋ ์ด๋ ๊ฒ ์ฒ์๋ถํฐ "์ํํ๋ ์์คํ
"์ผ๋ก ์ค๊ณ๋์์ต๋๋ค.
p๋ฅผ ๋์ผ๋ฉด ๋ค์ 0๋ถํฐ ์์ํ๋ ๊ฒ ์ ์ ๋์์ด์ฃ .
3๏ธโฃ ์ ์ด๊ฒ ๋ ๋์๊ฐ
์ฐจ์ด๋ฅผ ์ ํํ ์ง์ด๋ณด๊ฒ ์ต๋๋ค.
์ผ๋ฐ ์ ์์์ ์ค๋ฒํ๋ก์ฐ๋ ๋ณดํต ์์ธ์ํฉ์ผ๋ก ๋ด
๋๋ค.
๋๋ถ๋ถ์ ์ฐ์ฐ์ ์ ์ ๋ฒ์์์ ์ผ์ด๋๊ณ , ๊ฐ๋ ๊ฒฝ๊ณ๋ฅผ ๋์ ๋๋ง ๋ฌธ์ ๊ฐ ์๊ธฐ์ฃ .
๊ทธ๋์ ๋งค๋ฒ ์ฒดํฌํด์ผ ํฉ๋๋ค.
ํ์ง๋ง ์ ํ์ฒด์์๋ ์ํ์ด ์ ์์
๋๋ค.
์ ์ด์ ๋ชจ๋ ์ฐ์ฐ์ด mod p๋ก ์ ์๋์ด ์์ผ๋, ์ฒดํฌํ ํ์๊ฐ ์์ต๋๋ค.
์ค๋ฒํ๋ก์ฐ๋ผ๋ ๊ฐ๋
์์ฒด๊ฐ ์๋ ๊ฑฐ์ฃ .
Circom์์ ๊ทธ๋ฅ sum <== a + b๋ผ๊ณ ์ธ ์ ์๋ ์ด์ ์
๋๋ค.
๊ฒฐ๊ณผ๊ฐ p๋ฅผ ๋๋ ์ ๋๋ , ํญ์ ์ ํจํ ๊ฐ์ด ๋์ค๋๊น์.
โ๏ธ ๋ฒ๊ทธ๊ฐ ์ฌ๋ผ์ง ์ธ๊ณ
์ ํ์ฒด๋ฅผ ์ฒ์ ์ ํ์ ๋ ๊นจ๋ฌ์ ์ ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ "์ค๋ฒํ๋ก์ฐ ๋ฒ๊ทธ"๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์, ์ฌ์ค ๋ฌดํ์ ์ ํํ ๊ณต๊ฐ์ ์ต์ง๋ก ๋ด์ผ๋ ค๋ค ์๊ธด ๋ฌธ์ ์๋ค๋์ !
๋น์ฐํ๊ฒ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํํ๋ฐ ๊ฑฐ๊ธฐ์ ๋ฌดํํ๊ฒ ํฐ ์๋ฅผ ๋ด์ ์ ์์ผ๋๊น์.
์ ํ์ฒด๋ ์ฒ์๋ถํฐ ์ ํํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๊ทธ๋์ ๋ชจ๋ ์ซ์๊ฐ 0๋ถํฐ p-1 ์ฌ์ด์ ์๊ณ , ๋ชจ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ ๊ทธ ์์ ์๋๋ก ํ๋๊ฑฐ์ฃ
๋ฌดํ์ ๋ค๋ฃจ๋ ค๋ ์๋ ์์ฒด๊ฐ ์์ผ๋, ์ค๋ฒํ๋ก์ฐ๋ ์์ต๋๋ค.
ZK ํ๋ก๋ฅผ ์์ฑํ ๋ SafeMath ๊ฐ์ ๊ฒ ํ์ ์๋ ์ด์ ๊ฐ ์ฌ๊ธฐ ์์ต๋๋ค.
์ค๋ฒํ๋ก์ฐ ๊ฑฑ์ ์์ฒด๋ฅผ ํ ํ์๊ฐ ์์ผ๋๊น์.
๋ค์ ํธ์์๋ "์์๊ฐ ์๋๋ฐ ๋บ์
์ ์ด๋ป๊ฒ?"๋ฅผ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
์ด๊ฒ๋ ์ ํ์ฒด์ ๋
ํนํ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋ผ๊ตฌ์!!
---
์ฌ๋ฌ๋ถ์ ์ข์์์ ๊ณต์ ๋ ์ฌ๋์ ๋๋ค ๐ฅฐ
