매일 업데이트
2023-09-27 08:55 10 min

블록체인의 영지식 증명(ZKP) 설명

점점 더 감시가 일상화되는 세상 속에서, 여러 기관들은 사람들의 정보를 지속적으로 추적하고 있습니다. 이러한 상황은 개인 정보 보호에 대한 우려를 증폭시키며, 새로운 기술적 해법이 절실히 요구됩니다.

블록체인은 분산 원장 기술로도 알려져 있으며, 우리가 기존에 해오던 대부분의 방식에 혁명을 가져오는 분산 시스템입니다. 이 기술은 상당한 진전을 이루었지만, 아직 충분하지 않다는 의견이 많습니다.

최근에는 '영지식 증명(Zero-Knowledge Proof, ZKP)'이라는 새로운 기술이 등장하여 주목받고 있습니다. ZKP라는 용어를 들어본 적은 있지만, 그 배경이나 작동 원리에 대해 잘 모른다면, 이 글이 좋은 안내가 될 것입니다.

영지식 암호화는 보안을 강화하는 최고의 프로토콜 중 하나로 여겨지지만, 과연 이것만으로 충분할까요? 이것이 우리가 오랫동안 기다려온 궁극적인 해결책이 될 수 있을까요? 이 글에서는 이러한 질문과 관련된 여러 의문에 대해 답을 찾아보려 합니다.

영지식 증명 프로토콜이란 무엇인가?

영지식 증명은 한 당사자(증명자)가 어떤 정보의 세부 내용을 밝히지 않고도 다른 당사자(검증자)에게 그 정보의 유효성을 증명할 수 있는 암호화 기법을 의미합니다. 쉽게 말해, 어떤 사실을 알지만 그 사실 외의 다른 정보는 전혀 노출하지 않고 상대방에게 그 사실을 증명하는 방식입니다.

증명 시스템에는 증명자, 검증자, 그리고 소유권이나 지식에 대한 증거를 세부 사항은 공개하지 않고도 증명할 수 있는 당사자의 능력이 필수적으로 포함됩니다.

더욱 쉽게 설명하자면, 영지식 프로토콜을 암호화에 적용하면, 정확한 비밀을 공개하지 않고도 자신이 특정 정보를 알고 있거나 특정 작업을 수행했다는 것을 다른 사람에게 설득할 수 있습니다.

예를 들어, 대출을 받으려 하지만 은행에 개인 금융 정보를 공개하고 싶지 않은 상황을 가정해 봅시다. 은행은 영지식 증명을 사용하여 당신의 자산 상세 정보에 직접 접근하지 않고도 계좌 지급 내역, 거주 증명, 신용 점수, 부동산 등의 재정 관련 정보를 확인할 수 있습니다.

이 프로토콜은 1985년 MIT 과학자인 Shafi Goldwasser, Silvio Micali, Charles Rackoff가 공동으로 발표한 "대화형 증명 시스템의 지식 복잡성"이라는 연구 논문에서 처음 소개되었습니다. 많은 탈중앙화 금융(DeFi) 프로토콜은 이미 ZKP를 활용하여 대출, 차입, 거래 서비스 사용자에게 향상된 보안과 개인 정보 보호를 제공하고 있습니다.

Zcash, Polygon과 같은 여러 레이어 1 블록체인은 이미 ZKP 기반 롤업 또는 영지식 이더리움 가상 머신(zkEVM)을 도입했습니다. 블록체인 및 웹 3.0 커뮤니티에서는 ZKP의 활용이 증가함에 따라, 이 기술이 앞으로 필수적인 역할을 수행할 것이라는 기대감이 높습니다.

영지식 증명의 특징

영지식 증명 방식은 정보가 매우 중요하고, 증명자가 검증자에게 해당 정보를 공개할 필요가 없다고 판단되는 상황에서 특히 유용합니다.

이러한 경우, 증명자는 자신이 생성할 수 있는 수학적 증거만을 제공하며, 이를 통해 해당 정보의 진실성을 증명할 수 있습니다. 중요한 점은, 제공된 정보만으로는 원래의 정보를 재구성하는 것이 불가능하다는 것입니다.

만약 당신의 마을을 가로지르는 거대한 산이 있고, 그 산 아래에 마을 양쪽 끝을 연결하는 두 개의 입구가 있는 터널이 있다고 가정해 봅시다. 당신은 이 터널 양쪽 끝의 잠긴 문을 여는 비밀 코드를 알고 있습니다.

