[Privacy] 영지식증명의 진화(zk-SNARK vs. zk-STARK) v1.0

□ zk-SNARKs의 가능성

  ㅇ zk-SNARKs가 세운 이정표
    - 이전글에서 살펴봤듯이, '영지식증명(Zero Knowledge Proof, ZKP)'은 한 개인이 자신의 정보를 공개하지 않고 그 정보가 진짜임을 타인에게 증명할 수 있게 한다. 그 덕분에 참여자 간 통일된 합의를 가진 커뮤티니/네트워크에서는, 영지식증명 기법을 통해 각 거래의 모든 데이터를 굳이 알 필요가 없으며, 알려고해도 간단한 방식으로 검증이 가능하다.
    - 이러한 영지식증명을 토대로, 증명의 크기가 작으면서도 빠르게 확인할수 있는 간결함(Succince)과, 대화없이도 증명자와 검증자간 증명-검증 절차가 큰 논쟁(Argument)없이 일어나는 비대화형(Non-interactive)기법인 zk-SNARKs(zero knowledge Succinct Non-interactive Argument of Knowledges, 이하 '스나크')가 나왔고, 이를 통해서 여러 프로젝트의 암호화폐가 개인정보보호(Privacy)나 확장성(Scailiability)에도 새로운 해결책과 색다른 자극을 제공하고 있다.
< https://applicature.com >
  ㅇ 스나크의 한계
    - 영지식증명을 블록체인에 도입한 이래, 여태껏 가장 진보한 스나크조차도 한계를 보인다. 스나크 증명은 상호 거래를 하기 위해 공개 매개변수(거래를 하기 위해 그때그때 설정하는 것)가 있어야하고, 이는 증명자와 검증자 간 신뢰할수 있는 초기설정이라고 하여 '신뢰설정(Trusted Setup)'이라고도 불리운다.
    - 스나크가 한계를 보일때쯤, 스나크보다 별도 신뢰설정이 없으면서도 더 빠르고 저렴하게 영지식증명을 구현하는 zk-SNARKs(zero knowledge Scalable Transparent ARguments of Knowledge, 이하 '스타크')이 나왔다. 따라서 이 글에서는 스나크와 스타크를 대조하면서 영지식증명에 대한 분석과 논의를 해보겠다.


□ zk-SNARKs를 통해 본 zk-STARKs

  ㅇ zk-STARKs는 무엇이 다른가
    - 앞서 잠시 언급한대로, 스타크는 신뢰설정 문제를 해결하였다. 스나크의 경우, 사용자가 그 설정 프로세스와 시스템에 어떠한 개입없이 잘 운영되고 있다는 사실을 암묵적으로 '믿어야 합니다'. 왜냐하면, 그 시스템에 개입하며 변형시키려는 악의자가 있고 그 악의적인 행동에 인센티브가 존재할수 있다. 가령, 스나크를 활용하여 대선이나 총선같은 중요한 투표를 했을때, 특정단체가 그 스나크 투표시스템에 신뢰설정 매개변수를 조작하려고 한다면, 그 악의적 행위 성공여부를 떠나서 그 시스템 자체에 대한 신뢰가 무너질것이다.

    - 반면 스타크는 충돌저항성 해시함수*를 통한 사실상 비대칭 암호화**방식이기 때문에 스나크의 신뢰설정이 필요하지 않기에 신뢰설정 문제를 해결한다.
     * 충돌저항성 해시함수 : 해시함수에 서로 다른 2개의 입력값을 넣을때 동일한 출력값이 나오는 상황이 해시충돌이라고 한다. 이는 해시함수가 무한한 가짓수의 입력값을 받아서 유한한 가짓수의 출력값을 생성하는 '비둘기집 원리(Pigeonhole principle)'에 따르며 해시충돌은 없애기 쉽지 않다. 이 해시충돌은 알고리듬, 자료구조등의 효율성을 해치는데, 특히 암호화된 해시함수는 그 안정성을 해치기에 더욱 해시충돌 발생이 어렵게 해야하는데, 이렇게 해시충돌에 저항을 갖는 함수를 '충돌저항성 해시함수'라 한다.
     **대칭/비대칭 암호화 : A가 B에게 데이터 전송시, A는 해당 데이터를 암호를 걸면서 해독키를 만든다. 그후 B가 A로부터 데이터를 받으면 A는 그 해독키를 B에게 제공하여 암호를 풀게하는데, 이것이 '대칭 암호화'다. 이 대칭 암호화의 가장 큰 단점은 데이터에 담긴 암호를 송수신 간 안전하게 송수신시키기 위한 추가 보안계층이 필요하다는 점이다(일종의 신뢰설정). 반면, A와 B가 각자 공개키와 개인키를 갖고있으며, 서로의 공개키는 알지만 개인키는 비밀입니다. A가 B에게 데이터 송신시 B의 공개키를 사용하여 암호를 걸고, B는 자신의 공개키를 사용하여 암호를 푸는데, 이것이 '비대칭 암호화'다. 이 비대칭 암호화의 가장 큰 단점은 공개키 암호화시 여러 연산때문에 많은 컴퓨팅능력이 필요하여, 아직은 대규모 데이터 전송이 어렵다.
