13
간기술동향 2020. 7. 1. 12 www.iitp.kr * I. 서론 블록체인은 특정 내용을 블록체인에 넣고 이를 공개함으로써 일단 공표된 내용에 대해 서 더 이상 수정이 불가능한 불변성을 제공하여 신용이 필요한 용도에 적용할 수 있는 기술이다. 이러한 블록체인은 공개 보드(Public Bulletin Board)를 구현하는 현실적인 기술이라 할 수 있다. 블록체인에 올라간 데이터는 공개 과정을 통해서 가용성 및 투명성 을 획득하기 때문에 프라이버시 노출의 문제가 항상 존재하게 된다. 또한, 데이터의 유효 성을 검증하기 위해서 블록체인에 있는 많은 데이터에 대한 비교를 수행해야 하기 때문에 성능 및 크기의 문제가 생긴다. 블록체인을 이루고 있는 두 가지 핵심 기술로 합의 알고리즘과 영지식 증명(zero knowledge Succinct Non-interactive ARguements of Knowledge: zk-SNARK)이 있다. 합의 알고리즘은 블록체인에 불변성을 제공하는 핵심 기술이다. 영지식 증명은 프라이버시 문 제를 해결하는 암호학적 방법으로 비단 블록체인뿐만 아니라 프라이버시가 문제되는 곳에 서 데이터를 활용할 수 있게 하는 방법이다. 블록체인에서 영지식 증명이 사용되는 방식은 다음과 같다. 먼저 데이터의 약정(commit) * 본 내용은 오현옥 교수(☎ 02-2220-2395, [email protected])에게 문의하시기 바랍니다. ** 본 내용은 필자의 주관적인 의견이며 IITP의 공식적인 입장이 아님을 밝힙니다. chapter 2 영지식 증명 연구 동향 오현옥 한양대학교 교수 ICT 신기술

영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

12 www.iitp.kr

*

I. 서론

블록체인은 특정 내용을 블록체인에 넣고 이를 공개함으로써 일단 공표된 내용에 대해서 더 이상 수정이 불가능한 불변성을 제공하여 신용이 필요한 용도에 적용할 수 있는 기술이다. 이러한 블록체인은 공개 보드(Public Bulletin Board)를 구현하는 현실적인 기술이라 할 수 있다. 블록체인에 올라간 데이터는 공개 과정을 통해서 가용성 및 투명성을 획득하기 때문에 프라이버시 노출의 문제가 항상 존재하게 된다. 또한, 데이터의 유효성을 검증하기 위해서 블록체인에 있는 많은 데이터에 대한 비교를 수행해야 하기 때문에 성능 및 크기의 문제가 생긴다.

블록체인을 이루고 있는 두 가지 핵심 기술로 합의 알고리즘과 영지식 증명(zero knowledge Succinct Non-interactive ARguements of Knowledge: zk-SNARK)이 있다. 합의 알고리즘은 블록체인에 불변성을 제공하는 핵심 기술이다. 영지식 증명은 프라이버시 문제를 해결하는 암호학적 방법으로 비단 블록체인뿐만 아니라 프라이버시가 문제되는 곳에서 데이터를 활용할 수 있게 하는 방법이다.

블록체인에서 영지식 증명이 사용되는 방식은 다음과 같다. 먼저 데이터의 약정(commit)

* 본 내용은 오현옥 교수(☎ 02-2220-2395, [email protected])에게 문의하시기 바랍니다.** 본 내용은 필자의 주관적인 의견이며 IITP의 공식적인 입장이 아님을 밝힙니다.

chapter 2

영지식 증명 연구 동향

•••오현옥 ‖ 한양대학교 교수

ICT 신기술

Page 2: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 13

값을 블록체인에 올린다. 데이터의 약정이라 함은 데이터를 해시한 값이라고 생각하면

된다. 약정값의 계산은 일반적으로 랜덤값을 더한 입력값을 사용하여 계산하기 때문에

