보안 / 블록체인

영지식 증명과 함께 블록체인의 미래로 향하는 방법

Matthew Tyson | InfoWorld 2022.08.08
ZKP 프로토콜로 알려진 영지식 증명(Zero-knowledge Proof)은 송신자와 수신자 간 정보 교환을 최소화하면서 사실을 확립하는 시도이다. 영지식 증명은 암호학에서 인증 과정의 정보 전송을 제한하기 위해 고안되었다. 창시자는 컴퓨터를 이용한 증명으로써 정보 및 지식의 이동을 연구했다. 영지식 증명은 당시 새로운 연구 분야를 도입하는 데 있어 중요한 발전이었다. 오늘날에도 웹3와 블록체인으로 범위를 늘려 탐구되고 있다.
 
ⓒ Getty Images Bank
 

증명 시스템의 지식 복잡성

영지식 증명의 더 정확한 이름은 지식 인증 증명일 것이다. 이 개념을 제안한 최초의 논문은 1980년대 후반에 여러 종류로 나타났다. 증명 시스템에 관련된 지식 복잡성을 다룬 논문들은 다음과 같은 질문을 던졌다. 누군가가 상대방에게 어떤 진술을 증명할 때, 전송해야 하는 최소한의 정보는 무엇일까?

이때 효율적 검증을 지원하면서 정보의 흐름을 이해하고 통제하려 노력하고 있다는 우리의 개념적 북극성을 명심해야 한다.
 

영지식 증명 vs. 비대칭 암호화

영지식 증명의 개념은 암호학에서 새로운 개념적 영역 탐구의 시기인 70년대와 80년대에 등장하였다. 이는 비대칭 암호화가 등장한 배경과 같다. 일부 ZKP 프로토콜은 디피-헬먼 키 교환이나 RSA 암호화 알고리즘과 유사한 일방향 함수(혹은 트랩도어 함수)로 소인수분해를 사용하기도 한다.

비대칭 암호화 사용의 주요 목표는 송신자와 수신자 간 공유 비밀을 형성하는 것이다. 그러나 ZKP의 목표는 관련 없는 정보를 밝히지 않으면서 주장을 만드는 것이다. 비대칭 암호화에서 송신자와 수신자는 비밀 번호를 공유하지만, ZKP에서는 증명자가 번호를 누설하지 않고 비밀번호를 가지고 있음을 증명한다.

ZKP가 블록체인에서 더 많이 사용되고 있는 것 놀라운 일이 아니다.
 

블록체인과 웹3에서의 ZKP

내재된 실증 데이터를 공개하지 않고 진술이나 클레임을 증명할 수 있는 능력에는 다양한 용도가 있다. 한 가지 예로, ZKP는 기존의 인증 애플리케이션과 함께 사용하는 것이 충분히 가능하다. 비밀번호의 실제 평문을 밝히지 않으면서 비밀번호를 가지고 있음을 증명할 수 있다면, 모든 공격 벡터를 제거할 수 있다.

암호 인증에 쓰이는 ZKP는 이제 막 발을 내딛는 단계에 있다. 그러나 오늘날 잘 알려진 기본 모델을 실제로 바꾸지는 않는다. 이러한 인증 방식이 작동하려면 여전히 사용자가 상호작용하는 서비스의 중앙 서버에 암호를 전송하고 저장해야 한다. 더욱 혁신적인 접근을 위해서는 애플리케이션 보안 시스템 설계에 ZKP를 통합하면 어떤 일이 발생할지 고려해보아야 한다. 이 경우, 기존의 인증 방식을 대체할 방법을 찾을 수 있다. 만약 정부와 은행이 중요 진술 인증을 위한 암호화 키를 발행하는 역할을 담당한다면, 사용자는 ZKP 프로토콜을 사용하여 클레임을 증명할 수 있다.

조금 더 고차원적인 예로, 정부기관이 여권의 일부로 키를 발급할 경우 ZKP는 여권번호나 이름을 밝히지 않고 시민권을 증명할 수도 있다. 조금 더 해싱하면 ZKP를 나이 같은 특정 클레임을 증명하기 위해 사용할 수 있다.

이러한 종류의 기능은 블록체인 사용자가 이미 암호화 키를 보유하고 있으며 사용법을 알고 있기 때문에 web3에 매우 적합하다. 게다가, ZKP는 블록체인의 분산 신원증명에서 기존의 웹2 애플리케이션과 함께 인증하거나 별도로 인증하는 등의 신원 및 기타 데이터 인증을 허용한다. 사용자에게 개인키를 통해 은행 명세서 또는 신용 점수에 대한 영지식 증명을 보여주는 방법을 제공하는 것은 새로운 종류의 온체인 금융 기능을 가능하게 한다.

결론적으로 ZKP는 사용자 데이터 제어 손실, 해킹에 대한 사용자 정보 노출 및 사용자 데이터의 합의되지 않은 수익 창출 같은 현재 인증 모델의 단점을 최소화한다.
 

ZKP의 동작 방법

영지식 증명 시스템에서, 한 당사자(증명자)가 다른 당사자(검증자)에게 정보를 소유하고 있다는 사실을 제외한 모든 것을 밝히지 않고 증명자가 그 정보를 소유하고 있음을 증명하는 것이다. 최초 ZKP 논문의 저자는 연결 그래프의 모든 노드를 방문하는 그래프 유형인 해밀턴 그래프의 예시를 사용했다.

증명자가 이러한 그래프를 소유하고 있음을 증명하는 단순한 접근법은 그래프 자체를 전달하는 것이다. 그러나 이 접근법은 증명자가 그래프를 소유하고 있다는 사실 이상의 많은 정보를 누설한다. ZKP 고안자의 말에 따르면, 이것은 “단일 비트 해밀턴/비 해밀턴 접근법 보다 많은 지식을 포함한다.”

검증자가 특정한 선과 점에 대한 정보를 반복적으로 질문하고 증명자가 응답하는 시나리오를 상상해볼 수 있다. 만약 증명자가 충분히 유효한 응답을 제공하면, 실제로 해밀턴 그래프를 소유하고 있을 가능성이 높아지는 것이다. 그러나 그래프 자체는 전송하지 않아도 된다.
 

ZKP에 기반한 사고 실험

공개 키 암호화에서 행위자는 예전부터 앨리스, 밥 그리고 이브, ZKP에서 증명자는 페기이고 검증자는 빅터라고 가정하자.

페기가 2개의 버튼이 있는 방을 만들었다고 해보자. 페기는 버튼이 작동하고 있다는 주장을 확인하기 위해 빅터를 초대한다. 증거는 한 쪽 버튼을 혹은 다른 버튼을 누르면 페기가 알 수 있다는 것이다. ‘영지식’ 방식으로 주장을 증명하려면 페기는 빅터와 다른 방에 있어야 한다. 페기는 빅터가 무엇을 하고 있는지 알 수 없지만, 다른 버튼이 눌리면 알 수 있고 보이는 것을 빅터에게 전할 수 있다. 페기는 버튼에 따라 다른 색깔로 빛나는 불빛을 볼 수 있을 것이다. 그림 1은 실험 구도를 그림으로 나타냈다.

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.