Schwartz-Zippel Lemma

본 글에서는 앞서 살펴본 상호작용 증명(Interactive Proof)과 논증 시스템(Argument System)의 엄밀한 정의와 Schwartz-Zippel Lemma, 그리고 몇가지 수학적 테크닉을 살펴보겠습니다.

결정 문제와 언어

결정 문제(Decision problems)란 모든 입력 xx에 대해 결과 f(x)f(x)가 항상 1 또는 0 (참 또는 거짓)으로 결정되는 문제를 말합니다. (즉, f:{0,1}n{0,1}f: \{0,1\}^n \to \{0,1\}.)

이 때, 주어진 결정 문제 ff가 참 (f(x)=1f(x)=1)이 되도록 하는 입력값 xx 들의 집합 L{0,1}n\mathcal L\sub \{0,1\}^n언어(language) 라고 합니다.

이제 해당 정의를 사용하여 상호작용 증명을 수학적으로 정의해보겠습니다.

상호작용 증명 (IP)

상호작용 증명 시스템(Interactive Proof system; IP)은 결정 문제 (f:{0,1}n{0,1}f: \{0,1\}^n \to \{0,1\})에 대해, 다항 시간 안에 동작하는 확률적 검증자 알고리즘 V\mathcal V와 결정적(deterministic) 증명자 알고리즘 P\mathcal P의 쌍 (V,P)(\mathcal V, \mathcal P)으로 정의됩니다. 두 사람은 공통 입력 x{0,1}nx \in \{0,1\}^n을 공유하며, 증명자는 f(x)=1f(x)=1 (참) 을 주장하고 검증자는 그것이 참임을 검증합니다.

이후 두 알고리즘은 m1,m2,,mkm_1, m_2, \dots, m_k의 형태로 메시지를 번갈아가며 교환합니다. 이 때 증명자 P\mathcal P와 검증자 V\mathcal V는 입력 값과 메시지 시퀀스 (x,m1,m2,,mi1)(x, m_1, m_2, \dots, m_{i-1})을 받아 다음 메시지 mim_i를 보내는 계산 알고리즘으로 생각할 수 있습니다.

이 메시지들의 전체 시퀀스를 필사(transcript)라 부르며, 검증자는 모든 메시지를 받은 뒤 최종적으로 11 (accept) 또는 00 (reject)을 출력합니다.

검증자의 출력은 내부 난수 rr과 transcript tt에 의존하며, 이를

out(V,x,r,P){0,1}\text{out}(\mathcal{V}, x, r, \mathcal{P}) \in \{0,1\}

로 나타냅니다.

이는 검증자가 특정 난수 rr과 입력 xx에 대해 증명자 P\mathcal{P}와 상호작용한 결과를 의미하며, 고정된 난수값 rr에 대해선 결정적 함수로 볼 수 있습니다.

Definition

정의 3.1. 언어 L\mathcal L의 IP 시스템 (V,P)(\mathcal V, \mathcal P)에 대해, 완전성 오류 δc\delta_c와 건전성 오류 δs\delta_s를 다음과 같이 정의한다.

1

완전성 (completeness)

모든 xLx\in\mathcal L 에 대해,

Prr[out(V,x,r,P)=1]1δc.\Pr_{r}[\text{out}(\mathcal{V}, x, r, \mathcal{P}) = 1] \ge 1 - \delta_c.

즉, honest prover와 상호작용 시 검증자가 대부분의 경우(확률 최소 1δc1-\delta_c), 이를 받아들인다.

2

건전성 (soundness)

모든 xLx\notin \mathcal L 와 모든 결정적 증명자 P\mathcal P' 에 대해,