약정값으로부터 원래 입력값을 구하는 것은 매우 어려우며 따라서 블록체인에 올라가 있

는 데이터로부터 개인 정보가 노출되지 않는다. 따라서 영지식 증명을 활용하는 경우 온체

인 블록체인은 데이터의 약정값을 올리는 장소로 사용된다. 실제 데이터는 오프체인 저장

소에 저장되어 있으며, 데이터의 활용을 위해서 영지식 증명이 사용된다. 원래 데이터와

약정값 사이의 관계식 및 데이터에 대한 특정식을 포함하는 함수를 작성하고, 이 함수에

대해서 증명을 만들어서 제 3자에게 제공하게 되면 제 3자는 증명과 입출력 결과를 검증

하고, 또 입력 중에 하나인 약정값이 블록체인에 있다는 것을 확인함으로써 옳은 데이터에

대한 증명임을 확인할 수 있는 방식이다. 즉, 블록체인에 프라이버시를 제공한다는 것은

온체인 블록체인에 약정된 값이 올라가고 영지식을 사용하여 오프체인에서 데이터를 활용

하는 방식으로 진행되게 된다. 따라서 공개된 온체인 블록체인에서는 데이터가 감추어지

기 때문에 프라이버시 문제가 해결되게 된다. 뿐만 아니라 영지식 기법들은 빠른 검증을

제공하기 때문에 블록체인의 성능향상, 크기 최소화 등에도 다양하게 활용되고 있다.

[그림 1]과 같이 프라이버시 보호가 필수적인 블록체인 응용인 신원 증명, 온라인 금융

거래, 전자투표 등의 응용을 개발하는 경우 영지식 증명의 사용은 필수적이며, 따라서 암

호학에 대한 전문가가 아니더라도 블록체인 응용을 개발하는 개발자라면 현재 영지식 증

명의 발전 상태가 어느 정도인지, 자신의 응용을 위해서는 다양한 영지식 기법 중에서

어떤 것을 사용하는 것이 맞는지, 그리고 현존하는 영지식 도구 중에서 어떤 것을 적용해

야 할지 아니면 직접 개발하는 것이 좋은지, 어느 부분부터 학습하는 것이 좋은지에 대한

<자료> 한양대학교 자체 작성

[그림 1] 프라이버시 보호가 필수적인 블록체인 응용들

Page 3: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

14 www.iitp.kr

지식이 필수적이다.

본 고에서는 영지식 증명에 대한 국제적인 연구 현황과 방향, 사용할 수 있는 도구,

그리고 국제 표준화 진행 상태에 대해서 정리하고자 한다.

II. 영지식 증명 구조

영지식 증명은 사전 정의된 연산에 대해 비 입력값은 공개하지 않으면서도 입출력값

의 관계에 해당하는 비 입력값을 알고 있음을 증명하는 암호 기술이다. 영지식 증명의

경우 임의의 정의된 연산을 만족하지 않는 입출력값 및 비 입력값의 경우에는 증명자가

어떠한 노력을 하더라도 검증을 통과하는 증명값을 만들 수 없다.

[그림 2]와 같이 증명자는 주어진 함수에 대해서 입력값과 비 입력값을 가지고, 출력

을 계산한다. 영지식 증명 알고리즘을 통해서 증명자는 해당 함수 및 입력값과 출력값의

관계를 증명하는 증명값을 만든다. 여기서 증명값은 특정한 수식을 만족하도록 하는 숫자

값이다. 검증자는 증명값을 가지고 함수, 입력, 출력의 관계가 맞는지 영지식 증명 확인

알고리즘을 통해서 확인한다. 이 과정에서 증명값에는 비 입력에 대한 정보가 전혀 담겨

있지 않기 때문에 이를 영지식 증명이라 부른다. 즉, 비 입력값은 증명자가 증명값을

