Anbi Lab의 Guo Yu: 심층 신경망이 영지식 증명을 만날 때
편집자 주: 이 기사의 출처는완샹 블록체인(ID: gh_1b8639a25429), 승인을 받아 Odaily에서 재인쇄했습니다.
편집자 주: 이 기사의 출처는
완샹 블록체인(ID: gh_1b8639a25429)
영지식 증명
, 승인을 받아 Odaily에서 재인쇄했습니다.
이 기사는 Wanxiang Blockchain Hive Academy의 29번째 온라인 공개 과정 공유 콘텐츠입니다. 이번 호에서는 SECBIT Lab의 설립자인 Guo Yu를 초대하여 "심층 신경망이 영지식 증명을 만날 때"를 공유합니다.
오늘은 "심층 신경망이 영지식 증명을 만났을 때"에 대해 말씀드리겠습니다.
영지식 증명
"영지식 증명" 개념은 블록체인의 기본 기술 아키텍처에서 낯설지 않으며 1985년 Goldwasser, Micali 및 Rackoff가 제안했습니다(그림 참조). "영지식 증명"은 오랫동안 전산 이론 연구의 작은 영역에 국한되었지만 그 영향은 광범위했습니다.
영지식 증명에 "증명"이라는 단어가 있는데, 이 개념은 인류 문명 발달의 역사를 통해 많은 패러다임 변화를 겪었습니다. 고대 그리스에서 "증명"은 독창적인 수학적 기법이었으며, 20세기 초에는 3차 수학적 위기에서 수학적 증명이 재해석되고 형식 논리가 도입되어 형식화되어 컴퓨팅 이론과 컴퓨터가 탄생했습니다.
1970년대에는 프로그램과 증명 사이의 놀라운 연결이 발견되었고 현대 함수형 프로그래밍과 자동 정리 증명의 많은 개념이 도입되었으며 1980년대에는 "증명"의 개념이 대화형 시스템으로 확장되었습니다. 1980년대 이후 인터랙티브 증명 시스템은 철학적 의미와 이론 및 기술 측면 모두에서 혁신적인 새로운 통찰력을 가져왔습니다.
제가 영지식 증명의 개념을 처음 보았을 때 저의 첫 반응은 이것이 매우 직관에 반한다는 것이었습니다. 왜 "반직관적"인가? 먼저 영지식 증명의 기본 프레임워크를 간단히 소개하겠습니다.
영지식 증명에서는 오른쪽과 같은 사람이 있어야 하며 우리는 그를 Bob이라고 부르고 왼쪽은 신뢰할 수 없는 기계일 수 있습니다. 이 시점에서 Bob이 실행하기 위해 왼쪽에 있는 기계에 인계해야 할 컴퓨팅 작업이 있지만 기계 자체는 사람이 제어할 수 있다고 가정합니다. Bob은 계산 작업으로 "F()" 함수를 사용하고 입력 "X"를 가져와 계산 작업을 완료하도록 왼쪽 기계에 넘겨야 합니다. 이 계산 과정은 왼쪽 기계에서 이루어졌기 때문에 Bob은 전체 계산 과정을 목격하지 못했는데 왜 Bob은 계산 결과 Y=F(X, W)의 공식이 성립할 수 있다고 믿습니까? 게다가 왼쪽 기계만 알고 있는 일부 비밀 데이터(W)가 계산 과정에 섞여 있는데 밥은 W를 갖고 있지 않기 때문에 계산 과정을 반복해도 밥은 계산 결과가 맞는지 알 수 없다. 이러한 상황에서 Bob은 여전히 계산 결과가 정확하다고 믿을 수 있습니까?
한마디로 영지식 증명은 계산 결과가 정확하다고 Bob을 마법처럼 설득할 수 있습니다. 이것은 약간 믿기지 않게 들립니다. 신뢰 계산 결과 Y는 왼쪽 기계의 불신, 즉 그것이 허공에서 약간의 신뢰를 생성한다는 영지식 증명을 기반으로 합니다. 이는 정확히 직관에 반하는 것입니다. 두 사람이 서로를 전혀 신뢰하지 않을 때 신뢰를 구축할 수 있는 무언가가 있다고 상상하는 것은 매우 매우 흥미로운 일입니다.
직관적이지 않은 영지식 증명 요약하면 다음과 같이 이해할 수 있습니다. 원격 컴퓨팅 프로세스의 무결성과 기밀성을 보장할 수 있습니다.
1. 무결성. 원격으로 계산 과정이 일어나는 것을 본 적은 없지만 그 과정을 목격하지는 않았지만 계산 과정이 실생활에서 일어 났음에 틀림없고 계산 결과가 정확하다는 것은 계산 과정이 진행되지 않았다는 것을 의미합니다. 악의적으로 수정되었거나 위조되었습니다.
2. 기밀 유지. 계산 과정을 목격할 수 없고 계산 과정의 일부 중간 결과를 알 수 없고 그 내부의 일부 정보를 알 수 없기 때문에 일부 비밀 입력을 포함한 전체 계산 과정은 기밀이며 기밀입니다. .
이것이 직관에 반하는 영지식 증명이 달성할 수 있는 것입니다. 영지식 증명의 용도는 무엇입니까? 가장 직접적인 활용은 이른바 '데이터 프라이버시 보호'라고 생각한다. 건강 데이터, 은행 명세서, 여행 일정, 통신 기록과 같은 개인 데이터와 같은 몇 가지를 간략하게 나열했습니다. 사실 우리는 심장 박동, 의료 기록, 매일 지출하는 돈 등 우리의 건강 상태를 그 누구도 알기를 원하지 않습니다. 그러나 우리는 또한 택시를 타기 위해 외출하는 것과 같은 타사 서비스를 즐기기를 원합니다. 우리는 어떤 사람들은 우리가 어디에 있는지 알기를 원하지만 다른 사람들은 알기를 원하지 않거나 일반적인 장소만 알기를 원합니다. , 그리고 우리는 그가 세부 사항을 알기를 원하지 않습니다.
엔터프라이즈 데이터: 인사 파일, 창고 및 물류, 재무 원장, 고객 정보는 전통적으로 매우 기밀 데이터이지만 기업 간 협업의 효과를 극대화하기 위해 일부 데이터는 공유되어야 합니다. 영지식 증명은 데이터 프라이버시를 보장함과 동시에 데이터를 공유할 수 있는 방법을 제공하므로 미래의 삶과 업무에 가장 큰 영향을 미치는 것은 매우 효과적인 데이터 프라이버시 보호 기술을 제공하는 것입니다.
영지식 증명은 블록체인의 기저 기술에서 여전히 많은 흥미로운 용도를 갖고 있으며, 1985년 영지식 증명이 제안된 이후로 블록체인 기술이 국내에 적용되기 전까지 오랫동안 이론적인 결과 수준에 머물고 있습니다. 대규모, 아마도 2015년 이후. 2020년 - 영지식 증명이 블록체인에서 널리 사용됩니다. 블록 압축, 트랜잭션 익명성 보호, 신원 프라이버시, 공유 데이터, 오프체인 데이터 저장 무결성 등을 포함하여 블록체인 업계의 기술 친구는 이에 익숙해야 합니다.
zkSNARK
다음으로 두 가지 매우 기본적인 개념이 소개됩니다.
비대화형 영지식 증명
앞서 언급했듯이 영지식 증명이 제안되었을 때 "증명" 패러다임에 새로운 혁신이 이루어졌습니다. 과거에는 증명이 종이에 작성되었습니다. 밖으로. 영지식 증명은 대화형 증명으로, 선생님과 대화를 통해 선생님에게 증명 과정을 말하지 않고도 나를 믿도록 설득할 수 있습니다.
비대화형 영지식 증명이 다시 등장하는 이유는 무엇입니까? 비대화형 영지식 증명은 일부 특수 기술을 사용하여 대화형 증명 프로세스를 비대화형 영지식 증명으로 접습니다. 비대화형 영지식 증명은 블록체인 분야에서 더 널리 사용됩니다.
이것은 학계에서 일관성이 덜한 해석이 많이 있지만 매우 일반적인 단어이기도 합니다. 엄밀히 말하면 zkSNARK는 특수한 종류의 NIZK, 즉 특별한 비대화형 영지식 증명입니다.
세 가지 사항은 다음과 같습니다.
1. 간결하다. 그것이 생성하는 증거는 매우 작습니다. 얼마나 작습니까? 일반적으로 KB 정도이며 200바이트 이하일 수도 있습니다. 수백 바이트에 불과하지만 표현할 수 있는 계산 프로세스는 매우 클 수 있으며 보호할 수 있는 데이터도 테라바이트 정도일 수 있습니다.
2. 인수. 영지식 증명의 일종으로 나중에 간단히 설명하겠습니다.
3. zkSNARK 끝에 지식을 의미하는 "K"가 있습니다. 의미는 증명은 "지식"에 대한 증명이며 이 "지식"은 수학적 정의를 갖는다는 것입니다.
개인 정보 보호, 블록체인 및 영지식 증명
이 개념에 대해 이야기하기 전에 먼저 매우 중요한 cryptography-commitment 개념에 대해 이야기해야 합니다. 그림과 같이 왼쪽에 데이터베이스가 있는 것을 볼 수 있습니다.이 데이터베이스는 매우 매우 크며 아마도 1TB 이상일 것입니다.암호화를 통해 매우 작은 바이트 세그먼트로 변환할 수 있습니다. 아마도 100바이트 미만일 것입니다. 데이터베이스가 아무리 크더라도 최종 커밋은 100바이트를 초과하지 않는 데이터로 압축될 수 있습니다.
100바이트가 조금 넘지만 데이터베이스와 고유한 바인딩 관계를 맺을 수 있으며, 데이터베이스에 변경 사항이 발생하면 Promise도 함께 변경해야 합니다. Promise는 "자물쇠"와 같습니다. 누군가가 Promise를 적어두는 한, 데이터베이스에 수정 사항이 있는 한 Promise는 극적으로 변합니다.
약속에는 두 가지 속성이 있습니다.
특성 1: 결합, 약속은 원본 데이터 세트를 결합합니다(변경할 수 없음). 이 데이터 세트는 매우 클 수 있지만 매우 작은 약정으로 바인딩될 수 있습니다.
성격 2: 숨기고, 원본 데이터의 정보를 공개하지 않겠다고 약속합니다. 100바이트 정도 밖에 없기 때문에 정보량이 많이 손실되어 원본 데이터 정보가 유출되지 않는다.
여행 기록과 같이 데이터베이스가 많고 은행마다 데이터베이스가 있는 경우 두 개의 약정을 생성한 다음 약정을 체인에 넣을 수 있습니다.약정을 블록체인에 넣은 후 효과가 있습니다. 더 이상 당신의 말로 돌아갈 수 없습니다. 데이터베이스가 수정되었지만 Promise를 체인에 걸고 나면 모든 사람에게 보여줄 수 있습니다. Promise를 통해 데이터베이스에 접근할 수 있습니다. 데이터베이스 데이터를 일부 처리한 후입니다. 그러나 이 약속이 사슬에 묶여 있기 때문에 속이는 것은 불가능합니다. 다른 사람에게 데이터를 넘기기 전에 매우 복잡한 처리를 할 수 있으며 그 안에 있는 민감한 데이터를 삭제할 수 있습니다. 약속이 체인에 있기 때문에 이것은 매우 정직하고 가짜가 아니어야 합니다.
Commitment는 놀랍게 들리지만 비전문가가 거의 알지 못하는 매우 전통적이고 일반적으로 사용되는 암호화 도구입니다. Promise를 구현하는 방법에는 실제로 여러 가지가 있으며 가장 간단한 방법은 Hash와 같은 작업을 사용하는 것입니다. Merkle Tree, Pedersen Commitment 또는 Polynomial Commitment, Elgamal Encryption도 있으며 모두 약속을 이행할 수 있습니다.
암호학 이론의 관점에서 분석되는 두 가지 주요 유형의 커밋이 있습니다. 첫 번째 유형은 전산 바인딩과 완벽한 은폐입니다. 두 번째 범주: 완벽한 바인딩 및 계산 숨기기.
이른바 퍼펙트 은폐는 단 하나의 비트도 유출되는 것이 절대 불가능하다는 약속이고, 원본 데이터는 완벽하게 숨겨지지만 그 구속 관계는 전산적이다. , 현재 컴퓨팅 성능을 훨씬 능가할 것입니다.원래 데이터와 관련이 없는 가짜 약속을 위조하여 위조할 수 있습니다.
다른 타입은 반전이다. 그것의 결속 관계는 퍼펙트 바인딩이다. 슈퍼양자컴퓨터가 있어도 위조는 불가능하지만 그 은폐는 계산적이다. 즉, 100년 후에 슈퍼양자컴퓨터가 나온다면, 그것은 현재 Generate a Promise를 해독하고 여기에서 유용한 정보를 추출할 수 있습니다.
Binding과 Hiding 모두에서 완벽한 커밋 체계가 존재하는 것은 불가능하다는 것이 이론적으로 입증되었습니다. 그러나 프라이버시 보호를 위한 영지식 증명의 관점에서 우리는 일반적으로 퍼펙트 은폐인 첫 번째 유형의 커밋을 사용하지만 커밋은 전산 바인딩입니다. 우리는 약속을 체인에 걸고 싶기 때문에 100년 후에도 여전히 모든 사람에게 표시된다는 것을 의미하지만 이 정보가 100년 후에 실제로 다른 사람에 의해 해독될까 걱정할 필요가 없습니다. 또한 이러한 유형의 약속은 앞에서 언급한 인수인 매우 간결한 영지식 증명을 생성할 수 있습니다.
zkSNARK 원리
100바이트의 데이터베이스를 약속하면서 동시에 데이터가 특정 속성을 충족한다는 것을 증명할 수 있는 이유는 믿을 수 없을 정도로 들립니다.
먼저 "영지식 증명"이란 무엇인지 검토해 봅시다. 오른쪽 밥이 계산을 해보라고 하고, 믿을 수 없는 원격 기계에 계산을 보낸다 이 기계는 해커에 의해 조종되었거나 이 사람이 문제를 일으킬 수 있지만 상관없다. , 함수를 지정하고 X를 입력하고 잠시 후 Y를 지정하십시오. 그 기계를 믿지는 않지만 Y를 봤기 때문에 Y에 대한 의심이 있었지만 추가 영지식 증명을 확인했기 때문에 영지식 증명이 Y가 참이라고 말해주어서 믿었습니다. 어떻게 작동합니까?
먼저 가장 간단한 생각으로 돌아가 보자 내 프로그램을 실행할 수 있는 기계가 있다면 내가 보이지 않아도 걱정하지 않을 것이다 가장 쉬운 방법은 처음부터 끝까지 전체 계산 과정을 카메라로 기록하는 것입니다 비디오를 얻은 후 계산의 모든 단계가 올바른지 확인하기 위해 프레임별로 확인할 수 있습니다. 이것은 어리석은 일이지만 이론상으로는 효과가 있을 수 있습니다.
그러나 분명히 솔루션은 매우 비실용적입니다. 기계가 실행 중일 때 기계의 메모리 상태가 4G 메모리와 같이 매우 크고 비디오 파일이 너무 커서 전체 프로세스를 기록한 후 확인할 수 없기 때문입니다.
개선할 수 있는 방법이 있나요? 우리는 CPU에 메모리를 더한 모델이 아니라 컴퓨팅 회로의 컴퓨팅 모델을 사용합니다. 산술 회로 계산 모델과 컴퓨터 CPU 실행 프로그램의 표현 능력은 거의 동일하며 기본적으로 일반적인 계산을 표현할 수 있습니다.
산술 회로는 "곱셈 게이트" 및 "더하기 게이트"와 같은 상호 연결된 "게이트"로 구성됩니다. 입력은 회로의 왼쪽에서 입력되고 연산 결과는 연산 후 오른쪽의 출력 라인에서 생성됩니다. 전체 프로세스는 "+"와 "×"를 계산하는 것입니다. 이 두 연산을 과소 평가하지 마십시오. , 그들은 대부분의 작업을 표현할 수 있습니다.
산술 회로의 장점은 계산 과정을 사진으로 찍을 수 있다는 것입니다. 이때 카메라가 셔터를 눌러 사진을 찍고 회로를 파노라마로 찍기만 하면 모든 계산 과정을 기록하는 것과 같다. 이렇게 검증계산은 더 이상 검증영상이 아니다 영상은 프레임 단위로 보지만 사진의 모든 디테일이 검증되는 한 사진은 사진일 뿐이다.
회로 계산을 확인하는 방법은 무엇입니까? 각 게이트의 작동을 확인하려면 각 추가 게이트에 대해 왼쪽 및 오른쪽 입력의 추가가 출력과 같지 않은지 확인하십시오. 곱셈 게이트의 경우 왼쪽 및 오른쪽 입력의 곱셈이 출력과 같지 않은지 확인합니다. 각 문을 하나씩 참을성 있게 확인하는 한 괜찮을 것입니다.
게이트가 수백억 개라면 검증에 1년 이상 걸릴 수 있다. 이렇게 많은 게이트의 확인 프로세스를 단순화할 수 있는 방법이 있습니까? 이것은 수학적 도구 "다항식 인코딩"으로 수행할 수 있습니다.
예를 들어, y0, y1, y2라는 숫자가 있는데 XY축 평면에 놓고 하나씩 점으로 변환한 다음 그 점을 통과하는 곡선을 찾습니다. 이는 모든 값을 인코딩하는 것과 같습니다. 하나의 곡선 값으로 y0에서 yn까지.
곡선으로 인코딩하면 어떤 이점이 있습니까? 장점은 yk 값 중 하나를 변경하려는 경우 조금 변경해도 전체 곡선이 분명히 흐트러집니다. 섭동된 곡선은 n개 점에서 원래 곡선과 동일할 뿐 다른 점은 편차가 있습니다. 다항식 인코딩은 작은 수정이라도 증폭시킬 수 있습니다. 따라서 점을 임의로 검증하여 곡선에 의해 인코딩된 점이 수정되었는지 여부를 확인할 수 있습니다.
다음으로, 방금 산술 회로의 모든 곱셈 게이트의 왼쪽 입력 게이트, 오른쪽 입력 게이트 및 출력 게이트에서 세 가지 다른 다항식 인코딩을 수행하여 세 개의 곡선을 형성할 수 있습니다. 이제 3개의 곡선이 있는 한, 3개의 곡선(3개의 다항식) 사이의 곱셈 관계가 충족되는지 확인하는 것으로 충분합니다. 곱셈 관계를 검증하기 위해서는 X축의 한 점을 무작위로 샘플링하기만 하면 되고, 100억 게이트를 검증할 필요는 없다. 세 개의 곡선이 검증되었지만 검증자가 너무 많은 비밀을 보았음이 분명하며 영지식 증명은 계산 과정의 비밀이 유출되지 않도록 해야 합니다. 그것을하는 방법? 다항식 연산은 타원 곡선 그룹에 동형적으로 매핑될 수 있습니다.
정수의 유한 필드에 대한 추가 연산은 타원 곡선 그룹에 대한 이진 연산에 매핑됩니다. 정수 곱셈 연산은 타원곡선군에 쌍선형 짝짓기 연산으로 동형매핑이 가능하며, 곱셈은 단일 곱셈만 가능하지만, 연산회로의 연산관계를 검증하기에는 충분하다.
이 과정은 단순해 보이지만 zkSNARK의 연구는 많은 암호학자들의 노력을 기반으로 합니다.경로는 IKO07(2007)로 거슬러 올라갑니다.2010년에 Groth는 예비 아이디어를 얻었고 핵심 돌파구는 2013년이었습니다. Groth16의 향상된 솔루션은 업계에서 가장 널리 사용되는 영지식 증명 알고리즘입니다. 또한 GGPR13 알고리즘의 지속적인 개선을 통해 개발된 Marlin, Aurora, Spartan 및 Fractal과 같은 매우 새로운 개선 체계도 있습니다.
2013년의 GGPR13 논문은 비교적 큰 돌파구였으며 많은 멋진 아이디어가 나왔습니다. 논문의 네 명의 저자는 Rosario Gennaro, Craig Gentry, Bryan Parno, Mariana Raylova입니다.
GGPR13/Pinocchio/Groth16 프레임워크를 살펴보십시오. 계산을 표현하고 싶을 때 먼저 고급 언어로 코드를 작성한 다음 컴파일러를 통해 산술 회로로 컴파일 한 다음 행렬 표현을 통해 R1CS 행렬을 생성하고 다항식 인코딩을 통해 QAP를 생성하고 마지막으로 생성합니다. Trusted-Setup을 통해: 키 증명, 키 확인. Proving Key는 계산 과정을 증명하는 데 사용할 수 있으며, Verifying Key는 증명 π가 올바른지 확인하는 데 사용할 수 있습니다.
영지식 증명 + 심층 신경망
영지식 증명을 통해 데이터베이스에 대한 커밋을 계산하고 체인에 게시할 수 있습니다.커밋을 통해 데이터베이스를 체인에 올린 후 많은 일을 할 수 있습니다.데이터베이스를 사용하여 많은 유용한 정보를 생성할 수 있습니다. 개인 프라이버시를 노출하지 않고 친구, 기업 및 사회 전체와 정보를 공유할 수 있는 기능. 다음으로 딥 네트워크에서 우리 팀의 단계적 결과를 소개하겠습니다.
이미지 인식은 널리 사용되고 있으며 표준 이미지 분류 모델로 비행기, 자동차, 새, 개 등의 표준 테스트 케이스로 해상도는 224×224이다. 다음 단계는 개인 정보 보호 + 기계 학습(영지식 증명 + 심층 신경망)입니다.
왼쪽에는 많은 개인 정보가 포함된 데이터베이스가 있으며 기계 학습(훈련) 후에 인공 지능 모델이 생성됩니다. Alice는 모델을 노출하고 싶지 않습니다. 결국 모델은 개인 정보를 반영할 수 있습니다.
그러나 Alice는 모델이 Bob에게 귀중한 정보를 제공할 수 있다고 생각하고 Bob은 Alice에게 사진을 제공하고 사진을 식별하는 데 도움을 줄 수 있다고 말하지만 훈련 세트의 세부 사항을 모릅니다. 앨리스는 영지식 증명과 함께 사진을 찍어 인식을 위한 모델에 넣고 결과를 생성할 수 있습니다. 만약 모델의 결과가 고양이를 인식한다는 것인데 제가 영지식증명도 말씀드리자면 그 결과는 과연 비밀모델로 인식이 되었다는 것을 증명하는 것입니다. for some 기계 학습 시나리오에서는 예측 결과가 신뢰할 수 있는지 여부를 확인할 방법이 없습니다.
예를 들어 의학적 진단 필름에 암의 초기 징후가 있는지 여부는 필름을 보면 알 수 없지만 모델은 당신이 매우 건강하다고 말할 수 있습니다. 영지식 증명은 이것이 실제로 매우 신뢰할 수 있는 X-ray 필름 데이터베이스에서 추론된 결과임을 알려줄 수 있습니다.
모델은 체인에 있다고 약속할 수 있으므로 앨리스가 밥을 속이는 것은 절대 불가능합니다.핵심은 앨리스가 좋은 사람인지 나쁜 사람인지 더 이상 신뢰할 필요가 없다는 것입니다.증명 결과를 낼 수 있다면, 당신은 결과를 제공하는 사람이 아니라 결과에만 관심이 있습니다.
다음으로 VGG16의 신경망 모델인 이미지 인식 실험을 했습니다. 16계층의 심층 신경망입니다. 많은 수의 매개변수, 14개의 컨볼루션 레이어, 2개의 완전 연결 레이어, Relu 활성화 함수, Max-pooling pooling이 있습니다.
이 작업을 수행하는 것은 매우 어려운 일이며 우선 참고할 만한 전작이 없습니다.
과제 1: 산술 회로에서 과학적 계산을 수행하는 방법.
과학 컴퓨팅에는 많은 십진수 및 부동 소수점 산술이 있습니다. 유한 필드에서 고정 소수점 숫자를 인코딩하고 VGG16 모델의 모든 데이터를 정규화하여 모든 숫자가 256을 초과하지 않도록 합니다. 6개의 10진수 고정 소수점 숫자를 가지고 8비트는 정수 부분을 나타내고 6비트는 소수 부분을 나타내고 24비트는 특정 지점을 나타냅니다. 디지털 회로를 사용하여 고정 소수점 숫자(제곱, 제곱근, 로그 등)에 대한 다양한 연산을 실현합니다.
과제 2: R1CS 매트릭스는 거대하고 PB 수준의 메모리가 필요합니다.
일반 컴퓨터의 메모리는 GB이고, 수백 G에 이르는 서버의 메모리는 이미 매우 큰 것으로 간주된다. R1CS 행렬 산술 회로가 실제로 인코딩된 경우 PB 수준의 메모리가 필요합니다. 일반 기계는 거의 견딜 수 없습니다. VGG16 이미지 인식을 수행하려면 146억 개의 곱셈 게이트가 필요하다고 계산했습니다. 우리가 아는 한, 이것은 이러한 대규모 실용 알고리즘에 대한 세계 최초의 영지식 증명입니다. 곱셈 횟수의 분포는 대부분 컨볼루션 레이어이며, 심층 신경망을 할 때 많은 수가 컨볼루션 연산으로 90% 이상을 차지합니다.
회로 매트릭스가 너무 커서 이미지 인식 프로세스를 증명하기 위해 새로운 영지식 증명 체계인 CLINK를 발명해야 했습니다. 다른 영지식 증명 체계와 비교하여 CLINK는 대규모 회로를 처리하기 위해 몇 가지 특수 기술을 채택합니다.
기술 1: 거대한 회로에는 많은 수의 중첩 회로가 있습니다. 이미지 인식에 관한 한, 컨볼루션 레이어가 많고, 그 많은 컨볼루션 레이어의 회로 부분이 유사하고 유사한 것을 조합하여 처리할 수 있습니다.
기술 2: 거대한 회로는 많은 작은 회로로 분해될 수 있으므로 메모리는 작은 회로를 하나씩 유지하고 완료 후 연결될 수 있습니다. 회로가 분해되었지만 여러 회로 간의 연결을 보호해야 하는 경우 이러한 값은 여전히 비밀이며 노출될 수 없습니다. 우리는 여전히 중간에 있는 모든 하위 회로 사이의 노출된 전선을 약속으로 보호합니다. 그런 다음 회로의 분해가 실현될 수 있습니다.
증명을 위해 동일한 하위 회로를 결합할 수 있습니다. 결국 거대한 회로에 대해 많은 영지식 증명이 생성되었고 완전한 영지식 증명을 형성하기 위해 중간 가치 약정이 추가되었습니다. 이 과정에서 하위 회로에 대한 영지식 증명이 생성되고 중간에 노출된 선 계산 커밋, 중간 값은 공용 입력/입력으로 사용되지 않으며 결과는 패키지화 및 압축됩니다.
두 가지 실험을 했습니다.
솔루션 1(병렬): 멀티 코어 CPU를 최대한 활용하고 동시에 VGG16을 병렬로 계산합니다. 동시.
솔루션 2(직렬): 계층별로 직렬화하고, 먼저 첫 번째 계층과 두 번째 계층을 만든 다음 첫 번째 계층과 두 번째 계층 간의 연결 증명을 수행합니다.
여기에서 우리는 1TB 메모리와 고성능 SSD가 장착된 슈퍼 서버를 제공한 QTUM 팀에 매우 감사합니다. 병렬 솔루션은 여전히 많은 메모리를 필요로 하기 때문에 첫 번째 병렬 솔루션을 먼저 사용하겠습니다 PB 수준은 필요하지 않지만 병렬 솔루션을 실행하는 데 약 5TB의 메모리가 필요하며 그 중 4TB는 스왑 파티션에서 실행됩니다. 전체 프로세스가 SSD 스왑 파티션을 사용하기 때문에 성능이 크게 영향을 받습니다.
병렬 솔루션: 사진이 224×224 해상도로 새끼 고양이를 인식한다는 것을 증명하고 증명 시간은 25시간이 소요됩니다. 메모리가 4TB인 머신을 주면 5시간밖에 걸리지 않을 수 있지만 메모리가 4TB인 머신은 찾기 힘들고 확인 시간도 1시간이 걸립니다. 증명 길이는 80KB이고 최대 메모리 사용량은 5TB입니다.
시리얼방식 : 느려보이지만 머신에서 더 빠르게 돌아가서 500GB의 메모리만 사용하고 스왑파티션을 사용하지 않아 전체적으로 더 빠름 증명시간은 20시간, 검증시간은 1시간 , 증명 길이는 110KB입니다.
우리가 실험하는 과정에서 한국의 학자들도 우리에게 비슷한 작업을 하는 초안을 보냈습니다. 가장 큰 차이점은 특히 회로에서 최대 풀링을 수행하기가 매우 어려울 때 VGG16에 약간의 타협 수정을 가했기 때문에 평균값을 사용하여 풀링을 수행한다는 것입니다. 그 중 매우 큰 83GB CRS가 도입되었습니다. 우리 계획에서 CRS는 매우 작고 실용성이 더 좋습니다. 이것은 우리가 알 수 있는 최신 국제 연구 결과입니다.
빅데이터 영지식증명의 응용 전망
영지식 증명은 이론에서 공학으로, 점차 응용으로 옮겨가고 있으며, 앞으로는 더 많은 양의 데이터를 처리할 수 있게 될 것입니다. 탐색 프로세스 중에 개발한 CLINK 알고리즘은 심층 신경망의 추론 프로세스를 포함하여 빅 데이터 통계, 쿼리 및 기타 복잡한 작업을 지원할 수 있습니다. 앞으로 이러한 기술은 다음 분야에서 사용될 수 있습니다.


