zk-SNARKs는 무엇인가요?
암호화의 가장 강력한 증명 방식에 대한 입문서
들어가며
영지식 증명과 Zk-SNARKs. 이러한 용어들은 암호화폐 모임들에서 주로 private transaction을 얘기할 때 사용됩니다. Coda Protocol의 작고 일정한 사이즈로 유지되는 블록체인에서 영지식 증명과 Zk-SNARKs는 가장 핵심적인 요소입니다. 이러한 개념의 유래는 영지식 증명이 처음 설명된 “The Knowledge Complexity of Interactive Proof-Systems.”이라는 논문이 발간된 1985년으로 거슬러 올라갑니다. 개념이 소개된 지 오래됐지만 이러한 개념들이 정확히 무엇인지 의미하는지 아직 잘 알려지지 않았습니다. 이러한 개념들은 정확히 무엇을 의미할까요?
암호화폐에서 가장 중요한 요소로는 개인이 중앙화된 조직과 중개자에게 대한 의존도를 낮추는데에 있습니다. Zk-SNARKs는 이러한 환상을 실현시켜줄 수 있는 혁신적인 방안입니다. 하지만, zk-SNARKs는 매우 복잡하기 때문에 명확하고 쉽게 접근할 수 있는 자료를 찾기 어렵습니다. 우리팀의 cryptographer암호학자들과 엔지니어들은 zk-SNARKs을 시작하는 여러분들을 위해 도움이 될 만한 자료들을 정리, 요약, 검토하였습니다. 혹시 추가했으면 좋을 것 같은 자료가 있으신가요? 밑에 코멘트란을 통해 저희에게 알려주세요.
첫째, Izaak and Vanishree, 평생을 zk-SNARKs를 연구한 저희 팀 멤버들이 기본적인 설명을해 드리겠습니다.
Coda Protocol에서 일하고 있는 암호학자(cryptographer) Vanishree Rao는 soundness(건전성), zero-knowledgness(영지식성), 그리고 verifiers(검증인)를 포함한 주요 개념을 설명하기 위해 전형적인 3색 문제 (3 coloring problem)를 활용했습니다. 5분도 안걸릴 정도로 짧고 시각적인 자료들이 잘 제시되어 있는 이 글은 입문을 위한 좋은 시작이 될 것입니다.
지속적인 사이즈 유지하는 블록체인 을 위한 zk-SNARKs 활용
이 개념 설명을 위하여 O(1) Labs의 공동 창업자겸 최고기술책임자이자 Coda Protocol에서 수석 암호학자로 활동하고 있는 Izaak Meckler가 zk-SNARKs 이면에 존재하는 개념들에 대한 해설 뿐만 아니라 현실적인 예시들을 활용하여 이러한 개념이 왜 중요한지 설명해줄 것입니다.
더 알아보기
이것들은 영지식 증명과 zk-SNARKs를 더 쉽게 배울 수 있도록 해주는 최고의 입문용 자료들입니다. 다양한 비유들과 알기 쉬운 설명들로 위에 소개된 개념들을 더 쉽게 이해하고 확장할 수 있습니다.
이 글을 가장 먼저 읽으면 좋습니다. 첫째, 이글은 역사적 배경에 대해 서술하고 있는데 1985년 기술된 “The Knowledge Complexity of Interactive Proof-Systems”의 배경에 대해 설명하고 있습니다. 둘째, AliBaba 동굴 이야기를 좀 더 간결하고 생생하게 전달하고 있습니다. 셋째, 영지식 증명에서 반드시 충족해야하는 3가지 특성인 completeness(완전성), soundness(건전성), zero-knowledge(영지식성)에 대해 매우 간결하게 요약하고 있습니다.
5살에게 설명하듯 설명하기: 영지식 증명 — 할로윈 버전
비교적 유명한 “Yao’s Millionaire Problem” — 2 명의 백만장자들이 서로가 동일한 금액을 갖고 있는지 직접적으로 확인하지 않고 확인하고자 하는 내용- 을 다루고 있는데 이를 두 어린이 (당연하게도 Alice와 Bob)의 상황에서 할로윈 당일 둘이 같은 양의 사탕을 받았는지 확인하는 과정에 비유하여 설명하였습니다.
만약 정말 시각적인 방식으로 이해하고 싶다면 바로 유튜브로 가면 됩니다. 이 10분짜리 동영상은 애니메이션을 활용하여 특정 상황을 공개하지 않고 증명하는 방식에 대한 간단한 예시를 제공합니다. 이 예시에서 한 사람이 색맹인 친구에게 초록색 공과 빨간색 공 차이에 대해 설명하고, 두 공 사이에 차이점이 있다는 점을 설득하고자 합니다. 또한 이 영상에서는 대화형(interactive)과 비대화형(non-interactive) ZKPs의 차이에 대해서 설명하고 있고 이는 SNARKs에 대해 공부하기 위한 기초 적인 지식을 전달합니다.
위에 영상이 ZKPs 입문 수준의 영상이었다면 이 영상은 그보단 조금 더 상위 실력자들을 위한 영상입니다. 이 영상은 좀 더 많은 해설과 조금은 다른 예시들 — 예를 들어 한 카드 덱이 특정한 색임을 다른 카드 덱을 선보이지 않고 증명하는 방식 — 을 가지고 있습니다. 이 영상은 영지식 증명에서 기초적인 특성들에 대해서도 다시 한번 설명해주고 있습니다.
좋습니다. 이제 재밌는 것들에 대해 배우기 시작합니다. 2개로 분리된 시리즈는 Zcash프로젝트의 초창기부터 에서 일했던 Matthew Green에 의해 발간 되었습니다. 그는 대부분의 시간을 암호학자와 존스홉킨스 대학 교수로 보냈습니다. 첫번째 파트는 다음과 같은 설명을 제공합니다. 첫째, 왜 사람들이 ZKPs에 대해 관심을 갖게 되었는지 ZKPs의 배경과 유래에 대해 더 깊이 설명합니다.둘째, 영지식 증명을 위한 통신의 3색문제를 포함한 실제 사례들을 사용하여 어떠한 유형의 상호작용들이 “영지식”을 구성하는지 설명합니다. 셋째, 새로운 주요 개념인 commitment schemes(상대가 선택(Commit)한 값을 나중에 알게하는 암호학 전문 용어)에 대해 설명합니다. 첫번째 파트는 기술적이지 않은 부분에 대해 다룬 반면, 두번째 파트는 기술적인 부분에 대해 비교적 어렵지 않게 서술하고 있습니다.
도대체 영지식 증명은 무엇인가 &영지식 증명 입문: 차세대 블록체인 프로토콜
지금까지 영지식 증명에 대한 기본적인 개념들에 대해 배웠고 몇가지 다른 시각화된 비유들에 대해 배웠으니 이젠 좀 더 심화된 개념들에 대해 소개해드리겠습니다. 두 기사는 매우 비슷한 특성을 가지고 있습니다. 물론 아직 매우 기초적인 입문서 수준에 머무르지만 영지식 증명에 대한 관점을 넓힐 수 있도록 도와줍니다. 1) 대화형과 비대화형 영지식 증명의 차이점과 2) zk-SNARKs 에 대해 설명합니다. 두번째 글은 특히 이해하기 어려운 약어를 풀어서 각 부분을 알기 쉽게 설명합니다.
이 부분은 이전에 설명한 많은 개념들을 반복하여 설명해줍니다. 특히 주목할 부분은 zk-SNARK에 대한 간결한 정의와 zk-SNARKs와 zk-STARKs의 비교입니다.
이제 영지식 증명에서 SNARKs까지의 연결고리에 대해 이해했으니, 시각화를 통한 이해가 필요한 이들을 위해 짧은 소개 영상을 보도록 합시다. 이 4분짜리 동영상은 다시 보다 실질적인 내용에 빠져들 수 있도록 도와줍니다.
이 글은 바이낸스 아카데미로부터 작성되었고 zk-SNARKs와 zk-STARKs의 차이에 대해 서술합니다. 이것은 출간된 글 중 가장 간결하고 명확하게 비기술적인 부분을 설명합니다.
zkSNARKs란 무엇인가? 포괄적인 Spooky Moon Math Guide
대부분 비기술적인 부분에 대한 설명이 이루어지는 이 글은 약간의 수식을 활용하여 zkSNARKs에 대해 보다 더 깊게 풀어냈습니다. 이는 많은 시각화된 자료와 단순화된 설명들을 읽고 나서야 이해할 수 있을 것 입니다.
왜 zk-SNARKs가 블록체인 데이터 개인 정보 보호에 중요한지
지금까진 우린 영지식 증명이 무엇인지 수 많은 시각화된 설명들을 보았고 zk-SNARKs가 무엇인지 간결한 정의들에 대해서도 살펴 보았습니다. 아직 왜 이러한 개념들이 왜 중요한지에 대한 간단하고 명확한 설명을 보지 못했습니다. Forbes의 Samantha Radocchia는 이 글에서 그 이유에 대해 설명해줍니다. 그녀는 우리 주변에서 수집되는 많은 데이터와 무분별한 남용과 데이터에 대한 위험성에 대해 명확히 구별하고 있고 SNARKs와 같은 기술이 개인 정보 보호를 위해 왜 필요한지 기술하고 있습니다.
[영상] 영지식 증명 속 환호: 공개하지 않고 증명하기
이 영상은 위에서 소개된 개념들을 간결하게 정리해 놓았습니다. 만약 다음 단계인 기술적인 설명으로 가기 전에 입문 단계에서 단 하나의 영상으로 모든걸 이해하고 싶다면 이 영상이 가장 적합할 것입니다.
기술 알아보기
여기까지 읽어보셨다면 기술적인 부분을 받아드릴 준비가 되었습니다.
아래는 방법과 왜 zk-SNARK 응용 프로그램을 더 자세히 설명하고 왜 암호화폐의 핵심적인 가치를 실현할 수 있다는 기대를 받고 있는지 알려줍니다.
ConsenSys 블로그에 게시된 기사에서는 위에서 배운 검증자, 입증자 및 증인과 등의 기술적인 이해의 기초가 되는 모든 주요 개념을 설명합니다.
기술적인 부분을 모르는 독자라도 무리없이 따라갈 수 있을 것입니다.
DevCon 3 에서 촬영한 이 20분짜리 대화는 Dr.Christian Reitweissner 의 SNARK에 대한 소개입니다.
이 대화의 중요한 측면 중 하나는 프레임 설정입니다. 본격적인 주제에 들어가기 전에 그는 왜 SNARK 가 블록체인에 확장 및 개인 정보 보호에 중요한지 설명하고 있습니다.
[영상] ZCash 창립 과학자, zk-SNARKs의 공동 발명가이자 Starkware의 공동 창립자인 Eli Ben-Sasson Starkware
개발자에게 직접 듣는 것이 이해가 더 잘 될 수도 있습니다. Eli Ben-Sasson은 Zcash의 공동 창립자이자 SNARKs 의 공동 발명자로써 풍부한 지식을 소유하고 있습니다.
이것은 단순한 비디오 인터뷰가 아니라 주제에 대한 효과적인 입문 세미나입니다.
위의 리소스 중 일부를 사용하여 기초적인 지식을 습득한 후에 시청하면 더욱 효과적이겠지만 그럼에도 반드시 봐야하는 영상입니다 .
이것은 지켜볼 필요가 있습니다.
영지식 증명, 보드 게임 및 유출 추상화 : zk-SNARK를 어떻게 구상하게 됐는지 배우다.
위의 블로그 게시물에 대해 말하자면 이 글은 다른 수많은 자료들 중에서 코딩을 하는 사람들이 zk-SNARKs를 스스로 배우기 위해 사용한 자료입니다. 개인 학습 일지와 통찰력의 훌륭한 조합을 통해 도움을 얻을 수 있습니다.얻는 데 좋습니다.
Tendemint 팀의 Zaki Manian는 사람들이 ZKP와 SNARK에 대해 쉽게 알아보고 배울수 있도록 리소스 가이드를 출간하였습니다. 그들은 콘텐츠를 설문조사, QAP , 암호화 페어링, 주요 SNARK 관련 논문 그리고 최근 연구와 같은 몇 가지 범주로 구성합니다. 저희의 큐레이션이 입문용 안내서라면 이 글은 더 심화된 내용으로 들어가는 길을 제공합니다.
SNARK 컨텐츠와 관련하여 지금까지 발간된 자료 중 가장 좋은 자료입니다.
2016년 말부터 2017년 초까지 이더리움 제작자인 Vitalik Buterin 은 3부작 시리즈를 썼습니다.1번 째 작품은 “The machinery behind the technology”를 탐구하는 ‘Quadratic Arithmetic Program: from Zero to Hero’, 2번 째 작품은 ‘Exploring Eliptic Curve Parings’ 그리고 3번 째 작품은 ‘zk-SNARK : Under the Hood’ 입니다. 마지막 연구는 앞의 두 연구의 프레임워크를 바탕으로 한 기술적인 탐구를 보여줍니다. 기술이라면 몸서리칠 분들에게는 추천하지 않지만, 훌륭한 컨텐츠인건 분명합니다.
번역: 김연욱, 방재현 (연세대학교 블록체인 학회 YBL)