본문 바로가기

[코인상식] zero-knowldege (2) - 알아두면 쓸모있는 중요한 코인상식 (13)

2024.03.04. 오후 5:23

안녕하세요, Yonsei_dent 입니다:)

알트코인과 관련된 두가지 시리즈를 진행 중입니다.

<알트코인 백과사전> 시리즈를 통해 알트코인 자산 별로 심도있게 다루어보는 시간을 가지는 중이구요.

<알아두면 쓸모있는 중요한 코인상식> 시리즈를 통해 에서 알트코인과 관련된 기초적인 개념을 다루는 중입니다.

이번주 또한 새로운 코인 상식에 관해 알아보는 시간을 가질 예정이며, 이것이 더 나아가 여러 블록체인 프로젝트들의 비교, 분석의 기본 배경 지식이 될 수 있게, 자세히 알아보는 시간을 가져보도록 하겠습니다.

최근에 코인 백과사전에서 여러 블록체인 프로젝트들을 설명하다보면 자주 등장하는 개념이 존재합니다.

그것은 바로 해당 블록체인이 layer-2블록체인으로 생태계 확장을 하면서 등장하는데요,

바로 zk rollup, 혹은 zkEVM 등 "zk"가 들어가는 것을 많이 확인할 수 있습니다.

🔎 그래서 지난주부터 zero knowledge proof란 무엇인지 알아보는 중이며, 몇 주에 걸쳐 이를 응용한 프로젝트에 관해 알아보는 시간을 가져보려 합니다.

따라서, 오늘은 영지식 증명의 종류; Types of Zero-knowledge proof (zk proof) 에 관하여 알아보겠습니다.

📒 Index

1) Types of zk proof(영지식 증명의 여러 종류)

2) zk-SNARKs

3) zk-STARKs

4) SNARKs vs STARKs

5) Bulletproof

1. Types of zk proof(영지식 증명의 여러 종류)

지난 시간에 알아보았듯이 영지식 증명에는 크게 두가지 종류로 나뉠 수 있습니다.

그것은 바로 대화형 영지식 증명비대화형 영지식 증명입니다.

1️⃣ 대화형 영지식 증명 (Interactive Zero-knowledge proof)

대화형 영지식 증명은 증명자와 검증자 사이에 상호 작용을 진행하며 검증하는 모델입니다. 증명자는 이러한 상호 작용 중에 확인자에게 특정 사실에 대한 진실성을 설득하기 위해 일련의 작업을 완료해야 합니다.

많은 시간상당한 양의 계산이 요구되는 대신, 증명을 손상시키기 어려워 안전하고 다양한 유형의 정보에 대한 지식을 증명하기가 쉽습니다. 대화형 영지식 증명에서 검증자는 임의의 랜덤 값을 생성해 증명자에게 상황에 맞는 올바른 답을 대화를 통해 원하는 만큼 요구할 수 있기 때문입니다.

증명자와 검증자 간의 직접적인 통신을 필요로 하고 비교적 비효율적이며, 많은 계산을 요구할 수 있습니다. 하지만 유연성은 조금 양호한 편입니다.

2️⃣ 비대화형 영지식 증명 (Non-Interactive Zero-knowledge proof)

비대화형 영지식 증명은 수학적 알고리즘을 사용하여 증명자와 검증자의 지속적인 상호 작용 없이 검증자가 확인할 수 있는 증거를 생성하는 증명 방식을 뜻합니다.

참가자(증명자와 확인자) 사이의 통신이 한 번만 필요합니다. 증명자는 비밀 정보를 특수한 알고리즘에 전달하여 영지식 증명을 계산합니다. 이 증명은 검증자에게 보내지며, 검증자는 다른 알고리즘을 사용하여 증명자가 비밀 정보를 알고 있는지 확인합니다.

당사자간의 신뢰 구축이 어려운 분산형 시스템에 적합한 모델로, 블록체인 네트워크에서 활용하기에 더욱 알맞은 것으로 알려져 있습니다.

대화형 영지식 증명에 비해 비용 효율적이고, 상호 통신이 줄어들면서 증명과정이 더욱 효율적입니다. 게다가 한 번 증명이 생성되면, 공유 키와 검증 알고리즘에 액세스할 수 있는 누구나 이를 검증할 수 있습니다. 더 적은 계산으로 빠르게 검증이 가능한 것이 특징입니다.