Prr[out(V,x,r,P)=1]δs.\Pr_{r}[\text{out}(\mathcal{V}, x, r, \mathcal{P}') = 1] \le \delta_s.

즉, 어떠한 (심지어 악의적인) 증명자라도 거짓을 받아들이게 할 확률은 적다(최대 δs\delta_s).

이 때, IP 시스템은 δc,δs1/3\delta_c, \delta_s\le 1/3 일때 유효하다고 말합니다.

Details

몇가지 중요한 포인트를 짚고 넘어가겠습니다.

저희가 IP를 결정 문제를 이용해 정의한 이유는, 이렇게 하면 IP를 알고리즘의 복잡도 클래스(complexity class)로 해석할 수 있으며 이를 통해 중요한 결과들도 도출할 수 있기 때문입니다. (예, IP=PSPACE\text{IP}=\text{PSPACE}, MIP=NEXP\text{MIP}=\text{NEXP}.)

또한 위 IP의 정의에서 증명 시스템의 상호 작용성과 무작위성을 없애면 NP\text{NP} 클래스 (다항시간에 결정적으로 검증 가능한 결정 문제)가 되는 것을 확인할 수 있습니다 (즉, NPIP\text{NP}\subseteq \text{IP}.)

IP 시스템의 유효성을 δc,δs1/3\delta_c, \delta_s\le 1/3 기준으로 정의한 이유는 무엇일까요? 이는 사실 몇가지 연구 결과와 관련이 있습니다. 완전성 오류 δc=0\delta_c=0 인 경우, 즉 모든 honest prover가 항상 증명을 성공하는 IP 시스템을 완벽한 완전성을 가진다고 합니다.

이 때, 완전성 오류 δc1/3\delta_c\le 1/3 인 모든 IP 시스템은 완벽한 완전성 (δc=0\delta_c=0)을 가진 시스템으로 변환될 수 있습니다! (단, 검증자의 시간복잡도와 증명 길이가 다항시간 만큼 늘어납니다. [FGM+89]) 건전성 오류 δs1/3\delta_s\le 1/3의 기준은 관례적인 것이나, 이 또한 간단히 증명을 kk번 반복하는 것으로 오류를 δsk\delta_s^k로 줄일 수 있습니다.

참고로 안심하세요, 앞으로 저희가 살펴볼 IP 시스템들은 대부분 δc=0\delta_c=0이며 δs1/F\delta_s\propto 1/|\mathbb F| 로 아주 작습니다.

앞서 정의한 IP를 결정 문제 뿐만아니라, 임의의 함수 y=f(x)y=f(x)에 대해서 증명자가 입력 xx에 대한 함숫값 yy를 증명하도록 정의를 확장할 수 있습니다. 이는 언어를 Lf={(x,y):y=f(x)}\mathcal L_f=\{(x,y) : y=f(x)\} 와 같이 정의함으로써 가능합니다. (증명자가 주장하는 yy에 대해 y=f(x)    (x,y)LFy=f(x) \iff (x,y)\in L_F 임에 주목하세요!)

논증 시스템 (Argument Systems)

정의 3.2 (논증 시스템). 함수 ff의 논증 시스템 (argument system)이란 ff의 상호작용 증명 (IP) 중 건전성 조건이 다항시간 증명자 P\mathcal P'에 대해서 성립하는 증명 시스템이다.

증명자를 다항시간으로 제한한 건전성을 계산적 건전성(computational soundness)이라고 부릅니다. 이처럼 논증 시스템이 다항시간을 가정하는 이유는, 현실에서 유용한 암호학 기초 이론들을 이용하기 위함입니다.

예를 들어 암호학에서 많이 사용되는 이산로그 문제같은 one-way function, 암호학적 해시함수, MAC 등은 다항시간이라는 가정 하에서만 안전합니다.

Schwartz-Zippel Lemma

다변수 다항식

이 장에서 저희는 변수가 mm개인 다변수(polynomial in m variables) 다항식을 다룰 것 입니다. 예를 들어, g(x1,x2)=6x1+7x13x2g(x_1,x_2)=6x_1+7x_1^3x_2 는 2변수 다항식입니다.

이 때 gg의 전체 차수 dd는 변수와 관계없이 가장 차수가 높은 항의 차수로 정의합니다. (해당 예시에서는 7x13x27x_1^3x_2의 차수가 4로 최대이므로 gg는 전체 차수 4입니다.)

Lemma

보조정리 3.3 (Schwartz-Zippel Lemma). 임의의 체 F\mathbb F 위에서 전체 차수가 최대 dd이고 영이 아닌 mm-변수 다항식 g:FmFg: \mathbb F^m\to\mathbb F 를 고려하자. 모든 유한한 SFS\subseteq \mathbb F에 대해, 다음 부등식이 성립한다:

PrxSm[g(x)=0]dS.\Pr_{x \leftarrow S^m}[g(x) = 0] \le \frac{d}{|S|}.

여기서 xSmx \leftarrow S^mSmS^m에서 uniform random하게 선택된 xx를 의미하며, S|S|는 집합 SS의 크기를 나타냅니다. S=FS=\mathbb F일 때를 생각하면, 전체 차수가 dd 이하인 다변수 다항식은 최대 d/Fd / |\mathbb F| 비율의 점에서만 0이 된다는 것을 알 수 있습니다. 저희는 지난 블로그 Reed-Solomon 핑거프린팅 파트에서, Schwartz-Zippel Lemma의 일변수 함수 케이스를 살펴본 바 있습니다.

해당 보조정리는 많은 증명 시스템에서 유용하게 쓰이며, 정리 자체의 증명은 귀납법을 이용해서 깔끔하게 가능합니다.

Multilinear Extensions

앞서 라그랑주 보간법에서 저희는 주어진 길이 nn벡터를 확장시켜 각 점을 지나는 다항식을 만들었습니다. 이번에는 주어진 f:{0,1}vFf: \{0,1\}^v\to\mathbb F (vv-차원 boolean hypercube -> 체 F\mathbb F로 가는 함수)에 대해, 정의역을 Fv\mathbb F^v으로 확장시키는 Multilinear Extension에 대해 알아보겠습니다.

정의 3.4. 다변수 다항식 gg는 각 변수에 대한 차수가 최대 1일때 multilinear 하다고 한다.

정리 3.5. 모든 함수 f:{0,1}vFf: \{0,1\}^v\to\mathbb F 는 체 F\mathbb F 위에서 유일한 multilinear extension (MLE) f~\tilde f 를 가진다. (즉, f~:FvF\tilde f: \mathbb F^v\to\mathbb F 는 모든 x{0,1}vx\in\{0,1\}^v 에 대해 f~(x)=f(x)\tilde f(x)=f(x) 를 만족하는 multilinear 다항식이다.)

Proof. (존재성) 라그랑주 보간법에서 했던 증명 방식과 마찬가지로 조건을 만족하는 함수 f~\tilde f를 만들어 보겠습니다:

f~(x1,,xv)=w{0,1}vf(w)χw(x1,,xv),(3.1)\tilde{f}(x_1, \ldots, x_v) = \sum_{w \in \{0,1\}^v} f(w) \cdot \chi_w(x_1, \ldots, x_v), \tag{3.1}

이 때 고정된 w=(w1,,wv){0,1}vw=(w_1,\cdots,w_v)\in\{0,1\}^v에 대해,

χw(x1,,xv):=i=1v(xiwi+(1xi)(1wi)).(3.2)\chi_w(x_1, \ldots, x_v) := \prod_{i=1}^{v} \big( x_i w_i + (1 - x_i)(1 - w_i) \big). \tag{3.2}

해당 χw\chi_w를 multilinear 라그랑주 기저 다항식이라고 부릅니다. χw\chi_w는 각 변수에 대해 차수가 최대 1인 다변수 다항식임에 주목하세요.

임의의 벡터 w{0,1}vw \in \{0,1\}^v에 대하여, χw\chi_wχw(w)=1\chi_w(w) = 1이고 다른 모든 벡터 y{0,1}vy \in \{0,1\}^v에 대해서는 χw(y)=0\chi_w(y) = 0가 성립함을 관찰해봅시다.

만약 wiyiw_i \ne y_i라면 wi=1w_i = 1이고 yi=0y_i = 0이거나, wi=0w_i = 0이고 yi=1y_i = 1 이므로 어느 경우든, 식 (3.2)의 오른쪽에 있는 ii번째 항, 즉 (xiwi+(1xi)(1wi))(x_i w_i + (1 - x_i)(1 - w_i))00이 됩니다. 따라서 식 (3.2)의 오른쪽 전체 곱은 00이 됩니다. 반대로 모든 ii에 대해 wi=yiw_i=y_i가 성립한다면, 식 (3.2)의 값은 11이 됩니다. 원리는 2장에서 살펴본 라그랑주 기저 다항식과 유사합니다.

따라서, 식 (3.1)의 함수에 임의의 y{0,1}vy\in\{0,1\}^v를 대입하면 합에서 wyw\neq y인 항들은 모두 0이 되어 사라지고 w=yw=y인 항, 즉 f(w) (=f(y))f(w)\ (=f(y)) 만 남게 됩니다. 이는 저희가 원했던 성질입니다. 또한, 각 기저 다항식이 multilinear하고 f~\tilde f는 이들의 선형 결합이므로 f~\tilde f 또한 multilinear 다항식입니다.

(유일성) 존재성을 보였으므로 유일성을 보이기 위해서 위 성질을 만족하는 다른 f~\tilde f'이 존재한다고 가정하겠습니다. 이 때 h=f~f~h=\tilde f-\tilde f'로 정의하면, hh는 multilinear하고 h(x)=0 x{0,1}vh(x)=0\ \forall x\in\{0,1\}^v 를 만족합니다. 이러한 h=0h=0 임을 보이면 유일성 증명이 끝납니다. 이는 vv에 대한 귀납법으로 가능한데, induction step만 간단히 설명하겠습니다. hh의 multilinearity에 의해 다음이 성립합니다:

h(x1,,xv)=a(x1,,xv1)xv+b(x1,,xv1).h(x_1,\cdots,x_v)=a(x_1,\cdots,x_{v-1})\cdot x_v+b(x_1,\cdots,x_{v-1}).

xv=0x_v=0을 고정하면 b(x)=0 x{0,1}v1b(x)=0\ \forall x\in\{0,1\}^{v-1}이므로 induction hypothesis에 의해 b=0b=0이 됩니다. 이제 xv=1x_v=1을 고정하면 마찬가지로 a=0a=0이 되어 h(x1,,xv)=0h(x_1,\cdots,x_v)=0이 성립하고, 따라서 증명이 끝이 납니다.  \ \square

함숫값 구하기

마지막으로 multilinear extension f~(r)\tilde f(r)의 함숫값을 구하는 효율적인 알고리즘에 대해 알아보겠습니다.

먼저 n=2vn=2^v라고 하고 임의의 r=(r1,,rv)Flognr=(r_1,\cdots,r_v)\in\mathbb F^{\log n} 에 대해 f~(r)\tilde f(r) 값을 계산하는 것이 목표입니다. 식 (3.1)과 (3.2)의 정의에 입각하여 함숫값을 구하면 시간 복잡도 O(nlogn) (=O(2vv))O(n\log n)\ (=O(2^v\cdot v)) 와 공간 복잡도 O(logn) (=O(v))O(\log n)\ (=O(v)) 만에 간단히 계산할 수 있습니다.

χw(r)\chi_w(r) 을 자세히 살펴보겠습니다.

χw(r1,,rv)=i=1v(riwi+(1ri)(1wi)),\chi_w(r_1, \ldots, r_v) = \prod_{i=1}^{v} \big( r_i w_i + (1 - r_i)(1 - w_i) \big),
riwi+(1ri)(1wi)={1riwi=0riwi=1r_i w_i + (1 - r_i)(1 - w_i)=\begin{cases} 1-r_i & w_i=0 \\ r_i & w_i=1 \end{cases}

이 때 우리는 ww{0,1}v\{0,1\}^v의 모든 원소에 대해 계산하므로, χw\chi_wii번째 항에 대해 나올 수 있는 두 경우의 값을 저장해 두는 memoization을 사용할 수 있습니다.

즉, 위 그림과 같이 가능한 모든 χw\chi_w의 함숫값을 한 번에 계산할 수 있고 시간 복잡도와 공간 복잡도 모두 O(n)O(n) 이 소요됩니다!

Last updated