< https://medium.com/applicature >
    - 또한 스타크 방식은 양자역학컴퓨터에도 끄떡없다. 스나크의 경우 타원곡선암호화(세부설명은 여기글 후반부를 참고)기법으로 암호화를 하기에 연산능력이 탁월한 양자컴퓨터로 그 암호를 빠르게 해독하여 무기력할 가능성이 존재한다. 하지만 스타크는 타원곡선암호화 방식이 아닌 해시함수를 통한 비대칭 암호화 방식을 쓰기때문에 연산능력에 자유로울수 있으며 따라서 양자컴퓨터에 저항성을 지닌다. 참고로 양자역학에 대해 쉽고 빠르게 이해할수 있도록하는 동영상을 소개하니, 양자컴퓨터가 도입(2026년~2035년 추정)될때, 암호화폐에 어떤 영향을 끼칠지 각자 생각해보기를 바란다.

    - 그리고 스타크는 스나크에 비해 더 높은 확장성을 제공한다. 영지식증명에 있어 당사자 간 거래 등을 위한 통신, 영지식증명의 검증 등의 복잡성에 따라 연산처리능력도 더 요구된다. 스나크의 경우, 그것들의 복잡성이 증가할수록 점점더 연산처리능력이 필요한 반면, 스타크는 복잡성이 증가해도 연산처리능력에 변동이 거의 없다. 그 이유는 바로 위에 설명한 암호화방식의 차이에 있다. 하지만, 스나크는 신뢰설정 단계 직후, 영지식증명을 검증할때에만 스타크보다 빠르다. 결론적으로, 영지식증명의 복잡성 증가에도 연산능력에 큰 영향이 없는 스타크가 스나크보다 빠르며, 따라서 확장성 측면에서 더 우월하다.
< 왼쪽 : 검증시간, 오른쪽 : 통신 복잡성 (https://eprint.iacr.org/2018/046.pdf) >


□ 스나크와 스타크의 현황

  ㅇ 스나크의 현주소
    - 현재까지 블록체인에 적용시킬수 있는 가장 진보된 영지식증명 기법은 스나크다. 앞서 살펴본대로, 그 한계점이 존재하지만 그 한계를 벗어나기 위한 보완책을 강구하고 있다. 익명성 코인의 대표격인 지캐시의 경우 현재 스나크를 도입하여 꾸준한 연구개발을 통해 개선하고 있으며, 이더리움의 경우에도 기존 메트로폴리스 하드포크에 스나크를 활용하여 개인정보보호기능과 확정성을 향상을 꾀하고 있다.
< https://ethereum.stackexchange.com >
  ㅇ 스타크의 현주소 
    - 스타크는 스나크를 대체하기 위해서 나왔지만, 역시 한계점이 존재하는데 그중 하나는 증명크기다. 스나크의 증명크기가 288btyes에 불과한 반면, 스타크의 증명크기는 수십~수백KB에 달해 블록체인에 사용하기 어렵다.
    - 하지만, 어떤 기법, 메커니즘이든 꾸준한 연구개발을 하면 개선이 있기에 시간을 두고 증명크기 문제 해결에 노력해야겠다. 또 그렇게 해야하는 이유는, 스타크는 확장성이 뛰어나고 투명하며 범용성을 지녔으며 양자컴퓨터에도 견딜수 있기 때문이다.
    - 그런 잠재력 덕분에 스타크를 활용하여, 강한 신뢰가 필요한 투표시스템, 블록체인의 계산실행과 검증, 신원정보확인 등에 요긴하게 쓰일것이다. 벌써부터 스나크와 스타크를 포함한 보다 진보된 영지식증명이 블록체인에 잘 접목되는 날이 기대된다.


법적 고지 : 본 게시글은, 투자를 위한 정보제공을 목적으로 작성되었기에 투자결정은 신중을 기하여 주시기 바라며, 참고자료를 토대로 본인 판단하에 내용을 추가, 편집 등 작성되었기에 본인의 허락없이 복사, 배포, 편집 등을 할 수 없습니다.


<References>
1) https://coincentral.com/hashing-basics-history
2) https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C
3) https://www.binance.vision/ko/blockchain/zk-snarks-and-zk-starks-explained
4) https://coincentral.com/unlocking-key-encryption
5) https://coincentral.com/zk-starks
6) https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d
7) https://coincentral.com/zk-stark
8) https://themerkle.com/mit-review-acclaims-zk-snarks-but-zk-starks-may-steal-the-show
9) https://ethereum.stackexchange.com/questions/59145/zk-snarks-vs-zk-starks-vs-bulletproofs-updated

댓글 없음:

댓글 쓰기

[Bitcoin] 비트코인의 흥망성쇠(3부작) 1부 "역대 주요이슈 분석" // Bitcoin's Rise & Fall(Trilogy) Part1 v1.5

비트코인의 흥망성쇠 (興亡成衰) □ 에필로그   ㅇ 분석에 앞서     - 그동안 분석가로서 블록체인과 암호화폐가 지닌 기술 위주의 기본적 분석을 해왔으나, 투자자로서 유의미한 시세변동, 시세에 영향을 끼치는 이슈 등에 대한 분석글 작...