다만 상호작용이 있는 대화형 영지식 증명보다 유연성이 떨어지며, 특정 유형의 정보를 다룬 지식 증명에 특화되어 있습니다.

현재 블록체인에서 사용되는 대부분의 영지식 증명은 바로 “비대화형 영지식 증명"입니다.

🔎 여기서 오늘은 이러한 영지식 증명을 활용한 기술들에 관해 세부적으로 알아볼 예정입니다.

오늘 알아볼 것을 아래와 같습니다.

1️⃣ zk-SNARKS(Zero-knowledge succinct non-interactive argument of knowledge)

2️⃣ zk-STARKS(Zero-knowledge scalable transparent argument of knowledge)

3️⃣ Bulletproofs (방탄증명)

2. zk-SNARKs

zk-SNARKsZero-knowledge succinct non-interactive argument of knowledge로, 번역하면 영지식 간결 비대화형 증명 입니다. 단어 하나하나 의미를 알아보겠습니다.

▶︎zk : 영지식 : 증명자가 진술에 대한 정보를 공개하지 않아도 진술을 검증할 수 있습니다.

▶︎S :간결(succinct) : 증명 사이즈가 작아 검증이 빠릅니다.

▶︎N : 비대화형(non-interactive) : 증명자와 검증자 사이 여러번이 아닌 한 번만 상호작용합니다.

▶︎AR : 논증(argument) : 증명은 타당성 요건을 충족하여, 부정하는 것은 극히 희박합니다.

▶︎K : 지식(knowledge) : 제로 지식 증명은 비밀 정보(증인)에 대한 액세스 없이는 생성할 수 없습니다. 증인이 없는 증명자가 유효한 제로 지식 증명을 계산하는 것은 어렵거나 불가능합니다.

위와 같은 의미를 담고 있는 증명방식 입니다.

좌 : vitalik.eth.limo 참조 / 우 : medium.com 참조

2012년 Nir Bitansky, Ran Canetti, Alessandro Chiesa, 그리고 Eran Tromer가 공동 저술했던 논문에서 처음으로 소개되었습니다. SNARKs는 한 당사자가 비밀을 공개하지 않고 다른 당사자에게 자신이 비밀을 알고 있다는 것을 증명할 수 있는 기능을 제공합니다.

zk-SNARKs는 분산 원장 솔루션에 제로 지식 증명 프로토콜로 추가되어 개인 정보 보호와 확장성을 향상시킬 수 있습니다. [Zcash]는 zk-SNARKs 기술을 활용하여 보호된 거래를 생성하는 첫 대규모 응용 프로그램 중 하나로, 이를 통해 송신자, 수신자 및 금액을 비공개로 유지합니다. Zcash의 보호된 거래는 블록체인 상에서 완전히 암호화될 수 있지만, zk-SNARK를 사용하여 네트워크의 합의 규칙에 따라 유효한 것으로 검증될 수 있습니다.

SNARK의 중요한 특성은 “신뢰할 수 있는 초기값 설정; Trusted setup ceremony; 세레모니”에 대한 의존성입니다. 신뢰할 수 있는 초기값 설정은 프라이빗 거래를 위한 증명을 생성하고 그 증명을 검증하는 데 사용되는 키가 생성되는 이벤트를 의미합니다. 이벤트 중에 사용된 키를 생성하는 비밀이 파괴되지 않으면, 잘못된 증명을 생성할 수 있습니다. 이는 암호화폐의 경우 참가자들이 거래를 위조하거나 새로운 토큰을 발행할 수 있는 능력을 제공합니다.

SNARK의 보안 수준은 거짓된 주장의 설득력 있는 증명을 찾기 위해 수행되어야 하는 작업량에 의해 측정됩니다. 다시 말해, 거짓된 주장의 설득력 있는 증명을 생성하는 것이 계산적으로 불가능하면 SNARK는 안전합니다. 신뢰할 수 있는 설정이 필요한 일부 SNARK의 경우, 적어도 세레모니에 참가한 한 명의 참가자는 함정문을 생성하고 나머지 함정문과 결합되어 SNARK의 보안을 손상시킬 수 있는 가능성을 가진 함정문을 생성하고 버려야 합니다. 따라서 신뢰할 수 있는 설정은 이러한 발생 가능성을 충분히 낮추기 위해 많은 참가자와 함께 실행됩니다.

