영지식증명이란 무엇인가 — 답을 보여주지 않고 맞다는 것만 증명하기

영지식 증명이란 무엇인가 – “나는 성인이다”라는 사실을 증명하고 싶은데, 생년월일이나 신분증은 절대 보여주고 싶지 않다면 어떻게 해야 할까요. 영지식증명(Zero-Knowledge Proof)은 바로 이런 상황을 수학적으로 풀어내는 기술입니다. 레이어2 글에서 ZK 롤업을 다루며, 신원인증 글에서 프라이버시 이야기를 하며 이미 몇 번 언급했던 그 개념을 이번엔 제대로 파고들어 봅니다.

영지식증명이란
어떤 사실이 참이라는 것을, 그 사실의 구체적인 내용은 전혀 드러내지 않고 증명하는 암호학 기법입니다. “영지식(Zero-Knowledge)”이라는 이름 자체가 핵심을 말해줍니다. 증명을 받는 쪽은 그 주장이 참이라는 것 외에는 아무 정보도 얻지 못합니다. 1980년대 컴퓨터과학자들이 이론적으로 고안한 개념인데, 블록체인 시대에 들어 실용적인 기술로 폭발적으로 활용되기 시작했습니다.

직관적인 비유 — 동굴 이야기
가장 유명한 설명은 동그란 동굴 비유입니다. 원형 동굴 안쪽 깊숙한 곳에 비밀 문이 있고, 그 문은 특정 주문을 알아야만 열립니다. 앨리스가 이 주문을 알고 있다는 걸 밥에게 증명하고 싶지만, 주문 자체는 알려주고 싶지 않습니다. 앨리스는 동굴 입구에서 왼쪽이나 오른쪽 통로 중 하나를 골라 들어갑니다. 밥은 바깥에서 기다리다가, 앨리스가 어느 쪽으로 들어갔는지 보지 못한 채로 “왼쪽으로 나와라” 또는 “오른쪽으로 나와라”라고 외칩니다. 앨리스가 주문을 안다면 어느 쪽에서 나오라고 하든 항상 성공적으로 나올 수 있습니다. 이 과정을 여러 번 반복하면, 앨리스가 매번 우연히 맞힐 확률은 기하급수적으로 낮아지고, 밥은 앨리스가 정말 주문을 알고 있다고 확신하게 됩니다. 그러면서도 주문이 무엇인지는 끝까지 모릅니다.

블록체인에서 왜 중요한가
크립토 세계에서 이 기술이 쓰이는 방식은 크게 두 갈래입니다. 첫 번째는 확장성입니다. ZK 롤업은 레이어2에서 처리한 수천 건의 거래가 모두 올바르다는 것을, 그 거래 내역을 하나하나 다시 검증하지 않고도 하나의 증명으로 압축해서 이더리움에 제출합니다. 이더리움은 그 증명만 확인하면 되니 처리 속도가 훨씬 빨라집니다. 두 번째는 프라이버시입니다. 블록체인은 기본적으로 모든 거래 내역이 공개됩니다. 지갑 주소, 거래 금액, 거래 상대방까지 누구나 볼 수 있습니다. 영지식증명을 쓰면 “이 거래는 유효하다”는 사실만 증명하고 구체적인 금액이나 잔고는 감출 수 있습니다. Zcash 같은 프라이버시 코인이 이 방식으로 거래 금액을 숨깁니다.

신원인증에서의 활용
앞선 신원인증 글에서 다룬 딜레마 — 규제상 신원을 확인해야 하는데 프라이버시도 지키고 싶다는 문제 — 를 영지식증명이 풀어줄 수 있습니다. “나는 이 프로젝트가 요구하는 국적 요건을 충족한다”는 사실만 증명하고 여권 전체를 공개하지 않아도 됩니다. “나는 특정 금액 이상의 자산을 보유한 적격 투자자다”라는 사실만 증명하고 정확한 자산 규모는 감출 수도 있습니다. 신원 확인과 프라이버시가 서로 배타적이지 않을 수 있다는 가능성을 이 기술이 열어주고 있습니다.

마치며
영지식증명은 “믿게 만들되 보여주지는 않는다”는, 얼핏 모순처럼 들리는 일을 수학으로 실현한 기술입니다. 확장성 문제와 프라이버시 문제라는, 블록체인이 오랫동안 씨름해온 두 가지 숙제를 동시에 풀어낼 열쇠로 주목받는 이유가 여기에 있습니다.

이 글이 도움이 되셨다면 북마크해두세요. Web3와 크립토의 핵심 개념들을 쉽게 설명하는 글을 계속 업로드할 예정입니다.

댓글 남기기