GKR Protocol
By Youngwan Kwon
2025.11.12
본 글에서는 Field 위에서 덧셈과 곱셈 연산을 수행하는 arithmetic circuit의 결과를 증명하는 IP인, GKR 프로토콜에 대해 알아보겠습니다.
Settings
유한체 F 위에서 정의된 fan-in이 2인 arithmetic circuit C 를 고려하겠습니다. (Circuit 의 정의는 지난 블로그를 참고하세요.) GKR 프로토콜의 목표는 P가 V에게 'input x∈{0,1}n 가 C(x)=y 를 만족시킨다'는 것을 증명하는 것입니다.
먼저 C가 log-space uniform 하다는 조건이 필요한데, 이는 임의의 게이트를 입력으로 받았을 때 그 neighbors와 게이트 종류 등 정보를 구할 수 있는 log-space 알고리즘이 존재한다는 가정입니다. 또한 C가 input layer d 부터 output layer 0 까지 depth d 로 layered 되어있다고 가정합니다. (그렇지 않을경우 더미 게이트를 추가하여 크기가 d 배인 layered circuit으로 만들 수 있습니다.)
이제 C의 크기 (게이트 개수)를 S, depth를 d, 변수 개수를 n 이라고 하겠습니다. 각 layer i가 Si=2ki 개의 게이트로 이루어져 있다고 가정하고, layer i 의 게이트를 0부터 Si−1 까지 라벨을 붙이겠습니다. 그리고 Wi:{0,1}ki→F 를 layer i에서 라벨을 입력으로 받아 해당 게이트의 값을 반환하는 함수로 정의하겠습니다. 또한 layer i의 게이트 a에 대해 a와 연결된 layer i+1의 두 게이트를 in1,i(a),in2,i(a) 라고 하겠습니다. 그러면 addi,multi:{0,1}ki+2ki+1→{0,1} 함수를 입력 (a,b,c)에 대해 (b,c)=(in1,i(a),in2,i(a)) 이고 게이트 a가 ADD (후자에 대해선 MULT) 일 때만 1, 이외는 0을 가지는 indicator function으로 정의할 수 있습니다.
Details
GKR 프로토콜에서 우리는 Sum-check를 활용하기 위해, W~i (Wi의 multilinear extension) 를 다음과 같은 합의 꼴으로 나타낼 것입니다:
Lemma 4.2.
Proof. 변수 z에 대해 우변은 multilinear 다항식들의 합이므로 양변이 모두 multilinear 함은 자명합니다. MLE 다항식의 유일성에 의해, 양변이 모든 z∈{0,1}ki 에 대해 값이 같다는 것만 보이면 증명이 끝납니다. 임의의 ADD 게이트 a∈{0,1}ki 는 오직 두 개의 자식 in1,i(a),in2,i(a) 만을 가지므로, 위 합은 (b,c)=(in1,i(a),in2,i(a)) 에서만 살아남고 다른 모든 b,c∈{0,1}ki+1 에서는 0이 되어 사라집니다. 즉,
이는 MULT 게이트에 대해서도 성립합니다. □
처음으로 돌아가 우리는 circuit C의 output layer 0에서 W0(z) 값을 증명해야 합니다. 그러나 이를 위해 모든 z∈{0,1}k0의 함숫값을 검증하는 것이 아니라, 임의의 z=r0∈Fk0 에 대해 Lemma 4.2가 성립하는지 한번 검증하는 것으로 충분합니다! (이 방법이 sound한 이유는 Schwartz-Zippel Lemma 덕분입니다.)
이제 우리는 고정된 ri∈Fki에 대해 합 내부의 함수
에 Sum-check 프로토콜을 적용함으로써 W~i(ri) 값을 증명할 수 있습니다. 그러나 Sum-check 프로토콜의 마지막 라운드에서 V는 임의의 b∗,c∗∈Fki+1에 대해 fri(i)(b∗,c∗) 를 구해야하므로 W~i+1(b∗)와 W~i+1(c∗) 값을 필요로 하는데, 이 값들을 P 에게 요청합니다. 이때 이 두 값에 대한 증명도 필요하게 됩니다. 즉, layer i에 대한 결과값 증명이 sum-check를 적용하면서 layer i+1에 대한 두 개의 증명으로 환원된 것입니다!
Reducing Two Polynomial Evaluations to One
더 나아가, 우리는 W~i+1 에 대한 두 점에서의 증명을 오직 한 점에서의 증명으로 줄일 수 있습니다. 그 과정은 다음과 같습니다:
Subroutine Protocol: ℓ:F→Fki+1 을 ℓ(0)=b∗, ℓ(1)=c∗으로 두 점을 지나는 (유일한) 직선으로 정의합니다. 이제 W~의 ℓ 위의 restriction q(x)=(W~∘ℓ)(x) 를 고려하겠습니다. 그러면 q(x)는 q(0)=W~(b∗), q(1)=W~(c∗) 를 만족하는 일변수 다항식이며, W~가 multilinear 하므로 최대 차수는 W~의 변수 개수인 ki+1 입니다. Verifier V는 임의의 r∗∈F를 뽑아 q(r∗)=(W~∘ℓ)(r∗) 만을 검증합니다.
위 과정이 complete함은 자명합니다. 또한 soundness error ki+1/∣F∣ 으로 sound한데, 그 이유는 q(x) 의 차수가 최대 ki+1이므로 false q가 임의의 점에서 q(r∗)=(W~∘ℓ)(r∗) 를 만족할 확률은 최대 ki+1/∣F∣ 이기 때문입니다. (Schwartz-Zippel Lemma)
Final iteration
위 방법을 이용하면 우리는 layer i에 대한 증명을 Sum-check + layer i+1에 대한 증명 으로 환원시킬 수 있습니다. 이를 반복한 뒤 마지막 layer d 에서 V는 W~d(rd) 값을 직접 계산해야합니다. 이 때 layer d는 input layer이므로 모두 공개되어있고, V는 MLE 함숫값 구하기 를 통해 O(n) 시간에 해당 값을 직접 계산할 수 있습니다.
이제 모든 것을 종합한 GKR 프로토콜을 살펴보겠습니다.
Protocol
프로토콜 시작 시, P는 W0 (출력 게이트 라벨을 출력값에 매핑하는 함수)와 같다고 주장하는 D:{0,1}k0→F를 보냅니다.
V는 임의의 r0∈Fk0 를 선택하고 m0←D~(r0)로 설정합니다. 이제 m0=W~0(r0) 가 참이라는 것을 재귀적으로 증명합니다.
i-th iteration (0≤i<d)
claim: ∑b,c∈{0,1}ki+1fri(i)(b,c)=mi.
이 때 (2ki+1)-변수 다항식 fri(i) 를 다음과 같이 정의합니다:
P는 V에게 claim을 Sum-check 프로토콜을 이용해 증명합니다. Sum-check의 마지막에서 (b∗,c∗)∈Fki+1×Fki+1에서 fri(i) 값을 구해야 할 때까지 진행합니다.
ℓ(0)=b∗와 ℓ(1)=c∗를 만족하는 직선 ℓ 을 정의한 뒤, P가 V에게 q(x)=(W~i+1∘ℓ)(x) 라고 주장하는 q를 보냅니다. (q는 차수는 최대 ki+1인 일변수 다항식) V는 W~i+1(b∗) 와 W~i+1(c∗) 대신 q(0)와 q(1) 값을 사용해 fri(i)(b∗,c∗) 를 계산하여 Sum-check를 마칩니다.
이제 q=W~i+1∘ℓ 라는 주장을 검증해야 합니다. 이를 위해 V가 임의의 r∗∈F를 뽑아 ri+1=ℓ(r∗) 및 mi+1←q(r∗) 로 설정한 뒤, 다음 iteration에서 mi+1 에 대한 claim을 검증합니다.
Costs
Communication costs & Rounds: fri(i) 는 (2ki+1)-변수 다항식이며 각 변수에 대한 차수가 최대 2입니다. 따라서 i번째 iteration의 Sum-check 프로토콜에 필요한 communication은 2ki+1=O(logS) 이고, 전체 cost는 프로토콜의 시작 때 D를 전송하는데 필요한 S0를 포함해 O(S0+dlogS) field elements 입니다. 또한 전체 라운드 수는 O(dlogS) 입니다.
Soundness error: GKR의 i번째 iteration에서 검증하는 q(x)는 차수가 최대 ki+1=O(logS) 이므로 false q가 증명을 통과할 확률은 최대 O(logS/∣F∣) 입니다. 이를 d번 반복하므로 적어도 한번 통과할 확률은 최대 O(dlogS/∣F∣) 이고 이것이 곧 GKR 프로토콜의 Soundness error입니다.
V의 시간복잡도: V의 시간복잡도는 O(n+dlogS+t+S0) 로, 마지막 iteration에서 W~d(rd)를 계산하는데 O(n), 각각의 sum-check 프로토콜에서 총 O(dlogS), addi 와 multi 를 랜덤 input에서 계산하는 시간 t, 맨 처음 D~(r0) 를 계산하는 시간 O(S0) 이 소요됩니다. 뒤에서 살펴볼 것이지만 t를 low-order으로 가정하고 S0=1로 놓으면 총 시간복잡도는 O(n+dlogS) 입니다.
P의 시간복잡도: MatMult 프로토콜에서 사용했던 아이디어를 사용한 두 개의 최적화 방법을 살펴보겠습니다.
Method 1, O(S3)
Sum-check를 적용하는 fri(i)는 v=2ki+1-변수 다항식이며 각 변수에 대한 차수가 최대 2라는 것을 확인할 수 있습니다. 따라서 MatMult와 동일하게 각 라운드 k에서 다음 꼴의
총 3⋅2v−k 개 점에서 함숫값만 구하면 됩니다. 임의의 점에서 fri(i)의 함숫값을 구하는 것은 MLE 함숫값 구하기 테크닉으로 O(Si+Si+1) 시간에 가능하고, 따라서 전체 시간복잡도는 O(∑i=0d−12v⋅(Si+Si+1))=O(S3) 으로 정리됩니다.
Method 2, O(SlogS)
먼저 fri(i)의 정의를 관찰해보겠습니다.
우리는 모든 k에 대해 (s1,…,sk−1,{0,1,2},bk+1,…,bv) 꼴의 3⋅2v−k 개 점에서, 각 multilinear 함수들 addi, multi, W~i+1 의 함숫값을 계산하면 상수 시간에 fri(i)를 구할 수 있습니다. 이를 위해 MatMult 프로토콜의 Method 3에서 사용했던 점화식을 활용하겠습니다. v-변수 multilinear 다항식 g~에 대해, 다음 점화식으로 이전 라운드의 함숫값을 이용해 현재 라운드의 함숫값을 모두 계산할 수 있습니다.
즉, 어떤 multilinear 다항식 g~ 의 ∀x∈{0,1}v 에서 함숫값을 계산해두면, 그것을 초기값으로 DP를 이용해 O(2v) 시간에 필요한 모든 함숫값을 구할 수 있습니다.
먼저 W~i+1 에 대해서는 간단합니다. 초기값은 layer i+1의 값들이므로 알고있고, 변수 개수는 v=ki+1 이므로 O(2ki+1)=O(Si+1) 시간이 걸립니다. 이제 addi 를 살펴보겠습니다. (multi 도 동일합니다.) addi 는 변수 개수가 v=2ki+1 이므로 naive 하게 작성하면 O(Si+12) 시간이 들게됩니다. 이를 보완하기 위해 MatMult 프로토콜의 Method 2의 관찰을 활용해보겠습니다.
관찰. addi와 multi는 sparse 합니다; (a,in1,i(a),in2,i(a)):a∈{0,1}ki 꼴의 점 Si 개를 제외한 모든 점에서 addi(a,b,c)=multi(a,b,c)=0 입니다.
따라서, addi 의 MLE는 다음과 같이 a∈{0,1}ki 에 대한 합으로 표현할 수 있습니다:
이제 모든 a∈{0,1}ki 에 대해 χa(ri) 값을 pre-compute 한 뒤 (이는 O(2ki)=O(Si) 시간이 걸립니다), a에 대해 iterate 하면서 (in1,i(a),in2,i(a))=z 인 z∈{0,1}2ki+1 에 대해서만 값을 업데이트 해줍니다:
이 때 고정된 z0∈{0,1}2ki+1에 대해, 앞서 살펴본 점화식을 이용하면 모든 라운드 1≤k<v=2ki+1에서 마지막 v−k 비트가 z0 와 겹치는 z의 함숫값을 모두 구할 수 있습니다. 이 과정은 총 O(2ki⋅2ki+1)=O(SilogSi+1) 시간이 소요됩니다.
종합하면, i번째 iteration에서 총 O(Si+1+SilogSi+1) 시간이 걸리므로 전체 시간복잡도는
입니다.
Linear time prover, O(S)
더 나아가 P의 시간을 O(S)로 linear하게 줄이는 것도 가능합니다. 다음 논문을 참고하세요. [XZZ+19]
GKR의 Cost를 정리하면 다음과 같습니다.
Communication
Rounds
V time
P time
Soundness error
O(dlogS) field elements
dlogS
O(n+dlogS)
O(SlogS)
O(dlogS/∥F∥)
표 4.5. GKR 프로토콜의 costs. Prove time은 구현에 따라 O(S) 까지 줄일 수 있다.
Conclusion
이번에 살펴본 GKR 프로토콜은 1장에서 살펴본 VC (Verifiable Computation)의 한 예시입니다. GKR이 유용한 이유는 우리가 계산하는 많은 알고리즘은 arithmetic circuit으로 변환될 수 있고, 따라서 이들을 증명할 수 있게되기 때문입니다. 또한, GKR은 parallel computation에 강점이 있어 더욱 효율적으로 구현할 수 있습니다.
다음 글에서는 임의의 IP를 Non-interactive Proof로 변환하는 기술인 Fiat-Shamir Transform에 대해 알아보겠습니다. 감사합니다.
Last updated