만들 때만 필요하며, 증명값을 가지고 검증 시에는 비 입력값은 필요 없고 유출되지도

않는다. 증명의 크기 및 확인 알고리즘의 수행 시간이 함수를 직접 수행했을 때 걸리는 시간

<자료> 한양대학교 자체 작성

[그림 2] 영지식 증명 과정

Page 4: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 15

대비 현격하게 작은 경우(로그 정도의 증명 크기 및

확인 시간) 이를 간결(Succinct)이라 부른다.

[그림 3]과 같이 영지식 증명은 주어진 함수에

해당하는 회로와 주어진 회로에 대해서 입출력의

정당성을 증명하고자 하는 증명자(Prover)와 검

증하는 검증자(Verifier)로 이루어져 있다. 증명자

와 검증자는 보통 서로 공유하는 키를 가지는데

이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random

Reference String)와 SRS(Structured Reference String)로 나뉘게 된다. RRS는 랜덤

한 값을 기준으로 만드는 키이며 보통 해시함

수의 출력을 사용한다. SRS는 구조적인 성질을

가지고 있는 키이며, 키들 간에 대수적인 성질

이 있다. 기본적인 증명의 과정은 증명자와 검

증자 사이의 상호간의 통신 형태로 이루어진다.

이러한 상호 통신 형태의 증명 방법을 상호 증

명(Interactive Proof)이라 한다. [그림 4]와

같이 이 상호 증명 방식은 검증자가 랜덤한 질의값을 보내고 해당 질의값에 대해서 알맞은

답을 증명자가 보내는 과정으로 이루어진다. 즉, 질의한 값에 대해서 계속 맞는 답을 증명

자가 보낸다면 증명자는 확실히 답을 아는 것이라고 검증자가 믿을 수 있게 된다.

블록체인과 같은 실제 응용에 있어서는 증명자와 검증자가 상호 작용을 할 수 없기 때문

에 랜덤값을 검증자가 보내는 대신 해시함수를 사용하게 된다. 즉 증명자가 값을 검증자에

게 보내면 검증자가 랜덤값을 보내야 하는데 이 과정을 해시로 대체하는 것이다. 여기서

사용하는 해시함수는 SHA(Secure Hash Algorithm) 등의 해시 출력값으로부터 입력값

을 추측할 수 없는 암호학적 해시함수가 사용된다. 증명자의 입장에서는 해시의 출력값을

원하는 값으로 통제할 수 없기 때문에 해시의 출력값이 마치 자신에게는 랜덤값과 같이

보이게 된다. 이러한 방법을 피앗-샤미르(FS) 휴리스틱이라고 부르며, 많은 증명 방식들

의 경우 FS 휴리스틱을 활용하여 비상호적 증명 방식을 구현하고 있다.

영지식에서는 임의의 코드에 대해서 주어진 입력을 넣으면 해당 출력이 나오는 것을

<자료> 한양대학교 자체 작성

[그림 3] 영지식 증명 키 생성

<자료> 한양대학교 자체 작성

[그림 4] 영지식 증명 방법

Page 5: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

16 www.iitp.kr

보장한다. 임의의 코드(또는 함수)를 f라 하고, 입력/출력을 x라 하자. 입출력이 f에 맞는

경우에 x는 언어 L(f)에 속한다라고 이야기한다. 또한, 함수 f를 수행할 때, 비 입력이

필요할 수 있는데, 영지식 증명에서는 이를 비 입력(Witness)이라고 한다. w를 비 입력

이라고 하면, (x;w)가 L(f)에 속한다는 것을 w를 보여주지 않고 증명하는 것이 영지식

증명이다.

영지식 증명의 전체적인 과정은 크게 두 부분으로 나눌 수 있다. 먼저 주어진 함수에

대해서 산술 회로식으로 만드는 프론트엔드와 산술 회로식에 대해서 증명을 생성하는 백

엔드이다. 프론트엔드에서는 주어진 코드를 먼저 산술식으로 변환한다. 여기서 산술식이

라 함은 덧셈과 곱셈으로 식을 변환하는 것이다. 마치 하드웨어 설계의 경우 하드웨어

기술 언어(Hardware Description Language)로 기술된 코드가 하드웨어 합성기를 통

해서 논리 게이트로 변환되는 것처럼 상위수준 언어(High Level Language)로 주어진

임의의 식을 덧셈, 곱셈 두개의 게이트들로 만들어지는 산술 회로식으로 만든다.

백엔드의 과정은 회로 특화 영지식 증명법(Circuit Specific zk Proof)과 유니버셜

영지식 증명법(Universal zk Proof)에 따라서 다른 접근 방식을 가진다. 회로 특화 영지

식 증명법에서는 회로가 주어지면 주어진 회로에 맞는 키(SRS)를 만든다[5]. 유니버셜 영

지식 증명법에서는 회로에 상관없이 키(SRS 또는 RRS)를 미리 생성한다(Sonic, Plonk,

DARK, Stark). 회로 특화 영지식 증명법에서는 일반적으로 QAP(Quadratic Arithmetic

Program)라고 부르는 회로 표현 방식을 통해서 증명을 생성하고, 유니버셜 영지식 증명

법은 다항식 약정(Polynomial Commitment) 기법을 통해서 증명을 만들게 된다.

* R1CS 생성까지가 프론트엔드가 하는 일이며, 이 표현으로부터 증명을 생성하는 과정이 백엔드가 하는 일이다.<자료> 한양대학교 자체 작성

[그림 5] 피노키오 툴체인 흐름도

Page 6: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 17

III. 영지식 증명 기법 분류

1. 회로 특화 영지식 증명

앞장에서 설명한 영지식 증명의 백엔드 분류에 있어서 회로 특화 영지식 증명 방식은 많은 발전을 이루어 왔다. Pinocchio에서 처음으로 n개의 곱셈 게이트를 가지는 QAP 형태로 주어진 회로에 대해서 증명자는 n에 비례하는 시간에 증명을 생성할 수 있고, 검증자는 회로 크기에 상관없이 상수 시간 안에 검증이 가능해졌다[10]. Groth16은 이를 더 개선한 것으로 현재까지 가장 작은 크기의 증명을 생성하는 영지식 기법이다[5]. 이 기법에서는 증명의 크기가 3개의 (그룹) 원소이다. QAP 표현식은 각각의 회로식을 한 개의 곱셈을 가지는 형태로 나타낸다. 이러한 곱셈 게이트가 여러 개 있기 때문에 여러 곱셈식을 하나의 꼴로 나타내기 위해서 다항식을 사용한다. 즉, 이 다항식은 각 식의 위치에 해당하는 값을 반환하는 함수이다. 그리고 이러한 다항식에 대해서 증명자는 덧셈 및 상수배만이 가능한 선형 연산만하며, 따라서 증명자가 증명을 만드는 과정은 주어진 기본 다항식들을 선형 연산하여 증명을 만들게 된다. 검증의 경우에는 이렇게 선형 연산된 두 개의 다항식을 곱했을 때 결과 다항식이 나오는 것을 확인하는 것이다. 이렇게 선형 연산만이 되고, 단 한번의 곱셈 검증이 가능하도록 페어링 그룹을 사용한다. 페어링 그룹에서는 지수에 대한 덧셈과 상수배만이 가능하며, 지수에 대한 곱셈 검증을 한 번만 할 수 있다. Groth16은 시뮬레이션 추출(Simulation Extratability)을 제공하지 않기 때문에 시뮬레이션 추출을 제공하는 다양한 방식에 대한 연구가 진행되었으며[4],[8], 가장 최근에 KLO19에서는 Groth16과 동일한 증명 크기로 시뮬레이션 추출이 가능한 기법이 개발되었다[8]. 참고로 시뮬레이션 추출은 주어진 증명들로부터 새로운 증명을 만들 수 없는 것이 보장된다.

