영지식 스나크 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | + | '''영지식 스나크'''(zk-SNARKs)는 '''zero-knowledge Succinct Non-interactive Argument of Knowledge'''의 약자로, 기존의 [[영지식 증명]]을 좀 더 간결하고(Succinct) 비 간섭적인 환경(Non-interactive)에서 적용 가능하도록 변형한 형태이다. | |
− | |||
− | '''영지식 스나크''' | ||
==개요== | ==개요== | ||
− | 영지식 스나크는 그 특성들로 인하여 [[블록체인]] 환경에서 영지식 증명을 구현할 수 있게 되었다. 영지식 스나크를 활용한 블록체인 [[트랜잭션]]의 경우 수신자, 송신자, 전송금액 등의 정보를 노출하지 않고도 해당 트랜잭션의 유효성을 송수신 [[노드]] 외의 다른 노드들에게 알릴 수 있다.<ref>공수래공수거, 〈[https://blog.naver.com/qlmto631/221438158473 제트캐시(Zcash) : 익명성을 보장하는 다크코인]〉, 《네이버 블로그》, 2019-01-09</ref> 영지식 스나크를 최초로 적용한 [[암호화폐]]는 [[지캐시]]가 있으며, 이외에 [[이더리움]]의 비잔틴 [[하드포크]]에도 관련 내용이 적용되었다.<ref>Seonghwa Yun, 〈[https://medium.com/ai-networkkr/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EC%97%90%EC%84%9C%EC%9D%98-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EB%B3%B4%ED%98%B8-%EA%B8%B0%EC%88%A0-zk-snark-1-de5804e9b50e 블록체인에서의 개인정보보호 기술, zk-SNARK (1)]〉, 《미디엄》, 2018-10-08</ref> | + | 영지식 스나크는 그 특성들로 인하여 [[블록체인]] 환경에서 영지식 증명을 구현할 수 있게 되었다. 영지식 스나크를 활용한 블록체인 [[트랜잭션]]의 경우 수신자, 송신자, 전송금액 등의 정보를 노출하지 않고도 해당 트랜잭션의 유효성을 송수신 [[노드]] 외의 다른 노드들에게 알릴 수 있다.<ref>공수래공수거, 〈[https://blog.naver.com/qlmto631/221438158473 제트캐시(Zcash) : 익명성을 보장하는 다크코인]〉, 《네이버 블로그》, 2019-01-09</ref> 영지식 스나크를 최초로 적용한 [[암호화폐]]는 [[지캐시]]가 있으며, 이외에 [[이더리움]]의 비잔틴 [[하드포크]]에도 관련 내용이 적용되었다.<ref>Seonghwa Yun, 〈[https://medium.com/ai-networkkr/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EC%97%90%EC%84%9C%EC%9D%98-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EB%B3%B4%ED%98%B8-%EA%B8%B0%EC%88%A0-zk-snark-1-de5804e9b50e 블록체인에서의 개인정보보호 기술, zk-SNARK (1)]〉, 《미디엄》, 2018-10-08</ref> |
− | + | SNARK라는 약어 내에서 간결한(Succinct)은 증명의 크기가 작고 신속하게 확인할 수 있음을 나타낸다. 비 상호작용(Non-interactive)은 증명자와 검증자 사이의 상호작용이 거의 없거나 전혀 없다는 것을 뜻한다. 영지식 스나크가 개발되기 이전의 영지식 증명은 일반적으로 증명자와 검증자가 서로 통신을 주고받는 것을 요구하므로 간접적 영지식 프로토콜으로 간주된다. 반면에 비 상호작용 구조에서는 증명자와 검증자가 하나의 증거만 주고받아도 된다. 영지식 스나크는 증명자와 검증자 사이의 신뢰할 수 있는 초기 설정에 의존한다. 즉 영지식 증명 및 개인거래를 구축하기 위하여 일련의 고객 매개 변수가 필요한 것이다. 이 매개 변수는 게임의 규칙과 거의 상응하며 프로토콜에 인코딩되어 트랜잭션이 유효하다는 것을 증명하기 위해 필요한 요소이다. 그러나 매개 변수가 매우 작은 그룹에 의하여 공식화 되는 경우가 있기 때문에 잠재적으로 중앙 집중화 문제가 존재한다.<ref name="바이낸스">〈[https://www.binance.vision/ko/blockchain/zk-snarks-and-zk-starks-explained zk-SNARKs 와 zk-STARKs 설명]〉, 《바이낸스 아카데미》, 2019-02-26</ref> | |
초기 공개 설정은 지금의 영지식 스나크가 구현되기 위한 밑바탕이지만 개발자들은 프로세스에 필요한 신뢰과정을 최소화하기 위한 다른 대안을 찾기 위해 많은 노력을 기울이고 있다. 초기 설정 단계는 위조 지출을 막기 위해 매우 중요하다. 악의를 품은 누군가가 매개 변수를 생성하는 무작위성에 접근하여 검증자에게 유효할 것이라 판단되는 거짓 증명을 만들 수 있기 때문이다. 지캐시에서 초기 설정 단계는 매개 변수 생성 의식으로 알려져 있다.</ref><ref>coinsight, 〈[https://steemit.com/kr/@coinsight/zcash (코인리포트) 익명성 화폐의 선두주자, Zcash(지캐시, 제트캐시)]〉, 《스팀잇》</ref> SNARK의 논쟁(Argument)에 대해 설명해보자면, 영지식 스나크는 계산적으로 확실한 것으로 간주된다. 따라서 증명자의 컴퓨팅 능력이 제한적이라고 가정했을 때, 정직하지 않은 증명자는 시스템을 속일 확률이 매우 낮다. 이러한 속성은 건전성으로 알려져 있지만, 이론적으로는 충분한 컴퓨팅 능력을 가지고 있는 증명자는 가짜 증명을 만들 수 있다. 이것이 많은 사람들이 양자 컴퓨터를 영지식 스나크 및 블록체인 시스템에 대한 위협 중 하나로 간주하는 이유이다. 약어의 마지막 부분인 K는 지식(Knowledge)이다. 이는 증명자가 실제로 자신의 진술을 뒷받침할 수 있는 지식이 없는 증거는 만들 수 없다는 것을 의미한다. 영지식 증명은 매우 신속한 검증이 가능하며 [[비트코인]] 트랜잭션보다 더 적은 [[데이터]]를 차지한다. 이것이 영지식 스나크 기술이 프라이버시 및 [[확장성]]에 대한 솔루션으로 사용되는 이유 중 하나이다.<ref name="바이낸스"></ref> | 초기 공개 설정은 지금의 영지식 스나크가 구현되기 위한 밑바탕이지만 개발자들은 프로세스에 필요한 신뢰과정을 최소화하기 위한 다른 대안을 찾기 위해 많은 노력을 기울이고 있다. 초기 설정 단계는 위조 지출을 막기 위해 매우 중요하다. 악의를 품은 누군가가 매개 변수를 생성하는 무작위성에 접근하여 검증자에게 유효할 것이라 판단되는 거짓 증명을 만들 수 있기 때문이다. 지캐시에서 초기 설정 단계는 매개 변수 생성 의식으로 알려져 있다.</ref><ref>coinsight, 〈[https://steemit.com/kr/@coinsight/zcash (코인리포트) 익명성 화폐의 선두주자, Zcash(지캐시, 제트캐시)]〉, 《스팀잇》</ref> SNARK의 논쟁(Argument)에 대해 설명해보자면, 영지식 스나크는 계산적으로 확실한 것으로 간주된다. 따라서 증명자의 컴퓨팅 능력이 제한적이라고 가정했을 때, 정직하지 않은 증명자는 시스템을 속일 확률이 매우 낮다. 이러한 속성은 건전성으로 알려져 있지만, 이론적으로는 충분한 컴퓨팅 능력을 가지고 있는 증명자는 가짜 증명을 만들 수 있다. 이것이 많은 사람들이 양자 컴퓨터를 영지식 스나크 및 블록체인 시스템에 대한 위협 중 하나로 간주하는 이유이다. 약어의 마지막 부분인 K는 지식(Knowledge)이다. 이는 증명자가 실제로 자신의 진술을 뒷받침할 수 있는 지식이 없는 증거는 만들 수 없다는 것을 의미한다. 영지식 증명은 매우 신속한 검증이 가능하며 [[비트코인]] 트랜잭션보다 더 적은 [[데이터]]를 차지한다. 이것이 영지식 스나크 기술이 프라이버시 및 [[확장성]]에 대한 솔루션으로 사용되는 이유 중 하나이다.<ref name="바이낸스"></ref> | ||
20번째 줄: | 18번째 줄: | ||
==과정== | ==과정== | ||
− | 기존의 | + | 기존의 비 상호작용 구조에서는 증명자가 항상 [[온라인]] 상태일 필요가 없다는 장점이 있지만 증명을 완료하는데 까지 상당한 시간이 걸린다는 치명적인 약점이 있다. [[암호학]]에서 사용되는 숫자의 크기는 상상할 수 없을 만큼 크기 때문에, 보기에 매우 간단한 연산도 상당히 많은 횟수의 명령(instruction)을 수행한 후에야 결과를 도출할 수 있다. |
− | 간결함은 영지식 스나크의 핵심 키워드이다. 상호작용 증명 시스템(interactive proof system)은 검증자가 한정된 계산 자원을 가지고 있음을 전제로 한다. 증명자가 특정한 지식을 알고 있다는 증거로 제출한 증명이 상당히 많은 양의 데이터를 포함하고 있다면, 이 증명은 굉장히 비효율적이다. 따라서 영지식 스나크에서는 | + | 간결함은 영지식 스나크의 핵심 키워드이다. 상호작용 증명 시스템(interactive proof system)은 검증자가 한정된 계산 자원을 가지고 있음을 전제로 한다. 증명자가 특정한 지식을 알고 있다는 증거로 제출한 증명이 상당히 많은 양의 데이터를 포함하고 있다면, 이 증명은 굉장히 비효율적이다. 따라서 영지식 스나크에서는 비 상호작용 영지식 증명의 크기를 줄이고 빠른 시간 내에 검증을 수행할 수 있도록 하여 비 상호작용 영지식 증명의 실용성을 극대화하였다. 영지식 스나크는 다음과 같은 세 과정으로 이루어지며 이를 통해서 검증자는 증명자의 지식를 직접 확인하지 않고도 빠른 시간 내에 이를 검증 할 수 있게 된다.<ref name="Jungwoo Pyo"></ref> |
* '''Keygen : key generator G를 이용해 key pair (pk, vk)를 생성하는 과정''' | * '''Keygen : key generator G를 이용해 key pair (pk, vk)를 생성하는 과정''' | ||
65번째 줄: | 63번째 줄: | ||
===코다=== | ===코다=== | ||
[[코다]](Corda)는 영지식 스나크를 블록체인의 확장성에 활용한 예시이다. 코다 프로토콜은 영지식 스나크를 기반으로 한 레이어2의 확장과 개인 정보 보호의 도입을 알린 바 있다.<ref>김용영 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=009&aid=0004237835 샌프란시스코 블록체인 위크 2018에서 부상한 4가지 트렌드]〉, 《매일경제》, 2018-10-19</ref> 영지식 스나크에서 검증자는 간결한 증명만으로 원본을 검증할 수 있게 되어 원본을 직접 검증할 필요가 없다. 코다는 일반적인 블록체인과는 달리 [[채굴자]]들이 트랜잭션의 원본 데이터 대신 자신들이 올바른 블록을 생성했다는 증명만을 블록에 담아 확장성 문제를 해결하고자 한다.<ref>Jihyeok Choy, 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-2-deep-dive-into-zk-snarks-f8b16e1b7b4c Zero-Knowledge proof :: chapter 2. Deep Dive into zk-SNARKs]〉, 《미디엄》, 2019-03-18</ref> {{자세히|코다}} | [[코다]](Corda)는 영지식 스나크를 블록체인의 확장성에 활용한 예시이다. 코다 프로토콜은 영지식 스나크를 기반으로 한 레이어2의 확장과 개인 정보 보호의 도입을 알린 바 있다.<ref>김용영 기자, 〈[https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=101&oid=009&aid=0004237835 샌프란시스코 블록체인 위크 2018에서 부상한 4가지 트렌드]〉, 《매일경제》, 2018-10-19</ref> 영지식 스나크에서 검증자는 간결한 증명만으로 원본을 검증할 수 있게 되어 원본을 직접 검증할 필요가 없다. 코다는 일반적인 블록체인과는 달리 [[채굴자]]들이 트랜잭션의 원본 데이터 대신 자신들이 올바른 블록을 생성했다는 증명만을 블록에 담아 확장성 문제를 해결하고자 한다.<ref>Jihyeok Choy, 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-2-deep-dive-into-zk-snarks-f8b16e1b7b4c Zero-Knowledge proof :: chapter 2. Deep Dive into zk-SNARKs]〉, 《미디엄》, 2019-03-18</ref> {{자세히|코다}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{각주}} | {{각주}} | ||
80번째 줄: | 71번째 줄: | ||
* 〈[https://www.binance.vision/ko/blockchain/zk-snarks-and-zk-starks-explained zk-SNARKs 와 zk-STARKs 설명]〉, 《바이낸스 아카데미》, 2019-02-26 | * 〈[https://www.binance.vision/ko/blockchain/zk-snarks-and-zk-starks-explained zk-SNARKs 와 zk-STARKs 설명]〉, 《바이낸스 아카데미》, 2019-02-26 | ||
* Jihyeok Choy, 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-2-deep-dive-into-zk-snarks-f8b16e1b7b4c Zero-Knowledge proof :: chapter 2. Deep Dive into zk-SNARKs]〉, 《미디엄》, 2019-03-18 | * Jihyeok Choy, 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-2-deep-dive-into-zk-snarks-f8b16e1b7b4c Zero-Knowledge proof :: chapter 2. Deep Dive into zk-SNARKs]〉, 《미디엄》, 2019-03-18 | ||
− | |||
==같이 보기== | ==같이 보기== | ||
* [[영지식 증명]] | * [[영지식 증명]] | ||
− | |||
* [[지캐시]] | * [[지캐시]] | ||
+ | * [[이더리움]] | ||
+ | * [[코다]] | ||
− | {{ | + | {{블록체인 기술|검토 필요}} |