Skip to content

Commit 0acae7c

Browse files
committed
Posting... KZGCommitment
1 parent f854e4d commit 0acae7c

1 file changed

Lines changed: 40 additions & 2 deletions

File tree

_posts/2025-12-15-KZGCommitment.md

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ EIP-4844가 도입되면서, 새로운 트랜잭션 타입 `0x03`을 지정받
2020

2121
이번 글에서는 L2의 Rollup data가 KZG Commitment Scheme을 통해 어떻게 L1까지 도달하고, 검증받게되는지 그 과정을 다뤄볼 생각이다.
2222

23-
# Dive into KZG Commitment
23+
# Commit by KZG Commitment
24+
2425
**notation**
2526
- $\mathbb{F}_q$: BLS12-381 Scalar Field
2627
- $G_1$: BLS12-381 $G_1$ Group (48 bytes)
@@ -153,4 +154,41 @@ for j, (value, point_kzg) in enumerate(zip(blob, KZG_SETUP_LAGRANGE)):
153154
computed_kzg = bls.add(computed_kzg, temp) # 누적 합
154155

155156
# 최종: C = P(τ) · G₁ (48 bytes)
156-
```
157+
```
158+
159+
# Opening the Commitment
160+
161+
앞선 과정을 통해 128KB에 달하는 거대한 rollup data를 단 48B의 $C$(commitment)로 압축했다.
162+
하지만, 검증자(L1 node) 입장에서는, 아래와 같은 의문이 들 수 있다.
163+
> "이 $C$가 정말 blob data로 만든게 맞아?
164+
165+
이로 인해, 다시 다음과 같은 질문을 할 수 있게 된다.
166+
> "이 blob의 $n$번째 데이터가 정말 $b_n$인지 증명해봐!
167+
168+
이 때 사용하는 것이 Opening, 즉 특정 지점에서의 값을 증명하는 것이다.
169+
Opening과정에서는, 다항식 P(x)에 대해, 특정 지점 $z$에서의 값이 $y$임을 증명한다. 즉 $P(z) = y$.
170+
이를 위해 학창시절에 열심히 배운 **다항식의 나머지 정리**를 활용한다!
171+
172+
$P(z)=y$라면, 다항식 $P(x)-y$는 $(x-z)$로 나눠 떨어져야 하기 때문에, 몫 다항식인 $Q(x)$가 존재하게 된다.
173+
174+
$$
175+
\begin{aligned}
176+
P(x) - y = (x - z)\cdot Q(x)//
177+
Q(x) = frac{P(x) - y}{x - z}
178+
\end{aligned}
179+
$$
180+
181+
Prover(L2 Sequencer)는 P(x)를 알고 있으므로, 직접 $Q(x)$를 유도할 수 있다. 그리고 이 $Q(x)$ 또한 Trusted setup의 $\tau$값을 이용해 Commitment로 만든다.
182+
이러한 과정을 통해 Proof $\pi$를 만들게 된다.
183+
184+
$$
185+
\pi = Q(\tau)\cdot G_1
186+
$$
187+
188+
Prover는 이제 $(z,y,\pi)$ 를 Verifier에게 제출할 수 있다.
189+
> 자, point $z$에서 polynomial $P(x)$의 값은 $y$이고, 그 증거로 몫다항식의 commitment $\pi$를 줄게.
190+
191+
# Verification by Bilinear Pairing
192+
이 글에서 Bilinear Pairing에 대해 자세히 다루기는 어려울 것 같다...
193+
194+

0 commit comments

Comments
 (0)