2. 유니버셜 영지식 증명

회로 특화 영지식 증명의 경우 주어진 회로에 대해서 각각 다른 SRS를 생성해야 하고,

생성과정에서 비 정보를 사용하는데 이 비 정보가 유출되면 증명을 조작하는 것이

가능하기 때문에 SRS 생성과정이 믿을 수 있어야 한다는 단점이 존재한다. 따라서 이를

Page 7: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

18 www.iitp.kr

해결하고자 하는 연구가 활발하게 진행되고 있다.

유니버셜 영지식 증명 기법은 회로에 상관없이 CRS를 만들어 두고, 회로가 주어진 경우

이에 대한 증명을 다항식 약정에 의해서 증명하는 방식으로 Sonic[9], Plonk[6], DARK

[3], Bulletproofs[1], Stark[2] 등이 있다.

유니버셜 영지식 증명은 다시 크게 두 가지 분야로 나눌 수 있다. 신뢰 주체가 필요한

SRS 기반 기법과 신뢰 주체가 필요 없는 RRS 기반 기법이다. [표 1]에서 KGZ10은 신뢰

주체가 필요한 SRS 기반인 반면[7], Bulletproofs와 DARK은 신뢰 주체 없이 증명값을

생성할 수 있는 RRS 기반 기법이다[1],[3]. 증명의 크기와 검증 시간이 상수가 걸리는

아주 효율적인 방법은 현재까지 SRS 방법으로만 가능하다.

SRS 기반 기법은 CRS로 SRS를 사용하며 페어링 그룹을 사용하며 SRS를 계속적으로

갱신할 수 있는 기법으로 다항식 약정은 KGZ10 기법을 사용하고 페어링 연산을 사용하

여 다항식 약정을 확인한다. 이 기법의 경우에 증명의 크기가 상수이고 검증 시간도 상수

시간이 걸리기 때문에 SRS 기반 기법의 경우 검증이 빠르며 증명의 크기도 상대적으로

매우 작다. KGZ10 기법의 다항식 약정에 대한 기법은 오래전에 개발되었으나 일반적인

회로를 다항식으로 매핑하는 기법들(Sonic, Marlin, Plonk)은 2019년도에 매우 활발하

게 개발되었다. 이 중에서 Plonk가 가장 작은 다항식을 필요로 하기 때문에 가장 증명

크기가 작은 기법이다. 따라서 현재 많은 블록체인 회사에서 Plonk 기법 기반 영지식

증명 도구를 개발하고 있다.

[표 1] 다항식 약정 알고리즘 비교 분석표

RRS 기반의 기법은 SRS와는 다르게 키 생성을 위한 신뢰기관을 필요로 하지 않는다.

RRS의 기법은 다시 크게 두 가지로 나뉘게 되는데 양자 저항성을 가지지 않는 대수 기반

기법과 양자 저항성을 가지는 해시 기반 기법이다.

먼저 대수 기반 기법으로 벡터 내적 연산을 지원하는 Bulletproofs[1]가 2016년도에

Scheme 신뢰 주체 필요성 증명 시간 검증 시간 증명 크기

KGZ10 [7] Yes EXP O(1)Paring

Bulletproofs [1] No EXP EXP log

DARK [3] No EXP logEXP log

<자료> 한양대학교 자체 작성

Page 8: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 19

개발되어 많은 블록체인 회사에서 차용하였다. 하지만 Bulletproofs의 경우에는 검증 시

간이 원래 회로 계산보다 더 오래 걸리기 때문에 검증 시간에 대한 성능 오버헤드가 매우

크며 따라서 현재는 앞에서 언급한 바와 같이 많은 회사에서 Bulletproofs를 Plonk로

전환중이다. 2019년도에는 RRS로 RSA나 class 그룹과 같은 그룹의 크기를 모르는 그룹

(Unknown Order Group)을 활용하여 다항식 약정을 수행하는 DARK[3]가 발표되었다.

DARK에서는 다항식 약정을 위해서 다항식의 변수에 매우 큰값을 할당하여 계산함으로

써 다른 차수의 계수가 분리되도록 하고, 계산된 큰 값을 작은 약정값으로 만들기 위해서

크기를 모르는 그룹으로 매핑한다. 다항식 약정 후 다항식 계수의 범위가 변수에 할당한

큰 값보다 작다는 것, 다항식의 차수가 특정 값 이하라는 것, 다항식 변수에 새로 할당한

값에 대한 다항식 계산 값이 처음 다항식 약정값과 일치한다는 것을 증명값으로 만들게

된다. 이 과정에서 다항식 차수의 로그개수 만큼의 새로운 다항식 약정값을 만들게 되며,

증명의 크기가 KGZ10이나 Bulletproofs에 비해서 10배 이상 증가하게 된다.

양자 저항성을 가진 기법으로 FRI(Fast Reed-Solomon Interactive Oracle Proofs)

에 기반한 Stark 기법이 있다[2]. 기존의 다항식 약정 기법의 경우에는 다항식 변수 x에

증명자가 알 수 없게 값을 할당하는 SRS 방식과 변수 x에 매우 큰 값을 할당하는 DARK

방식이 있었는데, FRI에서는 [그림 6]과 같이 다항식 변수 x에 알려진 여러 개의 값을

할당하여 다항식 값을 구하고, 그 값을 머클 해시 트리로 만들어서 루트에 해당하는 값을

검증자에게 전달하는 방식을 취한다. 검증자의 경우 다항식 변수 x에 앞에서 열거한 여러

개 중의 값 하나를 선택해서 다시 증명자에게 보내면 증명자는 다항식 값과 해시 트리의

보수 경로(copath)를 보냄으로써 검증자가 해당 다항식 값이 옳은 것을 확인할 수 있게

<자료> 한양대학교 자체 작성

[그림 6] FRI 프로토콜

Page 9: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

20 www.iitp.kr

하는 방법이다. 이러한 과정을 여러 번 하게 되면 높은 확률로 증명자가 맞는 다항식을

약정했다는 것을 보장할 수 있는 방식이다. FRI에서는 다항식 약정을 위해서 해시 함수만

을 사용하며 해시 함수는 현재까지 양자 저항성을 가지고 있기 때문에 FRI에 기반한 다항

식 약정 기법은 양자 저항성을 가지게 된다. FRI에서 약정한 함수가 저차수 다항식임을

증명하기 위해서 빠른 푸리에 변환(Fast Fourier Transform: FFT)과 유사하게 다항식을

쪼개는 방식을 사용한다. DARK와 유사하게 다항식을 두 개, 항의 수를 반으로 줄여가는

방식을 사용하며, 마지막 값은 상수가 나오는 것을 확인하는 방식이다. 최근에는 이를 좀

더 발전시켜서 DEEP-FRI(Domain Extending for Eliminating Pretenders FRI)가

나왔다. DEEP-FRI의 경우, 다항식 검사에 중간 함수를 도입하여 에러를 줄였으며 따라서

증명의 길이를 더 줄일 수 있는 기법이다.

3. 다항식 생성 기법

Groth16은 QAP(Quadratic Arithmetic Program) 방식을 채택한다[5]. QAP 방식

을 사용하는 경우, 회로 관계식은 회로의 내용과 증명에 쓰이는 값이 회로 관계식에 한꺼

번에 녹아있는 형태로 설계되기 때문에, 관계식의 크기가 가장 작다. 반면 Sonic과 Plonk

는 회로와 내용 증명에 쓰이는 값을 분리하여 증명하기 때문에 증명 크기가 Groth16에

비해 증가한다. 회로의 크기가 증가하는 것을 막기 위해 Plonk는 회로의 값들 간의 관계

