출처: 체인덴 커뮤니티
zk-SNARK와 zk-STARK는 모두 영지식 증명인데, 그 특성은 무엇이며 서로 어떻게 비교하나요?
영지식 증명(ZKP)은 한 당사자(증명자)가 진술 자체의 유효성 이외의 정보를 공개하지 않고도 다른 당사자(검증자)에게 특정 진술이 사실임을 확신시킬 수 있는 암호화 프로토콜로, 블록체인 생태계의 혁신적인 기술이며 2차 계층 솔루션을 통해 블록체인 확장성을 가능하게 하고 개인정보를 보호하는 애플리케이션을 구축할 수 있게 해줍니다. 가장 눈에 띄는 두 가지 유형의 ZKP는 zk-SNARK와 zk-STARK이며, 각기 다른 특성과 사용 사례를 가지고 있습니다.
이 문서에서는 zk-SNARK와 zk-STARK의 주요 특징과 서로 비교하는 방법에 대해 설명합니다.
전제 조건
ZKP 이해: 회로, 제약 조건, 증인, 검증자 및 증명자가 무엇인지 알아야 합니다.
zk-SNARK(간결한 비대화형 지식 인수)란 무엇인가요?
Zk-SNARK는 비대화형인 광범위한 종류의 ZKP 시스템으로, 초기 증명이 생성된 후 증명자와 검증자 간에 주고받는 통신이 없습니다. 짧은 증명 크기와 빠른 검증 시간을 제공하며 복잡성에 관계없이 일정하게 유지되는 효율성으로 잘 알려져 있습니다.
zk-SNARK의 주요 특징
신뢰 설정: SNARK는 구조화된 참조 문자열이라고 하는 초기 파라미터 세트가 생성되는 신뢰 설정 단계가 필요합니다( SRS). 이 설정 단계에서는 노출될 경우 이 설정을 사용하여 생성된 모든 후속 증명의 보안이 깨질 수 있는 비밀을 사용합니다. 이 설정 데이터는 종종 "독성 폐기물"이라고도 합니다. 신뢰할 수 있는 설정은 사용자가 설정이 올바르게 실행되었고 나중에 비밀이 파기되었다고 믿어야 한다는 잠재적인 신뢰 문제를 야기하기 때문에 종종 단점으로 간주됩니다.
타원 곡선 암호화(ECC): 이산 로그 문제(DLP)의 난이도에 따라 많은 SNARK 구조가 타원 곡선 암호화에 의존합니다. 이는 기존 컴퓨터에 대한 강력한 보안을 제공하지만, 향후 DLP를 효율적으로 해결할 수 있는 양자 컴퓨터의 공격에 SNARK가 잠재적으로 취약해질 수 있습니다.
인기 있는 zk-SNARK 프로토콜
Groth16: Groth16은 가장 널리 사용되는 SNARK 프로토콜 중 하나입니다. 회로별 신뢰 설정이 필요하며 매우 효율적이어서 매우 작은 증명과 빠른 검증 시간을 생성합니다. 증명 크기가 작기 때문에 지캐시와 같은 블록체인 프로젝트에서 일반적으로 사용됩니다.
PLONK (보편적 비상호작용 지식을 위한 라그랑주 인수 기반 인수 배치): PLONK는 일반적이고 업데이트 가능한 SNARK 프로토콜을 사용하는 보다 유연한 SNARK 프로토콜입니다. 강하고 업데이트 가능한 SRS를 사용하므로 모든 회로에 사용할 수 있으며 더 큰 회로를 지원하도록 수정할 수 있습니다. Groth16과 달리 PLONK 설정은 특정 회로에 국한되지 않으며 여러 회로에 재사용할 수 있습니다. 따라서 신뢰할 수 있는 설정을 반복할 필요성이 줄어들고 전체 설정을 다시 실행하지 않고도 새로운 프로그램이나 회로를 쉽게 추가할 수 있습니다.
zk-SNARK의 특징
프로비전 크기: SNARK는 대역폭과 스토리지가 제한적인 애플리케이션에 적합합니다.
퀀텀 이후 보안: ECC에 의존하기 때문에 제한적입니다. 충분히 강력한 양자 컴퓨터가 DLP를 처리할 수 있기 때문에 SNARK는 양자 내성이 없습니다.
신뢰 설정: 필수입니다. (대부분의 SNARK에서). 설정 단계에서는 제대로 관리하지 않으면 잠재적인 보안 위험을 초래할 수 있는 신뢰 가정을 도입합니다.
확장성: 간결한 증명과 빠른 검증이 필요한 애플리케이션에 매우 효율적이지만, 매우 동적인 환경에서는 신뢰할 수 있는 설정의 필요성이 제한이 될 수 있습니다.
zk-STARK(확장 가능한 투명 지식 논증)란 무엇인가요?
Zk-STARK는 zk-SNARK의 단점을 해결하기 위해 설계된 ZKP의 또 다른 클래스입니다. 확장 가능하고 "투명"하도록 설계되었기 때문에 신뢰할 수 있는 설정 단계가 필요하지 않습니다. 대신, zk-STARK는 해시 함수와 공개적으로 알려진 무작위성을 사용하여 증명을 구성하므로 보안과 확장성이 향상됩니다.
zk-STARK의 주요 특징
투명한 설정: STARK는 비밀 파라미터에 의존하지 않습니다. 대신, 공개 무작위성을 사용하여 증명을 생성하므로 시스템을 손상시킬 수 있는 '독성 폐기물'이 없으며 신뢰할 수 있는 설정이 필요하지 않습니다.
해시 기반 보안: STARK는 타원 곡선 암호화가 아닌 SHA-256과 같은 해시 함수에 의존합니다. 현재 암호화 가정 하에서 해시 함수는 양자 컴퓨터에 대해 안전한 것으로 간주되기 때문에 양자 공격에 강합니다.
스타크의 특성
증명 크기: 스타크 증명은 SNARK 증명보다 몇 배 더 클 수 있어 검증 시간이 늘어나고 대역폭이나 저장 공간에 불리한 단점이 있습니다. 제한된 환경에서는 단점이 있습니다. 이는 투명성, 다항식 커미트먼트 사용, 확장성을 달성하기 위한 방법 때문입니다.
포스트-퀀텀 보안: 강력합니다. STARK는 타원 곡선 암호화 대신 해시 함수를 사용하기 때문에 현재 암호화 가정 하에서 양자 공격에 덜 취약합니다.
신뢰 설정: 필요 없음.STARK는 투명한 설정을 사용하므로 설정 단계에서 신뢰가 필요하지 않고 보안이 강화됩니다.
확장성: 확장성이 뛰어나며, 특히 대규모 계산의 경우 복잡성이 증가할수록 더 큰 성능 이점을 보여줍니다. 새로운 애플리케이션이나 사용 사례마다 설정을 다시 수행할 필요가 없으므로 신뢰할 수 있는 설정이 필요하지 않아 유연성이 더 뛰어납니다.
zk-SNARK와 zk-STARK 비교
Summary
Zk-SNARKs는 영지식 증명 시스템입니다. 효율적인 증명 크기와 빠른 검증 시간을 제공하지만, 신뢰할 수 있는 설정이 필요하고 타원 곡선 암호화를 사용하므로 양자 공격에 취약합니다. 반면에 Zk-STARK는 신뢰할 수 있는 설정이 필요하지 않습니다. 대신 보안을 위해 해시 함수에 의존하며(양자 내성) 대규모 계산을 위한 확장성이 뛰어납니다. 그러나 증명 크기가 더 크고 작은 계산의 경우 검증 속도가 느립니다.
이 두 가지 주요 ZKP는 블록체인 생태계에서 ZK 프로토콜을 구축하고, 2차 계층 솔루션을 통해 블록체인의 확장성을 가능하게 하며, 프라이버시를 보호하는 애플리케이션을 구축하는 데 매우 중요합니다.