본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

[보안동향] ‘니가 왜 거기서 나와?’ 블록체인 속 ‘영지식증명’

2022.04.22

알리바바의 동굴이라는 수수께끼 같은 이야기가 있습니다. 찰리와 스미스, 두 사람은 동굴 입구에서 만나서 동굴을 여는 주문을 공개하지 않은 채로, 동굴 안 비밀 문을 통과해서 다시 만나 주문을 알고 있다는 사실을 증명을 하는 이야기로, 장 자크 키스케다(Jean-Jacques Quisquater)의 논문, 「어린이들을 위한 영지식증명」에서 동굴의 비유를 들어 설명한 영지식증명에 관한 이야기입니다.

필자의 25년 전 기억 속에 오랫동안 묵혀 있던 이 이야기를 어느 날 우연히 블록체인 강의에서 듣게 되었습니다. “블록체인과 영지식증명? 왜?”, “니가 왜 여기서 나와!”, 유행가요의 제목과 같은 느낌으로 영지식증명을 새삼스레 흥미롭게 바라보게 되었습니다. 블록체인 채굴과정의 핵심인 누가 얼마의 새 화폐를 받을지 결정하는 합의 알고리즘의 활용 기술로 영지식증명이 재조명 받게 된 것이었습니다.

지금부터 작업증명(Proof of Work, PoW), 지분증명(Proof of Stake, PoS) 등의 블록체인 분산 네트워크가 합의를 얻는 방식(합의 알고리즘)과 블록체인 속 영지식증명 그리고 영지식증명과 관련한 앞으로의 과제에 대하여 간략하게 살펴보겠습니다.

블록체인 합의 알고리즘

블록체인의 합의 알고리즘이란 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말합니다. 합의 모델, 합의 방식, 합의 메커니즘 또는 합의 프로토콜이라고도 합니다. 블록체인 분산 네트워크에서는 모든 참여자들이 동일한 데이터를 복사하여 분산 저장하기 때문에 원본과 사본의 구별이 없고, 통일된 의사결정을 내릴 수 있는 권위 있는 중앙(center)이 존재하지 않습니다. 이런 상황에서 합리적이고 효율적인 의사결정을 내릴 수 있는 다양한 합의 알고리즘이 개발되었습니다. 대표적인 합의 알고리즘인 작업증명 방식과 지분증명 방식을 살펴보겠습니다.

작업증명 기반 합의 알고리즘은 Satoshi Nakamoto의 논문 “Bitcoin: A Peer-to-Peer Electronic System’에 처음 소개된 메커니즘으로, 블록 생성을 하고자 하는 노드들이 특정한 해시값을 찾는 연산을 수행하여 특정한 난이도의 작업을 수행했음을 증명하는 것입니다. 채굴자들은 해시값을 찾기 위해 경쟁하고, 특정 채굴자가 목푯값에 해당하는 해시값을 찾는 데 성공하면 새로운 블록이 생성됩니다. 작업증명에서 ‘작업’이란 ‘채굴’에 이르기까지 연산 과정을 뜻합니다. 

채굴자들은 컴퓨터로 복잡한 수식을 풀어 조건에 맞는 해시값을 찾는 과정을 반복하고, 이 경우 모든 노드들이 찾아낸 해시값을 검증하고 승인하는 과정을 거쳐 블록에 거래 내역을 저장합니다. 모든 노드들의 승인을 거쳐야 하기 때문에 거래 내역을 속이기가 힘들다는 장점이 있습니다. 이러한 점에서 작업증명(PoW) 합의 알고리즘은 블록체인이 가지는 탈중앙화라는 본질을 잘 살린 합의 방식입니다. 

그러나 이런 과정 때문에 거래 처리 속도가 늦어진다는 한계가 있고, 채굴에 필요한 에너지 소비가 심한 단점을 가지고 있습니다. 이 때문에 일정 조건에 따라 블록 생성에 참여하는 노드들을 제한하는 지분증명(PoS) 방식이 등장했습니다. 작업증명 방식을 사용하는 디지털 자산에는 비트코인, 이더리움, 라이트코인, 비트코인캐시, 비트코인골드, 모네로, 지캐시, 시아코인, 불웍, 에이치닥 등이 있습니다.

지분증명(PoS) 방식은 해당 디지털 자산을 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 방식입니다. 채굴 과정이 필요 없는 지분증명은 의사 결정 권한을 디지털 자산 보유량에 비례하여 지급하는 방식이기 때문에 디지털 자산을 많이 보유하고 있는 노드일수록 블록 생성에 참여할 수 있는 기회가 더 많아집니다. 블록 생성에 따른 보상도 역시 디지털 자산 보유량에 비례합니다. 

