영지식 증명이 무엇인가요?
영지식 증명은 어떤 진술을 드러내지 않으면서도 그것의 유효성을 증명하는 방법입니다. '증명자'는 어떤 주장을 증명하려는 당사자이고, '검증자'는 그 주장을 확인할 의무가 있는 당사자입니다.
영지식 증명은 1985년 논문 'The knowledge complexity of interactive proof systems (opens in a new tab)'에 처음 등장했으며, 이 논문은 오늘날 널리 사용되는 영지식 증명의 정의를 제공합니다.
영지식 프로토콜은 한 당사자(증명자)가 다른 당사자(검증자)에게 특정 진술이 참이라는 사실 외에는 어떠한 정보도 공개하지 않고 무언가가 참이라는 것을 증명할 수 있는 방법입니다.
영지식 증명은 수년에 걸쳐 개선되었으며, 현재 여러 실제 응용 프로그램에서 사용되고 있습니다.
우리는 왜 영지식 증명을 필요로 할까요? 영지식 증명이 중요한 이유
영지식 증명은 개인의 정보 보안을 향상시키겠다고 약속했기 때문에 응용 암호학의 획기적인 발전을 나타냅니다. 다른 당사자(예: 서비스 제공업체)에게 나의 주장을(예: "나는 X 국가의 시민입니다")을 증명하는 방법을 고려해야 합니다. 국적 여권이나 운전면허증과 같이 본인의 주장을 뒷받침할 수 있는 "증거"를 제시해야 합니다.
하지만 이 접근 방식은 주로 개인정보보호에 문제가 있다. 타사 서비스와 공유된 개인정보는 해킹에 취약한 중앙 데이터베이스에 저장됩니다. 개인 정보 도난이 중대한 문제가 되면서, 민감한 정보를 공유할 수 있는 더 많은 개인정보 보호 수단이 요구되고 있습니다.
영지식 증명은 주장의 유효성을 증명하기 위한 정보 공개의 필요성을 제거함으로써 이 문제를 해결합니다. 영지식 프로토콜은 유효성에 대한 간결한 증거를 생성하기 위해 ('증인'이라고 불리는) 진술을 입력으로 사용합니다. 이러한 증명은 정보의 노출없이 진술이 거짓이 없음을 강력히 보장합니다
처음 예제로 돌아가서 당신을 인증하기 위한 유일한 증거는 영지식증명입니다 검증자는 증명의 특정 속성이 참인지만 확인하면 기본 문장도 참임을 확인할 수 있습니다.
영지식 증명의 사용 사례
익명 결제
신용카드 결제는 종종 결제 서비스 제공 업체, 은행 및 기타 이해 관계자(예: 정부 기관)를 포함한 여러 당사자가 볼 수 있습니다. 금융 감시는 불법 행위를 포착하는 데 도움이 되지만, 동시에 일반 시민의 프라이버시도 침해합니다.
암호화폐는 사용자가 개인 간 거래할 수 있는 수단을 제공하기 위해 고안되었습니다. 하지만 대다수 암호화폐 거래는 퍼블릭 블록체인에서 공개적으로 볼 수 있습니다. 사용자 신원은 종종 가명이며, 의도적으로 실제 신원과 연결되거나(예: Twitter 또는 GitHub 프로필에 ETH 주소를 포함) 기본적인 온체인 및 오프체인 데이터 분석을 사용하여 실제 신원과 연결될 수 있습니다.
특정 "프라이버시 코인"은 완전 익명 거래를 위해 설계되었습니다. Zcash와 Monero같이 프라이버시에 중점을 둔 블록체인은 송신자/수신자 주소, 자산 유형, 수량 및 거래 시간과 같은 세부 정보를 숨깁니다.
영지식 기술을 프로토콜에 내장함으로써, 프라이버시에 중점을 둔 네트워크는 가 트랜잭션 데이터에 접근하지 않고도 트랜잭션을 검증할 수 있게 합니다. EIP-7503 (opens in a new tab)은 이더리움 블록체인에서 네이티브 수준의 비공개 가치 전송을 가능하게 하는 제안된 설계의 한 예입니다. 그러나 이러한 제안들은 보안, 규제, 사용자 경험(UX) 측면의 복합적인 문제로 인해 구현이 쉽지 않습니다.
영지식 증명은 또한 공개 블록체인 상의 거래를 익명화하는 데에도 활용되고 있습니다. 토네이도 캐시(Tornado Cash)의 경우, 사용자가 이더리움 상에서 익명 거래를 수행할 수 있도록 하는 탈중앙회된 비수탁형 서비스입니다. 토네이도 캐시는 세부 거래 정보를 숨기고 금융 프라이버시를 보장하기 위해 영지식 증명을 사용합니다. 이러한 "선택적" 개인정보 보호 도구는 불행히도 불법 활동의 대상이 되곤 합니다. 결국 이를 극복하기 위해서는 퍼블릭 블록체인에서의 프라이버시는 기본이 되어야 합니다. 이더리움의 개인정보 보호에 대해 자세히 알아보세요.
신원 보호
오늘날의 신원 관리 시스템은 개인정보를 위험에 빠뜨립니다. 영지식 증명은 민감 정보를 보호하면서 개인이 신원을 확인하는 데 도움을 줄 수 있습니다.
영지식 증명은 탈중앙화 신원의 맥락에서 특히 유용합니다. 분산 신원 확인('자기 주권 신원'이라고도 불림) 은 개인에게 개인 식별자에 대한 접근을 제어할 수 있는 기능을 제공합니다. 세금 식별 번호나 여권 세부 정보를 공개하지 않고도 시민권을 증명하는 것은 영지식 기술이 분산 신원 확인을 가능하게 하는 좋은 예입니다.
실사용 사례 ZKP + 신원: 부탄 국가 디지털 ID(NDI) 온 이더리움
신원 관리 시스템에 ZKP를 사용하는 실제 사례는 이더리움에 구축된 부탄 왕국의 국가 디지털 ID(NDI) 시스템입니다. 부탄의 NDI는 ZKP를 사용하여 시민들이 자신의 ID에 있는 민감한 개인 데이터를 공개하지 않고도 "나는 시민이다" 또는 "나는 18세 이상이다"와 같은 자신에 대한 사실을 암호학적으로 증명할 수 있도록 합니다.
탈중앙화 신원 사례 연구에서 부탄 NDI에 대해 자세히 알아보세요.
인간성 증명
오늘날 실제 사용되는 영지식 증명의 가장 널리 쓰이는 예시 중 하나는 World ID 프로토콜 (opens in a new tab)이며, 이는 "AI 시대를 위한 글로벌 디지털 여권"으로 생각할 수 있습니다. 이 프로토콜을 통해 사람들은 개인 정보를 드러내지 않고도 자신이 유일한 개인이라는 사실을 증명할 수 있습니다. 이는 사람의 홍채를 인식하고 홍채 코드를 생성하는, Orb 라고 하는 기기를 통해 구현됩니다. 홍채 코드가 확인되고 검증되면 해당 인물이 생물학적으로 유일한 인간임이 인증됩니다. 검증이 완료되면, 사용자 기기에서 생성된 신원 커밋먼트(생체 정보와 연결되거나 파생되지 않음)가 블록체인 상의 보안 목록에 추가됩니다. 그러면, 해당 사용자가 자신이 인증된 사람임을 증명하고 싶을 때마다 - 로그인, 투표, 기타 행동을 할 때 - 회원 목록에 포함되어 있음을 인증하는 영지식 증명을 생성할 수 있습니다. 영지식 증명을 사용하는 것의 핵심은 오직 하나의 사실만 공개된다는 것입니다: 이 사람은 유일합니다. 그외 모든 사실은 공개되지 않습니다.
World ID는 이더리움 재단의 PSE 팀 (opens in a new tab)이 개발한 Semaphore 프로토콜 (opens in a new tab)에 의존합니다. 세마포어는 가볍지만 강력한 방식을 통해 영지식 증명을 생성하고 검증하도록 설계되었습니다. 이를 통해 사용자는 자신이 어떤 그룹의 구성원인지를 보여줄 필요 없이 그룹의 구성원임을 (이 경우에는, 검증된 인간임을) 증명할 수 있습니다. 또한 Semaphore는 높은 유연성을 갖추고 있어 신원 검증, 이벤트 참여, 자격증명 보유 등 다양한 기준에 따라 그룹을 생성할 수 있습니다.
인증
온라인 서비스를 이용하려면 해당 플랫폼에 접근할 수 있는 신원과 권리를 증명해야 합니다. 이것은 종종 이름, 이메일 주소, 생년월일 등과 같은 개인정보를 필요로 합니다. 또한 긴 비밀번호를 기억하거나 접근 권한을 잃을 위험을 감수해야 할 수도 있습니다.
하지만, 영지식 증명은 플랫폼과 사용자 모두에게 인증을 간소화할 수 있습니다. 공개 입력값(예: 사용자의 플랫폼 멤버십을 증명하는 데이터)과 개인 입력값(예: 사용자 세부 정보)을 사용하여 영지식 증명이 생성되면, 사용자가 서비스에 접근할 필요가 있을 때 신원을 인증하기 위해 인증 정보를 간단히 제출할 수 있습니다. 이는 사용자에게 좋은 경험을 제공하고 기관이 다량의 사용자 정보를 저장할 필요성으로부터 해방됩니다.
검증 가능한 연산
검증 가능한 계산은 블록체인 설계를 개선하기 위한 영지식 기술의 또 다른 응용 분야 입니다. 검증 가능한 계산은 검증 가능한 결과를 유지하면서도 다른 주체에게 계산을 위탁할 수 있게 합니다. 해당 주체는 프로그램이 올바르게 실행되었음을 검증하는 증명과 함께 결과를 제출합니다.
검증 가능한 연산은 보안을 저하시키지 않으면서 블록체인의 처리 속도를 향상시키는 데 중요합니다. 이를 이해하기 위해서는 이더리움 확장을 위해 제안된 솔루션 간의 차이를 알아야 합니다.
샤딩과 같은 온체인 확장 솔루션은 블록체인의 베이스 레이어에 대한 광범위한 수정이 필요합니다. 하지만 이러한 방법은 매우 복잡하며 구현단계에서의 오류는 이더리움의 보안 모델을 약화시킬 수 있습니다.
오프체인 확장 솔루션은 코어 이더리움 프로토콜을 재설계할 필요가 없습니다. 대신, 이 방식은 이더리움의 기본 계층의 처리량을 개선시키기 위해 외부 계산 모델에 의존합니다.
실제로 어떻게 작동하는지 알아보겠습니다:
-
이더리움은 모든 거래를 처리하는 대신 실행을 별도 블록체인에 위탁합니다.
-
거래 처리 이후, 해당 블록체인은 결과를 반환하여 이더리움의 상태에 적용합니다.
이것의 이점은 이더리움이 실행을 수행할 필요 없이 외부 계산에서 얻은 결과를 상태에 적용하기만 하면 된다는 것입니다. 이는 네트워크 혼잡을 줄이고 트랜잭션 속도를 향상시킵니다(오프체인 프로토콜은 더 빠른 실행에 최적화되어 있습니다).
블록체인은 거래를 다시 실행하지 않고도 오프체인 거래를 검증하는 방법이 필요합니다. 그렇지 않으면 오프체인 실행의 의미가 상실됩니다.
이것이 검증 가능한 계산이 작용하는 이유입니다. 노드가 이더리움 외부에서 거래를 실행하는 경우, 오프체인 실행의 정확성을 증명하기 위해 영지식 증명을 제출합니다. 이 증명(이라고 함)은 트랜잭션이 유효함을 보증하며, 이를 통해 이더리움은 누군가 이의를 제기하기를 기다릴 필요 없이 결과를 상태에 적용할 수 있습니다.
영지식 롤업과 validiums는 유효성 증명을 사용하여 안전한 확장성을 제공하는 두 가지 오프체인 확장 솔루션입니다. 이 프로토콜들은 수천 건의 거래를 오프체인에서 실행하고, 그에 대한 검증을 위해 이더리움에 증명을 제출합니다. 이 증명이 검증되는 즉시 해당 결과를 적용할 수 있으며, 이더리움은 기본 계층에서의 계산을 증가시키지 않고도 더 많은 거래를 처리할 수 있습니다.
온체인 투표에서의 뇌물 및 담합 줄이기
블록체인 투표 체계는 감사 가능성, 검열 저항성과 공격으로부터 안전하며 지리적 제약이 없는 등 많은 유리한 특성을 지니고 있습니다. 하지만 온체인 투표 방식조차 담합 문제로부터 자유롭지 않습니다.
결탁은 "타인을 속이고 사취하고 현혹하여 공개경쟁을 제한하도록 조정하는 것"으로 정의되며, 악의적인 행위자가 뇌물을 제공하여 투표에 영향을 미치는 것과 같은 형태로 나타날 수 있습니다. 예를 들어, Alice는 option A를 선호하더라도 Bob으로부터 뇌물을 받고 option B에 투표할 수 있습니다.
뇌물과 결탁은 투표를 신호 메커니즘으로 사용하는 모든 프로세스의 효과를 제한합니다(특히 사용자가 어떻게 투표했는지 증명할 수 있는 경우). 이는 부족한 자원을 할당하는 데 있어 투표가 중요한 결과를 가져올 수 있습니다.
예를 들어, 이차 펀딩 메커니즘 (opens in a new tab)은 다양한 공공재 프로젝트 중에서 특정 옵션에 대한 선호도를 측정하기 위해 기부에 의존합니다. 프로젝트에 대한 기부금은 "투표"로 결정되며, 더 많은 투표를 받은 프로젝트는 매칭 풀에서 더 많은 자금을 받습니다.
온체인 투표를 사용하면 이차 펀딩이 담합에 취약해집니다. 블록체인 트랜잭션은 공개적이므로 뇌물을 주는 사람이 뇌물을 받은 사람의 온체인 활동을 조사하여 어떻게 "투표"했는지 볼 수 있습니다. 이러한 경우 "quadratic funding"은 커뮤니티에서 집계된 선호도에 따라 자금을 배정하는 효과적인 수단이 되지 못합니다.
다행히 MACI(최소 담합 방지 인프라)와 같은 새로운 솔루션은 영지식 증명을 사용하여 온체인 투표(예: 이차 펀딩 메커니즘)가 뇌물과 담합에 저항하도록 만들고 있습니다. MACI는 중앙 관리자(소위 "코디네이터")가 각 개인이 어떻게 투표했는지에 대한 구체적인 내용을 공개하지 않고도 투표를 집계하고 결과를 계산할 수 있게 해주는 스마트 계약 및 스크립트 모음입니다. 그러면서도 개표가 올바르게 되었는지, 특정인이 투표에 참여했는지 확인할 수 있습니다.
MACI가 영지식 증명과 함께 동작하는 방법은 무엇인가요?
처음 시작 시 코디네이터는 MACI 계약을 이더리움에 배포한 다음, 사용자가 (스마트 계약에 공개 키를 등록함으로써) 투표에 가입할 수 있도록 합니다. 사용자는 스마트 계약에 자신의 공개 키로 암호화된 메시지를 전송해 투표합니다(유효한 투표는 사용자의 신원과 관련된 최신 공개 키로 서명되어야 합니다). 그 후, 코디네이터는 투표 기간이 끝나면 모든 메시지를 처리하고, 투표를 집계하며, 결과를 온체인에서 검증합니다.
MACI에서 영지식 증명은 코디네이터가 투표를 잘못 처리하거나 올바르게 집계하지 못하도록 방지하여 계산의 정확성을 보장하는 데 사용됩니다. 이는 코디네이터에게 a) 모든 메시지가 올바르게 처리되었고, b) 최종 결과가 모든 유효한 투표의 합계와 일치함을 검증하는 ZK-SNARK 증명을 생성하도록 요구함으로써 달성됩니다.
따라서 사용자별 투표 내용을 공유하지 않아도(일반적인 경우), MACI는 집계 과정에서 계산된 결과의 무결성을 보장합니다. 이 기능은 기본적인 결탁 계획의 효과를 줄이는 데 유용합니다. 앞서 Bob이 Alice에게 선택지에 투표하도록 뇌물을 주는 사례를 사용하여 이런 가능성을 살펴볼 수 있습니다.
- Alice는 투표하기 위해 스마트 계약에 퍼블릭 키를 등록합니다.
- Alice는 Bob에게 뇌물을 받는 대가로
option B에 투표하기로 동의합니다. - Alice는
option B에 투표합니다. - Alice는 신원과 연관된 공개 키를 변경하기 위해 암호화된 트랜잭션을 비밀리에 전송합니다.
- Alice는 새로운 공개 키를 사용하여
option A에 투표하는 또 다른 (암호화된) 메시지를 스마트 계약에 전송합니다. - Alice는 Bob에게 자신이
option B에 투표했음을 보여주는 트랜잭션을 보여줍니다(이 투표는 공개 키가 더 이상 시스템에서 Alice의 신원과 연결되지 않으므로 유효하지 않습니다). - 메시지를 처리하는 동안, 코디네이터는 Alice의
option B에 대한 투표는 건너뛰고option A에 대한 투표만 집계합니다. 따라서 Bob이 Alice와 담합하여 온체인 투표를 조작하려는 시도는 실패합니다.
MACI를 사용하려면 코디네이터가 뇌물을 주는 사람과 담합하거나 유권자에게 직접 뇌물을 주려고 시도하지 않을 것이라고 신뢰해야 합니다. 코디네이터는 사용자 메시지(증명을 생성하기 위해 필요) 를 복호화할 수 있어, 각 사람이 어떻게 투표했는지 정확히 확인할 수 있습니다.
하지만 코디네이터가 정직하게 유지되는 경우, MACI는 온체인 투표의 무결성을 보장하는 강력한 도구가 됩니다. 이것이 바로 각 개인의 투표 선택의 무결성에 크게 의존하는 이차 펀딩 애플리케이션(예: clr.fund (opens in a new tab)) 사이에서 MACI가 인기 있는 이유입니다.
MACI에 대해 자세히 알아보기 (opens in a new tab)
영지식 증명은 어떻게 동작하나요?
영지식증명은 진술 내용을 공유하거나 어떻게 진실을 발견했는지 밝히지 않고도 진술의 진실을 증명할 수 있습니다. 이를 가능하게 하기 위해 영지식 프로토콜은 일부 데이터를 입력으로 받아들이고 '참' 또는 '거짓'을 출력으로 반환하는 알고리즘에 의존합니다.
영지식 프로토콜은 다음 기준을 충족해야 합니다:
-
완전성: 입력이 유효하면 영지식 프로토콜은 항상 ‘true’를 반환합니다. 따라서 근본적인 진술이 사실이고 증명자와 검증자가 정직하게 행동한다면 그 증명은 받아들여질 수 있습니다.
-
건전성: 입력이 유효하지 않은 경우, 영지식 프로토콜을 속여 'true'를 반환하게 하는 것은 이론적으로 불가능합니다. 따라서 거짓말하는 증명자는 잘못된 진술이 유효하다고 믿도록 정직한 검증자를 속일 수 없습니다(아주 작은 가능성을 제외하고).
-
영지식: 검증자는 진술의 유효성이나 거짓 여부 외에는 진술에 대해 아무것도 알 수 없습니다(진술에 대한 "영지식"을 가집니다). 이 요건은 또한 검증자가 증명과정에서 원래의 입력내용(진술 내용) 을 도출하는 것을 방지합니다.
기본적인 형태의 영지식 증명은 증거(witness), 질의(challenge), 응답(response)의 세 가지 요소로 구성됩니다.
-
증거: 영지식 증명에서 증명자는 일부 숨겨진 정보에 대한 지식을 증명하고자 합니다. 비밀 정보는 증거의 "증인"이며, 증명자는 증인에 대해 가정된 지식을 바탕으로 해당 지식을 알고 있는 당사자만이 답변할 수 있는 질문 세트를 만듭니다. 이렇게 증명자는 무작위로 질문을 선택하고 정답을 계산해 검증자에게 보내는 것으로 증명 과정을 시작합니다.
-
질의: 검증자는 세트에서 무작위로 다른 질문을 선택하여 증명자에게 답변하도록 요청합니다.
-
응답: 증명자는 질문을 수락하고 답을 계산하여 검증자에게 반환합니다. 검증자는 증명자의 응답을 확인하여 증명자가 실제로 증인에 접근할 수 있는지 확인합니다. 증명자가 임의로 추정하거나 운에 기대어 올바른 정답을 얻지 않도록 하기 위해, 검증자는 더 많은 질문을 선택하여 정답을 요구합니다. 이 상호 작용을 여러 번 반복함으로써, 증명자가 증인에 대한 지식을 가장할 가능성은 검증자가 만족할 때까지 크게 줄어듭니다.
위의 내용은 '대화형 영지식 증명'의 구조를 설명합니다. 초기의 영지식 증명은 대화형 증명을 사용했습니다. 즉, 진술의 유효성을 확인하기 위해서는 증명자와 검증자 간 통신이 필요했습니다.
대화형 증명이 어떻게 작동하는지를 보여주는 좋은 예는 Jean-Jacques Quisquater의 유명한 알리바바 동굴 이야기 (opens in a new tab)입니다. 이 이야기에서 Peggy(증명자) 는 비밀 문구를 드러내지 않고도 마법 문을 열 수 있다는 것을 Victor(검증자) 에게 증명하고 싶어합니다.
비대화형 영지식 증명
대화형 증명은 혁명적이었지만, 두 당사자가 모두 온라인이어야 하며 반복적으로 상호작용하여야 하기 때문에 사용성이 제한적이었습니다. 심지어 검증자가 증명자의 정직함을 확신한다 해도, 증명은 독립적인 검증을 위해 사용할 수 없었습니다.(새로운 증명을 계산하려면 증명자와 확인자 간의 새로운 메시지 세트가 필요했습니다)
이 문제를 해결하기 위해 Manuel Blum, Paul Feldman, Silvio Micali는 증명자와 검증자가 공유 키를 갖는 최초의 비대화형 영지식 증명 (opens in a new tab)을 제안했습니다. 이를 통해 증명자는 정보 자체를 제공하지 않고도 일부 정보(즉, 증인)에 대한 지식을 증명할 수 있습니다.
대화형 증명과 달리, 비대화형 증명은 참여자(검증자와 증명자) 간 단 한 번의 통신만 필요합니다. 영지식 증명을 계산하기 위해 증명자는 비밀 정보를 특별한 알고리즘에 전달합니다. 그 증명은 검증자에게 전송되며, 검증자는 다른 알고리즘을 사용하여 증명자가 비밀 정보를 알고 있는지 확인합니다.
비대화형 증명은 증명자와 검증자 간 통신 과정을 줄여 영지식 증명을 더욱 효율적으로 만듭니다. 더욱이, 한 번 증명이 생성되면 해당 증명을 누구나(공유키와 검증 알고리즘에 접근할 수 있는) 검증할 수 있습니다.
비대화형 증명은 영지식 기술의 진일보한 발전이며 오늘날 사용되는 증명 시스템 개발에 박차를 가했습니다. 다음은 이러한 새 증명 유형에 대해 이야기합니다:
영지식 증명의 종류
ZK-SNARK
ZK-SNARK는 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge의 약어입니다. ZK-SNARK 프로토콜은 다음과 같은 특징을 가지고 있습니다:
-
영지식: 검증자는 진술에 대해 다른 것을 알지 못한 채 진술의 무결성을 검증할 수 있습니다. 검증자가 명제에 대해 알고 있는 유일한 지식은 그것의 참, 거짓 여부뿐입니다.
-
간결성: 영지식 증명은 증거보다 작고 신속하게 검증될 수 있습니다.
-
비대화형: 여러 라운드의 통신이 필요한 대화형 증명과 달리 증명자와 검증자가 한 번만 상호 작용하기 때문에 이 증명은 '비대화형'입니다.
-
논증: 이 증명은 '건전성' 요구사항을 충족하므로 부정행위는 거의 불가능합니다.
-
지식(Of Knowledge): 영지식 증명은 비밀 정보(증거)에 접근하지 않고는 구성할 수 없습니다. 증인을 보유하지 않은 증명자가 유효한 영지식 증명을 계산하는 것이 불가능하거나 매우 어렵습니다.
이전에 언급한 '공유 키'는 증명자와 검증자가 증명을 생성하고 검증하는 데 사용하기로 합의한 공개 매개변수를 의미합니다. 공개 매개변수(공통 참조 문자열(CRS, Common Reference String)) 을 생성하는 것은 프로토콜의 보안에 중요한 역할을 하기 때문에 예민한 작업입니다. 공개 매개변수 생성에 사용되는 엔트로피(무작위성) 가 부정한 증명자에게 넘어간다면, 그들은 잘못된 증명을 계산할 수 있습니다.
다자간 연산(MPC) (opens in a new tab)은 공개 매개 변수 생성의 위험을 줄이는 방법입니다. 여러 당사자가 신뢰 설정 행사 (opens in a new tab)에 참여하며, 각 참여자는 CRS를 생성하기 위해 일부 무작위 값을 제공합니다. 진실한 당사자가 부정한 당사자들의 엔트로피 비중을 파괴하는 한, ZK-SNARK 프로토콜은 계산적 건전성을 유지합니다.
신뢰할 수 있는 설정은 사용자가 매개변수 생성에 참여하는 참가자를 신뢰하는 것을 필요로 합니다. 그러나 ZK-STARK의 개발은 신뢰할 수 없는 설정과 함께 증명 프로토콜이 동작하는 것을 가능하게 했습니다.
ZK-STARK
ZK-STARK는 Zero-Knowledge Scalable Transparent Argument of Knowledge의 약어입니다. ZK-STARK는 ZK-SNARK와 유사하지만 다음과 같은 차이가 있습니다:
-
확장성: 증거의 크기가 클 때, ZK-STARK는 ZK-SNARK보다 증명을 생성하고 검증하는 속도가 더 빠릅니다. STARK 증명은 증인의 크기가 커질 수록 약간만 증가합니다(SNARK의 경우, 증명자와 검증자의 시간은 증인의 크기에 비례해 선형적으로 증가합니다).
-
투명성: ZK-STARK는 신뢰 설정 대신 증명과 검증을 위한 공개 매개변수를 생성하기 위해 공개적으로 검증 가능한 무작위성에 의존합니다. 따라서 ZK-SNARK에 비해 더 투명합니다.
ZK-STARK는 ZK-SNARK보다 더 큰 증명을 생성합니다. 즉, 일반적으로 더 긴 증명 처리 시간을 필요로 합니다. 하지만, 대용량 데이터셋을 증명하는 등의 경우에는 ZK-STARK가 ZK-SNARK보다 비용 효율적일 수 있습니다.
영지식 증명 사용의 단점
하드웨어 비용
영지식 증명을 생성하는 것은 매우 복잡한 계산을 필요로 하며, 이에 특화된 기계에서 수행하는 것이 가장 좋습니다. 그 기계들은 매우 고가이므로 일반 개인이 소유하기에는 비싼 편입니다. 또한 영지식 기술을 사용하려는 응용 프로그램은 하드웨어 비용을 고려해야 하며, 이로 인해 사용자에게 추가 비용이 발생할 수 있습니다.
증명 검증 비용
증명을 검증하는 것 또한 복잡한 계산을 필요로 하며 영지식 기술을 응용 프로그램에 구현하는 비용을 증가시킵니다. 이 비용은 계산을 증명하는 과정에서 특히 관련이 있습니다. 예를 들어, ZK-rollup은 이더리움에서 하나의 ZK-SNARK 증명을 검증하기 위해 약 500,000가스를 지불해야 하며, ZK-STARK는 더 많은 비용을 필요로 합니다.
신뢰 가정
ZK-SNARK에서 공통 참조 문자열(공개 매개변수)는 한 번 생성되어 원하는 당사자가 영지식 프로토콜에 참여할 수 있도록 재사용할 수 있습니다. 공개 매개변수는 참여자가 정직하다고 가정된 신뢰할 수 있는 설정 조직을 통해 생성됩니다.
하지만 사용자가 참여자의 정직성을 평가할 방법이 실제로는 없으며, 개발자의 말을 믿어야 합니다. ZK-STARK는 문자열 생성에 사용되는 무작위성이 공개적으로 검증 가능하기 때문에 신뢰 가정으로부터 자유롭습니다. 한편, 연구자들은 ZK-SNARK의 신뢰할 수 없는 설정을 연구하여 증명 메커니즘의 보안을 강화하고 있습니다.
양자 컴퓨팅 위협
ZK-SNARK는 암호화에 타원 곡선 암호 방식을 사용합니다. 타원 곡선 이산 로그 문제가 현재로서는 해결이 불가능한 것으로 간주되지만, 양자 컴퓨터의 발전은 미래에 이 보안 모델을 깰 수 있습니다.
ZK-STARK는 보안을 위해 충돌 저항성 해시 함수에만 의존하기 때문에 양자 컴퓨팅의 위협에 면역이 있는 것으로 간주됩니다. 공개 키-개인 키 쌍을 사용하는 타원 곡선 암호와는 달리, 충돌저항성을 갖는 해시를 파괴하기에는 양자 컴퓨팅 알고리즘으로도 어렵습니다.
더 읽어보기
- 영지식 증명 사용 사례 개요 (opens in a new tab) — 프라이버시 및 확장성 탐색 팀(Privacy and Scaling Explorations Team)
- SNARK와 STARK, 재귀적 SNARK 비교 (opens in a new tab) — Alchemy 개요
- 영지식 증명: 블록체인 프라이버시 개선 (opens in a new tab) — Dmitry Lavrenov
- zk-SNARK — 현실적인 영지식 예제 및 심층 분석 (opens in a new tab) — Adam Luciano
- ZK-STARK — 양자 컴퓨터에 대해서도 검증 가능한 신뢰 구축 (opens in a new tab) — Adam Luciano
- zk-SNARK가 어떻게 가능한지에 대한 개략적인 소개 (opens in a new tab) — Vitalik Buterin
- 영지식 증명(ZKP)이 자기 주권 신원의 판도를 바꾸는 이유 (opens in a new tab) — Franklin Ohaegbulam
- EIP-7503 설명: ZK 증명을 통한 이더리움에서의 비공개 전송 활성화 (opens in a new tab) — Emmanuel Awosika
- ZK 카드 게임: ZK 기본 및 실제 사용 사례를 배우는 게임 (opens in a new tab) - ZK-Cards
페이지 마지막 업데이트됨: 2026년 2월 23일