영지식 스나크 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
[[파일:지캐시 글자.png|썸네일|300픽셀|'''[[지캐시]]'''(Zcash)]]
+
'''영지식 스나크'''(zk-SNARKs)는 '''zero-knowledge Succinct Non-interactive Argument of Knowledge'''의 약자로, 기존의 [[영지식 증명]]을 좀 더 간결하고(Succinct) 비 간섭적인 환경(Non-interactive)에서 적용 가능하도록 변형한 형태이다.
 
 
'''영지식 스나크'''<!--영지식스나크-->(zk-SNARKs)는 'zero-knowledge Succinct Non-interactive Argument of Knowledge'의 약자로, 기존의 [[영지식 증명]]을 좀 더 간결하고(succinct) 비상호적인 환경(non-interactive)에서 적용 가능하도록 변형한 기술이다. 2012년 '''[[지캐시]]'''(Zcash)에 의해 개발되었다. 지캐시는 영지식 스나크를 기반으로 작동하고 있는 [[애플리케이션]] 중 가장 큰 규모이다.
 
  
 
==개요==
 
==개요==
영지식 스나크는 그 특성들로 인하여 [[블록체인]] 환경에서 영지식 증명을 구현할 수 있게 되었다. 영지식 스나크를 활용한 블록체인 [[트랜잭션]]의 경우 수신자, 송신자, 전송금액 등의 정보를 노출하지 않고도 해당 트랜잭션의 유효성을 송수신 [[노드]] 외의 다른 노드들에게 알릴 수 있다.<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>
+
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>
17번째 줄: 15번째 줄:
  
 
* '''타원곡선 암호화'''
 
* '''타원곡선 암호화'''
: 영지식 스나크는 주어진 문제를 변형하고 간결함을 더했지만 아직 정보를 숨기는 것, 즉 Zero-Knowledge를 구현해내지 못했다. 이를 위해 영지식 스나크는 [[타원곡선암호]] 알고리즘(Elliptic Curve Algorithm)을 이용했다. 이는 큰 의미에서 ‘일반적인 계산을 타원 곡선 세계 위로 가져온다’라고 할 수 있다. 타원곡선의 세상에는 정보는 숨기고 등식만 증명하는 것이 가능하기 때문이다. 즉, 증명하고자 하는 A(t_0) * B(t_0) — C(t_0) = H(t_0) * Z(t_0) 등식을 타원 곡선 위에서 증명하는 것이다.<ref name="Jungwoo Pyo"></ref>
+
: 영지식 스나크는 주어진 문제를 변형하고 간결함을 더했지만 아직 정보를 숨기는 것, 즉 Zero-Knowledge를 구현해내지 못했다. 이를 위해 영지식 스나크는 Elliptic Curve, [[타원곡선암호]] 알고리즘을 이용했다. 이는 큰 의미에서 ‘일반적인 계산을 타원 곡선 세계 위로 가져온다’라고 할 수 있다. 타원곡선의 세상에는 정보는 숨기고 등식만 증명하는 것이 가능하기 때문이다. 즉, 증명하고자 하는 A(t_0) * B(t_0) — C(t_0) = H(t_0) * Z(t_0) 등식을 타원 곡선 위에서 증명하는 것이다.<ref name="Jungwoo Pyo"></ref>
  
 
==과정==
 
==과정==
기존의 비상호작용 구조에서는 증명자가 항상 [[온라인]] 상태일 필요가 없다는 장점이 있지만 증명을 완료하는데 까지 상당한 시간이 걸린다는 치명적인 약점이 있다. [[암호학]]에서 사용되는 숫자의 크기는 상상할 수 없을 만큼 크기 때문에, 보기에 매우 간단한 연산도 상당히 많은 횟수의 명령(instruction)을 수행한 후에야 결과를 도출할 수 있다.
+
기존의 비 상호작용 구조에서는 증명자가 항상 [[온라인]] 상태일 필요가 없다는 장점이 있지만 증명을 완료하는데 까지 상당한 시간이 걸린다는 치명적인 약점이 있다. [[암호학]]에서 사용되는 숫자의 크기는 상상할 수 없을 만큼 크기 때문에, 보기에 매우 간단한 연산도 상당히 많은 횟수의 명령(instruction)을 수행한 후에야 결과를 도출할 수 있다.
  
간결함은 영지식 스나크의 핵심 키워드이다. 상호작용 증명 시스템(interactive proof system)은 검증자가 한정된 계산 자원을 가지고 있음을 전제로 한다. 증명자가 특정한 지식을 알고 있다는 증거로 제출한 증명이 상당히 많은 양의 데이터를 포함하고 있다면, 이 증명은 굉장히 비효율적이다. 따라서 영지식 스나크에서는 비상호작용 영지식 증명의 크기를 줄이고 빠른 시간 내에 검증을 수행할 수 있도록 하여 비상호작용 영지식 증명의 실용성을 극대화하였다. 영지식 스나크는 다음과 같은 세 과정으로 이루어지며 이를 통해서 검증자는 증명자의 지식를 직접 확인하지 않고도 빠른 시간 내에 이를 검증 할 수 있게 된다.<ref name="Jungwoo Pyo"></ref>
+
간결함은 영지식 스나크의 핵심 키워드이다. 상호작용 증명 시스템(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> {{자세히|코다}}
 
==문제점==
 
* '''초기 신뢰 설정''' : 영지식 스나크의 가장 큰 문제점은 신뢰기관(trusted party)의 존재이다. 프로토콜 내에서 신뢰기관의 역할은 매우 크며, 증명을 생성하는 데 있어서도 큰 비중을 차지하고 있다. 신뢰기관은 노출되면 안 되는 정보를 통해 거짓 증명(fake proof)를 생성할 수 있으며, 외부의 다른 집단과 공모할 가능성 또한 있다.
 
 
* '''[[확장성]]''' : 영지식 증명은 당사자 간의 거래를 위한 통신, 영지식 증명의 검증 등의 복잡성에 따라 더 높은 연산처리능력이 요구된다. 영지식 스나크의 경우, 복잡성이 증가할수록 점점 더 높은 연산처리능력이 필요하다. 또한 증명 데이터와 검증 과정이 획기적으로 간결해졌지만 증명자가 증명을 생성하는 시간이 매우 느리다는 문제점이 있다.
 
 
* '''양자컴퓨터 공격''' : 영지식 스나크는 [[ECDSA]]와 같은 키페어 알고리즘에 기반하지 않기 때문에 이론적으로 양자 컴퓨터 공격에 매우 취약하다고 알려져 있다. 소인수분해를 빠르게 처리할 수 있는 양자 알고리즘인 [[쇼어 알고리즘]](Shor’s Algorithm)의 방식을 통해 공개키로부터 비밀키를 추출해 낼 수 있기 때문이다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%87%BC%EC%96%B4_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 쇼어 알고리즘]〉, 《위키백과》</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
* Rachel Rose O'Leary, 〈[https://www.coindeskkorea.com/zksnarksethereum/ 비탈릭 부테린 “영지식 스나크로 이더리움 초당 거래 500회 처리 가능”]〉, 《코인데스크코리아》, 2018-09-25
 
  
 
==같이 보기==
 
==같이 보기==
 
* [[영지식 증명]]
 
* [[영지식 증명]]
* [[영지식 스타크]]
 
 
* [[지캐시]]
 
* [[지캐시]]
 +
* [[이더리움]]
 +
* [[코다]]
  
{{암호 알고리즘|검토 필요}}
+
{{블록체인 기술|검토 필요}}

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)