신뢰할 수 있는 설정은 초기에 필요하고, SNARK 기반 네트워크의 사용자는 신뢰할 수 있는 설정이 올바르게 수행되었고 비밀이 파괴되어 생성 이벤트의 참가자들이 보유하지 않았음을 신뢰해야 합니다. 이러한 신뢰할 수 있는 설정에 대한 의존은 일부 SNARK에 대한 잠재적인 보안 취약점으로 지적되어왔습니다.

일부 SNARK의 또 다른 제한은 양자 컴퓨팅에 대한 내성을 갖추지 못한다는 것입니다. SNARK의 지지자들은 양자 컴퓨터가 SNARK에 위협을 가하기 시작하면 암호학 세계에서 더 큰 문제가 발생할 것이라고 주장합니다. 게다가, 앞으로 일부 SNARK는 양자 내성을 갖추기 위해 업그레이드될 수 있습니다.

다중 당사자 계산(Multi-party computation; MPC)은 암호학적 프로토콜인 zk-SNARK와 같은 곳에서 공개 매개 변수 생성과 관련된 위험을 줄이기 위한 기술로 이를 사용해 취약점을 해결하고자 했습니다. MPC 기반 설정에서는 여러 당사자가 신뢰할 수 있는 초기값 설정에 협력하여 프로토콜에서 필요한 공통 참조 문자열(CRS) 또는 공개 매개 변수를 공동으로 생성합니다.

MPC 세트업에서 각 참가자는 고유한 무작위 값 또는 공유를 프로세스에 기여합니다. 각 당사자가 제공하는 무작위성은 생성된 매개 변수의 보안 및 예측할 수 없음을 보장합니다. 중요한 것은, 일부 참가자가 악의적이거나 침해당하더라도 적어도 하나의 참가자가 정직하게 행동하고 자신의 무작위성 기여를 안전하게 처리한다면, 시스템의 전체적인 보안을 유지할 수 있습니다.

MPC 기반 접근법은 다중 당사자 간의 신뢰를 분산시키고, 어떤 단일 엔터티에 대한 의존성을 줄이고, 프로토콜의 전반적인 보안을 향상시키는 데 목표를 두고 있습니다. 여러 참가자에게 매개 변수 생성 책임을 분산함으로써, 공모나 침해의 위험이 최소화됩니다.

그러나 신뢰할 수 있는 설정은 여전히 사용자가 매개 변수 생성 과정에 참여하는 참가자를 신뢰해야 합니다. 신뢰할 수 있는 설정이 필요하지 않는 zk-STARKs의 개발은 이 분야에서 중요한 발전을 나타냅니다.

zk-STARKs는 신뢰할 수 있는 설정을 필요로하지 않으며, zk-SNARKs와 같은 프로토콜에 비해 보다 탈중앙화되고 신뢰할 수 있는 대안을 제공합니다. 이로 인해 zk-STARKs는 설정 참가자의 신뢰성을 보장할 수 없는 시나리오나 탈중앙화를 유지하는 것이 중요한 경우에 특히 매력적입니다.

아래 3장에서 자세히 zk-STARKs에 관해 알아보겠습니다.

🔵 장점

높은 처리량

계산 부담을 줄여 많은 트랜잭션을 처리할 수 있게 함으로써 처리량을 높입니다. 이를 통해 롤업을 통해 초당 수천 건의 트랜잭션이 가능합니다.

간결한 유효성 증명 크기

일반적으로 유효성을 검증하는 데 사용되는 트랜잭션 데이터보다 훨씬 작기 때문에 블록체인의 혼잡을 줄이고 보다 저렴한 가스 수수료와 신속한 트랜잭션을 가능하게 합니다.

향상된 보안성

최첨단 암호화 보안 메커니즘을 사용하여 검증자를 속이고 악의적인 활동에 참여하는 것이 매우 어렵습니다.

🔴 단점

신뢰할 수 있는 설정 필요

