영지식 증명: 블록체인 개인 정보 보호를 위한 강력한 도구
哈希未来
2018-07-16 06:20
本文约3718字,阅读全文需要约15分钟
보고서 요약: 영지식 증명은 확률 기반 검증 방식으로, 검증 내용에는 "사실적 진술"과 "개인 지식에 대한 진술"이 포함됩니다.



작가:Chen Zhijia, Meng Yize, Xie Qian, Jiang Zewu (해시 월드)

보고서 요약:

보고서 요약:

영지식 증명은 확률 기반 검증 방식으로 검증 내용에는 '사실적 진술'과 '개인 지식에 대한 진술'이 포함된다. 검증자는 일정한 무작위성을 기반으로 증명자에게 질문을 하고, 정답을 줄 수 있다면 증명자는 자신이 주장하는 "지식"을 가지고 있을 확률이 높다는 것을 의미합니다. Zerocoin(Zero Coin Protocol)은 Zero Coin을 발행하고 Zero Coin을 환매하는 과정에서 영지식 검증을 통해 트랜잭션에 해당하는 발신자 및 수신자 정보를 숨김 Zerocash(Zero Banknote Protocol)는 보다 새로운 zkSNARKs 기술을 사용하여 트랜잭션을 변환합니다. 두 다항식의 곱이 같음을 증명하기 위해 검증이 필요한 콘텐츠, 동형 암호화 및 기타 기술을 결합하여 숨겨진 거래 금액을 보호하면서 거래 검증을 수행합니다. 단점은 네트워크가 공격을 받고 제로캐시를 과도하게 발행하면 감지하거나 조치를 취할 수 없다는 것입니다; Zerocoin과 Zerocash 모두 사전 설정된 "신뢰 설정"이 필요하며 이는 진정한 "신뢰 없음"을 달성하지 못했습니다. Intel SGX 및 zkSTARK와 같은 새로운 기술은 위의 문제를 해결할 수 있지만 여전히 실제 테스트가 필요합니다.

1. 영지식 증명의 원리

영지식 증명은 1980년대 MIT 연구원들이 논문에서 처음 제안한 암호화 방식입니다. “영지식 프로토콜은 한 당사자(증명자)가 다른 당사자(검증자)에게 이 특정 진술이 사실이라는 사실 외에 추가 정보를 공개하지 않고 무언가가 사실임을 증명할 수 있는 방법입니다. 즉, 고객 비밀번호의 해쉬값은 웹 서버에 저장되며, 고객이 실제로 비밀번호를 알고 있는지 확인하기 위해 현재 대부분의 웹사이트에서는 서버가 고객이 입력한 비밀번호의 해시값을 계산하여 비교하는 방식을 사용하고 있습니다. 그러나 이 방법의 단점은 계산 중에 서버가 클라이언트의 원래 비밀번호를 알 수 있다는 것입니다. 서버가 공격을 받으면 사용자의 비밀번호가 유출됩니다. 클라이언트의 비밀번호를 모른 채 클라이언트의 로그인을 확인하기 위해 서버가 공격을 받더라도 클라이언트의 일반 텍스트 비밀번호가 저장되지 않기 때문에 사용자의 계정은 여전히 ​​안전합니다.

기본적인 영지식 증명 프로토콜은 상호 작용하며 검증자는 증명자에게 자신이 습득한 "지식"에 대한 일련의 질문을 계속해서 해야 합니다. 그들이 정답을 제시할 수 있다면 확률 측면에서 증명자는 참으로 매우 "지식"이라고 주장하는 것이 무엇인지 알 수 있습니다. 예를 들어 누군가가 스도쿠 퍼즐의 답을 알고 있다고 주장하는 경우, 영지식 증명 방법은 검증자가 이번에는 임의로 지정하여 열, 행 또는 9제곱 그리드로 확인하고 특정 위치를 볼 필요가 없다는 것입니다. 1-9개의 숫자가 포함되어 있는지 여부만 감지하면 됩니다.검증 횟수가 충분하다면 증명자가 스도쿠 문제의 해결책을 알고 있을 가능성이 높습니다. . 그러나 이러한 간단한 방법으로는 증명자와 검증자가 모두 부정 행위를 하지 않았다고 믿게 만들 수는 없으며, 스도쿠의 경우 사전에 두 사람이 결탁하여 증명자가 답을 몰라도 검증을 통과할 수 있습니다. 제3자를 설득하려면 검증자는 탐지 체계가 매번 무작위이며 증명자와 공모하지 않았음을 증명해야 합니다.

