영지식증명(zk-snarks) 및 zk-starks 설명
zk-SNARK는 지식의 영 지식 간결한 비 상호 작용적 논증을 의미하며, zk-STARK는 지식의 영 지식 간결한 투명한 논증을 나타냅니다. Zk-SNARK 증명서은 이미 Zcash, JP Morgan Chase의 블록체인 기반 지불 시스템 및 클라이언트를 서버에 안전하게 인증하는 방법으로 사용되고 있습니다. 그러나 zk-SNARK가 잘 정립되고 실사용에 채택되는 것에 많은 진전을 이루어 냇지만, zk-STARK 증명은 그보다 더 진전하여, 이전의 많은 단점을 해결하면서 프로토콜의 새롭고 개선된 버전으로 알려지게 되었습니다.
알리바바의 동굴 비유
한 개의 입구와 두 개의 측면 경로를 분리하는 마법의 출입구가 있는 반지 모양의 동굴을 상상해봅시다. 마법의 문을 통과하려면 정확한 비밀 단어를 속삭여야 합니다. 그래서 앨리스(노란색)가 비밀스러운 단어가 무엇인지 알고 있다는 것을 밥(파란색)에게 증명하고 싶어 한다고 생각해봅시다. 그렇게 하기 위해 밥은 그녀가 동굴에 들어가서 두 가지 가능한 경로 중 하나가 끝날 때까지 걷는 동안 밖에서 기다리는 것에 동의합니다. 이 예시에서 그녀는 경로 1을 통과하기로 합니다.
잠시 후, 밥은 입구를 지나 앨리스가 어느 입구에서 나타나기를 원하는지 외칩니다 (이 경우 2번 경로).
앨리스가 그 비밀을 정말로 안다면, 그녀는 밥이 말해준 입구에서 확실하게 나타날 것입니다.
앨리스가 그저 운에 따라서 올 바른 길을 선택하지 않았다는 것을 확인하는 방법으로 전체 프로세스를 여러 번 반복할 수 있습니다.
알리바바의 동굴 비유는 zk-SNARK 및 zk-STARK 프로토콜의 일부인 영 지식 증명의 개념을 보여줍니다. ZK 증명은 정보를 공개하지 않고 특정 지식의 소유를 증명하는 데 사용될 수 있습니다.
zk-SNARKs
영 지식 증명은 진술의 타당성을 넘어서는 정보를 공개하지 않고 한 개인이 진술이 사실임을 다른 사람에게 증명할 수 있게 합니다. 관련된 당사자는 일반적으로 증명자 및 검증자라고 하며, 비밀리에 보유하고 있는 진술을 증언이라고 합니다. 이러한 증명의 주요 목적은 양 당사자 간에 가능한 한 적은 데이터를 공개하는 것입니다. 다른 용어로, 지식 자체에 대한 정보를 밝히지 않고 특정 지식을 가지고 있음을 증명하기 위해 영 지식 증명을 사용할 수 있습니다.
SNARK라는 약어 내에서 "간결한(Succinct)"은 이러한 증명의 크기가 작고 신속하게 확인할 수 있음을 의미합니다. "비 상호작용(Non-interactive)"은 증명자와 검증자 사이에 상호 작용이 거의 없거나 전혀 없다는 것을 의미합니다. 이전 버전의 영 지식 프로토콜은 일반적으로 증명자와 검증자가 통신을 주고받는 것을 요구하므로 "간접적"zk 증명으로 간주됩니다. 이와 다르게 ‘비 상호작용’ 구조에서는 증명자와 검증자가 하나의 증거만 주고받아도 됩니다.
현재 zk-SNARK 증명은 증명자와 검증자 사이의 신뢰할 수 있는 초기 설정에 의존합니다. 즉, 영 지식 증명 및 개인 거래를 구축하기 위해 일련의 공개 매개 변수가 필요합니다. 이러한 매개 변수는 게임의 규칙과 거의 상응하며 프로토콜에 인코딩되어 트랜잭션이 유효하다는 것을 증명하는 데 필요한 요소 중 하나입니다. 그러나 매개 변수가 종종 매우 작은 그룹에 의해 공식화되기 때문에 중앙 집중화 문제가 잠재적으로 존재하게 됩니다.
약어 퍼즐의 마지막 부분은 "지식(Knowledge)"입니다. 즉, 증명자가 실제로 자신의 진술을 뒷받침할 지식 (또는 증인)이 없는 증거를 만들 수 없다는 것을 의미합니다.
zk-STARKs
zk-STARK는 zk-SNARK 증명의 대체 버전으로 만들어졌으며 더 빠르고 저렴하게 기술을 구현해낼 수 있습니다. 그러나 더 중요한 것은 zk-STARKs는 초기 신뢰할 수 있는 설정 (따라서 투명한 "T")을 필요로 하지 않는다는 것입니다.
Zk-STARK가 보다 빠르고 저렴한 기술 구현을 가능케 한 주된 이유 중 하나는 증명자와 검증자 간의 통신 횟수의 양이 계산의 증가하는 것에 비해 일정하기 때문입니다. 이와 대조적으로, zk-SNARK에서 더 많은 계산이 필요할수록 당사자들이 더 많은 메시지를 주고받아야 합니다. 따라서 zk-SNARK의 전체 데이터 크기는 zk-STARK 증명 내의 데이터보다 훨씬 크게 됩니다.