공개 매개 변수를 생성하기 위해 신뢰할 수 있는 설정이 필요하며, 악의적인 행위자가 이 매개 변수에 접근하면 가짜 유효성 증명을 만들 수 있습니다.

양자 컴퓨팅 공격 취약성

타원 곡선 암호화를 사용하며, 양자 컴퓨팅의 공격에 취약할 수 있습니다.

특수 하드웨어 의존성

유효성 증명을 생성하는 것은 계산적으로 비용이 많이 들며, 특수 하드웨어가 필요합니다. 이러한 하드웨어의 제한된 접근성으로 인해 중앙 집중화 우려가 생길 수 있습니다.

3. zk-STARKs

zk-STARKsZero-knowledge Scalable Transparent argument of knowledge로, 번역하면 영지식 확장 가능하며 투명한 지식 증명 입니다. 단어 하나하나 의미를 알아보겠습니다.

▶︎zk : 영지식 : 증명자가 진술에 대한 정보를 공개하지 않아도 진술을 검증할 수 있습니다.

▶︎S : 확장가능(Scalable) : 개발자가 저장 및 계산을 오프체인으로 이동할 수 있도록 함으로써 확장성을 증가시킵니다. 이전에 설명한 ‘secret=witness’의 크기가 커질 때 증명 생성 및 검증 속도가 SNARK에 비해 빠릅니다.

▶︎T : 투명한(Transparent) : 신뢰할 수 있는 초기값 설정 대신에 공개 검증 가능한 무작위성을 사용하여 증명 및 검증을 위한 공개 매개 변수를 생성해, 즉 CRS 설정에 차이가 있어 SNARK와 비교했을 시 더 투명합니다.

▶︎AR : 논증(argument) : 증명은 타당성 요건을 충족하여, 부정하는 것은 극히 희박합니다.

▶︎K : 지식(knowledge) : 제로 지식 증명은 비밀 정보(증인)에 대한 액세스 없이는 생성할 수 없습니다. 증인이 없는 증명자가 유효한 제로 지식 증명을 계산하는 것은 어렵거나 불가능합니다.

이런 의미를 담고 있는 증명방식 입니다.

zk-STARKs에 관한 논문 표지 발췌

2018년 Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, 그리고 Michael Riabzev에 의해 발표된 논문에서 SNARKs의 대안으로 소개되었습니다. 이 논문에 명시된 바에 따르면, STARKs(그리고 보다 넓게는 제로 지식 증명)은 사회에 중요한 이점을 제공할 수 있습니다:

Human dignity demands that personal information, like medical and forensic data, be hidden from the public. But veils of secrecy designed to preserve privacy may also be abused to cover up lies and deceit by institutions entrusted with data, unjustly harming citizens and eroding trust in central institutions. Zero-knowledge (ZK) proof systems are an ingenious cryptographic solution to this tension between the ideals of personal privacy and institutional integrity, enforcing the latter in a way that does not compromise the former.

인간의 존엄성은 의료 및 법의학 데이터와 같은 개인 정보가 대중에게 숨겨져야 함을 요구합니다. 그러나 개인 정보 보호를 유지하기 위해 설계된 베일(veil; 베일에 싸이다 할때 베일)은 데이터를 위탁받은 기관에 의해 거짓과 속임수를 가리키는 데 악용될 수도 있으며, 이로 인해 대중에게 불공정하게 피해를 주고 중앙 기관에 대한 신뢰를 훼손할 수 있습니다. 영지식 증명 시스템은 개인 프라이버시와 기관의 정직성 사이의 긴장을 해결하기 위한 암호학적 솔루션으로, 전자를 희생하지 않고 후자를 시행합니다.

STARKs는 StarkWare의 확장성 기술을 기반으로 합니다. STARKs는 개발자가 저장 및 계산을 오프체인으로 이동할 수 있도록 함으로써 확장성을 증가시킵니다. 오프체인 계산의 정확성을 확인하는 STARK 증명을 오프체인 서비스에서 생성한 다음 체인 상에 게시함으로써 STARKs는 확장성을 높일 수 있습니다.