지분증명 방식은 모든 노드들의 승인을 거치지 않아도 되기 때문에, 작업증명 방식보다 처리 속도가 빠르고, 전력 소비를 줄일 수 있습니다. 그러나 이 방식은 많은 디지털 자산을 가지고 있을수록 더 많은 보상을 받는 구조이기 때문에, 탈중앙화와 평등을 추구하는 블록체인의 본질에서 벗어나 ‘부익부 빈익빈’을 초래한다는 논란을 불러오고 있습니다.

큐텀(QTUM), 피어코인(Peercoin) 등이 지분증명 방식을 사용하고 있고, 스트라티스(Stratis)는 작업증명 방식에서 지분증명 방식으로 변경하였습니다. 또한 이더리움 재단은 기존 합의 방식인 작업증명 방식을 지분증명 방식으로 전환하기 위한 ‘캐스퍼(Casper)’ 프로젝트를 진행하였고, 2020년 12월 ‘이더콘 한국 2020’을 통해 발표한 이더리움2.0 개발 로드맵에 따라 2022년에는 작업증명 방식을 벗어나 지분증명 방식으로 전환하게 될 예정입니다.

영지식 증명의 개념

영지식증명은 1985년 Shafi Goldwasser, Silvio Micali, Charles Rackoff의 논문 “The Knowledge Complexity of Interactive Proof-Systems”에서 처음 소개된 개념입니다. 현대 암호학에서는 영지식증명을 다자간의 비대면 통신 프로토콜에서 정보보호 기능을 제공하기 위해 적용하는 암호 프로토콜 중 매우 중요하고, 구현하기 까다로운 고급 암호 프로토콜의 한 종류로 취급하고 있습니다. 

디지털 자산(암호화폐)에서 영지식증명이 처음 적용된 것은 2013년 존스홉킨스 대학교의 연구진들이 실행한 제로코인(ZeroCoin)이었습니다. 제로코인은 2014년 제로캐시(Zero Cash)라는 이름을 거쳐, 2016년 지캐시(Zcash)라는 이름으로 변경되었습니다.

서두에 잠시 소개했던 동굴의 비유를 들어 영지식증명의 개념을 좀 더 자세히 소개하겠습니다. 알리바바 동굴(Alibaba’s cave)의 비유는 영지식증명의 3가지 조건인 완전성, 건전성, 영지식성을 만족시킴과 동시에 영지식증명을 이해하기 쉬운 문제로 설명한 아주 좋은 사례입니다.

찰리(Charlie)는 증명자(prover)이고 스미스(Smith)는 검증자(verifier)라고 가정하겠습니다. 찰리와 스미스 모두 비밀 문이 있는 동굴 가까이에 있습니다. 둥근 고리 형태의 동굴에는 A와 B라는 길이 있으며 그사이에는 도어락이 설치된 비밀 문이 있습니다. 찰리는 스미스에게 비밀 문의 암호를 알고 있다고 말했습니다. 하지만 찰리는 스미스를 포함한 다른 누구에게도 그 암호를 밝히고 싶지 않습니다. 이에 대해 스미스는 믿을 수 없다며 찰리에게 암호를 알고 있음을 증명하라고 합니다. 

즉, 검증자는 증명자에게 직접적으로 설치된 도어락의 비밀번호를 물어보지 않고 증명자가 비밀번호를 알고 있다는 명제가 참인지 확인하려 합니다. 이 조건문이 참인지를 확인하기 위해 다음 방법을 사용할 수 있습니다. 이 과정을 통해 찰리(증명자)는 스미스(검증자)에게 자신이 알고 있는 비밀번호를 알려주지 않고도 자신이 비밀번호를 알고 있음을 증명할 수 있습니다.

[그림 1] 영지식증명-알리바바 동굴의 비유

① 찰리(증명자)가 먼저 동굴에 들어간 다음, 도어락 근처로 이동한 후 스미스(검증자)를 동굴 안으로 부릅니다.
② 스미스(검증자)는 A와 B의 갈림길에 서서 찰리(증명자)에게 특정 길로 나오라고 지시합니다.
③ 찰리(증명자)는 검증자가 지시한 길로 나옵니다.

이 과정을 한 번만 보았을 때는 증명자가 비밀번호를 정말로 알고 있어서 검증자가 지시한 길로 나왔는지 확신하기 어렵습니다. 왜냐하면 찰리(증명자)가 우연히 올바른 길로 나왔을 수도 있기 때문입니다. 하지만 위 과정을 일정 횟수 이상 반복하여도 항상 찰리(증명자)가 스미스(검증자)의 지시대로 행동했다면 찰리(증명자)는 스미스(검증자)에게 자신이 비밀번호를 알고 있다는 사실을 납득시킬 수 있습니다. 

