a16z: 마술 공연으로 제로 지식 증명을 이해하는 방법
원문:a16z
원문 저자 :Michael Blau
편집 :Odaily 별자리 일보 Azuma
편집자 주:Crypto가 확장성, 프라이버시 등 여러 방향으로 발전하는 "비법서"로서, 제로 지식 증명(zero-knowledge proofs, 약칭 ZKPs)은 업계에서 매우 높은 기대를 받고 있습니다. 그러나 이 개념에 대한 설명은 대개 일정한 컴퓨터 과학이나 암호학 기초가 있는 사람들을 대상으로 하므로, 대부분의 일반 사용자에게는 이 개념을 완전히 이해하는 데 여전히 일정한 장벽이 있습니다.
9월 8일, a16z 파트너 Michael Blau는 제로 지식 증명에 대한 대중적인 글을 발표했습니다. 이 글은 제로 지식 증명 개념의 다소 추상적인 수학적 사유 부분을 피하고, 마술 공연을 이용해 ZKP의 효용을 구체적으로 보여주었습니다.
다음은 Odaily 별자리 일보가 Michael Blau의 원문 내용(1인칭 시점)을 바탕으로 편집한 것으로, 읽기 흐름을 고려하여 일부 삭제 및 수정이 있습니다.
《2001 스페이스 오디세이》의 저자 클락은 "충분히 발전된 기술은 마법과 다를 바 없다"고 말했습니다.
제로 지식 증명은 마치 마법과 같은 기술 중 하나로, 사실 이는 암호학 개념으로, Web3에서 두 가지 주요 문제인 확장성과 프라이버시를 해결하는 데 사용될 수 있습니다.
효용 측면에서, 제로 지식 증명을 사용하면 체인 상의 거래 비용을 낮추고, 새로운 프라이버시 보호형 앱을 설계하여 Crypto를 10억 사용자로 확산시키는 데 기여할 수 있습니다. Crypto를 떠나서도, ZKP는 민감한 데이터를 안전하게 전송하는 데 활용될 수 있으며, 이는 불법 금융 시스템을 단속하거나 만연한 사기 정보를 방지하는 데 도움을 줄 수 있습니다.
그렇다면 제로 지식 증명은 도대체 무엇일까요? 일부 연구자와 개발자에게는 온라인에서 많은 상세한 설명을 찾을 수 있지만, 이러한 내용은 컴퓨터 과학이나 암호학 경험이 적은 일반 사용자에게는 적합하지 않습니다. 일부 선구자들이 유사한 대중 과학 기사를 작성하기도 했지만, 오늘날까지 일반인이 그 마법을 정확히 이해할 수 있도록 돕는 간결하고 쉬운 제로 지식 증명 관련 설명을 찾는 것은 여전히 간단한 일이 아닙니다.
그래서 이번 글에서는 Crypto와 마술 산업에서의 배경을 바탕으로 제로 지식 증명을 위대한 마술로 상상해보겠습니다.
먼저, 기초 지식이 필요합니다.
먼저 제로 지식 증명(특히 그 고전 알고리즘 zk-SNARK)에 대한 "고급" 정의와 주요 특성을 공유한 후, 이러한 "부품"을 마술에 하나하나 대응시켜 보겠습니다.
a16z의 연구 파트너 Justin Thaler가 zk-SNARK에 대해 제시한 정의는 다음과 같습니다: "zk-SNARK는 어떤 사람이(증명자) 신뢰하지 않는 다른 사람(검증자)에게 데이터에 대한 정보를 공개하지 않고도 그 데이터에 대한 지식을 증명할 수 있게 해줍니다."
MIT의 과정에서는 이렇게 정의하고 있습니다: "제로 지식 프로토콜은 내가 어떤 사실을 알고 있다는 것을 너에게 증명할 수 있게 해주지만, 그 사실 자체를 너에게 말할 필요는 없습니다."
이는 블록체인 내러티브에서 매우 큰 응용 가치를 지니고 있습니다. 왜냐하면:
(프라이버시와 관련하여) 제로 지식 증명은 개인 정보를 보호하면서 다른 사람들이 정보의 진위를 검증할 수 있게 해줍니다.
(확장성과 관련하여) 제로 지식 증명은 "작업량을 간소화"하고 "절약"할 수 있습니다. "간소화"는 "증명"의 크기가 증명되는 "데이터" 자체보다 작다는 것을 의미합니다; "절약"은 검증자가 "증명"을 검토하는 효율성이 원래 "데이터"를 분석하는 것보다 높다는 것을 의미합니다. 이더리움에서는 스마트 계약이 처리하는 데이터가 줄어들어 사용자 가스 비용이 낮아지며, Layer2는 이러한 특성을 활용하여 Dapps가 더 낮은 비용으로 더 많은 데이터를 처리할 수 있게 합니다.
결론적으로, 제로 지식 증명은 두 가지 주요 특성을 가지고 있습니다:
첫째, 프라이버시: 당신이 증명하고 있는 "데이터"(또는 "사실", 또는 "지식")는 검증자에게 공개되지 않습니다.
둘째, 확장성: "증명"을 검증하는 것이 원래 "데이터"를 직접 분석하는 것보다 효율적입니다.
이것이 제로 지식 증명의 고전적 설명이지만, 여전히 수수께끼처럼 들립니다 ------ 한 사람이 정보를 공유하지 않고 어떻게 자신이 이 사실을 알고 있다고 증명할 수 있을까요?
이 정의를 다시 살펴보지만, 이번에는 마술 공연으로 바꿔보겠습니다.
마술 자체가 제로 지식 증명입니다.
간단히 말해, 마술 공연에서 "마술" 자체가 제로 지식 증명입니다. 마술을 수행하기 위해 "마술사"는 그 뒤에 있는 "비밀"을 알아야 하며, 그 비밀을 알아야만 공연을 할 수 있지만, 그 비밀을 "관객"에게 공개하고 싶어하지 않습니다 ------ 이는 분명히 마술의 효과를 해칠 것입니다.
- Odaily 별자리 일보 주: 여기서 네 개의 역할에 따옴표를 사용했습니다.
"비밀"은 원래 "데이터"에 해당하고;
"마술"은 "증명"에 해당하며;
"마술사"는 "증명자"에 해당하고;
"관객"은 "검증자"에 해당합니다.
다음으로, 이전 단락에서 제로 지식 증명의 "고급" 정의를 이 마술에 적용해 보겠습니다. 마술사를 "증명자"로, 관객을 "검증자"로 상상해 보세요.
마술 공연은 "증명자"가 "검증자"에게 증명하는 과정입니다. 공연이 성공하면, 이는 유효한 증명과 같습니다. 관객은 마술사가 반드시 그 뒤에 있는 비밀을 알고 있다는 것을 확인할 수 있습니다; 공연이 실패하면, 이는 무효한 증명을 의미합니다. 관객은 실망하면서 마술사가 관련 기술을 알지 못할 수도 있다는 것을 깨닫게 됩니다.
분명히, 마술은 제로 지식 증명의 프라이버시를 명확하게 보여줍니다, 왜냐하면 관객은 항상 그 뒤에 있는 비밀이 무엇인지 알지 못하기 때문입니다. 그렇다면 확장성은 어떨까요? 이 비유로 다시 돌아가 보겠습니다…
관객이 마술사가 비밀을 알고 있는지(즉, "증명자"가 원래 "데이터"를 알고 있는지) 알고 싶다면, 정상적인 공연을 건너뛰고 마술사에게 비밀 자체를 공유해 달라고 요청할 수 있습니다. 그러나 마술의 기술은 일반적으로 매우 복잡하고 번거로워서, 관객이 짧은 시간 안에 이러한 기술의 설계 메커니즘과 구현 효과를 이해하기는 어렵습니다. 심지어 마술사가 잘못된 기술을 제공하더라도 관객은 그 진위를 구별하기 어렵습니다. 따라서 비밀 자체를 분석하여 증명을 완성하려면 종종 더 긴 시간과 더 많은 작업량이 필요합니다.
이는 원래 "데이터"를 직접 분석하는 것이 더 시간과 노력이 많이 드는 것과 같습니다. "증명"을 검증하는 효율성이 더 높으며, 그 뒤에 드러나는 것은 제로 지식 증명의 확장성입니다.
카드를 예로 들어보겠습니다.
간단한 예를 들어보겠습니다. 내가 "역 세탁" 기술을 가지고 있다고 자랑하며, 혼란스러운 카드 덱을 내가 원하는 효과로 섞을 수 있다고 가정해 보겠습니다. 그렇다면 어떻게 당신에게 증명할 수 있을까요?
가장 효율적인 방법은 내가 직접 일정한 규칙을 가진 카드를 섞어 보여주는 것입니다. 당신이 이 카드를 보았을 때, 나는 실제로 이 기술을 가지고 있다는 것을 확인할 수 있습니다. 이는 내가 당신에게 기술을 공유할 필요도 없고, 당신이 스스로 천천히 배우는 것보다 더 빠릅니다.
결론적으로, 이 비유가 제로 지식 증명의 신비한 베일을 벗기는 데 도움이 되기를 바랍니다. "마술", "비밀", "마술사", "관객"에 대한 이 설명은 제로 지식 증명의 주요 특성을 이해하는 데 유효한 모델로 작용하여 더 많은 일반 사용자들이 이 개념에 접근하는 데 도움을 줄 수 있습니다.
다시 강조하지만, 마술은 본질적으로 제로 지식 증명이며, 제로 지식 증명은 마법과 다르지 않습니다.