2023.10.16 게시
미드나잇(Midnight)은 민감한 상업 및 사용자 데이터를 안전하게 보호할 수 있는 데이터 보호 블록체인이 될 것입니다. 여기에는 영지식 증명이 사용될 것입니다. 이번 글에서는 영지식(ZK) 증명의 기본 개념에 대해 알아보겠습니다.
사실을 밝히지 않고 참이라고 말하기
암호학에서 영지식 증명 또는 영지식 프로토콜은 한 당사자(증명자)가 다른 당사자(검증자)에게 주어진 진술이 참임을 증명하는 동시에 검증자에게 진술이 진실이라는 단순한 사실 이상의 정보를 전달하지 않는 방법입니다.
ZK 증명은 암호학에서 매우 매력적인 개념입니다. 이를 통해 증명자는 자신이 값 x를 알고 있다는 사실 외에 다른 정보는 전달하지 않고도 검증자에게 값 x를 알고 있음을 증명할 수 있습니다. 검증자는 x의 값은 알지 못하지만 증명자가 이를 알고 있다는 증거를 얻게 됩니다. ZK 증명의 신뢰는 해당 증명의 수학적 속성에서 비롯됩니다.
ZK 증명의 전형적인 예는 앨리스(증명자)가 실제로 비밀번호를 공개하지 않고 동굴에 있는 비밀 문의 비밀번호를 알고 있다고 밥(검증자)을 설득하려는 시나리오를 예로 들 수 있습니다. 앨리스는 동굴에 들어가서 밥이 선택한 출구로 나오면 비밀번호를 공개하지 않고도 비밀번호를 알고 있음을 증명할 수 있습니다.
동굴에는 입구가 하나뿐이며, 이 입구가 출구이기도 합니다. 입구 바로 뒤에는 긴 복도가 하나 있고, 앨리스는 이 복도를 따라 A 또는 B 두 방향으로 갈 수 있습니다. 복도 한가운데에는 비밀번호로만 열 수 있는 문이 있습니다. 앨리스는 밥에게 문을 통과할 수 있다는 것, 즉 암호를 알고 있다는 것을 증명하고 싶어합니다.
동굴이 어떻게 생겼는지, 문이 어디에 있는지 그림을 보세요. 문을 열려면 암호를 알아야 합니다. 밥은 동굴을 들여다보고 있지 않으며 앨리스가 A 방향으로 갔는지 B 방향으로 갔는지 알지 못한다는 점에 주목하세요.
상호작용 관점에서 보면 다음과 같습니다. 처음에는, 항상 증명자가 어떤 약정(commitment)을 합니다. 증명자는 어떤 진술이 참임을 증명하려고 하고, 검증자는 이를 검증하고자 합니다. 검증은 챌린지-응답(challenge-response) 방식으로 이루어집니다. 먼저 검증자가 증명자에게 챌린지를 보냅니다. 증명자는 응답을 제공해야 합니다. 검증은 응답을 기반으로 이루어집니다. 검증자는 응답을 검토하여 진술이 참인지 거짓인지 확인합니다.
동굴에 대한 이야기를 계속해 보겠습니다. 앨리스가 문에 대한 비밀 비밀번호를 알고 있다고 주장하는 것은 하나의 약정입니다. 앨리스는 동굴에 들어가서 방향 A를 결정합니다. 밥은 앨리스가 어느 방향을 선택했는지 모릅니다. 밥은 동굴 입구에 들어가서 앨리스에게 A 또는 B 방향 중 어느 방향으로든 돌아오라고 외칩니다.
밥은 동굴 안에 있지만 앨리스를 볼 수 없습니다. 그는 B 방향을 선택하고 이 선택을 앨리스에게 외칩니다. 다음 그림에서 설명한 상황을 볼 수 있습니다. 밥이 앨리스에게 챌린지를 보냅니다.
앨리스는 응답을 제공해야 합니다. 이 예제에서는 앨리스가 비밀 암호를 사용하고 문을 통과해야 한다는 뜻인데, 이는 앨리스가 B 방향에서 돌아올 수 있는 유일한 선택지이기 때문입니다. 밥은 앨리스가 어느 방향으로 나올지 확인하기 위해 동굴 안으로 조금 더 걸어 들어갑니다. 아래 그림에서 앨리스가 B 방향에서 나오는 것을 볼 수 있습니다.
밥이 A 방향을 외쳤다면 앨리스는 비밀 암호를 전혀 사용할 필요가 없었을 것이고 올바른 방향에서 나왔을 것입니다. 즉, 앨리스가 밥을 속일 확률은 50%입니다. 이 과정을 여러 번 반복해야 합니다. 앨리스가 밥이 지정한 경로에서 지속적으로 돌아올 수 있다면 밥은 앨리스가 비밀 암호를 알고 있다고 확신하게 됩니다. 그러나 그는 암호가 실제로 무엇인지에 대해 아무것도 알지 못하므로 이것은 영지식 증명입니다.
앨리스는 밥에게 자신의 진술이 사실임을 증명할 수 있습니다. 만약 밥이 비밀 암호를 구매하고 싶으면 앨리스가 비밀 암호를 알고 있다는 증거를 갖고 있습니다.
보다 구체적인 예시
앨리스(증명자)가 영지식 증명을 사용해 밥(검증자)에게 자신이 18세 이상임을 증명하고자 하는 시나리오를 예로 들어보겠습니다.
밥은 주류 판매자, 성인 전용 클럽의 도어맨 또는 암호화폐 거래소와 같이 성인만 이용할 수 있는 인터넷 서비스일 수 있습니다.
앨리스가 일반 신분증만 가지고 있다면 밥에게 직접 보여주거나 복사해서 인터넷을 통해 밥에게 보낼 수 있습니다. 문제는 이렇게 하면 검증자에게는 필요하지 않더라도 신분증에 있는 모든 정보가 노출되는 경우가 많다는 것입니다. 법에 따라 이름이나 거주지를 밝히지 않아도 나이와 국적만 확인하면 서비스 이용이 가능할 수도 있습니다. 이론적으로는 사용자가 자신의 개인정보를 더 잘 보호할 수 있지만, 현재로서는 불가능합니다. ZK 증명이 이를 가능하게 합니다. 심지어 정보 자체가 드러나지 않는 방식으로 증명을 제공할 수도 있습니다. 앨리스는 자신의 나이를 밝히지 않고도 18세 이상임을 증명할 수 있습니다.
이것이 ZK 프로토콜을 통한 상호작용 방식입니다.
첫 번째 단계는 약정 준비입니다. 앨리스는 자신의 나이를 증명하는 것으로 시작합니다. 이는 그녀의 나이를 비밀 난수(논스라고도 함)로 해싱하여 수행할 수 있습니다. 앨리스는 밥에게 약정을 보냅니다. 약정 체계는 숨기고 결합해야 합니다. 밥은 수신한 약정에서 앨리스의 나이를 파악할 수 없지만, 동시에 앨리스가 약정을 보낸 후에는 나이를 변경할 수 없습니다. 밥은 앨리스가 커밋한 사실을 확인합니다.
밥이 약정을 받으면 앨리스에게 챌린지를 보낼 수 있습니다. 그래서 밥은 앨리스에게 무작위 챌린지를 보냅니다. 앨리스의 나이가 18세 이상인지와 같은 간단한 이분법 질문이 될 수 있습니다.
앨리스는 자신의 정확한 나이를 밝히지 않고 챌린지를 충족하는 증거를 제시해 밥의 도전에 응답합니다. 이 경우 영지식 범위 증명을 사용해 자신의 나이가 18세 이상의 특정 범위 내에 있음을 증명할 수 있습니다.
마지막으로 밥은 앨리스의 증명을 검증합니다. 이 증명이 유효하다면 밥은 앨리스의 정확한 나이를 알지 못해도 앨리스가 18세 이상이라는 것을 확신할 수 있습니다. 밥은 앨리스의 ID에서 어떤 정보도 알 수 없습니다. 밥은 자신이 관심을 가졌던 앨리스의 정확한 나이조차 알지 못한다는 점에 주목하세요. 그는 앨리스가 성인이라는 증거로 만족해야 합니다.
약정 자체는 주장(claim)의 유효성에 대한 어떠한 증거도 제공하지 않습니다. 약정은 챌린지-응답 및 검증 단계 이전의 사전 설정 과정일 뿐입니다. 실제 증명은 나중에 증명자가 검증자의 챌린지에 성공적으로 응답할 때 이루어집니다.
앨리스가 거짓 약정을 제공한다면, 밥의 챌린지에 자신의 주장을 납득시킬 수 있는 방식으로 일관되게 응답할 수 없을 것입니다. 챌린지는 무작위로 생성되므로 앨리스는 챌린지를 미리 예측할 수 없습니다. 만약 앨리스의 약정이 거짓이라면, 앨리스는 적어도 일부 챌린지에 올바르게 응답하지 못할 것이고, 밥은 앨리스를 납득하지 못할 것입니다.
ZK 증명에서 약정은 중요한 역할을 합니다. 이는 증명자(앨리스)가 자신의 주장에 대한 정보를 공개하지 않고도 자신의 주장을 "확정(lock in)"할 수 있는 방법입니다. 이 약정은 단방향 기능으로 설계되었기 때문에, 앨리스는 약정이 이루어진 후 자신의 주장을 변경할 수 없습니다( 바인딩). ZK 증명의 보안은 상호작용적 특성과 무작위 챌린지의 적용에서 비롯됩니다. 앨리스가 거짓 약정을 통해 속이려고 해도 프로토콜은 밥이 이를 감지할 확률이 높도록 보장합니다.
결론
영지식 증명은 블록체인의 사용성을 크게 개선할 수 있는 잠재력을 가지고 있으며, 특히 확장성(zk-롤업), 트랜잭션의 프라이버시, 스마트 컨트랙트의 프라이버시 영역에서 더욱 그렇습니다. 따라서 암호화는 승인되지 않은 접근을 방지하기 위해 데이터를 보호하는 데 그치지만, ZK 증명을 사용하면 데이터를 안전하게 비공개적으로 연산하고 검증할 수 있습니다. ZK 증명을 통해 참여자는 민감한 정보를 노출하지 않고도 비공개적으로 데이터를 다룰 수 있습니다. ZK 증명은 블록체인 기술에 사용되는 암호화에 추가적인 프라이버시 계층을 더한 것으로 볼 수 있습니다.
미드나잇은 민감한 데이터를 보호하면서 동시에 다양한 서비스에 사용할 수 있기 때문에 비즈니스, 은행, 기관, 기업, 특히 사용자들에게 매우 유용한 블록체인이 될 것입니다.
* Source: https://cexplorer.io/article/basics-of-zero-knowledge
* Translation: Ilhun@CryptoVeri enics_sky@naver.com
1 post - 1 participant