<자료> Gabizon, Ariel, Zachary J. Williamson, and Oana Ciobotaru. PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. Cryptology ePrint Archive, Report 2019/953, 2019.

[그림 7] Plonk의 회로 표현식과 와이어 값 표현식

Page 10: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 21

를 순열 형태의 다항식으로 표현하였다. [그림 7]은 Plonk에서 회로를 표현하는 식을 나

타내고 있다. Plonk의 핵심 아이디어는 게이트 간의 입출력이 서로 연결되어 있다는 것을

효율적으로 나타내는 방법이다. 이 아이디어는 근본적으로 Stark[2]에서 사용한 산술화

기법을 차용하였으며, 이 산술화 기법을 여러 형태로 Plonk에 발전 적용시키고 있다.

4. 영지식 증명 선택 방법

지금까지 다양한 영지식 증명이 존재함을 살펴보았다. 정리하면 영지식 증명에 있어서

증명시간, 검증시간, 증명 크기 등이 중요한 경우에는 Groth16 또는 KLO19을 사용하는

것을 추천한다. 키 생성을 회로에 상관없이 독립적으로 미리 생성하고 싶은 경우에는

Plonk를 사용하여 회로로부터 다항식을 생성하고, KGZ10의 다항식 약정 방식을 사용하

면 된다. 키 생성을 하고 싶지 않은 경우(즉, RRS 키를 사용하고자 하는 경우)에는 Plonk

로 다항식을 생성하고, 다항식 약정은 DARK를 사용하면 된다. 마지막으로 양자 저항성을

갖기를 원하는 경우에서는 Plonk로 회로를 생성하고, 다항식 약정은 FRI 기법(Stark 기

법)을 사용하면 된다.

5. 영지식 증명 도구

아직까지 많은 영지식 증명 도구들은 회로 특화 기법에 대한 증명에 대해서만 도구들이

존재한다. 2019년 이후로 많은 새로운 기법들이 개발되었고, 이를 지원하는 도구들은 현

재 많은 학계, 산업계에서 개발 중에 있다. 활발하게 사용되는 백엔드 도구로는 libsnark

가 있으며, libsnark는 Groth16을 비롯한 다양한 영지식 기법을 지원하고 있다. 또한,

javascript 기반의 snarkjs도 Groth16, KLO19 등의 영지식 기법을 지원하고 있다.

libSTARK와 libiop는 Stark와 IOP 기반의 zk-SNARK를 지원하는 도구이다.

프론트 엔드 도구로는 java 기반으로 산술 회로를 직접 기술하고 함수처럼 불러서 쓸

수 있는 jsnark, circom이 있고, 이더리움에서 사용할 수 있는 Zokrates가 있다. 상위수

준의 언어를 사용할 수 있는 xjsnark도 있지만 아직 안정화되어 있지 않은 상황이며 상용

화 수준의 도구는 개발이 시급한 상황이다.

Page 11: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

22 www.iitp.kr

IV. 영지식 증명 국제 표준화 동향

영지식 증명에 관련된 국제 표준화가 2018년도부터 zkproof.org에서 진행중이다.

zkproof.org에는 영지식 관련 세계적인 학자와 기업들이 총망라해서 영지식 증명에 관련

된 표준화를 진행중이다. 매년 4월에 zkproof workshop을 개최하고 있으며, 표준화는

security, applications, implementation 세부분으로 나뉘어서 진행중이다. 1회 워크숍에

서는 표준화를 진행할 분야, 용어 등을 정의하였으며 2회부터 표준화 제안서를 받고 있다.

제안서 제출 후 표준화 커뮤니티의 리뷰를 엄격하게 거친 후 채택된 제안서에 대해서만

발표 기회를 가지며 채택된 제안서는 표준화 문서에 반영될 예정이다. 국내에서도 3회

표준화부터 참여하고 있으며 국내 제안서가 채택되었다.