인터랙티브 영지식 증명 결과를 제3자 관찰자가 검증하기 어렵기 때문에 여러 사람에게 무언가를 증명할 때 추가적인 노력과 비용을 지불해야 합니다. 이름에서 알 수 있듯이 비대화형 영지식 증명은 담합의 가능성을 피하기 위해 대화형 프로세스가 필요하지 않지만 추가로 시행 순서를 결정하기 위해 일부 기계와 프로그램이 필요할 수 있습니다. 예를 들어 스도쿠의 예에서 프로그램을 통해 행별로 테스트할 시간과 열별로 테스트할 시간을 결정하지만 이 테스트 시퀀스는 비밀로 유지되어야 합니다. "지식"이 승인되었습니다.

영지식 증명의 내용은 두 가지 범주로 요약할 수 있습니다. 지식: 예를 들어 "나는 이 특정 그래프에 대한 색 구성표를 알고 있습니다." 또는 "N의 인수분해를 알고 있습니다."

그러나 모든 문제에 영지식 증명을 위한 암호화 체계가 있는 것은 아닙니다.Goldreich, Micali 및 Wigderson은 영지식 증명 솔루션에 이론적으로 유효한 범위를 제공했습니다. 그들은 솔루션이 다항식 시간으로 검증될 수 있는 결정 문제(대답이 예/아니오인 문제)에 대해 알려진 영지식 증명 체계가 있음을 발견했습니다. 이러한 NP 문제에서 증명하고자 하는 명제를 찾아 삼색 문제의 인스턴스로 변환하기만 하면 기존 프로토콜을 사용하여 영지식 증명을 실현할 수 있습니다. 삼색 문제는 NPC 문제이므로 다른 NP 문제는 이 문제의 인스턴스로 변환될 수 있습니다.

2. 영지식증명의 블록체인 적용

비트코인, 이더리움 네트워크 등 블록체인 상의 거래에서는 주소를 사용하여 거래에 대한 양 당사자의 실제 신원을 대체하는 것 외에도 거래를 부분적으로 익명화하여 송수신 주소와 금액을 알 수 있습니다. 네트워크 상의 다양한 정보와 실세계에서의 상호작용 기록을 통해 비트코인 ​​주소와 실제 신원을 일치시키기 때문에 숨겨진 사생활 노출의 위험이 있습니다. Zerocoin은 거래 내역 분석을 통해 사용자의 실제 신원을 얻을 수 없는 완전히 새로운 아이디어를 설계했습니다. 제로코인에서는 거래되는 통화의 일정 가치를 소비하여 고유한 일련번호를 가진 제로코인을 생성합니다. 영지식 증명은 어떤 통화를 사용했는지 밝히지 않고 실제로 돈을 사용했는지 확인할 수 있습니다. 이 돈을 다른 사람에게 송금하기 위해서는 논리적으로 이 제로코인을 다른 사람이 더 이상 사용할 수 없도록 만들어야 하는데, 제로코인의 방법은 사용된 모든 제로코인의 일련번호를 저장하는 무효화 목록을 공동으로 유지하는 것이다. 채굴자는 지출 트랜잭션을 검증할 때 영지식 증명 방식을 사용하며, 어떤 제로코인이 지출되었는지 알 필요가 없으며 제로코인의 일련번호가 무효화 목록에 있는지 여부도 확인할 수 있습니다. 지출 거래에는 주소 및 서명 정보가 포함되지 않기 때문에 채굴자는 전체 거래 과정에서 제로코인의 출처를 알 수 없으므로 거래 내역을 분석하여 사용자의 신원을 파악하기 어렵습니다.

Zerocoin에서는 거래 금액을 알 수 있지만 zkSNARKs 기술을 사용하는 Zerocash는 거래 금액까지 숨길 수 있습니다.원장에 공개적으로 기록되는 것은 거래의 존재뿐입니다. NP의 모든 문제에 대해 zkSNARK가 존재함을 알 수 있습니다. 몇 가지 혁신적인 기술을 도입하여 블록체인에서 사용할 수 있도록 합니다. 가장 중요한 것은 zkSNARK가 증명의 크기와 이를 확인하는 데 필요한 계산량을 줄인다는 것입니다. 그 과정은 다음과 같이 간단히 설명할 수 있습니다.