터널을 이용하고자 하는 사람들에게 미리 비용을 요구할 경우, 그들은 당신이 실제로 비밀 코드를 알고 있는지 확인하고 싶어할 것입니다.

이때, 당신이 터널 한쪽 끝에서 들어가 다른 쪽 끝으로 나오는 모습을 지켜본다면, 그들은 당신이 비밀 코드를 가지고 있다고 믿을 것입니다.

영지식 증명 프로토콜의 세 가지 핵심 속성은 다음과 같습니다.

❇️ 완전성: 검증자는 증명자가 정보의 유효성을 확인하는 데 필요한 모든 입력을 가지고 있다는 사실을 확신할 수 있어야 합니다.

❇️ 건전성: 정보의 유효성을 위조하는 것은 불가능해야 하며, 그렇지 않은 경우 증명자가 실제로 정보를 알고 있는지 검증자를 설득할 수 없습니다.

❇️ 영지식: 정보의 진위 여부 외에는 검증자에게 어떠한 정보도 제공할 수 있는 메커니즘이 없어야 합니다. 즉, 개인 정보나 관련된 당사자의 정보는 익명으로 유지됩니다.

영지식 증명의 종류

ZKP에는 크게 두 가지 유형이 있습니다.

대화형 영지식 증명

이 유형의 영지식 증명은 증명자와 검증자 간에 여러 번의 상호 작용이 발생합니다. 검증자는 완전히 확신할 때까지 증명자의 답변에 대해 여러 번 질문을 던질 수 있습니다.

이러한 유형의 ZKP는 수학적 확률을 기반으로 하기 때문에 증명자는 특정 사실을 증명하기 위해 여러 번의 작업을 반복해야 합니다. 즉, 특정 검증자를 설득하거나, 여러 검증자에게 동일한 프로세스를 반복해야 할 수 있습니다.

비대화형 영지식 증명

비대화형 ZKP에서는 검증자가 증명자가 제공한 증거를 단 한 번만 확인할 수 있습니다. 따라서 증명자와 검증자 간에 즉각적인 상호 작용은 없습니다.

비대화형 ZKP는 대화형 ZKP보다 계산 능력에 더 많이 의존합니다. 따라서 증명자는 검증 프로세스가 원활하게 진행될 수 있도록 모든 사람이 검증할 수 있는 증거를 생성해야 합니다.

비대화형 ZKP가 효과적으로 작동하려면 특정 소프트웨어가 필요할 수 있습니다.

블록체인에서 영지식 증명 적용

블록체인 기술은 분산화, 불변성, 투명성, 분산 원장과 같은 중요한 특징을 도입하여 사용자가 최고 수준의 보안을 유지하며 익명으로 거래할 수 있게 했습니다.

블록체인은 사용자에게 개인 정보 보호에 대한 어느 정도의 통제권을 부여했지만, 블록체인 네트워크가 공개 데이터베이스를 사용하기 때문에 여전히 개인 정보 보호에는 미흡한 부분이 있습니다. 인터넷에 연결된 모든 사람은 네트워크의 거래 내역에 접근할 수 있습니다.

그 결과, 사용자의 거래와 관련된 세부 정보와 지갑 정보를 누구나 볼 수 있게 되었습니다. 신원이 익명으로 유지된다고 해도, 제3자가 사용자의 공개 키를 볼 수 있다는 점은 여전히 문제입니다.

암호화 기술을 통해 공개 키를 생성하여 개인 정보를 어느 정도 보호할 수 있지만, 익명성과 개인 정보 보호를 침해할 수 있는 기술도 있습니다. 따라서, 블록체인 시스템에 영지식 증명을 적용하여 다음과 같은 목표를 달성해야 합니다.

#1. 메시징

사람들이 메시지를 보낼 때 종단 간 암호화 방식을 사용하는 주된 이유는 의도된 수신자 외에는 누구도 개인적인 메시지에 접근하지 못하도록 하기 위함입니다. 하지만 메시지 플랫폼은 사용자의 신원을 서버에서 확인하고, 그 반대의 경우도 확인해야 합니다. ZKP를 사용하면 메시지 플랫폼이 사용자 정보를 공개하지 않고도 메시징 환경에서 엔드 투 엔드 신뢰를 구축할 수 있습니다.

#2. 인증

ZKP는 인증과 같이 민감한 정보를 최대한 안전하게 전송하는 데 활용될 수 있습니다. 블록체인 플랫폼은 최악의 경우 데이터 유출 위험을 방지하기 위해 사용자가 과도하게 노출되지 않고도 정보를 안전하게 전송할 수 있는 채널을 구축할 수 있습니다.

블록체인을 활용한 개인 정보 보호 거래의 대표적인 예는 만타 네트워크의 분산형 애플리케이션인 만타페이입니다.

만타페이는 사용자가 개인 신원이나 거래 세부 정보를 공개하지 않고도 분산형 거래소에서 거래할 수 있도록 ZKP를 사용합니다. 이를 통해 사용자는 플랫폼을 이용하면서 개인 정보를 안전하게 보호할 수 있습니다.

#3. 스토리지 보호

블록체인은 방대한 양의 데이터를 처리하므로 ZKP는 데이터 저장과 관련된 문제 해결에 유용하게 사용될 수 있습니다.

영지식 증명은 스토리지 자체 외에도 민감한 정보를 보호할 수 있는 프로토콜을 통합합니다. 또한 ZKP는 접근 채널을 보호하여 사용자에게 안전하고 원활한 경험을 제공할 수 있습니다.

#4. 프라이빗 블록체인 거래 전송

프라이빗 블록체인 거래 전송의 핵심은 제3자가 해당 거래에 접근하지 못하도록 하는 것입니다. 기존의 보호 방법에는 취약점이 있을 수 있지만, 여기서 ZKP가 중요한 역할을 합니다.

ZKP를 올바르게 구현하면 누구도 프라이빗 블록체인 거래를 해킹하거나 가로채거나 변경하는 것이 불가능해집니다.

예를 들어, Zcash는 영지식 거래를 사용하여 퍼블릭 블록체인에서 거래를 진행할 때, 거래 금액뿐만 아니라 송신자와 수신자 주소를 모호하게 처리하여 보안 수준을 높입니다.

#5. 복잡한 문서 처리

ZKP는 데이터를 여러 조각으로 나누어 암호화할 수 있도록 설계되었습니다. 이를 통해 사용자는 특정 사용자만 접근할 수 있도록 허용하고, 다른 사용자를 차단할 조각을 선택할 수 있습니다. 이 개념은 허가받은 사용자만이 복잡한 문서에 접근할 수 있도록 하는 데 사용될 수 있습니다.

#6. 투표 검증의 민주화

블록체인에서 ZKP를 적용할 수 있는 또 다른 실용적인 영역은 투표 과정에서 ZKP가 수행할 수 있는 민주적인 역할입니다. 프로토콜은 투표를 공개 블록체인에 기록하여 신뢰할 수 있고 감사 가능한 투표 프로세스를 제공할 수 있습니다.

ZKP는 투표 과정에서 제한이나 제3자의 확인 필요성을 제거해 줍니다. 영지식 증명을 통해 유권자는 개인 정보를 공개하지 않고도 투표 자격을 증명할 수 있습니다.

또한 유권자는 ZKP를 사용하여 최종 집계된 투표 결과에서 자신의 투표에 대한 불변의 증거를 요구할 수 있습니다.

#7. 민감한 정보 보호

ZKP는 민감한 정보를 포함하는 블록에 고급 보안 계층을 추가함으로써 블록체인 기반 거래의 보안성을 높일 수 있습니다.

여기에는 신용 기록 및 신용 카드 정보와 같은 민감한 은행 정보가 포함될 수 있으며, 수신자는 사용자 정보가 필요한 특정 블록에만 접근할 수 있습니다. 반면, 다른 블록은 보호된 상태로 유지됩니다.

#8. 토큰화 및 소유권 확인

블록체인 플랫폼은 자산을 토큰화하고 소유권 증명을 확인하는 과정에서도 ZKP를 사용할 수 있습니다. 예를 들어, 사용자는 자신의 개인 정보를 공개적으로 드러내지 않고도 자산의 소유권을 증명할 수 있습니다.

영지식 증명 사용의 장점

모든 신기술과 마찬가지로 ZKP를 블록체인 프로토콜과 함께 사용하면 많은 이점을 얻을 수 있습니다. 사용자에게 제공되는 자유와 유연성 외에도 영지식 증명 사용의 주요 이점은 다음과 같습니다.

🔷 단순성: ZKP 사용의 가장 큰 장점 중 하나는 단순함입니다. 사용자는 복잡한 소프트웨어 사용법을 몰라도 ZKP의 다양한 솔루션을 활용할 수 있습니다. 또한 ZKP는 암호화되지 않은 부분과 암호화된 부분을 모두 포함하여 두 가지 세계를 매끄럽게 연결합니다.

