KR102553775B1 - 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템 - Google Patents

연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템 Download PDF

Info

Publication number
KR102553775B1
KR102553775B1 KR1020210010040A KR20210010040A KR102553775B1 KR 102553775 B1 KR102553775 B1 KR 102553775B1 KR 1020210010040 A KR1020210010040 A KR 1020210010040A KR 20210010040 A KR20210010040 A KR 20210010040A KR 102553775 B1 KR102553775 B1 KR 102553775B1
Authority
KR
South Korea
Prior art keywords
protocol
vector
proof
zero
length
Prior art date
Application number
KR1020210010040A
Other languages
English (en)
Other versions
KR20220107420A (ko
Inventor
서재홍
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020210010040A priority Critical patent/KR102553775B1/ko
Publication of KR20220107420A publication Critical patent/KR20220107420A/ko
Application granted granted Critical
Publication of KR102553775B1 publication Critical patent/KR102553775B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Communication Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템을 제안한다. 본 발명에서 제안하는 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템은 블록체인 및 딥러닝에서 프라이버시를 보호하면서 수치 데이터에 대한 연산 검증에 활용되는 범위증명 및 연산의 유효성을 검증하기 위한 산술회로에 대한 영지식 증명에서 두 벡터의 내적관계를 증명할 때 증명 크기를 감소시키거나 또는 검증자의 연산 부담을 감소 시키기 위한 목적에 따라 BP(Bulletproofs)에 그룹간 페어링 연산을 결합하여 영지식 증명을 수행한다.

Description

연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템{Pairing-based zero-knowledge proof protocol system for proves and verifies calculation results}
본 발명은 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템에 관한 것이다.
블록체인의 가장 큰 장점 중 하나는 탈 중앙화라고 불리우는 개념으로 중앙화된 기관이 존재하지 않은 채로 전자화폐 개념을 구현할 수 있다는 것이다. 다만, 일반적인 블록체인 기반 암호화폐에는 사용자, 거래내역, 잔고 등이 투명하게 공개 장부에 기록이 되어 사용자 프라이버시가 제한을 받는다는 단점이 있다. 이를 해결해준 것이 zk-SNARK로, 사용자 프라이버시를 크게 개선할 수 있는 영지식 증명 프로토콜이다. 다만, zk-SNARK의 가장 큰 단점은 신뢰도 설정(trusted setup)이라는 초기화 과정을 신뢰할 수 있는 기관이 수행해야한다는 것으로, 탈중앙화라는 블록체인의 기본 이념과는 상충되는 기법이고, 이과정을 없애는 것이 최근 몇 년간 중요한 이슈이다.
신뢰도 설정이 없는 영지식 증명방식에는 여러 가지가 있다. 그 중에서 Bulletproofs는 스탠포드 대학 연구팀이 주축이 되어 설계한 영지식 프로토콜 방식으로, 신뢰도 설정 과정이 없이 증명의 크기를 로그(logarithm) 크기로 유지할 수 있다는 것이 가장 큰 장점이다. 다만, 여전히 신뢰도 설정이 필요한 zk-SNARK에 비해서는 증명의 크기가 크다는 단점을 가지고 있다.
따라서, 블록체인을 활용한 암호화폐의 거래금액 및 잔고를 드러내지 않는 장부의 작성 및 검증과, 클라우드 서버를 활용한 연산처리에서 연산결과에 대한 무결성 증명 및 검증에 있어서, 특정 가중 내적에 대한 영지식 증명 프로토콜을 기초로 하는 짧은 길이의 영지식 증명 프로토콜을 필요로 한다.
본 발명이 이루고자 하는 기술적 과제는 내적관계를 이용한 영지식 증명 BP(Bulletproofs)의 2가지의 응용인, 블록체인 및 딥러닝에서 프라이버시를 보호하면서 수치 데이터에 대한 연산검증에 활용되는 핵심 암호기술인 범위증명(Range proofs) 및 연산의 유효성을 검증하기 위한 산술회로에 대한 영지식증명(Zero knowledge argument for Arithmetic circuit)에 있어서, 많은 증명을 제한된 용량에 담아야하는 블록체인에서 활용할 경우 증명의 크기가 작은 것이 선호되며 이때 BP대신 사용하기 위한 Protocol 2를 제안하고, 또한 검증자의 연산 능력이 제한되어 있어 연산 속도가 느린 경우에는 연산에 걸리는 시간을 짧게 하기 위한 Protocol 3을 제안하여 검증자의 연산 부담을 줄이고자 한다.
일 측면에 있어서, 본 발명에서 제안하는 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템은 블록체인 및 딥러닝에서 프라이버시를 보호하면서 수치 데이터에 대한 연산 검증에 활용되는 범위증명 및 연산의 유효성을 검증하기 위한 산술회로에 대한 영지식 증명에서 두 벡터의 내적관계를 증명할 때 증명 크기를 감소시키거나 또는 검증자의 연산 부담을 감소 시키기 위한 목적에 따라 BP(Bulletproofs)에 그룹간 페어링 연산을 결합하여 영지식 증명을 수행한다.
본 발명에서 제안하는 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템은 복수의 증명을 미리 정해진 용량의 블록체인에서 활용할 경우 증명 크기를 감소시키기 위해 BP에 그룹간 페어링 연산을 결합한 Protocol 2를 포함하고, 상기 Protocol 2는, 반복횟수를 감소시키기 위해 길이가
Figure 112021009378431-pat00001
인 두 벡터의 내적 관계를 길이가
Figure 112021009378431-pat00002
인 두 벡터의 내적관계를 나타내는 문제로 환원하고, 반복횟수가 줄어들 때 환원 과정에서 발생하는 증명 크기 증가 문제를 해결하기 위해 페어링 연산을 통해 증명 크기를 압축하여 전달하며, 압축된 정보에 대한 유효성 검증을 위해 aAggMEA 프로토콜을 보조 프로토콜로 사용한다.
Protocol 2에서 증명자가 복수의 쌍의 MEA(Multi-Exponent Argument) 관계식을 만족해야 하고, 복수의 쌍의 MEA 관계식 각각을 증명을 하지 않고 한번에 검증하기 위해 aAggMEA 프로토콜을 이용하며, 상기 aAggMEA 프로토콜은, 검증자가 랜덤값
Figure 112021009378431-pat00003
를 증명자에게 보내는 단계(step 1); 증명자가 랜덤값
Figure 112021009378431-pat00004
에 기초하여 m개의 MEA 인스탠스(instance)에
Figure 112021009378431-pat00005
값을 순차적으로 곱하는 단계(step 2); 및 ProdMEA 프로토콜을 수행하는 단계(step 3)를 포함한다.
ProdMEA 프로토콜은 증명자가 내적 페어링 곱연산을 수행하여
Figure 112021009378431-pat00006
을 검증자에게 보내는 단계(Step 1); 검증자가 랜덤값
Figure 112021009378431-pat00007
를 증명자에게 보내는 단계(Step 2); 1/2 길이의 벡터로 업데이트 하는 단계(Step 3); 및 벡터의 길이가 1이 될 때까지 ProdMEA 프로토콜을 반목하는 단계(Step 4)를 포함한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템은 BP의 검증자의 연산량이 벡터의 길이에 비례한다는 문제점을 보완하여 검증자의 연산 부담을 감소 시키기 위해 페어링 연산을 결합한 Protocol 3을 사용하고, 상기 Protocol 3는 증명자의 비밀정보(witness)의 길이가
Figure 112021009378431-pat00008
인 벡터(
Figure 112021009378431-pat00009
행렬의 행벡터)이고, 외적 페어링 곱연산(Outer Paring Product)을 사용하여 상기 행벡터를 하나의 원소로 하여 Protocol 3을 수행한 후 마지막에 모아진 행벡터에 대해서 BP를 수행한다.
본 발명의 실시예들에 따르면 내적관계를 이용한 영지식 증명 BP(Bulletproofs)의 2가지의 응용인, 블록체인 및 딥러닝에서 프라이버시를 보호하면서 수치 데이터에 대한 연산검증에 활용되는 핵심 암호기술인 범위증명(Range proofs) 및 연산의 유효성을 검증하기 위한 산술회로에 대한 영지식증명(Zero knowledge argument for Arithmetic circuit)에 있어서, 많은 증명을 제한된 용량에 담아야하는 블록체인에서 활용할 경우 증명의 크기가 작은 것이 선호되며 이때 BP대신 사용하기 위한 Protocol 2를 제안하고, 또한 검증자의 연산 능력이 제한되어 있어 연산 속도가 느린 경우에는 연산에 걸리는 시간을 짧게 하기 위한 Protocol 3을 제안하여 검증자의 연산 부담을 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른 연산 표기를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 두 벡터간의 연산의 정의를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 Protocol 2를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 aAggMEA(Augmented aggregation of multi-exponentiation argument)를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 ProdMEA(Product of Multi-Exponentiation Argument)를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 내적 곱연산(Inner-Product)을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 Protocol 3을 설명하기 위한 도면이다.
연산결과를 증명 및 검증하는 영지식 증명은 어떠한 정보를 공개하지 않으면서 연산을 통해 정보를 알고 있다는 것을 증명하는 기술로 블록체인, 클라우드에서 프라이버시를 보호한 채로 처리하는데 사용된다. 대표 기술로는 미국 Stanford, 영국 UCL, 블록체인 관련 기업 Blockstream이 공동으로 설계한 BP(Bulletproofs)가 있다.
본 발명에서는 내적관계를 이용한 영지식 증명 BP(Bulletproofs)의 2가지의 응용인, 블록체인 및 딥러닝에서 프라이버시를 보호하면서 수치 데이터에 대한 연산검증에 활용되는 핵심 암호기술인 범위증명(Range proofs) 및 연산의 유효성을 검증하기 위한 산술회로에 대한 영지식증명(Zero knowledge argument for Arithmetic circuit)에 있어서, 많은 증명을 제한된 용량에 담아야하는 블록체인에서 활용할 경우 증명의 크기가 작은 것이 선호되며 이때 BP대신 사용하기 위한 Protocol 2를 제안하고, 또한 검증자의 연산 능력이 제한되어 있어 연산 속도가 느린 경우에는 연산에 걸리는 시간을 짧게 하기 위한 Protocol 3을 제안하여 검증자의 연산 부담을 줄이고자 한다.
범위증명을 간단하게 설명하면, 증명자가 가지고 있는 수치 데이터를 공개하지 않은 채 해당 데이터가 특정 범위 내에 있다는 사실을 증명하는 것이며 범위증명을 구성할 때 BP가 핵심 아이디어로 사용된다. 산술회로에 대한 영지식증명은 산술회로 검증을 내적관계를 보이는 문제로 변환 후 BP를 이용하여 이를 달성한다.
Protocol 2와 Protocol 3는 BP 대신에 사용할 수 있는 프로토콜이며 각각의 장점이 있다. 많은 증명을 제한된 용량에 담아야하는 블록체인에서 활용할 경우 증명의 크기가 작은 것이 선호되며 이때 BP대신 Protocol 2를 사용하여 효율적으로 사용될 수 있다. 또한 검증자의 연산 능력이 제한되어 있어 연산 속도가 느린 경우에는 연산에 걸리는 시간을 짧게 하기 위해 Protocol 3을 활용하여 검증자의 연산 부담을 줄이는 방향으로 적용 할 수 있다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
직접 수행한 연산결과에 대해 외부 사용자에게 증명하고, 외부에서 수행된 연산결과에 대해 검증하는 기술은 다양한 산업에서 사용이 가능하다. 영지식 증명이란, 증명자(
Figure 112021009378431-pat00010
)와 검증자(
Figure 112021009378431-pat00011
)간에 증명하고 검증하는 프로토콜로써 아래의 세 가지를 만족해야한다:
1. 완전성(completeness):
Figure 112021009378431-pat00012
가 정상적으로 프로토콜을 수행할 때,
Figure 112021009378431-pat00013
는 검증 후 최종 수락한다.
2. 건실성(soundness): 정상적이지 않은
Figure 112021009378431-pat00014
가 프로토콜을 수행할 때,
Figure 112021009378431-pat00015
는 검증 후 최종 거절한다.
3. 영지식성(zk-knowledgeness): 정상적인
Figure 112021009378431-pat00016
와 프로토콜을 수행한
Figure 112021009378431-pat00017
는 검증결과를 제외하고는 프로토콜 전과 후에 알게 되는 정보가 다르지 않다.
다음으로, 본 발명의 실시예에 따른 영증명 방법을 설명하기 위한 표기법에 대하여 설명한다.
Figure 112021009378431-pat00018
는 소수(prime),
Figure 112021009378431-pat00019
는 길이를 나타낸다 하자. 제안하는 프로토콜에서, 몇몇 집합들
Figure 112021009378431-pat00020
과 그것들에 대한 몇몇 이진 연산들을 사용한다.
Figure 112021009378431-pat00021
는 오더(order)
Figure 112021009378431-pat00022
의 그룹을,
Figure 112021009378431-pat00023
는 정수 모듈로
Figure 112021009378431-pat00024
의 유한체를,
Figure 112021009378431-pat00025
Figure 112021009378431-pat00026
를 각각 나타내도록 한다. 그룹
Figure 112021009378431-pat00027
에 대해서
Figure 112021009378431-pat00028
Figure 112021009378431-pat00029
-차원 곱의 그룹을 나타내며, 유한체
Figure 112021009378431-pat00030
에 대해서
Figure 112021009378431-pat00031
은 차원
Figure 112021009378431-pat00032
의 벡터 공간을 나타낸다.
Figure 112021009378431-pat00033
Figure 112021009378431-pat00034
에 대한
Figure 112021009378431-pat00035
행과
Figure 112021009378431-pat00036
열이 있는 행렬 집합을 나타낸다. 카테시안 곱 집합
Figure 112021009378431-pat00037
의 요소는 굵은 글자로 표시된다.
즉,
Figure 112021009378431-pat00038
이고,
Figure 112021009378431-pat00039
이다. 종종
Figure 112021009378431-pat00040
의 벡터를 변환기 행렬로 간주한다. 흔히
Figure 112021009378431-pat00041
의 벡터
Figure 112021009378431-pat00042
Figure 112021009378431-pat00043
의 행 매트릭스로 간주하며, 해당 열 벡터인 트랜스포즈 벡터는
Figure 112021009378431-pat00044
로 표시된다.
위에서 정의한 집합 중에서 몇몇 이진 연산자에 대한 표기법을 정의한다. 2개의 벡터
Figure 112021009378431-pat00045
의 경우,
Figure 112021009378431-pat00046
Figure 112021009378431-pat00047
사이의 내적은
Figure 112021009378431-pat00048
로 정의되며,
Figure 112021009378431-pat00049
로 표시되기도 한다.
Figure 112021009378431-pat00050
Figure 112021009378431-pat00051
사이의 요소별 곱(아다마르 곱)은
Figure 112021009378431-pat00052
, 즉
Figure 112021009378431-pat00053
이다.
Figure 112021009378431-pat00054
Figure 112021009378431-pat00055
의 경우, 다중-거듭제곱(multi-exponentiation)
Figure 112021009378431-pat00056
Figure 112021009378431-pat00057
에 의해 표시된다. 스칼라
Figure 112021009378431-pat00058
와 벡터
Figure 112021009378431-pat00059
의 경우 스칼라 곱은
Figure 112021009378431-pat00060
즉,
Figure 112021009378431-pat00061
로 표시된다.
본 발명은 내적관계를 이용하여 연산 결과를 증명 및 검증하는 영지식 증명 시스템, BP를 개선한 것이며 BP의 기본 아이디어에 그룹간의 페어링 연산을 접목시켜 보다 효율적인 영지식 증명을 구성하였다.
본 발명에서 제안하는 BP의 2가지의 응용은, 기존의 BP대비 증명의 크기를 줄인 Protocol 2 및 검증자의 연산량을 줄인 Protocol 3을 제안한다.
기존의 BP는 길이가
Figure 112021009378431-pat00062
인 두 벡터의 내적관계를 보이는 문제를 길이가
Figure 112021009378431-pat00063
인 두 벡터의 내적관계를 보이는 문제로 환원(reduction)하는 것이 핵심 아이디어이며, 벡터의 길이가 1이 될 때까지 환원과정을 거친 뒤, 벡터의 길이가 1이 된 상태에서 내적관계를 검증하는 것으로 구성된다. BP는
Figure 112021009378431-pat00064
의 증명크기와
Figure 112021009378431-pat00065
의 검증자 연산량을 가진다.
Protocol 2는 길이가
Figure 112021009378431-pat00066
인 두 벡터의 내적관계를 길이가
Figure 112021009378431-pat00067
인 두 벡터의 내적관계를 보이는 문제로 환원시켜 반복횟수(round 횟수)를 줄이는 것으로부터 시작한다. Protocol 2는 반복횟수가 줄어들긴 하지만 각 라운드마다 환원 과정에서 생기는 증명들의 크기가 커지는 문제점이 있다. 이러한 문제점을 해결하기 위해 페어링을 통해 압축하여 증명의 크기를 줄인 상태로 보내며 압축된 정보에 대한 유효성 검증을 위해 aAggMEA 프로토콜을 보조 프로토콜로 사용한다. 최종적으로는
Figure 112021009378431-pat00068
의 증명크기를 달성한다.
Protocol 3은 BP의 단점 중 하나인,
Figure 112021009378431-pat00069
에 비례하는 검증자의 연산량을 개선하는데 초점이 맞춰져 있다. Protocol 3은 외적 페어링 곱연산(Outer-Paring product) 기법을 이용해
Figure 112021009378431-pat00070
길이의 그룹 벡터 연산을
Figure 112021009378431-pat00071
길이의 그룹 벡터 연산과
Figure 112021009378431-pat00072
길이의 그룹벡터 연산으로 나누는 방법을 사용하여 검증자의 연산량
Figure 112021009378431-pat00073
을 달성한다.
Protocol 2, Protocol 3 모두 BP와 같이 내적관계를 증명하는 프로토콜로써 범위증명(Range Proofs), 산술회로를 위한 영지식 증명으로 활용될 수 있으며 증명 크기를 줄이는 것이 중요한 곳에서는 Protocol 2를, 검증자의 연산 부담을 줄이기 위해서는 Protocol 3을 각각의 목적에 맞게 사용할 수 있다.
본 발명의 설명에 앞서 먼저 실시예에 따른 수학적 구조 및 집합에 관하여 설명한다.
Figure 112021009378431-pat00074
는 길이가
Figure 112021009378431-pat00075
인 소수를 나타내며 앞으로 소개할 모든 그룹(group)
Figure 112021009378431-pat00076
는 위수(order)
Figure 112021009378431-pat00077
를 가진다.
Figure 112021009378431-pat00078
는 이진 선형적인(bilinear) 맵핑(mapping)
Figure 112021009378431-pat00079
을 가지는 집합들이며
Figure 112021009378431-pat00080
는 페어링 연산을 나타낸다. 본 설명에서 알파벳 소문자
Figure 112021009378431-pat00081
Figure 112021009378431-pat00082
의 원소로, 알파벳 대문자
Figure 112021009378431-pat00083
Figure 112021009378431-pat00084
의 원소로 표기할 것이다.
Figure 112021009378431-pat00085
은 자연수
Figure 112021009378431-pat00086
이하의 자연수들의 집합
Figure 112021009378431-pat00087
을 나타낸다.
통상적으로 볼드체(예를 들어,
Figure 112021009378431-pat00088
)는 벡터를 의미하며 같은 알파벳이라도 볼드체 여부에 따라 나타내는 대상이 다를 수 있으므로 주의가 필요하다.
기본적으로 log는 밑이 2인
Figure 112021009378431-pat00089
를 나타내며 다른 밑을 가질 경우에는 밑을 함께 표기하였다(예를 들어,
Figure 112021009378431-pat00090
).
도 1은 본 발명의 일 실시예에 따른 연산 표기를 나타낸다.
도 1을 참조하면, 기본적으로 벡터는 유한체(field)의 벡터와 그룹의 벡터를 생각할 수 있다. 유한체의 벡터에 대한 스칼라 연산은 도 1의 1. 과 같이 표기하고 그룹 벡터에 대한 스칼라 지수연산은 2. 와 같이 표기한다. 또한 정해진 그룹원소에 대해서 유한체 벡터를 지수에 얹는 표기를 사용하고, 이것은 각 컴포넌트들이 주어진 그룹원소에 대해서 지수를 취하는 꼴로 쓰여지며 3. 과 같이 표기한다.
도 2는 본 발명의 일 실시예에 따른 두 벡터간의 연산의 정의를 나타내는 도면이다.
먼저 두 그룹 벡터에 대해서 컴포넌트 끼리 연산하여 그룹벡터를 만드는 연산을 생각할 수 있다. 이것은 도 2(Component-wise operation)에 명시된 표현을 따른다. 이후에 두 벡터간의 연산을 통해 하나의 값을 만드는 내적 연산을 정의할 것이다. 도 2의 1.은 유한체 벡터들끼리의 일반적인 내적연산을 나타내며, 2. 는 그룹벡터와 유한체 벡터들간의 다중 지수연산(multi-exponentation)을 나타낸다. 3. 은 두 그룹벡터 사이에서 이루어지는 연산으로서, 각 컴포넌트마다 페어링을 한 후 페어링 값들을 다 곱하여 하나의 그룹원소로 만드는 연산이고 이를 내적 페어링 곱연산(inner paring product)이라 부른다.
도 3은 본 발명의 일 실시예에 따른 Protocol 2를 설명하기 위한 도면이다.
BP와 다르게 Protocol 2는 길이가
Figure 112021009378431-pat00091
인 벡터를
Figure 112021009378431-pat00092
개의 동일한 길이의 벡터로 분해한 뒤 프로토콜을 진행한다. 증명자는 서로 다른
Figure 112021009378431-pat00093
에 대해서
Figure 112021009378431-pat00094
를 생성한다. 이때
Figure 112021009378431-pat00095
의 개수는 총
Figure 112021009378431-pat00096
개이며,
Figure 112021009378431-pat00097
들을 사전적 순서(lexiographic order)로 나열하여 길이가
Figure 112021009378431-pat00098
인 벡터
Figure 112021009378431-pat00099
를 만들고, 미리 정해놓은
Figure 112021009378431-pat00100
과 내적 페어링 곱연산을 통해 그룹 원소
Figure 112021009378431-pat00101
로 만들어 검증자에게 보낸다(Step 1). 이후 검증자가 증명자에게 랜덤값
Figure 112021009378431-pat00102
를 보내고(Step 2), 랜덤값을 받은 증명자는 검증자가
Figure 112021009378431-pat00103
들을 모르는 검증자가
Figure 112021009378431-pat00104
를 업데이트 할 수 있도록
Figure 112021009378431-pat00105
를 계산 후 보내주며(Step 3), 이후에는
Figure 112021009378431-pat00106
길이 벡터의 내적관계로 환원하기 위해
Figure 112021009378431-pat00107
길이의 벡터
Figure 112021009378431-pat00108
와 그룹원소
Figure 112021009378431-pat00109
를 업데이트 하고 증명자는 추가로
Figure 112021009378431-pat00110
를 업데이트 하고(Step 4), 이후에 증명자와 검증자는 각각
Figure 112021009378431-pat00111
,
Figure 112021009378431-pat00112
를 상태 정보에 업데이트 후, 업데이트 한 벡터
Figure 112021009378431-pat00113
들을 이용하여 또 다시 프로토콜을 수행한다. 해당 프로토콜을 길이가 벡터의 길이가 1이 될 때 까지 반복한다(Step 5).
벡터의 길이가 1이 되었을 때(
Figure 112021009378431-pat00114
), 증명자는 가지고 있는
Figure 112021009378431-pat00115
를 검증자에게 보낸 후 검증자는 해당 벡터들이 관계식을 만족하는지 확인하고 그 이후에 상태정보들에 대한 검증을 aAggMEA를 통해 검증하여 모든 검증을 통과하면 증명을 수락(Accept)한다.
도 4는 본 발명의 일 실시예에 따른 aAggMEA(Augmented Aggregation of Multi-Exponentiation Argument)를 설명하기 위한 도면이다.
MEA(Multi-Exponent Argument)는 하기 식을 만족하는 벡터
Figure 112021009378431-pat00116
에 대한 증명으로 증명자가 올바른
Figure 112021009378431-pat00117
를 사용했는지 검증하는 것을 목적으로 사용된다:
Figure 112021009378431-pat00118
Protocol 2를 진행하면서 증명자는 여러 쌍의 MEA 관계식을 보여야한다. 이때, 각자 증명을 하지 않고 aAggMEA 프로토콜을 이용하여 한번에 모아서 처리를 하게 된다.
aAggMEA는 복수의 MEA를 한번에 모아서 수행하는 프로토콜이다. aAggMEA의 시작은 검증자가 랜덤값
Figure 112021009378431-pat00119
를 증명자에게 보내는 것으로 시작되며(step 1), 증명자는 받은
Figure 112021009378431-pat00120
에 기초하여 m개의 MEA 인스탠스(instance)에
Figure 112021009378431-pat00121
값을 순차적으로 곱한 후(step 2), ProdMEA 프로토콜을 수행한다(step 3). 다시 말해, aAggMEA 프로토콜은 ProdMEA 프로토콜을 포함하는 프로토콜이다. aAggMEA가 보이고자 하는 관계식은 다음과 같다:
Figure 112021009378431-pat00122
도 5는 본 발명의 일 실시예에 따른 ProdMEA(Product of Multi-Exponentiation Argument)를 설명하기 위한 도면이다.
ProdMEA는 하기 식에 대한 지식 증명 프로토콜이다:
Figure 112021009378431-pat00123
MEA 관계식과 비교하면 각각의 MEA 인스탠스 (
Figure 112021009378431-pat00124
)가 만족해야 하는 관계식
Figure 112021009378431-pat00125
을 모두 곱한 형태가 ProdMEA의 관계식이다. 각각의 관계식을 곱한 형태를 검증해도 되는 이유는 이전에 aAggMEA 프로토콜 초반에서 검증자가 랜덤한
Figure 112021009378431-pat00126
값을 증명자에게 보내기 때문에 증명자는 기존의 비밀정보와는 다른 정보로 검증자를 속일 수 없다.
증명자는 내적 페어링 곱연산을 진행하여
Figure 112021009378431-pat00127
을 검증자에게 보내고(Step 1), 검증자가 랜덤값
Figure 112021009378431-pat00128
를 증명자에게 보낸 뒤(Step 2), 1/2 길이의 벡터로 업데이트 하여(Step 3) 벡터의 길이가 1이 될 때까지 진행한다(Step 4). 길이가 1이 되면(
Figure 112021009378431-pat00129
) 증명자는
Figure 112021009378431-pat00130
을 검증자에게 보낸 후 검증자는 해당 원소들을 이용해 페어링 연산을 하여 해당 증명을 검증한다. 여기서 ProdMEA의 증명 크기는 매 라운드마다 보내는
Figure 112021009378431-pat00131
로 인해 생기는
Figure 112021009378431-pat00132
개의
Figure 112021009378431-pat00133
원소와 마지막에 검증자가 보내는
Figure 112021009378431-pat00134
개의
Figure 112021009378431-pat00135
원소의 크기의 합이 된다. 즉,
Figure 112021009378431-pat00136
이라고 할 수 있다. aAggMEA에서 ProdMEA 이전에 증명자가 별도로 검증자에게 보내주는 메시지가 없으므로 aAggMEA의 증명 또한
Figure 112021009378431-pat00137
이 됨을 알 수 있다. Protocol 2에서 aAggMEA가 적용되는 상황을 고려하면
Figure 112021009378431-pat00138
의 복잡도에서 N에 해당하는 값은 2n(2n-1)이고
Figure 112021009378431-pat00139
은 라운드 횟수, 즉 Protocol 2의 벡터의 길이 N에 대해서
Figure 112021009378431-pat00140
이 되므로 Protocol 2에서 aAggMEA로 인해 생기는 증명의 크기는
Figure 112021009378431-pat00141
라고 할 수 있다. Protocol 1과 마찬가지로 GBP로 인해 생기는 증명의 크기는
Figure 112021009378431-pat00142
이므로 Protocol 2의 증명의 크기는
Figure 112021009378431-pat00143
가 된다. 여기서
Figure 112021009378431-pat00144
으로 설정하면 해당 값은
Figure 112021009378431-pat00145
이 되며 증명의 크기를
Figure 112021009378431-pat00146
에서
Figure 112021009378431-pat00147
로 유의미하게 줄였음을 확인할 수 있다. 이에 따라, 검증자의 연산량이 다소 증가하지만, 한 라운드에 여러개의 벡터를 업데이트 하는 반면, 각각의 벡터의 길이가 그만큼 작기 때문에 서로 상쇄되어 검증자의 연산량은 여전히
Figure 112021009378431-pat00148
임을 확인할 수 있다.
도 6은 본 발명의 일 실시예에 따른 내적 곱연산(Inner-Product) 및 외적-페어링 곱연산(Outer-Paring Product)을 설명하기 위한 도면이다.
Protocol 3을 설명하기 앞서 추가적인 표기법에 대해 설명이 필요하다. 먼저 길이가
Figure 112021009378431-pat00149
인 벡터에 대한 내적관계를 보이는 것이 목적이며
Figure 112021009378431-pat00150
의 벡터를
Figure 112021009378431-pat00151
의 원소, 즉 행렬 형태로 생각을 할 것이다. 따라서 두 벡터의 내적을 표현할 때
Figure 112021009378431-pat00152
에 대응되는 인덱스와
Figure 112021009378431-pat00153
에 대응되는 인덱스를 병기하여 표현할 것이다. 또한 외적-페어링 곱연산(Outer-Paring Product)을 정의하고, 페어링을 이용하여 길이가 m, n인 벡터
Figure 112021009378431-pat00154
를 가지고
Figure 112021009378431-pat00155
행렬을 만드는 방법이다. 텐서 곱연산(Tensor Product)과 유사하다고 할 수 있다.
도 7은 본 발명의 일 실시예에 따른 Protocol 3을 설명하기 위한 도면이다.
Protocol 3은 BP의 검증자의 연산량이 벡터의 길이
Figure 112021009378431-pat00156
에 비례한다는 단점을 보완하기 위한 프로토콜로 페어링 연산의 성질을 이용한다. Protocol 3에서 증명자가 보이고자 하는 관계식은 다음과 같다:
Figure 112021009378431-pat00157
여기서 증명자의 비밀정보(witness)는 길이가
Figure 112021009378431-pat00158
인 벡터(
Figure 112021009378431-pat00159
행렬)이다. 기존의 BP에서는 길이가
Figure 112021009378431-pat00160
Figure 112021009378431-pat00161
를 사용하고 매 라운드마다 검증자가
Figure 112021009378431-pat00162
에 비례하는 만큼 업데이트를 해줘야 하지만 Protocol 3은 외적 페어링 곱연산(Outer Paring Product)을 사용하여 해당 과정을 각 행벡터들을 하나의 원소로 생각하며 진행한 후
Figure 112021009378431-pat00163
마지막에 모아진 행벡터에 대해서 BP를 진행하는 방식으로 구성된다
Figure 112021009378431-pat00164
.
Protocol 3의 Step 1부터 Step 4까지의 과정은
Figure 112021009378431-pat00165
을 업데이트 하는 방법만 다르고 나머지 과정은 BP와 동일하다. 증명자가 외적 페어링 곱연산을 이용하여 길이가
Figure 112021009378431-pat00166
인 벡터
Figure 112021009378431-pat00167
Figure 112021009378431-pat00168
인 벡터
Figure 112021009378431-pat00169
를 가지고 행렬을 구성하여 본인의 비밀정보
Figure 112021009378431-pat00170
를 지수에 얹어
Figure 112021009378431-pat00171
에 담는 것이 핵심이다. 마지막에
Figure 112021009378431-pat00172
일 때 증명자와 검증자는
Figure 112021009378431-pat00173
벡터를 비밀정보로 하여 BP를 진행한다. 검증자의 연산량을 살펴보게 되면 첫 번째 과정에서
Figure 112021009378431-pat00174
만큼의
Figure 112021009378431-pat00175
의 지수연산이 필요하고 두 번째 과정에서
Figure 112021009378431-pat00176
만큼의
Figure 112021009378431-pat00177
지수 연산이 필요하다.
Figure 112021009378431-pat00178
으로 설정하면 Protocol 3의 검증자 연산량은
Figure 112021009378431-pat00179
만큼의 지수연산으로 귀결된다. Protocol 3에서 증명의 크기는
Figure 112021009378431-pat00180
이 되어 증명의 크기가 BP에 비해 유의미하게 커지지 않음을 확인할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 블록체인 및 딥러닝을 이용하는 영지식 증명에 있어서 프라이버시를 보호하면서, 범위증명 및 연산의 유효성을 포함하는 수치 데이터에 대한 연산 검증을 위한 산술회로에 대하여, 영지식 증명에서 미리 정해진 길이를 갖는 두 벡터의 내적관계를 증명할 때 증명 크기를 감소시키거나 또는 검증자의 연산 부담을 감소 시키기 위한 목적에 따라 BP(Bulletproofs)에 그룹간 페어링 연산을 결합하여 영지식 증명을 수행하고,
    범위증명, 연산의 유효성 및 두 벡터의 내적관계를 포함하는 복수의 증명을 미리 정해진 용량의 블록체인에서 활용할 경우 증명 크기를 감소시키기 위해 BP에 그룹간 페어링 연산을 결합한 Protocol 2를 사용하고,
    상기 Protocol 2는,
    반복횟수를 감소시키기 위해 길이가
    Figure 112023011595336-pat00242
    인 두 벡터의 내적 관계를 길이가
    Figure 112023011595336-pat00243
    인 두 벡터의 내적관계를 나타내는 문제로 환원하고,
    반복횟수가 줄어들 때 환원 과정에서 발생하는 증명 크기 증가 문제를 해결하기 위해 페어링 연산을 통해 증명 크기를 압축하여 전달하며,
    압축된 정보에 대한 유효성 검증을 위해 aAggMEA 프로토콜을 보조 프로토콜로 사용하는
    영지식 증명 및 검증 방법.
  2. 제1항에 있어서,
    상기 Protocol 2는,
    길이가
    Figure 112023011595336-pat00244
    인 벡터를
    Figure 112023011595336-pat00245
    개의 동일한 길이의 벡터로 분해하고, 증명자는 서로 다른
    Figure 112023011595336-pat00246
    에 대해서 그룹원소
    Figure 112023011595336-pat00247
    를 생성하고-여기서
    Figure 112023011595336-pat00248
    의 개수는 총
    Figure 112023011595336-pat00249
    개이며,
    Figure 112023011595336-pat00250
    들을 사전적 순서(lexiographic order)로 나열하여 길이가
    Figure 112023011595336-pat00251
    인 벡터
    Figure 112023011595336-pat00252
    를 생성함-, 미리 정해진 벡터
    Figure 112023011595336-pat00253
    과 내적 페어링 곱연산을 통해 그룹 원소
    Figure 112023011595336-pat00254
    를 생성하여 검증자에게 보내는 단계(Step 1) -여기서,
    Figure 112023011595336-pat00255
    는 오더(order)
    Figure 112023011595336-pat00256
    의 그룹을 나타내고,
    Figure 112023011595336-pat00257
    는 이진 선형적인(bilinear) 맵핑(mapping)
    Figure 112023011595336-pat00258
    을 가지는 집합들이며
    Figure 112023011595336-pat00259
    는 페어링 연산을 나타냄-
    를 포함하는 영지식 증명 및 검증 방법.
  3. 제2항에 있어서,
    검증자가 증명자에게 랜덤값
    Figure 112023011595336-pat00260
    를 보내는 단계(Step 2);
    랜덤값을 받은 증명자는 상기
    Figure 112023011595336-pat00261
    들을 모르는 검증자가 그룹원소
    Figure 112023011595336-pat00262
    를 업데이트하는데 필요한 그룹 원소
    Figure 112023011595336-pat00263
    를 계산한 후 보내는 단계(Step 3);
    Figure 112023011595336-pat00264
    길이 벡터의 내적 관계로 환원하기 위해
    Figure 112023011595336-pat00265
    길이의 벡터
    Figure 112023011595336-pat00266
    와 그룹원소
    Figure 112023011595336-pat00267
    를 업데이트 하고 증명자는 추가로
    Figure 112023011595336-pat00268
    를 업데이트 하는 단계(Step 4); 및
    증명자와 검증자는 각각 그룹 원소
    Figure 112023011595336-pat00269
    ,
    Figure 112023011595336-pat00270
    를 상태 정보에 업데이트 후, 업데이트 한 벡터
    Figure 112023011595336-pat00271
    들을 이용하여 다시 Protocol 2을 수행하고, 벡터의 길이가 1이 될 때까지 Protocol 2를 반복하는 단계(Step 5)
    를 포함하는 영지식 증명 및 검증 방법.
  4. 제3항에 있어서,
    벡터의 길이가 1이 되었을 때(
    Figure 112023011595336-pat00272
    ), 증명자가 가지고 있는 입력 벡터
    Figure 112023011595336-pat00273
    를 검증자에게 보낸 후 검증자는 증명자가 복수의 쌍의 MEA(Multi-Exponent Argument) 관계식을 만족하는지 여부 확인하고, 상태정보들에 대한 검증을 aAggMEA를 통해 검증하는
    영지식 증명 및 검증 방법.
  5. 제4항에 있어서,
    Protocol 2에서 증명자가 복수의 쌍의 MEA(Multi-Exponent Argument) 관계식을 만족해야 하고, 복수의 쌍의 MEA 관계식 각각을 증명을 하지 않고 한번에 검증하기 위해 aAggMEA 프로토콜을 이용하며,
    상기 aAggMEA 프로토콜은,
    검증자가 랜덤값
    Figure 112023011595336-pat00274
    를 증명자에게 보내는 단계(step 1);
    증명자가 랜덤값
    Figure 112023011595336-pat00275
    에 기초하여 m개의 MEA 인스탠스(instance)에
    Figure 112023011595336-pat00276
    값을 순차적으로 곱하는 단계(step 2); 및
    ProdMEA 프로토콜을 수행하는 단계(step 3)
    를 포함하는 영지식 증명 및 검증 방법.
  6. 제5항에 있어서,
    aAggMEA 프로토콜을 이용한 관계식 증명은 하기식으로 나타내는
    Figure 112023011595336-pat00277

    영지식 증명 및 검증 방법.
  7. 제5항에 있어서,
    ProdMEA 프로토콜은,
    증명자가 내적 페어링 곱연산 결과인
    Figure 112023011595336-pat00278
    을 검증자에게 보내는 단계(Step 1);
    검증자가 랜덤값
    Figure 112023011595336-pat00279
    를 증명자에게 보내는 단계(Step 2);
    1/2 길이의 벡터로 업데이트 하는 단계(Step 3); 및
    벡터의 길이가 1이 될 때까지 ProdMEA 프로토콜을 반목하는 단계(Step 4)
    를 포함하는 영지식 증명 및 검증 방법.
  8. 제7항에 있어서,
    ProdMEA 프로토콜을 이용한 관계식 증명은 하기식으로 나타내는
    Figure 112023011595336-pat00280

    영지식 증명 및 검증 방법.
  9. 블록체인 및 딥러닝을 이용하는 영지식 증명에 있어서 프라이버시를 보호하면서, 범위증명 및 연산의 유효성을 포함하는 수치 데이터에 대한 연산 검증을 위한 산술회로에 대하여, 영지식 증명에서 미리 정해진 길이를 갖는 두 벡터의 내적관계를 증명할 때 증명 크기를 감소시키거나 또는 검증자의 연산 부담을 감소 시키기 위한 목적에 따라 BP(Bulletproofs)에 그룹간 페어링 연산을 결합하여 영지식 증명을 수행하고,
    BP의 검증자의 연산량이 벡터의 길이에 비례한다는 문제점을 보완하여 검증자의 연산 부담을 감소 시키기 위해 페어링 연산을 결합한 Protocol 3을 사용하고,
    상기 Protocol 3는,
    증명자의 비밀정보(witness)의 길이가
    Figure 112023011595336-pat00281
    인 벡터(
    Figure 112023011595336-pat00282
    행렬의 행벡터)이고, 외적 페어링 곱연산(Outer Paring Product)을 사용하여 상기 행벡터를 하나의 원소로 하여 Protocol 3을 수행한 후 마지막에 모아진 행벡터에 대해서 BP를 수행하는
    영지식 증명 및 검증 방법.
  10. 제9항에 있어서,
    상기 Protocol 3는,
    길이가
    Figure 112023011595336-pat00283
    인 벡터에 대한 내적관계를 증명하기 위해
    Figure 112023011595336-pat00284
    의 벡터를
    Figure 112023011595336-pat00285
    의 원소로 정의하고, 두 벡터의 내적을 표현할 때
    Figure 112023011595336-pat00286
    에 대응되는 인덱스와
    Figure 112023011595336-pat00287
    에 대응되는 인덱스로 나타내며, 외적-페어링 곱연산(Outer-Paring Product)을 정의하고, 페어링을 통해 길이가 m, n인 벡터
    Figure 112023011595336-pat00288
    를 이용하여
    Figure 112023011595336-pat00289
    행렬을 생성하는-여기서,
    Figure 112023011595336-pat00290
    는 정수 모듈로
    Figure 112023011595336-pat00291
    의 유한체를 나타내고,
    Figure 112023011595336-pat00292
    Figure 112023011595336-pat00293
    에 대한
    Figure 112023011595336-pat00294
    행과
    Figure 112023011595336-pat00295
    열이 있는 행렬 집합을 나타냄-
    영지식 증명 및 검증 방법.
  11. 제10항에 있어서,
    BP를 수행한 후
    Figure 112023011595336-pat00296
    을 업데이트 하고,
    상기
    Figure 112023011595336-pat00297
    을 업데이트하는 방법은
    증명자가 외적 페어링 곱연산을 통해 길이가
    Figure 112023011595336-pat00298
    인 벡터
    Figure 112023011595336-pat00299
    와 길이가
    Figure 112023011595336-pat00300
    인 벡터
    Figure 112023011595336-pat00301
    를 이용하여 행렬을 생성하고, 본인의 비밀정보
    Figure 112023011595336-pat00302
    를 지수에 얹어
    Figure 112023011595336-pat00303
    에 포함시키고,
    Figure 112023011595336-pat00304
    일 때 증명자와 검증자는
    Figure 112023011595336-pat00305
    벡터를 비밀정보로 하여 BP를 반복하는
    영지식 증명 및 검증 방법.
  12. 제11항에 있어서,
    Protocol 3을 이용한 관계식 증명은 하기식으로 나타내는
    Figure 112023011595336-pat00306

    영지식 증명 및 검증 방법.
  13. 삭제
KR1020210010040A 2021-01-25 2021-01-25 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템 KR102553775B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210010040A KR102553775B1 (ko) 2021-01-25 2021-01-25 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210010040A KR102553775B1 (ko) 2021-01-25 2021-01-25 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템

Publications (2)

Publication Number Publication Date
KR20220107420A KR20220107420A (ko) 2022-08-02
KR102553775B1 true KR102553775B1 (ko) 2023-07-10

Family

ID=82845987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210010040A KR102553775B1 (ko) 2021-01-25 2021-01-25 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템

Country Status (1)

Country Link
KR (1) KR102553775B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240103462A (ko) 2022-12-27 2024-07-04 주식회사 크립토랩 페어링 연산에 의존하지 않으면서 효율적으로 수행 가능한 연산 결과를 증명 및 검증하는 영지식 증명 프로토콜 시스템
CN116049619B (zh) * 2022-12-28 2023-08-04 声龙(新加坡)私人有限公司 针对marlin零知识证明协议的矩阵计算装置、方法及设备
CN116349199A (zh) * 2023-01-04 2023-06-27 声龙(新加坡)私人有限公司 零知识证明验证方法、装置、终端及存储介质
KR102595354B1 (ko) 2023-02-07 2023-10-30 주식회사 지크립토 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Benedikt Bunz 외 5명. "Bulletproofs: Short Proofs for Confidential Transactions and More." 2018 IEEE symposium on security and privacy (SP). IEEE (2018.)*
Jiangxiao Zhang 외 4명. "Fair Multiple-bank E-cash in the Standard Model." Cryptology ePrint Archive (2014).*

Also Published As

Publication number Publication date
KR20220107420A (ko) 2022-08-02

Similar Documents

Publication Publication Date Title
KR102553775B1 (ko) 연산 결과를 증명 및 검증하는 페어링 기반 영지식 증명 프로토콜 시스템
US20210256165A1 (en) Protecting parallel multiplication operations from external monitoring attacks
EP3707623A1 (en) System for simplifying executable instructions for optimised verifiable computation
Pinto An introduction to the use of zk-SNARKs in blockchains
WO2016046949A1 (ja) 楕円曲線スカラー倍演算方法
JP2020514853A (ja) スクリプトサイズ及びオペコードリミットに対するセキュリティベース制限を維持しながらブロックチェーン上の複雑な機能を有効するためのコンピュータにより実現されるシステム及び方法
US20210344510A1 (en) Computer-implemented system and method including public key combination verification
CN113434886B (zh) 联合生成用于安全计算的数据元组的方法及装置
US10855443B2 (en) Protecting polynomial hash functions from external monitoring attacks
CN114187000B (zh) 用于分散私钥的签名方法、设备、存储介质及处理器
WO2024173599A2 (en) Systems and methods for state minimization and unlinkable transactions
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
US11681498B2 (en) Neural network arithmetic processing device and neural network arithmetic processing method
KR20210151179A (ko) 블록체인 트랜잭션에서 지식 증명을 위한 컴퓨터 구현된 방법 및 시스템
KR102372111B1 (ko) 영지식 증명 기반 블록체인 가상머신 검증 시스템
KR102410269B1 (ko) 연산 결과를 증명 및 검증하는 효율적인 영지식 증명 프로토콜 시스템
CN110505226B (zh) 基于伽罗华环上形式矩阵的传输信息加密方法及装置
KR20240103462A (ko) 페어링 연산에 의존하지 않으면서 효율적으로 수행 가능한 연산 결과를 증명 및 검증하는 영지식 증명 프로토콜 시스템
US20160170937A1 (en) Calculation device, calculation method, and program
KR102519490B1 (ko) 영지식 증명 기반 블록체인 가상머신의 검증방법
EP4280539A1 (en) Calculating method using zero-knowledge proof-friendly one-way function, and apparatus for implementing the same
KR102690974B1 (ko) 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법
US20240171401A1 (en) Method for calculating using an one-way function effienct in a zero knowledge proof, and apparatus implementing the same method
KR102398543B1 (ko) 영지식 증명 알고리즘이 적용된 검증 가능한 블록체인 가상머신
US11509460B2 (en) Apparatus and method for performing matrix multiplication operation being secure against side channel attack

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant