STARK는 “특정 다항식이 낮은 차수(low-degree)를 갖는다”를 “함수가 reed-solomon code에 가깝다”라는 수학적 증명으로 변환한다. 이러한 변환을 통해 “거리 확인”을 통해서 Accept/Reject을 구분한다. STARK는 FRI를 통해서 효율적으로 낮은 차수임을 증명하는데 이를 더 발전시킨 DEEP-FRI에 대해 알아보자.
영지식 증명 시스템의 핵심 목표는 증명자가 거짓말을 할 때 이를 잡아내는 것이다. 증명자가 제출한 데이터가 저차항 다항식에 가깝다고 주장하지만 실제로는 멀리 떨어져 있을 수 있다. 이때 검증자는 무작위로 한 지점을 선택하여 이 주장이 사실인지 검사한다. 만약 무작위로 선택된 지점이 코드에서 멀리 떨어져 있다면, 증명자는 올바른 답변을 줄 수 없으므로 거짓말이 들통난다.
기존 방식에서는 데이터가 코드에서 멀리 떨어져 있더라도, 무작위 변형들의 평균 거리가 생각보다 가까울 수 있다. 그러면 검증자가 운 좋게 코드에 가까운 지점을 선택할 가능성이 생겨, 거짓말하는 증명자가 들통나지 않을 수 있다. 그러나 DEEP 기법은 무작위 변형들의 평균 거리()가 최악의 경우()와 거의 같은 수준으로 멀리 떨어져 있음을 증명한다. 이로써 부적절한 식에 대해서 Verifier가 어떤 무작위 지점을 선택하든, 그 지점은 코드에서 멀리 떨어져 있을 확률이 매우 높아진다.
결론적으로, '평균 거리가 최대 거리에 가깝다'는 것은 거짓말을 잡아내는 테스트의 건전성(soundness)이 매우 높다는 것을 의미한다.
기존 영지식 증명 시스템에서 증명자는 자신이 가진 데이터가 "특정 규칙을 따르는 저차항 다항식"의 평가값이라고 주장한다. 하지만 증명자가 거짓말을 할 경우, 즉 데이터가 실제로는 저차항 다항식과 거리가 먼 경우라도 검증자가 이를 쉽게 알아채지 못할 수 있다.
검증자는 다항식의 원래 평가 도메인 보다 더 큰 를 인위적으로 생성한다. 검증자는 이 확장된 도메인 에서 무작위로 점 z를 선택하고, 증명자에게 해당 지점에서의 다항식 평가값을 요청한다.
증명자가 답변을 제공하면, 검증자는 이 정보를 이용해 거짓말을 하는 증명자들이 내놓을 수 있는 '가짜' 다항식 목록을 정리(prune down)한다. 이 과정을 통해 증명자가 주장하는 다항식이 정말로 저차항 다항식에 가까운지, 아니면 거짓말인지 훨씬 더 쉽게 구별할 수 있게 된다.(가짜 다항식에 해당 prover가 보낸 다항식이 없으면 통과)
그러나 실제 증명 시스템에서는 이 "목록 정리"를 수학적으로 엄밀하게 증명해야 한다. 여기서 '거리 보존'과'가중 버전' 같은 개념이 등장한다. 이는 "목록을 정리했다"는 직관을 "거짓 다항식이 올바른 코드에서 여전히 멀리 떨어져 있음()"이라는 정량적이고 증명 가능한 사실로 변환하는 과정이다.
DEEP 기법의 핵심 논리는 다음과 같다.
DEEP 기법은 증명자가 제출한 함수()가 올바른 다항식이 아니라고 가정하는 것에서 시작된다. 이러한 경우, 와 는 다항식 코드에서 멀리 떨어져 있다. 이 문제를 해결하기 위해, 검증자는 원래 도메인 밖의 점 를 질의하여, 증명자의 답변과 일치하는 '가짜' 다항식들을 줄여 나간다. 이 정리 과정이 ‘거리 보존’으로 이어진다. 즉, 몫 연산과 같은 연산을 통해 얻은 새로운 함수()는 여전히 올바른 코드에서 멀리 떨어져 있다. 여기서 이 거리가 얼마나 멀리 떨어져 있는지는 '1.5-존슨 함수'로 정량화된다.
이러한 DEEP 기법의 원리는 다양한 상황에 맞게 확장되어 실용성을 높인다. weighted version과 general linear codes이 그 방법이다. weighted version은 모든 데이터 지점이 동일한 중요도를 갖지 않는 실제 시나리오에서도 작동함을 보여준다. 또한 general linear codes은 리드-솔로몬 코드에만 국한되지 않고, 더 넓은 범위의 코드에 적용될 수 있음을 증명한다.
DEEP-FRI에 대해 공부하기 전에 FRI를 다시 한번 짚고 넘어가 보자.
FRI는 차수를 줄이는 과정(COMMIT 단계)와 그 결과가 정확한지 확인하는 과정(QUERY 단계)으로 구성된다.
COMMIT 단계
Prover와 Verifier가 여러 라운드에 걸쳐 상호작용하며 문제를 점진적으로 축소하는 과정이다. Prover는 라는 함수가 리드-솔로몬 코드에 가깝다고 주장하며, Verifier는 이를 검증하기 위해 무작위 값 를 보낸다. Prover는 이 값을 이용해 를 '대수적 해시'하여 새로운 함수 을 만든다. 이 과정은 다항식의 차수와 데이터 크기를 절반으로 줄이며, 여러 라운드 반복을 통해 복잡한 문제를 상수 크기의 간단한 문제로 축소한다.
STARK에서는 이러한 COMMIT 단계를 Split-and-Fold를 통해 수행한다. Split의 경우에는 짝수항과 홀수항으로 쪼갠다.
만약 라는 식을 Split한다고 할 때, 짝수와 홀수 차수를 가진 것들나눈다.
그리고 이후에 Fold 과정을 거친다. 이 식을 으로 합친다.
그 후 어떤 x 대신에 random한 값 r을 사용해서 두 식을 하나의 식으로 합쳐서 을 생성한다.
(mod 97)
최종적으로 Split-and-Fold를 거치면서 차수가 원래보다 1/2이 된 것을 확인할 수 있다.
QUERY 단계
COMMIT 단계에서 다항식 를 'Split-and-Fold'를 통해 로 변환한 것이 올바른지 검증자는 확인해야 한다. 검증자는 프로토콜의 locality 속성을 사용하여 이를 수행한다
이 과정을 통해 검증자는 매 라운드마다 증명자가 올바른 다항식 폴딩을 수행했는지를 효과적으로 확인할 수 있다.
DEEP-FRI는 기존 FRI 프로토콜에 몫 연산(quotienting)이라는 새로운 개념을 도입하여 건전성(soundness)을 개선한 프로토콜이다.
몫 연산 (Quotienting)
몫 연산은 특정 지점에서 특정 값을 가지는 다항식에 초점을 맞추는 연산이다. 함수 f가 주어졌을 때, 몫 연산은 z에서 b 값을 갖는 새로운 함수 를 정의한다.
보조정리 5.3
이고, 이며 이라고 하자.
은 정수라고 하자.
함수 이고 라고 하자. 라고 하자. 다음은 동치(equivalent)이다.
위의 정리는 다음과 같은 사실을 보장한다.
COMMIT 단계
기존 FRI 프로토콜은 Prover가가 리드-솔로몬 코드에 가깝다고 주장하면, Verifier가 무작위 값 를 보내고 Prover가 이를 이용해 를 만들어 문제를 점진적으로 축소한다.
하지만 DEEP-FRI는 이 과정에 다음 단계를 추가한다.
이 과정을 통해 DEEP-FRI는 차수를 줄이기 전에 거짓 증명을 선제적으로 제거하여, FRI 프로토콜의 건전성을 획기적으로 향상시킨다.
이를 포함한 전체적인 COMMIT 과정을 정리하면 다음과 같다.
Split-and-Fold (대수적 해시 생성):
Prover는 를 짝수 차수 항과 홀수 차수 항으로 분리한다. Verifier가 보낸 무작위 값 를 사용해 이 두 다항식을 하나로 합칩니다(Fold). 이 Split-and-Fold 과정을 거쳐 생성된 다항식이 바로 대수적 해시 함수 이다.
DEEP 기법 적용 (몫 연산):
라는 단일 다항식이 생성된 후, DEEP 기법이 적용된다. Verifier는 다항식의 원래 평가 도메인 밖의 무작위 지점 를 선택하고, 증명자에게 의 값을 요청한다. Prover는 이 정보를 바탕으로 몫 연산(QUOTIENT)을 적용하여, 거짓 증명을 걸러낸 새로운 다항식을 만든다.
다음 라운드 다항식 생성:
몫 연산의 최종 결과물이 다음 라운드에서 사용될 다항식 이 된다.
QUERY 단계
COMMIT 단계에서 제출된 함수들이 올바르게 '몫 연산'을 거쳤는지 확인하는 과정이다. 검증자는 보조정리 5.3을 기반으로 대수적 해시와 몫 연산의 관계를 검증한다.
무작위 지점 선택: 검증자는 도메인에서 무작위 지점 를 선택한다.
계산 경로 추적: 검증자는 각 라운드 i마다 를 계산한다. 그리고 에 대한 2번의 질의를 통해 값을 직접 계산한다.
몫 연산 검증: 검증자는 에 몫 연산을 역으로 적용한 값과 증명자가 제출한 값이 일치하는지 확인한다.
이 검증 과정은 FRI 프로토콜의 국소성(locality)과 몫 연산(quotienting)이라는 두 가지 핵심 원리에 기반을 둔다.
이처럼 극소적 일관성만을 활용해서 전체 거리를 확인할 수 있는 이유는 극소적 확인이 전체 속성인 거리 보존을 확률적으로 보장하기에 충분하기 때문이다. 만약 Prover가 속이기 위해 나쁜 다항식을 제공했다면, COMMIT과정을 거치면서 다항식이 많이 변하기 때문에 높은 확률로 원래의 코드에서 멀리 떠러져도록 설계된다.
DEEP 기법을 통해 건전성 오류(err)를 획기적으로 낮췄다는 것이 중요하다. DEEP-FRI는 one-and-a-half-Johnson Function을 활용한 ‘존슨 경계’를 사용하여, 거짓 증명에 대한 수락 확률을 까지 낮출 수 있다.
DEEP 기법을 대수적 연결 IOP(ALI) 프로토콜에 적용하여 건전성을 개선하는 방법이다.
영지식 증명 시스템은 복잡한 계산 문제를 다항식의 근접성 문제로 변환한다(Arithmetization). 이러한 변환의 목표는 거짓된 입력에 대해(거짓된 prover에 대해) 다항식이 코드로부터 매우 멀리 떨어져 있음을 보장하는 것이다. 이러한 간극(이 클수록, FRI와 같은 근접성 프로토콜의 건전성이 높아진다.
그런데 기존의 ALI 프로토콜은 이 근접성 간극()이 1/8보다 작다. 이 간격이 작으면 거짓 증명을 잡아내기 어려워지므로 이를 좀 더 키우는 것이 필요하다.
DEEP-ALI는 기존의 ALI가 가지는 한계를 “몫 연산(quotienting)”을 활용하여 해결한다. 프로토콜의 전체적인 진행 과정을 다음과 같다.
DEEP-ALI의 속성
DEEP-ALI는 기존 ALI 프로토콜에 비해 여러 가지 이점을 제공한다.