예를 들어 위와 같이 20번만 반복해도, 찰리(증명자)가 비밀번호를 모르면서도 스미스(검증자)의 지시를 모두 따를 수 있는 확률은 100만분의 1 이하가 됩니다. 만약 이 과정을 40회 반복하게 되면, 우연히 비밀번호를 맞출 확률은 1조분의 1 이하가 됩니다. 1회가 아니라, 40회 이상의 반복을 통해 우연성을 제거하고, 검증 대상 명제를 확률적으로 참이라고 증명할 수 있게 됩니다.

이 과정을 영지식증명의 3가지 조건에 대입시키면 다음과 같습니다. 

– 완전성(completeness) : 위 실험을 여러 번 수행하는 경우에도 증명자가 검증자의 요구를 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 납득할 수 있다.
– 건전성(soundness) : 증명자가 사실은 비밀번호를 모르지만 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다.
– 영지식성(zero-knowledge) : 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실을 납득했지만 비밀번호가 무엇인지는 알지 못한다.

이 실험에서 증명자는 오직 검증자에게만 자신이 비밀번호를 안다는 사실을 증명할 수 있습니다. 이 실험을 관찰하는 다른 제3자들은 증명자가 정말로 비밀번호를 알고 있는지 확신할 수가 없습니다. 왜냐하면 제3의 관찰자는 증명자와 검증자가 사전에 미리 짜고 그 순서대로 동굴의 문을 열고 나왔을 수도 있기 때문입니다. 

하지만 검증자는 자신이 정말로 랜덤하게 문을 지정했다는 사실을 알고 있기 때문에, 증명자가 비밀번호를 알고 있다고 확신할 수 있게 됩니다. 이처럼 영지식증명은 오직 해당 증명 과정에 참여한 증명자와 검증자만 사실을 확신할 수 있으며, 이 증명을 관찰하는 제3자는 증명자가 정말로 해당 내용을 알고 있는지에 대한 정보를 확신할 수 없는 특징이 있습니다.

블록체인 속 영지식증명

영지식증명은 정보를 공개하지 않고 충분한 반복을 통해 확률로써 증명합니다. 이러한 특징을 가진 기술이 블록체인 산업에서는 어떻게 활용될 수 있는지 살펴보겠습니다.  

영지식증명은 현재 개인정보보호를 중요시하는 프라이버시 코인(privacy coin)에 주로 활용되고 있습니다. 최소한의 정보만 알릴 수 있는 영지식증명의 특징 때문에 거래자의 프라이버시를 보호할 수 있습니다. 거래내역 자체는 누구에게나 공개된 블록체인에 게시되지만, 거래 상대자의 신원과 거래 금액은 암호화되기 때문에 기밀성이 유지될 수 있습니다. 

즉, 영지식증명 기술을 활용하여 거래 금액을 드러내지 않는 프라이버시 보호 기능과 당사자들이 서로의 신원을 확인하지 않고도 디지털 자산을 교환할 수 있게 해주는 기능인 거래의 익명화가 가능하게 되었습니다.

그런데 여기서 채굴자는 어떻게 거래의 유효성을 검증할 수 있을까요? 일반적으로 블록체인에서 채굴자는 거래 내역과 전자 서명의 내용을 보고 거래 유효성을 검증하는데 영지식증명은 이러한 정보를 모두 암호화하고, 채굴자(혹은 검증자)는 기존 방식으로는 거래 유효성을 검증할 수 없게 됩니다.

드라마 스토리에 비유를 들어 설명 드리면, 자식을 둔 주인공이 부인에게 헤어질 때 검을 둘로 조각내서 한쪽만 줍니다. 그리고 훗날 자식이 본인에게 찾아오려고 하면 쪼개진 반쪽 검을 자식에게 주라고 말합니다. 이유는 주인공이 쪼개진 반쪽 검을 서로 맞춰 자식 여부를 확인할 수 있기 때문입니다. 여기서 영지식증명과 같이 접근할 수 있습니다. 

첫째는 자식은 본인이 자식이라고 말하지 않고(신원을 밝히지 않고) 반쪽짜리 검만 건넬 수 있습니다. 둘째는 확률적으로 서로 다른 쪼개진 검이 일치할 확률이 매우 낮습니다. 이로써 아들의 신분을 밝히지 않고, 쪼개진 반쪽 검을 하나로 맞추는 과정을 통해 거래의 유효성(반쪽 검을 가진 두 사람은 친자관계)이 검증됩니다. 

앞의 합의 알고리즘에서 언급했듯이, 2016년 발표된 지캐시(Z-Cash)가 영지식증명을 활용하여 디지털 자산의 거래 정보(거래자 신원 및 거래금액)를 익명화하였습니다. 지캐시는 영지식 스나크(zk-SNARKs)라는 알고리즘을 개발하여 거래 내역과 전자 서명을 서로 대조해 진위를 판별할 수 있게 함으로써, 검증과 동시에 거래 내역 익명화를 구현하였습니다. 