🔷 보안: 영지식 증명 프로토콜은 정보 공유를 매우 안전하게 처리합니다. 사용자는 특정 코드를 이해하거나 분석할 필요 없이 ZKP를 이용하여 상호 작용할 수 있습니다.

🔷 시간 절약: ZKP를 사용하면 블록체인 거래를 완료하는 데 필요한 시간을 절약할 수 있습니다.

🔷 개인 정보 보호: ZKP의 주요 기능 중 하나는 사용자의 개인 정보를 보호하는 것입니다. 민감한 데이터를 공유할 필요가 없어 개인 정보 보호에 매우 강력합니다.

🔷 안전: 영지식 증명 프로토콜 사용자는 데이터 공유 정책을 명확히 알고 있습니다. 따라서 개인 정보를 무분별하게 요청하는 모든 주체를 차단할 수 있습니다.

ZKP vs. 다자간 연산(MPC)

우리는 ZKP가 해당 당사자에게 세부 사항을 공개하지 않고도 공공 가치가 포함된 진술의 진위를 증명하는 데 사용된다는 것을 이미 확인했습니다. 이는 일부 통신에서 숨겨진 구조나 공개 키와 관련된 비밀 키를 포함할 수 있습니다.

블록체인 거래의 맥락에서 이는 거래 개시자가 유효한 거래가 실제로 발생했다는 증거를 제공하면서 정확한 거래 금액을 숨길 수 있음을 의미합니다.

다자간 연산(MPC)은 세부 사항을 개별적으로 유지하면서, 수많은 당사자 간에 상호 작용을 통해 미공개 값의 기능을 안전하게 계산할 수 있도록 합니다.

예를 들어, 세 당사자가 각각 비밀 번호를 가지고 있을 때, 세 숫자의 합을 계산하는 상황을 생각해 볼 수 있습니다. 이때, 각 당사자는 세 숫자의 합계 외에 다른 두 당사자가 가진 비밀 번호를 알 수 없습니다.

따라서 MPC의 주요 특징은 여러 당사자가 관련된 상황에서 각자가 개인적인 값을 공개하지 않고, 모든 참여자가 동일한 권한을 가지면서 공동 기능의 비밀 값을 안전하게 계산하는 데 있습니다.

영지식 증명 vs. 제로 트러스트

영지식 증명과 제로 트러스트의 차이점은 검증 방식에 있습니다. 제로 트러스트 모델은 사용자와 장치가 애플리케이션과 기밀 데이터에 접근하기 전에 엄격한 신원 확인을 요구합니다.

반면, ZKP는 권한이 있는 사람만 접근할 수 있도록 데이터를 암호화합니다. 신원 확인이 제로 트러스트 메커니즘의 핵심이라면, 암호화는 영지식 프로토콜의 기본 원칙입니다.

또한, 네트워크 보안이 제로 트러스트의 주요 초점인 반면, 데이터 보안은 영지식의 중심입니다.

제로 트러스트는 권한이 있고 인증된 장치 또는 사용자만 기밀 애플리케이션이나 데이터에 접근할 수 있도록 하는 반면, 영지식 증명은 권한이 있는 참가자만 접근할 수 있도록 데이터를 암호화하여 개인 데이터를 보호합니다.

마지막 생각들

영지식 증명은 마법과 같은 기술은 아니지만, 블록체인 기술에 새롭고 흥미로운 가능성을 열었습니다. 이 프로토콜은 신원 증명, 비밀번호 확인, 회원 자격 증명 등 민감한 정보에 기반한 다양한 애플리케이션에 엄청난 잠재력을 제시합니다.

ZKP는 확장성과 개인 정보 보호 기능으로 인해 계속해서 주목받고 있으며, 블록체인, 암호 화폐, DeFi 애플리케이션에서 점점 더 많이 활용되고 있습니다. 또한 보안, 개인 정보 보호, 효율성이 중요한 DApp 생태계에서 필수적인 역할을 수행하면서 계속해서 그 영역을 확장할 것으로 예상됩니다.

영지식 증명이 암호화의 핵심 도구로 자리 잡으면, 데이터 속성을 증명하고 블록체인과 그 애플리케이션을 주류로 끌어올릴 수 있는 흥미로운 연결 고리가 될 것입니다. 블록체인 운영자는 최신 세대의 ZKP를 활용하여 저렴한 비용으로 많은 이점을 얻을 수 있습니다.

다음으로, 제로 트러스트 보안에 대한 자세한 가이드를 확인해 보세요.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.