STARKs를 사용하면 블록체인이 계산을 단일 오프체인 STARK 증명자로 이동하고 그 계산의 무결성을 체인 상의 STARK 검증기를 사용하여 확인할 수 있습니다. layer-2 네트워크는 STARKs를 사용하여 단일 배치에서 많은 수의 거래를 계산한 다음 단일 STARK 증명을 사용하여 이러한 거래의 유효성을 체인 상에서 확인함으로써 확장성 이점을 활용할 수 있습니다. 배치 내의 모든 거래가 온체인 작업의 비용을 공유하므로 layer-2 네트워크에서 각 개별 거래의 가스 비용이 낮습니다.

중요한 점은 검증기가 사용하는 무작위성이 공개적으로 이용 가능하며, 증명이 외부 매개 변수에 의존하지 않고 검증될 수 있기 때문에 STARKs는 신뢰할 수 있는 초기값 설정의 요구 사항이 없습니다.

기술적으로 말한다면, zk-STARK는 충돌 저항성 해시 함수를 통해 더 희박한 대칭 암호화에 의존하기 때문에 초기 신뢰 설정을 필요로 하지 않습니다. 이 접근법은 또한 요구하는 컴퓨팅 능력 수준이 비싸고 ,이론적으로 양자 컴퓨터에 의해 공격받기 쉬운 zk-SNARK의 단점을 보완합니다.

하지만, proof size에서 STARK는 SNARK에 비해 큰 단점이 존재합니다. Proof size는 영지식 증명을 위해 필요한 데이터의 양을 의미하는데, Proof size가 클수록 증명을 생성하고 전송하는 데 더 많은 연산과 통신이 필요하게 됩니다.

Trusted setup이 완료된 SNARK를 기준으로 했을 때 Proof size는 STARKs가 훨씬 높습니다. 이로 인해 SNARK를 사용했을 때 발생하는 가스비와 소요 시간은 STARK와 비교했을 때 현저히 작으며, 이것이 여러 프로젝트들이 SNARK를 채택하는 이유 중 하나입니다.

🔵 장점

신뢰할 수 있는 설정이 필요 없음

신뢰할 수 있는 설정이 필요하지 않으며, 대신 공개적인 무작위성에 의존합니다. 이러한 신뢰 요구의 감소는 STARK 기반 프로토콜의 보안성을 향상시키고 사용자가 외부 엔터티에 대한 신뢰를 덜어줍니다.

확장성

SNARKs와 비교했을 때 주목할 만한 확장성 이점을 가지고 있습니다. 특히 ZK-STARKs는 기본 계산의 복잡성이 지수적으로 증가하는 상황에서도 대규모 계산 및 검증을 빠르게 수행할 수 있습니다.

최대 처리량 달성 능력

Layer-1 체인에 단일 STARK 증명이 제출되면 메인 체인 이외에서 수행된 수천 건의 트랜잭션의 무결성을 검증할 수 있습니다. 이로써, 여러 주요 ZK 롤업 프로젝트가 오프 체인 계산의 신뢰성을 보장하기 위해 ZK-STARKs를 사용합니다.

강력한 보안 보장

타원 곡선이 아닌 충돌 방지 해시를 암호화에 사용합니다. 이 선택은 잠재적인 양자 컴퓨팅 공격에 대한 저항력이 있는 것으로 여겨지며, 이로써 ZK-STARKs의 보안성을 향상시킵니다.

🔴 단점

더 큰 증명 크기

SNARKs에 비해 더 큰 증명 크기를 생산하는 단점이 있습니다. 이로 인해 Ethereum에서 STARK 증명을 검증하는 데 필요한 가스 수수료가 높아지므로 사용하기가 더 비용이 많이 듭니다.

낮은 채택률

SNARKs에 비해 아직 기술적 채택률이 낮습니다. 이로 인해 STARKs를 사용하여 ZK 프로젝트를 구축하기 위한 리소스, 지원 및 도구가 더 적을 수 있습니다.

높은 계산 비용

더 큰 증명 크기로 인해 각 증명을 검증하는 데 더 많은 계산이 필요하므로, 특정 시스템에서 트랜잭션 비용이 증가할 수 있습니다.

프리미엄 구독자 전용 콘텐츠입니다.

치과아저씨의 투자 스케일링 구독으로 더 많은 콘텐츠를 만나보세요!

많이 본 콘텐츠

전일 00시~24시까지 집계한 결과입니다.