한편 이더리움 진영에서 2017년 10월 진행되었던 이더리움(Ethereum) 로드맵 4단계 중 3단계인 메트로폴리스 단계로 가기 위한 비잔티움 하드포크에도 영지식증명 기술이 적용되었습니다. 

지캐시 등의 사례를 살펴보면 영지식증명은 정보를 익명화하면서도 검증할 수 있는 특징을 제공하고 있습니다. 이는 개인 정보 보호 관점에서 매우 유용하여, 최근 블록체인 기반 인증인 ‘탈중앙(분산) 신원 인증’에 적용하려는 시도들이 많아지고 있습니다. 

탈중앙(분산) 신원 인증은 인증 중개 기관을 블록체인으로 대체하는 기술입니다. 현재의 인증시스템을 보면, 최초의 인증 시 제공 의무 대상인 개인 정보가 과도하다고 느낄 수 있습니다. 주민등록번호를 포함한 증빙서류를 제3자에게 노출해야 합니다. 탈중앙(분산) 신원 인증과 영지식증명을 결합하면 그럴 필요가 없어집니다. 제3자에게 개인 정보를 제공하지 않고 본인임을 입증할 수 있게 됨으로써, 개인정보보호 관점에서 중요성이 더욱 부각될 것으로 보입니다.

앞으로의 남은 과제

지난 1월 코인데스크 코리아(한겨레)에 게시한 고려대 김승주 교수의 칼럼에 따르면, 영지식증명은 구현하기 매우 까다로운 기술이며, 매우 엄격한 수학적 증명을 요구하기 때문에 시스템이 복잡해질 수 있고, 시스템 설정이 조금만 바뀌어도 영지식증명이 유지되지 못하는 경우가 허다함을 경고하고 있습니다. 

또한 대표적인 지케이 스낙스(zk-SNARKs) 영지식증명은 시스템 효율화를 위해 초기 시스템 환경 설정 단계에서 중앙의 신뢰 기관(TTP: Trusted Third Party)이 필요한 점을 지적하며, 이는 불가피한 선택일지 모르지만 탈중앙화라는 블록체인의 핵심 가치와는 배치된다는 의견을 제시하였습니다. 이와 함께 영지식증명만이 블록체인 개인정보보호를 위한 유일한 솔루션이 아님을 함께 이야기하고 있습니다. 

필자는 이와 같은 전문가의 우려에도 불구하고 블록체인의 고질적 문제 해결을 위해 영지식증명 기술이 핵심적인 역할을 해낼 것이라 예상합니다. 이와 같이 긍정적인 전망을 하는 이유는 2018년부터 zkproof.org를 중심으로 하는 영지식 증명에 관련된 국제 표준화 및 관련 기술 개발이 학계와 기업에서 활발하게 진행 중이기 때문입니다.

zkproof.org는 영지식 관련 세계적인 학자와 기업들이 총망라해서 영지식 증명에 관련된 표준화를 진행하며, 매년 4월 zkproof workshop을 개최하고, security, applications, implementation 세 부분으로 나뉘어서 표준화를 진행중입니다. 국내에서도 3회 표준화부터 참여하고 있습니다. 

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

현재 더 빠른 증명 생성, 더 빠른 검증, 더 작은 증명 크기를 가지는 영지식증명 기법 개발이 활발하게 진행되고 있지만, 이러한 기법을 응용에 적용하기 위한 소프트웨어 도구 개발 등은 아직 미개발 상태로 남아있는 분야입니다. 그럼에도 불구하고 머지않아 표준화 및 기술 구현 노력 등이 큰 진전을 이루어, 전문가만이 활용 가능한 기술이 아닌, 다양한 서비스 개발을 시도하는 일반 개발자들도 영지식증명을 쉽게 활용할 수 있는 시기가 도래할 것이라 기대합니다.

[참고문헌]

S. Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” Oct. 2008.
임종철 외 3명 “블록체인과 합의 알고리즘”, ETRI, 2018.
유성민, 탈중앙화 신원 인증의 새 패러다임 제시한 ‘ZKP’, 한경비즈니스, 2021.4.
김승주 교수(고려대), “영지식증명은 블록체인의 만능 열쇠가 아니다.”코인데스크 코리아, 2021.1.
류재철 교수(충남대), “DID와 영지식증명”, 2020.
오현옥 교수(한양대), “영지식 증명 연구 동향”, 주간기술동향, 정보통신기획평가원, 2020.7.
위키해시넷, 영지식증명, 2021.1.


글 ㅣ LG CNS 사이버시큐리티팀 전경화 책임

챗봇과 대화를 할 수 있어요