V. 결론

영지식 증명은 블록체인의 다양한 활용을 위해서 필수적으로 도입되어야 하는 기술이

[그림 8] 영지식 표준화(zkproof.org) 지원 기업들

Page 12: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

ICT 신기술

정보통신기획평가원 23

다. 현재 영지식 증명은 하루가 다르게 매우 빠르게 발전하는 분야이며, 더 빠른 증명

생성, 더 빠른 검증, 더 작은 증명 크기를 가지는 영지식 기법의 개발뿐만 아니라, 응용

특화된 기법, 영지식 기법을 응용에 적용하기 위한 기반 소프트웨어 도구 개발 등 많은

부분이 아직 미개발 상태로 남아있는 분야이다. 비단 블록체인뿐만 영지식 증명 자체로도

프라이버시 보장 데이터 응용에 활용할 수 있고, 또한 한번 계산한 결과에 대해서 다시

계산하지 않게 함으로써 성능향상에도 적용할 수 있다. 이러한 장점에도 불구하고, 영지식

증명 기법 자체는 해당 분야 전문가가 아니면 아직은 활용하기 어려운 면이 있다. 하지만

영지식 표준화가 진행되고 있고 다양한 기업에서 편리하게 사용할 수 있는 도구를 개발

중이므로 수년 내에 다양한 곳에서 영지식 증명을 활용한 소프트웨어들이 만개할 것으로

기대한다. 본 고를 통해서 영지식 기법의 현황과 발전 추세 등에 대한 이해에 도움이 되었

기를 바란다.

[ 참고문헌 ]

[1] Bunz, Benedikt, et al., “Bulletproofs: Short proofs for confidential transactions and more,” 2018 IEEE Symposium on Security and Privacy(SP). IEEE, 2018.

[2] Ben-Sasson, E., Bentov, I., Horesh, Y., & Riabzev, M. “Scalable, transparent, and post- quantum secure computational integrity,” IACR Cryptology ePrint Archive 46, 2018.

[3] Bunz, Benedikt, Ben Fisch, and Alan Szepieniec. “Transparent snarks from dark compilers,” Cryptology ePrint Archive, Report 2019/1229, 2019.

[4] Jens Groth and Mary Maller, Snarky signatures: Minimal signatures ofknowledge from Simulation-Extractable SNARKs. CRYPTO 2017 - 37th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 20-24, 2017, Proceedings, Part II, 2017, pages581-8211;612.

[5] Groth, Jens, “On the size of pairing-based non-interactive arguments,” Annual international conference on the theory and applications of cryptographic techniques, Springer, Berlin, Heidelberg, 2016.

[6] Gabizon, Ariel, Zachary J. Williamson, and Oana Ciobotaru. PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. Cryptology ePrint Archive, Report 2019/953, 2019.

[7] Kate, Aniket, Gregory M. Zaverucha, and Ian Goldberg, “Constant-size commitments to polynomials and their applications,” International Conference on the Theory and Application of Cryptology and Information Security, Springer, Berlin, Heidelberg, 2010.

[8] Kim, Jihye, Jiwon Lee, and Hyunok Oh, Qap-based simulation-extractable snark with a

Page 13: 영지식 증명 연구 동향 · 2020-06-30 · 이 키를 CRS(Common Reference String)라 부른다. 이 CRS는 또 크게 RRS(Random Reference String)와 SRS(Structured Reference

주간기술동향 2020. 7. 1.

24 www.iitp.kr

single verification. Cryptology ePrint Archive, Report 2019/586, 2019.[9] Maller, Mary, et al., “Sonic: Zero-knowledge SNARKs from linear-size universal and

updatable structured reference strings,” Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, 2019.

[10] Parno, B., Howell, J., Gentry, C., & Raykova, M., “Pinocchio: Nearly practical verifiable computation,” In 2013 IEEE Symposium on Security and Privacy, 2013, pp.238-252.