1. 검증할 프로그램을 논리적 검증 단계로 분해하고 이러한 논리적 단계를 더하기, 빼기, 곱하기 및 나누기로 구성된 산술 회로로 분해합니다.

2. 검증이 필요한 프로그램을 t(x)h(x) = w(x)v(x)를 증명하는 것과 같은 일련의 변환을 통해 다항식 곱이 같은지 확인하도록 변환합니다.

3. 증명을 보다 간결하게 하기 위해 검증자는 사전에 여러 체크포인트를 무작위로 선택하고 이 포인트에서 동등성이 확립되었는지 확인합니다.

4. 동형 부호화/암호화를 통해 검증자는 방정식을 계산할 때 실제 입력 값을 알지 못하지만 여전히 검증할 수 있습니다.

5. 0이 아닌 기밀 값 k는 방정식의 양쪽에 동시에 곱할 수 있으며, 그런 다음 (t(s)h(s)k)가 (w(s)v(s)와 같음을 확인할 때 k), 특정 t(s), h(s), w(s), v(s)를 알 수 없으므로 정보를 보호할 수 있습니다.

Zerocoin의 암호화 원시 RSA 누산기와 달리 zkSNARKs 기술은 비교적 새롭고 널리 검증되지 않았기 때문에 위험이 있습니다.동시에 더 강력한 익명성으로 인해 Zerocash의 취약점도 찾기가 더 어렵습니다. 거래 금액에 대한 정보도 알 수 없기 때문에 공격자가 무한정 제로 지폐를 발행한다면 그러한 상황을 감지할 수 없습니다.

또한 Zerocoin과 Zerocash 모두 사전에 내장된 생성 매개변수가 필요하며 사용자는 이러한 네트워크를 사용할 때 이러한 매개변수가 유출되지 않았음을 신뢰해야 하지만 일단 이러한 매개변수가 유출되면 네트워크 전체가 엄청난 타격을 받게 됩니다. 복잡한 신뢰 설정은 Zerocash가 자신을 증명하기 위해 일련의 "의식"(키를 저장하는 컴퓨터를 부수는 과정을 기록하는 것과 같은)을 설계하더라도 논란을 일으킵니다.

zkSTARKs 백서에 따르면 zkSTARKs는 어떠한 신뢰 설정에 의존하지 않고 블록체인 검증을 완료할 수 있는 최초의 시스템이며 동시에 컴퓨팅 데이터의 양이 증가함에 따라 컴퓨팅 속도가 기하급수적으로 증가합니다. 공개 키 암호화에 의존하지 않으며 더 간단한 가정은 이론적으로 더 안전합니다. 유일한 암호화 가정은 해시 함수(예: SHA2)를 예측할 수 없기 때문입니다(이 가정은 비트코인 ​​채굴의 안정성을 위한 기초이기도 합니다). , 따라서 또한 양자 내성이 있습니다. zkSTARK와 같은 참신한 기술로서 시간의 시험을 통과해야 합니다.


참조:

참조:

1. Zcoin 중국 커뮤니티, "Zcoin과 Zcash: 유사점과 차이점" http://www.zcoinchina.org/zcoin-and-zcash/https://z.cash/technology/zksnarks.html.

2. Zcash 팀, "zk-SNARK가 무엇인가요?"

4. Christian Reitwiessner,《zkSNARKs in a nutshell》,https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/

5. Matthew Green,《Zero Knowledge Proofs: An illustrated primer》,https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/

3. 제로코인 기술 백서 "제로코인 프로토콜을 사용하여 회계 프라이버시를 보장하는 암호화폐"http://www.sohu.com/a/224915382_117959

6. Lao Qian, "스도쿠로 인한 비극: 영지식 증명(Zero-Knowledge Proof)",

해당 글의 저작권은 Hash Future에 있으며, 전재가 필요한 경우 Hash Future 직원에게 문의하시기 바랍니다.





哈希未来
作者文库