KR102704646B1 - Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same - Google Patents
Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same Download PDFInfo
- Publication number
- KR102704646B1 KR102704646B1 KR1020230068711A KR20230068711A KR102704646B1 KR 102704646 B1 KR102704646 B1 KR 102704646B1 KR 1020230068711 A KR1020230068711 A KR 1020230068711A KR 20230068711 A KR20230068711 A KR 20230068711A KR 102704646 B1 KR102704646 B1 KR 102704646B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- key
- feeder
- zero
- aggregator
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000012795 verification Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000011985 exploratory data analysis Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에 있어서, (a) 복수의 피더 단말들 각각이, 어그리게이터 단말에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 상기 어그리게이터 단말에 의해 생성된 공개키를 이용하여 각각의 상기 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 상기 어그리게이터 단말에 의해 생성된 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 상기 커밋먼트들에 대응되는 각각의 상기 오프체인 데이터들과 각각의 상기 암호화 데이터들에 대응되는 각각의 상기 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 상기 어그리게이터 단말로 전송하면, 상기 어그리게이터 단말이, 상기 복수의 피더 단말들 각각으로부터 전송된 상기 피더 데이터들을 데이터베이스에 저장하며, 기설정된 주기에 따라 특정 주기 동안 상기 데이터베이스에 저장된 제1 피더 데이터 내지 제k - 상기 k는 1 이상의 정수임 - 피더 데이터를 획득하는 단계; 및 (b) 상기 어그리게이터 단말이, (i) 상기 제1 피더 데이터 내지 상기 제k 피더 데이터 각각에서, 제i - 상기 i는 1 이상이며 k이하인 정수임 - 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 상기 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득하며, (ii) 기설정된 연산기를 통해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 온체인 데이터를 생성하고, 상기 커밋먼트키와 기설정된 연산기를 참조하여 생성한 어그리게이터 영지식증명키를 이용하여 상기 온체인 데이터가 상기 연산기에 의해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값을 생성하며, (iii) 상기 온체인 데이터와 상기 연산 증명값을 블록체인 네트워크에 등록하는 단계; 를 포함하는 방법에 관한 것이다.The present invention relates to a method for providing an oracle service of a blockchain network using a zero-knowledge proof, wherein (a) each of a plurality of feeder terminals transmits, to the aggregator terminal, each of the feeder data including data proof values proving that each of the off-chain data corresponding to each of the commitments and each of the off-chain data corresponding to each of the encrypted data are identical, using each of the commitments generated using a commitment key generated by an aggregator terminal and each of the off-chain data, each of the encrypted data encrypted using a public key generated by the aggregator terminal, and each of the feeder zero-knowledge proof keys generated by referencing the commitment key generated by the aggregator terminal and the public key, the aggregator terminal stores the feeder data transmitted from each of the plurality of feeder terminals in a database, and obtains first to kth feeder data, wherein k is an integer greater than or equal to 1, stored in the database during a specific period according to a preset period. Step; and (b) the aggregator terminal, (i) using the i-th feeder zero-knowledge proof key, where i is an integer greater than or equal to 1 and less than or equal to k, to verify the i-th data proof value in each of the first to k-th feeder data, and decrypting the i-th encrypted data using a secret key corresponding to the public key to generate i-th decrypted data, thereby obtaining the first to k-th decrypted data, (ii) generating on-chain data by calculating the first to k-th decrypted data through a preset calculator, and generating a calculation proof value proving that the on-chain data was generated by calculating the first to k-th decrypted data by the calculator using the aggregator zero-knowledge proof key generated by referencing the commitment key and the preset calculator, and (iii) registering the on-chain data and the calculation proof value in a blockchain network.
Description
본 발명은 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법 및 이를 이용한 어그리게이터 단말에 관한 것으로, 보다 상세하게는, 오프체인 데이터를 공개하지 않으며 온체인 데이터가 오프체인 데이터로부터 생성된 것임을 증명할 수 있도록 하여 온체인 데이터의 신뢰성을 향상시킬 수 있도록 한 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법 및 이를 이용한 어그리게이터 단말에 관한 것이다.The present invention relates to a method for providing an oracle service of a blockchain network using zero-knowledge proof and an aggregator terminal using the same, and more specifically, to a method for providing an oracle service of a blockchain network using zero-knowledge proof and an aggregator terminal using the same, which can improve the reliability of on-chain data by not disclosing off-chain data and proving that on-chain data was generated from off-chain data.
블록체인 네트워크 분야에서 오라클(oracle)이란 블록체인 네트워크 밖에 있는 데이터를 블록체인 네트워크 안으로 가져오거나, 블록체인 네트워크 내부의 데이터를 외부로 보내는 것을 말하며, 고립된 블록체인 생태계를 외부와 연결시켜주는 역할을 한다. 이때, 블록체인 네트워크 밖에 있는 데이터를 오프체인 데이터라고 하고, 오프체인 데이터가 블록체인 네트워크 안으로 들어온 것을 온체인 데이터라고 한다.In the blockchain network field, an oracle refers to bringing data outside the blockchain network into the blockchain network or sending data inside the blockchain network to the outside, and plays a role in connecting an isolated blockchain ecosystem to the outside. In this case, data outside the blockchain network is called off-chain data, and off-chain data that enters the blockchain network is called on-chain data.
블록체인 네트워크는 데이터를 포함하는 블록들을 체인으로 연결하여 블록체인을 생성함으로써 데이터의 위변조가 거의 불가능한 분산원장 기술이지만, 데이터가 블록체인 네트워크 안으로 들어와야 블록체인으로 관리할 수 있다. 데이터가 블록체인 네트워크 안으로 들어오지 않거나, 혹은 블록체인 네트워크 안으로 들어오는 과정에서 위변조가 발생한다면, 설령 그 데이터가 블록체인으로 관리된다고 할지라도 신뢰하기 어렵다.Blockchain network is a distributed ledger technology that makes data falsification almost impossible by creating a blockchain by linking blocks containing data into a chain, but data must enter the blockchain network to be managed by the blockchain. If data does not enter the blockchain network, or if falsification occurs in the process of entering the blockchain network, it is difficult to trust the data even if it is managed by the blockchain.
현실 세계에 있는 데이터가 블록체인 네트워크 안으로 들어오는 과정은 생각만큼 쉽지 않다. 오프체인 데이터가 온체인 데이터로 바뀌기 위해서는, 오프체인 데이터를 블록체인 네트워크 안에 넣어주는 중간자가 필요하다. 오라클 문제는 이러한 중간자를 어떻게 신뢰할 수 있을 것인가 하는 문제이다.The process of data in the real world entering the blockchain network is not as easy as it seems. In order for off-chain data to change into on-chain data, an intermediary is needed to put the off-chain data into the blockchain network. The oracle problem is the question of how to trust this intermediary.
이러한 오라클 문제를 해결하기 위하여 다양한 방법이 도입되고 있으며, 디지털 자산 소유자들의 투표(voting)를 통해 결정하거나, 다양한 데이터의 중앙값(median)을 선택하거나, 현실 세계와 블록체인 사이에서 신뢰할 수 있는 데이터를 제공해 주는 중간자(middleware)를 두는 방법 등 블록체인 오라클 문제를 해결하기 위한 다양한 방안이 제시되고 있다.To solve this oracle problem, various methods are being introduced, and various solutions are being proposed to solve the blockchain oracle problem, such as making decisions through voting by digital asset owners, selecting the median of various data, or having a middleware that provides reliable data between the real world and the blockchain.
현재 오라클 서비스를 제공하는 중간자의 예로, 오라클라이즈(Oraclize), 체인링크(Chainlink), 아이캐시(iCash) 등이 있다.Examples of intermediaries currently providing oracle services include Oraclize, Chainlink, and iCash.
일 예로, 체인링크는 중앙화 거래소의 토크 가격을 블록체인 네트워크의 스마트 컨트랙트에 저장하여 제공함으로써, 다른 블록체인 네트워크 서비스에서 토큰 가격을 사용할 수 있도록 오라클 서비스를 제공하여 많은 DeFi 서비스 제공자들이 등록된 토큰 가격을 이용하여 다양한 서비스를 제공할 수 있도록 하고 있는 등과 같이, 현재 오라클 서비스를 제공하는 업체들은 오프체인 데이터를 블록체인 네트워크의 스마트 컨트랙트에 저장하여 온체인 데이터로 제공함으로써, 온체인 데이터에 대한 신뢰성을 제공하고 있다.For example, Chainlink provides oracle services that allow other blockchain network services to use token prices by storing the token prices of centralized exchanges in smart contracts on the blockchain network, allowing many DeFi service providers to provide various services using the registered token prices. In the same way, companies currently providing oracle services provide reliability for on-chain data by storing off-chain data in smart contracts on the blockchain network and providing it as on-chain data.
하지만, 이러한 종래의 오라클 서비스에서는, 오라클 서비스를 제공하는 업체가 지정한 데이터 피더(feeder)로부터 오프체인 데이터를 제공받으며, 이에 대한 온체인 데이터를 공개하는 것으로 신뢰성을 제공하지만, 공개된 온체인 데이터가 실제 데이터 피더로부터 제공된 데이터가 맞는지, 최종적으로 가공된 온체인 데이터가 데이터 피더로부터 받은 실제 오프체인 데이터를 사용했는지에 대한 신뢰성을 담보하지는 못한다.However, in these conventional oracle services, the off-chain data is provided from a data feeder designated by the company providing the oracle service, and reliability is provided by disclosing the on-chain data for this, but reliability is not guaranteed as to whether the disclosed on-chain data is actually data provided by the data feeder, or whether the final processed on-chain data uses actual off-chain data received from the data feeder.
최종적으로 가공된 온체인 데이터가 데이터 피더로부터 받은 실제 오프체인 데이터를 사용했는지에 대한 신뢰성을 담보하기 위해서는, 데이터 피더로부터 받은 오프체인 데이터 자체를 공개하면 되지만, 오프체인 데이터가 공개될 경우에는 오프체인 데이터를 미리 이용한 프론트 러닝(front running) 공격이 가능하므로 오라클 서비스 자체에 대한 신뢰성을 담보하지 못하게 되는 문제점이 있다.In order to ensure the reliability of whether the final processed on-chain data uses the actual off-chain data received from the data feeder, the off-chain data itself received from the data feeder can be disclosed. However, if the off-chain data is disclosed, there is a problem in that the reliability of the oracle service itself cannot be guaranteed because a front running attack using the off-chain data in advance is possible.
따라서, 본 출원인은 피더로부터 제공된 오프체인 데이터를 보호하면서, 오라클 서비스를 제공하는 온체인 데이터가 오프체인 데이터를 사용하여 생성된 것임을 신뢰할 수 있도록 방안을 제안하고자 한다.Therefore, the present applicant proposes a method to protect the off-chain data provided from the feeder while ensuring that the on-chain data providing the oracle service can be trusted to have been generated using the off-chain data.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.The present invention aims to solve all of the problems described above.
또한, 본 발명은 피더로부터 제공된 오프체인 데이터를 보호하며, 오프체인 데이터의 신뢰성을 담보할 수 있도록 하는 것을 다른 목적으로 한다.In addition, another purpose of the present invention is to protect off-chain data provided from a feeder and to ensure the reliability of the off-chain data.
또한, 본 발명은 오프체인 데이터를 이용하여 생성한 온체인 데이터의 신뢰성을 담보할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another purpose of the present invention is to ensure the reliability of on-chain data generated using off-chain data.
또한, 본 발명은 오프체인 데이터를 보호하며 온체인 데이터가 오프체인 데이터로부터 생성된 것을 신뢰할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another purpose of the present invention is to protect off-chain data and to enable trustworthiness of on-chain data generated from off-chain data.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에 있어서, (a) 복수의 피더 단말들 각각이, 어그리게이터 단말에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 상기 어그리게이터 단말에 의해 생성된 공개키를 이용하여 각각의 상기 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 상기 어그리게이터 단말에 의해 생성된 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 상기 커밋먼트들에 대응되는 각각의 상기 오프체인 데이터들과 각각의 상기 암호화 데이터들에 대응되는 각각의 상기 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 상기 어그리게이터 단말로 전송하면, 상기 어그리게이터 단말이, 상기 복수의 피더 단말들 각각으로부터 전송된 상기 피더 데이터들을 데이터베이스에 저장하며, 기설정된 주기에 따라 특정 주기 동안 상기 데이터베이스에 저장된 제1 피더 데이터 내지 제k - 상기 k는 1 이상의 정수임 - 피더 데이터를 획득하는 단계; 및 (b) 상기 어그리게이터 단말이, (i) 상기 제1 피더 데이터 내지 상기 제k 피더 데이터 각각에서, 제i - 상기 i는 1 이상이며 k이하인 정수임 - 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 상기 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득하며, (ii) 기설정된 연산기를 통해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 온체인 데이터를 생성하고, 상기 커밋먼트키와 기설정된 연산기를 참조하여 생성한 어그리게이터 영지식증명키를 이용하여 상기 온체인 데이터가 상기 연산기에 의해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값을 생성하며, (iii) 상기 온체인 데이터와 상기 연산 증명값을 블록체인 네트워크에 등록하는 단계; 를 포함하는 방법이 제공된다.According to one embodiment of the present invention for achieving the above object, in a method for providing an oracle service of a blockchain network using a zero-knowledge proof, (a) each of a plurality of feeder terminals transmits, to the aggregator terminal, each of the feeder data including each of the data proof values proving that each of the off-chain data corresponding to each of the commitments and each of the off-chain data corresponding to each of the encrypted data are identical, using each of the commitments generated using the commitment key generated by the aggregator terminal and each of the off-chain data, each of the encrypted data encrypted using the public key generated by the aggregator terminal, and each of the feeder zero-knowledge proof keys generated by referencing the commitment key generated by the aggregator terminal and the public key, to the aggregator terminal, and the aggregator terminal stores the feeder data transmitted from each of the plurality of feeder terminals in a database, and stores first to k-th feeder data stored in the database for a specific period according to a preset period - k is 1 or more. A method is provided, comprising: (a) obtaining feeder data, wherein i is an integer; and (b) the aggregator terminal verifies an i-th data proof value using an i-th feeder zero-knowledge proof key, wherein i is an integer greater than or equal to 1 and less than or equal to k, of each of the first to k-th feeder data, and decrypts the i-th encrypted data using a secret key corresponding to the public key to generate i-th decrypted data, thereby obtaining the first to k-th decrypted data, (ii) generating on-chain data by calculating the first to k-th decrypted data using a preset calculator, and generating a calculation proof value proving that the on-chain data was generated by calculating the first to k-th decrypted data by the calculator using an aggregator zero-knowledge proof key generated by referencing the commitment key and the preset calculator, and (iii) registering the on-chain data and the calculation proof value on a blockchain network.
상기 실시예에서, (a0) 상기 어그리게이터 단말이, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 생성하며, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 단계; 를 더 포함할 수 있다.In the above embodiment, (a0) the step of the aggregator terminal generating the commitment key, the public key, and the aggregator zero-knowledge proof key, and registering the commitment key, the public key, and the aggregator zero-knowledge proof key in the blockchain network may be further included.
상기 실시예에서, 상기 (a) 단계에서, 상기 복수의 피더 단말들 중 어느 하나인 특정 피더 단말은 상기 블록체인 네트워크로부터 상기 커밋먼트키와 상기 공개키를 획득하여 특정 오프체인 데이터에 대한 특정 커밋먼트와 특정 암호화 데이터를 생성하고, 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 특정 피더 영지식증명키를 이용하여 특정 데이터 증명값을 생성하며, 상기 특정 커밋먼트, 상기 특정 암호화 데이터, 및 상기 특정 데이터 증명값를 포함하는 특정 피더 데이터를 상기 어그리게이터 단말로 전송할 수 있다.In the above embodiment, in the step (a), a specific feeder terminal among the plurality of feeder terminals may obtain the commitment key and the public key from the blockchain network to generate a specific commitment and specific encrypted data for specific off-chain data, generate a specific data proof value using a specific feeder zero-knowledge proof key generated by referencing the commitment key and the public key, and transmit specific feeder data including the specific commitment, the specific encrypted data, and the specific data proof value to the aggregator terminal.
상기 실시예에서, 상기 특정 피더 영지식증명키는, 상기 특정 피더 단말이 상기 블록체인 네트워크로부터 획득한 상기 커밋먼트키와 상기 공개키를 이용하여 생성한 것이며, 상기 특정 피더 단말에 의해 상기 블록체인 네트워크에 등록될 수 있다.In the above embodiment, the specific feeder zero-knowledge proof key is generated by the specific feeder terminal using the commitment key and the public key obtained from the blockchain network, and can be registered in the blockchain network by the specific feeder terminal.
상기 실시예에서, 상기 어그리게이터 단말은, 상기 연산기에 대한 키 발행을 위하여, 제1 키생성 모듈에 제1 보안 파리미터를 입력하여 상기 커밋먼트키를 생성하고, 제2 키생성 모듈에 제2 보안 파라미터를 입력하여 상기 비밀키와 상기 공개키를 생성하며, 제3 키생성 모듈에 상기 커밋먼트키와 상기 연산기를 입력하여 상기 어그리게이터 영지식증명키를 생성한 다음, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록할 수 있다.In the above embodiment, the aggregator terminal may input a first security parameter to a first key generation module to generate the commitment key for key issuance for the calculator, input a second security parameter to a second key generation module to generate the secret key and the public key, and input the commitment key and the calculator to a third key generation module to generate the aggregator zero-knowledge proof key, and then register the commitment key, the public key, and the aggregator zero-knowledge proof key to the blockchain network.
상기 실시예에서, 상기 (b) 단계에서, 상기 어그리게이터 단말은, 제i 피더 데이터를 전송한 제i 피더 단말이 상기 블록체인 네트워크에 등록한 제i 피더 영지식증명키를 상기 블록체인 네트워크로부터 획득하여 상기 제i 데이터 증명값을 검증할 수 있다.In the above embodiment, in the step (b), the aggregator terminal can obtain the i feeder zero-knowledge proof key registered in the blockchain network by the i feeder terminal that transmitted the i feeder data from the blockchain network and verify the i data proof value.
또한, 본 발명의 다른 실시예에 따르면, 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 어그리게이터 단말에 있어서, 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및 상기 메모리에 저장된 상기 인스트럭션들에 따라 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 동작을 수행하는 프로세서; 를 포함하며, 상기 프로세서는, (I) 복수의 피더 단말들 각각이, 어그리게이터 단말에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 상기 어그리게이터 단말에 의해 생성된 공개키를 이용하여 각각의 상기 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 상기 어그리게이터 단말에 의해 생성된 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 상기 커밋먼트들에 대응되는 각각의 상기 오프체인 데이터들과 각각의 상기 암호화 데이터들에 대응되는 각각의 상기 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 상기 어그리게이터 단말로 전송하면, 상기 복수의 피더 단말들 각각으로부터 전송된 상기 피더 데이터들을 데이터베이스에 저장하며, 기설정된 주기에 따라 특정 주기 동안 상기 데이터베이스에 저장된 제1 피더 데이터 내지 제k - 상기 k는 1 이상의 정수임 - 피더 데이터를 획득하는 프로세스, 및 (II) (i) 상기 제1 피더 데이터 피더 내지 상기 제k 피더 데이터 각각에서, 제i - 상기 i는 1 이상이며 k이하인 정수임 - 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 상기 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득하며, (ii) 기설정된 연산기를 통해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 온체인 데이터를 생성하고, 상기 커밋먼트키와 기설정된 연산기를 참조하여 생성한 어그리게이터 영지식증명키를 이용하여 상기 온체인 데이터가 상기 연산기에 의해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값을 생성하며, (iii) 상기 온체인 데이터와 상기 연산 증명값을 블록체인 네트워크에 등록하는 프로세스를 수행하는 어그리게이터 단말이 제공된다.In addition, according to another embodiment of the present invention, in an aggregator terminal providing an oracle service of a blockchain network using zero-knowledge proof, the aggregator terminal comprises: a memory storing instructions for providing an oracle service of a blockchain network using zero-knowledge proof; and a processor performing an operation for providing an oracle service of a blockchain network using zero-knowledge proof according to the instructions stored in the memory; , wherein the processor comprises: (I) a process for transmitting, to the aggregator terminal, each of the plurality of feeder terminals, each of the commitments generated using the commitment key generated by the aggregator terminal and each of the off-chain data, each of the encrypted data encrypted using the public key generated by the aggregator terminal, and each of the data proof values proving that the respective off-chain data corresponding to the respective commitments and the respective off-chain data corresponding to the respective encrypted data are identical, using each of the feeder zero-knowledge proof keys generated by referencing the commitment key generated by the aggregator terminal and the public key, thereby storing the feeder data transmitted from each of the plurality of feeder terminals in a database, and obtaining the first feeder data to the kth feeder data, wherein k is an integer greater than or equal to 1, stored in the database for a specific period according to a preset period, and (II) (i) a process for transmitting the first feeder data feeder to the kth feeder data, wherein the first feeder data feeder to the kth feeder data, wherein the k is an integer greater than or equal to 1, In each of the kth feeder data, an aggregator terminal is provided that verifies the proof value of the i-th data using the i-th -wherein i is an integer greater than or equal to 1 and less than or equal to k - feeder zero-knowledge proof key, decrypts the i-th encrypted data using a secret key corresponding to the public key to generate i-th decrypted data, thereby obtaining the first decrypted data to the kth decrypted data, (ii) generates on-chain data by calculating the first decrypted data to the k-th decrypted data using a preset calculator, and generates a calculation proof value proving that the on-chain data was generated by calculating the first decrypted data to the k-th decrypted data by the calculator using an aggregator zero-knowledge proof key generated by referencing the commitment key and the preset calculator, and (iii) registers the on-chain data and the calculation proof value to a blockchain network.
상기 실시예에서, 상기 프로세서는, 상기 (I) 프로세스 이전에, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 생성하며, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 프로세스를 더 수행할 수 있다.In the above embodiment, the processor may further perform a process of generating the commitment key, the public key, and the aggregator zero-knowledge proof key before the (I) process, and registering the commitment key, the public key, and the aggregator zero-knowledge proof key to the blockchain network.
상기 실시예에서, 상기 프로세서는, 상기 (I) 프로세스에서, 상기 복수의 피더 단말들 중 어느 하나인 특정 피더 단말로 하여금 상기 블록체인 네트워크로부터 상기 커밋먼트키와 상기 공개키를 획득하여 특정 오프체인 데이터에 대한 특정 커밋먼트와 특정 암호화 데이터를 생성하고, 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 특정 피더 영지식증명키를 이용하여 특정 데이터 증명값을 생성하며, 상기 특정 커밋먼트, 상기 특정 암호화 데이터, 및 상기 특정 데이터 증명값를 포함하는 특정 피더 데이터를 상기 어그레게이터 단말로 전송하도록 할 수 있다.In the above embodiment, the processor may cause a specific feeder terminal, which is one of the plurality of feeder terminals, in the (I) process, to obtain the commitment key and the public key from the blockchain network to generate a specific commitment and specific encrypted data for specific off-chain data, generate a specific data proof value using a specific feeder zero-knowledge proof key generated by referencing the commitment key and the public key, and transmit specific feeder data including the specific commitment, the specific encrypted data, and the specific data proof value to the aggregator terminal.
상기 실시예에서, 상기 특정 피더 영지식증명키는, 상기 특정 피더 단말이 상기 블록체인 네트워크로부터 획득한 상기 커밋먼트키와 상기 공개키를 이용하여 생성한 것이며, 상기 특정 피더 단말에 의해 상기 블록체인 네트워크에 등록되도록 할 수 있다.In the above embodiment, the specific feeder zero-knowledge proof key is generated by the specific feeder terminal using the commitment key and the public key obtained from the blockchain network, and can be registered in the blockchain network by the specific feeder terminal.
상기 실시예에서, 상기 프로세서는, 상기 연산기에 대한 키 발행을 위하여, 제1 키생성 모듈에 제1 보안 파리미터를 입력하여 상기 커밋먼트키를 생성하고, 제2 키생성 모듈에 제2 보안 파라미터를 입력하여 상기 비밀키와 상기 공개키를 생성하며, 제3 키생성 모듈에 상기 커밋먼트키와 상기 연산기를 입력하여 상기 어그리게이터 영지식증명키를 생성한 다음, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록할 수 있다.In the above embodiment, the processor may input a first security parameter to a first key generation module to generate the commitment key for key issuance for the calculator, input a second security parameter to a second key generation module to generate the secret key and the public key, input the commitment key and the calculator to a third key generation module to generate the aggregator zero-knowledge proof key, and then register the commitment key, the public key, and the aggregator zero-knowledge proof key to the blockchain network.
상기 실시예에서, 상기 프로세서는, 상기 (II) 프로세스에서, 제i 피더 데이터를 전송한 제i 피더 단말이 상기 블록체인 네트워크에 등록한 제i 피더 영지식증명키를 상기 블록체인 네트워크로부터 획득하여 상기 제i 데이터 증명값을 검증할 수 있다.In the above embodiment, the processor can verify the i data proof value by obtaining the i feeder zero-knowledge proof key registered in the blockchain network by the i feeder terminal that transmitted the i feeder data in the (II) process from the blockchain network.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition, a computer-readable recording medium for recording a computer program for executing the method of the present invention is further provided.
본 발명에 의하면, 다음과 같은 효과가 있다.According to the present invention, the following effects are achieved.
본 발명은 피더로부터 제공된 오프체인 데이터를 보호하며, 오프체인 데이터의 신뢰성을 담보할 수 있게 된다.The present invention protects off-chain data provided from a feeder and ensures the reliability of the off-chain data.
또한, 본 발명은 오프체인 데이터를 이용하여 생성한 온체인 데이터의 신뢰성을 담보할 수 있게 된다.In addition, the present invention can ensure the reliability of on-chain data generated using off-chain data.
또한, 본 발명은 오프체인 데이터를 보호하며 온체인 데이터가 오프체인 데이터로부터 생성된 것을 신뢰할 수 있게 된다.Additionally, the present invention protects off-chain data and makes it possible to trust that on-chain data was generated from off-chain data.
도 1은 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 시스템을 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 키 생성 및 등록하는 과정을 개략적으로 도시한 것이고,
도 3은 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 피더 단말이 오프체인 데이터를 전송하는 과정을 개략적으로 도시한 것이고,
도 4는 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 어그리게이터 단말이 피더 단말에 의해 제공된 오프체인 데이터를 온체인 데이터로 제공하는 과정을 개략적으로 도시한 것이다.Figure 1 schematically illustrates a system that provides an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention.
FIG. 2 schematically illustrates the process of generating and registering a key in a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention.
FIG. 3 schematically illustrates a process in which a feeder terminal transmits off-chain data in a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention.
FIG. 4 schematically illustrates a process in which an aggregator terminal provides off-chain data provided by a feeder terminal as on-chain data in a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The detailed description of the present invention set forth below refers to the accompanying drawings which illustrate specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention, while different from one another, are not necessarily mutually exclusive. For example, specific shapes, structures, and features described herein may be implemented in other embodiments without departing from the spirit and scope of the invention. It should also be understood that the positions or arrangements of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. Accordingly, the following detailed description is not intended to be limiting, and the scope of the present invention is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if appropriately described. Like reference numerals in the drawings designate the same or similar functionality throughout the several aspects.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, in order to enable a person having ordinary skill in the art to easily carry out the present invention, preferred embodiments of the present invention will be described in detail with reference to the attached drawings.
도 1은 본 발명의 일 실시예에 따라 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 시스템을 개략적으로 도시한 것으로, 도 1을 참조하면, 시스템(1000)은 복수의 피더 단말들(100_1, 100_2, …, 100_n), 어그리게이터 단말(200), 및 블록체인 네트워크(300)를 포함할 수 있다.FIG. 1 schematically illustrates a system that provides an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention. Referring to FIG. 1, a system (1000) may include a plurality of feeder terminals (100_1, 100_2, ..., 100_n), an aggregator terminal (200), and a blockchain network (300).
먼저, 복수의 피더 단말들(100_1, 100_2, …, 100_n) 각각은, 어그리게이터 단말(200)에 의해 생성된 커밋먼트키와 공개키를 이용하여 오프체인 데이터에 대한 커밋먼트와 암호화 데이터를 생성하고, 영지식증명을 위한 데이터 증명값을 생성하며, 커밋먼트, 암호화 데이터, 및 데이터 증명값을 포함하는 피더 데이터를 전송하는 주체로, IoT 장치, 데이터베이스, PC, 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, 정보 제공 서버, 자료수집 봇(bot), 인공 지능 등 현실 세계에서 생성되는 다양한 정보 또는 이들을 이용한 분석/통계 자료 등을 제공하여 주는 모든 장치를 포함할 수 있다. 이때, 오프체인 데이터는 투표 정보, 가격 정보, 결제 정보, 물류 정보, 뉴스 등의 각종 정보를 분석한 분석 정보, 통계 정보, 센싱 정보 등 현실 세계에서 생성되거나 이들을 이용하여 생성된 모든 정보를 포함할 수 있다. 또한, 복수의 피더 단말들(100_1, 100_2, …, 100_n) 각각은, 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리와, 메모리에 저장된 인스트럭션들에 따라 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 동작을 수행하는 프로세서를 포함할 수 있다.First, each of the plurality of feeder terminals (100_1, 100_2, ..., 100_n) uses the commitment key and public key generated by the aggregator terminal (200) to generate a commitment and encrypted data for the off-chain data, generate a data proof value for zero-knowledge proof, and transmit feeder data including the commitment, encrypted data, and data proof value, and may include all devices that provide various information generated in the real world, such as IoT devices, databases, PCs, mobile computers, PDAs/EDAs, cell phones, smartphones, tablets, information provision servers, data collection bots, artificial intelligence, etc., or analysis/statistical data using these. At this time, the off-chain data may include all information generated in the real world or generated using these, such as analysis information, statistical information, and sensing information analyzed from various types of information, such as voting information, price information, payment information, logistics information, and news. In addition, each of the plurality of feeder terminals (100_1, 100_2, ..., 100_n) may include a memory storing instructions for providing an oracle service of a blockchain network using zero-knowledge proof, and a processor performing an operation for providing an oracle service of a blockchain network using zero-knowledge proof according to the instructions stored in the memory.
구체적으로, 복수의 피더 단말들(100_1, 100_2, …, 100_n) 각각은, 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, each of the plurality of feeder terminals (100_1, 100_2, ..., 100_n) may achieve a desired system performance by typically utilizing a combination of a computing device (e.g., a device that may include a computer processor, memory, storage, input devices and output devices, and other components of a conventional computing device; an electronic communication device such as a router, a switch, and the like; an electronic information storage system such as a network attached storage (NAS) and a storage area network (SAN)) and computer software (i.e., instructions that cause the computing device to function in a particular manner).
이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit of such a computing device can send and receive requests and responses with other computing devices to which it is connected. As an example, such requests and responses may be made through the same TCP session, but are not limited thereto. For example, they may be sent and received as UDP datagrams.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.Additionally, the processor of the computing device may include hardware configurations such as a Micro Processing Unit (MPU) or a Central Processing Unit (CPU), cache memory, and data bus. Additionally, it may further include software configurations of an operating system and an application that performs a specific purpose.
다음으로, 어그리게이터 단말(200)은 복수의 피더 단말들(100_1, 100_2, …, 100_n)에 의해 전송된 암호화 데이터들을 복호화하고 연산하여 온체인 데이터를 생성하며, 온체인 데이터와 영지식 증명을 위한 연산 증명값을 블록체인 네트워크(300)에 등록함으로써 오라클 서비스를 제공하는 주체로, 서버, PC, 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿 등을 포함할 수 있으나, 이에 한정되지 않으며, 컴퓨팅 연산을 수행하는 모든 장치를 포함할 수 있다. 또한, 어그리게이터 단말(200)은 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리와, 메모리에 저장된 인스트럭션들에 따라 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 동작을 수행하는 프로세서를 포함할 수 있다.Next, the aggregator terminal (200) decrypts and operates encrypted data transmitted by a plurality of feeder terminals (100_1, 100_2, ..., 100_n) to generate on-chain data, and registers the on-chain data and the operation proof value for zero-knowledge proof in the blockchain network (300), thereby providing an oracle service. The aggregator terminal (200) may include, but is not limited to, a server, a PC, a mobile computer, a PDA/EDA, a mobile phone, a smartphone, a tablet, etc., and may include all devices that perform computing operations. In addition, the aggregator terminal (200) may include a memory in which instructions for providing an oracle service of a blockchain network using zero-knowledge proof are stored, and a processor that performs an operation for providing an oracle service of a blockchain network using zero-knowledge proof according to the instructions stored in the memory.
구체적으로, 어그리게이터 단말(200)은 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, the aggregator terminal (200) may typically use a combination of computing devices (e.g., devices that may include computer processors, memory, storage, input devices and output devices, and other components of conventional computing devices; electronic communication devices such as routers, switches, and the like; electronic information storage systems such as network attached storage (NAS) and storage area networks (SAN)) and computer software (i.e., instructions that cause the computing devices to function in a particular manner) to achieve desired system performance.
이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit of such a computing device can send and receive requests and responses with other computing devices to which it is connected. As an example, such requests and responses may be made through the same TCP session, but are not limited thereto. For example, they may be sent and received as UDP datagrams.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.Additionally, the processor of the computing device may include hardware configurations such as a Micro Processing Unit (MPU) or a Central Processing Unit (CPU), cache memory, and data bus. Additionally, it may further include software configurations of an operating system and an application that performs a specific purpose.
다음으로, 블록체인 네트워크(300)는 다수의 블록체인 노드들에 의해 구현되는 것으로, 데이터들에 대한 블록을 체인으로 연결한 블록체인을 분산원장에 기록하는 데이터 분산 처리를 수행하는 주체일 수 있다.Next, the blockchain network (300) is implemented by a number of blockchain nodes and may be an entity that performs data distribution processing by recording a blockchain that links blocks of data into a chain in a distributed ledger.
이와 같이 구성된 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 시스템을 통해, 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법을 설명하면 다음과 같다.A method for providing an oracle service of a blockchain network using zero-knowledge proof through a system providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention configured as described above is described as follows.
먼저, 도 2를 참조하여, 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 영지식증명에 이용하기 위한 키들을 생성하는 과정을 설명하면 다음과 같다.First, referring to FIG. 2, the process of generating keys for use in zero-knowledge proof in a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention is described as follows.
영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위하여, 어그리게이터 단말(200)은 커밋먼트키, 비밀키와 공개키, 어그리게이터 영지식 증명키를 생성(S11)할 수 있다.In order to provide an oracle service of a blockchain network using zero-knowledge proof, an aggregator terminal (200) can generate a commitment key, a private key, a public key, and an aggregator zero-knowledge proof key (S11).
즉, 어그리게이터 단말(200)은 제1 키생성 모듈에 제1 보안 파리미터를 입력하여 커밋먼트키를 생성하고, 제2 키생성 모듈에 제2 보안 파라미터를 입력하여 비밀키와 공개키를 생성하며, 제3 키생성 모듈에 커밋먼트키와 기설정된 연산기를 입력하여 어그리게이터 영지식증명키를 생성할 수 있다. 이때, 제1 보안 파라미터와 제2 보안 파라미터는 기설정된 연산기에 대한 키 생성을 위하여 생성된 보안 파라미터일 수 있으며, 제1 보안 파라미터와 제2 보안 파라미터는 서로 다른 보안 파라미터이거나 동일한 보안 파라미터일 수 있다.That is, the aggregator terminal (200) can generate a commitment key by inputting a first security parameter into a first key generation module, generate a secret key and a public key by inputting a second security parameter into a second key generation module, and generate an aggregator zero-knowledge proof key by inputting a commitment key and a preset calculator into a third key generation module. At this time, the first security parameter and the second security parameter may be security parameters generated for key generation for the preset calculator, and the first security parameter and the second security parameter may be different security parameters or may be the same security parameters.
일 예로, 제1 키 생성 모듈은 PVC(Pedersen Vector Commitment)의 키 생성 알고리즘일 수 있으며, 보안 파라미터(λ)를 다음과 같은 PVC 키생성 알고리즘에 입력하여 커밋먼트키(CK)를 출력하도록 할 수 있다.For example, the first key generation module may be a key generation algorithm of PVC (Pedersen Vector Commitment), and may input a security parameter (λ) into the PVC key generation algorithm to output a commitment key (CK).
PVC. Keygen(λ) -> (CK)PVC. Keygen(λ) -> (CK)
하지만, 본 발명에서의 제1 키 생성 모듈은 PVC에 한정되지 않으며, 영지식증명을 위한 다양한 커밋먼트 스킴(scheme)에서의 키 생성 모듈을 사용할 수 있다.However, the first key generation module in the present invention is not limited to PVC, and key generation modules in various commitment schemes for zero-knowledge proof can be used.
그리고, 제2 키 생성 모듈은 Elgamal encryption의 키 생성 알고리즘일 수 있으며, 보안 파라미터(λ)를 다음과 같은 Elgamal 키 생성 알고리즘에 입력하여 공개키(PK)와 비밀키(SK)를 출력하도록 할 수 있다.And, the second key generation module can be a key generation algorithm of Elgamal encryption, and can input a security parameter (λ) into the following Elgamal key generation algorithm to output a public key (PK) and a private key (SK).
Elgamal. Keygen(λ) -> (PK, SK)Elgamal. Keygen(λ) -> (PK, SK)
하지만, 본 발명에서의 제2 키 생성 모듈은 Elgamal encryption에 한정되지 않으며, 공개키와 비밀키의 비대칭 키를 이용하여 데이터를 암호화 및 복호화하는 다양한 암호화 알고리즘에서의 키 생성 모듈을 사용할 수 있다.However, the second key generation module in the present invention is not limited to Elgamal encryption, and can use a key generation module in various encryption algorithms that encrypt and decrypt data using an asymmetric key of a public key and a private key.
또한, 제3 키 생성 모듈은 CP-SNARK(simulation-extractable commit and prove succinct non-interactive argument of knowledge)의 키 생성 알고리즘일 수 있으며, 커밋먼트키(CK)와 연산기(R)을 다음과 같은 CP-SNARK 키 생성 알고리즘에 입력하여 어그리게이터 영지식증명키(CRSa)를 출력하도록 할 수 있다.In addition, the third key generation module can be a key generation algorithm of CP-SNARK (simulation-extractable commit and prove succinct non-interactive argument of knowledge), and a commitment key (CK) and a computation unit (R) can be input into the following CP-SNARK key generation algorithm to output an aggregator zero-knowledge proof key (CRSa).
CP-SNARK. Keygen(CK, R) -> CRSaCP-SNARK. Keygen(CK, R) -> CRSa
하지만, 본 발명에서의 제3 키 생성 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 키 생성 모듈을 사용할 수 있다.However, the third key generation module in the present invention is not limited to CP-SNARK, and can use a key generation module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it.
이때, 연산기는 오프체인 데이터를 가공하여 온체인 데이터를 생성하기 위한 연산기로, 오프체인 데이터를 온체인 데이터로 변환하기 위한 연산모듈 또는 연산 로직을 포함할 수 있다.At this time, the operator is an operator for processing off-chain data to generate on-chain data, and may include an operation module or operation logic for converting off-chain data into on-chain data.
예를 들면, 연산기는 오프체인 데이터들의 특성을 수치로 나타내는 대표값을 연산하는 것으로, 오프체인 데이터들의 평균, 중앙값, 최빈값, 범위, 사분위수범위, 분산, 표준편차 등을 연산하는 함수일 수 있다. 또한, 연산기는 지역별 제품의 판매 정보를 이용하여 지역별 제품의 제고 정보를 통계화하는 함수일 수도 있다. 또한, 연산기는 뉴스, 인터넷 사이트 등의 정보를 이용하여 특정 결과를 예측한 예측 정보를 생성하는 함수일 수도 있다. 하지만, 본 발명에서는 연산기는 이러한 함수에 한정되는 것은 아니며, 현실 세계의 정보를 가공하여 특정 유형의 정보를 생성하는 다양한 함수를 포함할 수 있다.For example, the calculator may be a function that calculates representative values that numerically represent the characteristics of off-chain data, such as the mean, median, mode, range, interquartile range, variance, and standard deviation of off-chain data. In addition, the calculator may be a function that uses sales information of products by region to statistically analyze inventory information of products by region. In addition, the calculator may be a function that generates prediction information that predicts a specific result using information such as news and Internet sites. However, in the present invention, the calculator is not limited to these functions, and may include various functions that process real-world information to generate a specific type of information.
이후, 어그리게이터 단말(200)은 생성된 커밋먼트키, 공개키, 및 어그리게이터 영지식증명키를 블록체인 네트워크(300)에 등록(S12)할 수 있다.Thereafter, the aggregator terminal (200) can register the generated commitment key, public key, and aggregator zero-knowledge proof key to the blockchain network (300) (S12).
이때, 어그리게이터 단말(200)은 커밋먼트키, 공개키, 및 어그리게이터 영지식증명키를 포함하는 트랜잭션을 블록체인 네트워크(300)로 브로드캐스팅하거나, 커밋먼트키, 공개키, 및 어그리게이터 영지식증명키 각각을 포함하는 트랜잭션들을 블록체인 네트워크(300)로 브로드캐스팅할 수 있으며, 그에 따라, 블록체인 네트워크(300)를 구성하는 블록체인 노드들의 분산합의에 의해 블록이 생성되어, 분산원장의 블록체인에 생성된 블록이 추가됨으로써 커밋먼트키, 공개키, 및 어그리게이터 영지식증명키가 블록체인 네트워크(300)에 등록될 수 있다.At this time, the aggregator terminal (200) can broadcast a transaction including a commitment key, a public key, and an aggregator zero-knowledge proof key to the blockchain network (300), or can broadcast transactions including each of the commitment key, the public key, and the aggregator zero-knowledge proof key to the blockchain network (300), and accordingly, a block is generated by a distributed consensus of blockchain nodes constituting the blockchain network (300), and the generated block is added to the blockchain of the distributed ledger, so that the commitment key, the public key, and the aggregator zero-knowledge proof key can be registered in the blockchain network (300).
한편, 복수의 피더 단말들(100_1, 100_2, ..., 100_n) 중 어느 하나인 특정 피더 단말(100_1)은 블록체인 네트워크(300)로부터 커밋먼트키와 공개키를 획득(S13)하고, 획득된 커밋먼트키와 공개키를 이용하여 특정 피더 영지식증명키를 생성(S14)할 수 있다. 이때, 특정 피더 단말(100_1)은 오프체인 데이터를 제공하도록 협의된 상태의 권한자일 수 있다. 또한, 특정 피더 단말(100_1)은 블록체인 네트워크(300)로부터 커밋먼트키와 공개키를 획득하였으나, 이와는 달리, 어그리게이터 단말(200)로부터 직접적으로 커밋먼트키와 공개키를 획득할 수도 있다.Meanwhile, a specific feeder terminal (100_1), which is one of a plurality of feeder terminals (100_1, 100_2, ..., 100_n), can obtain a commitment key and a public key from the blockchain network (300) (S13) and generate a specific feeder zero-knowledge proof key (S14) using the obtained commitment key and public key. At this time, the specific feeder terminal (100_1) may be an authorized party agreed to provide off-chain data. In addition, although the specific feeder terminal (100_1) obtains the commitment key and the public key from the blockchain network (300), it may also obtain the commitment key and the public key directly from the aggregator terminal (200).
이때, 특정 피더 단말(100_1)은 제3 키생성 모듈에 커밋먼트키와 공개키를 입력하여 특정 피더 영지식증명키를 생성할 수 있다.At this time, a specific feeder terminal (100_1) can generate a specific feeder zero-knowledge proof key by inputting a commitment key and a public key into the third key generation module.
일 예로, 제3 키 생성 모듈은 CP-SNARK(simulation-extractable commit and prove succinct non-interactive argument of knowledge)의 키 생성 알고리즘일 수 있으며, 커밋먼트키(CK)와 공개키(PK)를 다음과 같은 CP-SNARK 키 생성 알고리즘에 입력하여 특정 피더 영지식증명키(CRSf)를 출력하도록 할 수 있다.For example, the third key generation module can be a key generation algorithm of CP-SNARK (simulation-extractable commit and prove succinct non-interactive argument of knowledge), and can input a commitment key (CK) and a public key (PK) into the CP-SNARK key generation algorithm to output a specific feeder zero-knowledge proof key (CRSf).
CP-SNARK. Keygen(CK, PK) -> CRSfCP-SNARK. Keygen(CK, PK) -> CRSf
하지만, 본 발명에서의 제3 키 생성 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 키 생성 모듈을 사용할 수 있다.However, the third key generation module in the present invention is not limited to CP-SNARK, and can use a key generation module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it.
이후, 특정 피더 단말(100_1)은 어그리게이터 단말(200)에 의해 생성된 커밋먼트키(CK)와 공개키(PK)를 참조하여 생성한 특정 피더 영지식증명키를 블록체인 네트워크(300)에 등록(S15)할 수 있다.Thereafter, a specific feeder terminal (100_1) can register (S15) a specific feeder zero-knowledge proof key generated by referencing the commitment key (CK) and public key (PK) generated by the aggregator terminal (200) in the blockchain network (300).
이때, 특정 피더 단말(100_1)은 특정 피더 영지식증명키를 포함하는 트랜잭션을 블록체인 네트워크(300)로 브로드캐스팅할 수 있으며, 그에 따라, 블록체인 네트워크(300)를 구성하는 블록체인 노드들의 분산합의에 의해 블록이 생성되어, 분산원장의 블록체인에 생성된 블록이 추가됨으로써 특정 피더 영지식증명키가 블록체인 네트워크(300)에 등록될 수 있다.At this time, a specific feeder terminal (100_1) can broadcast a transaction including a specific feeder zero-knowledge proof key to the blockchain network (300), and accordingly, a block is generated by a distributed consensus of blockchain nodes constituting the blockchain network (300), and the generated block is added to the blockchain of the distributed ledger, thereby allowing the specific feeder zero-knowledge proof key to be registered in the blockchain network (300).
이를 통해, 블록체인 네트워크(300)에는 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 데 필요한 커밋먼트키, 공개키, 어그리게이터 영지식증명키, 및 복수의 피더 단말들 각각에 대한 각각의 피더 영지식증명키들이 등록될 수 있다.Through this, a commitment key, a public key, an aggregator zero-knowledge proof key, and feeder zero-knowledge proof keys for each of a plurality of feeder terminals required to provide an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention can be registered in the blockchain network (300).
다음으로, 도 3을 참조하여, 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 피더 단말이 오프체인 데이터를 전송하는 과정을 설명하면 다음과 같다.Next, referring to FIG. 3, the process of a feeder terminal transmitting off-chain data in a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention is described as follows.
도 2를 참조한 설명에 따라 커밋먼트키, 공개키, 어그리게이터 영지식증명키, 및 피더 영지식증명키들이 등록된 상태에서, 복수의 피더 단말들(100_1, 100_2, ..., 100_n) 각각은, 어그리게이터 단말(200)에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 어그리게이터 단말(200)에 의해 생성된 공개키를 이용하여 각각의 오프체인 데이터들을 암호화한 각각의 암호화 데이터들, 및 어그리게이터 단말(200)에 의해 생성된 커밋먼트키와 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 커밋먼트들에 대응되는 각각의 오프체인 데이터들과 각각의 암호화 데이터들에 대응되는 각각의 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 어그리게이터 단말(200)로 전송하여 줄 수 있다.According to the description with reference to FIG. 2, in a state where a commitment key, a public key, an aggregator zero-knowledge proof key, and a feeder zero-knowledge proof key are registered, each of a plurality of feeder terminals (100_1, 100_2, ..., 100_n) can transmit, to the aggregator terminal (200), each of the commitments generated using the commitment key generated by the aggregator terminal (200) and each of the off-chain data, each of the encrypted data encrypted using the public key generated by the aggregator terminal (200), and each of the feeder zero-knowledge proof keys generated with reference to the commitment key and the public key generated by the aggregator terminal (200), each of the feeder data including the respective data proof values proving that the respective off-chain data corresponding to the respective commitments and the respective off-chain data corresponding to the respective encrypted data are identical.
이를 복수의 피더 단말들(100_1, 100_2, ..., 100_n) 중 어느 하나인 특정 피터 단말(100_1)을 참조하여 설명하면 다음과 같다.This is explained with reference to a specific feeder terminal (100_1) among multiple feeder terminals (100_1, 100_2, ..., 100_n) as follows.
오프체인 데이터를 어그리게이터 단말로 제공하고자 하는 특정 피더 단말(100_1)은 어그리게이터 단말(200)이 생성하여 등록한 커밋먼트키와 공개키를 블록체인 네트워크(300)로부터 획득(S21)할 수 있다. 이때, 특정 피더 단말(100_1)은 블록체인 네트워크(300)로부터 커밋먼트키와 공개키를 획득하였으나, 이와는 달리, 커밋먼트키와 공개키를 어그리게이터 단말(200)로부터 획득하거나, 특정 피더 영지식증명키를 생성하기 위하여 블록체인 네트워크(300)로부터 획득하였던 커밋먼트키와 공개키를 그대로 사용할 수도 있다.A specific feeder terminal (100_1) that wants to provide off-chain data to an aggregator terminal can obtain (S21) a commitment key and a public key generated and registered by an aggregator terminal (200) from a blockchain network (300). At this time, the specific feeder terminal (100_1) obtains the commitment key and the public key from the blockchain network (300), but, alternatively, the commitment key and the public key may be obtained from the aggregator terminal (200), or the commitment key and the public key obtained from the blockchain network (300) may be used as they are to generate a specific feeder zero-knowledge proof key.
그리고, 특정 피더 단말(100_1)은 커밋먼트키와 공개키를 각각 사용하여 특정 오프체인 데이터에 대한 특정 커밋먼트와 특정 암호화 데이터를 생성(S22)할 수 있다.And, a specific feeder terminal (100_1) can generate a specific commitment and specific encrypted data for specific off-chain data (S22) using a commitment key and a public key, respectively.
구체적으로, 특정 피더 단말(100_1)은 커밋먼트 생성 모듈에 커밋먼트키와 특정 오프체인 데이터를 입력하여 특정 커밋먼트를 생성하도록 하고, 암호화 모듈에 공개키와 특정 오픈체인 데이터를 입력하여 특정 암호화 데이터를 생성하도록 할 수 있다.Specifically, a specific feeder terminal (100_1) can input a commitment key and specific off-chain data into a commitment generation module to generate a specific commitment, and can input a public key and specific open-chain data into an encryption module to generate specific encrypted data.
일 예로, 커밋먼트 생성 모듈은 PVC의 커밋먼트 생성 알고리즘일 수 있으며, 커밋먼트키(CK)와 특정 오프체인 데이터(M)를 다음과 같은 PVC 커밋먼트 생성 알고리즘에 입력하여 특정 커밋먼트(CM)를 출력하도록 할 수 있다.For example, the commitment generation module can be a PVC commitment generation algorithm, and can input a commitment key (CK) and specific off-chain data (M) into the PVC commitment generation algorithm to output a specific commitment (CM).
PVC. Commit(CK, M) -> (CM, O), O는 커밋먼트 오픈값임PVC. Commit(CK, M) -> (CM, O), O is the commitment open value
하지만, 본 발명에서의 커밋먼트 생성 모듈은 PVC에 한정되지 않으며, 영지식증명을 위한 다양한 커밋먼트 스킴에서의 커밋먼트 생성 모듈을 사용할 수 있다.However, the commitment generation module in the present invention is not limited to PVC, and a commitment generation module in various commitment schemes for zero-knowledge proof can be used.
그리고, 암호화 모듈은 Elgamal encryption의 암호화 알고리즘일 수 있으며, 공개키(PK)와 특정 오프체인 데이터(M)를 다음과 같은 Elgamal 암호화 알고리즘에 입력하여 특정 암호화 데이터(CT)를 출력하도록 할 수 있다.And, the encryption module can be an encryption algorithm of Elgamal encryption, and can input a public key (PK) and specific off-chain data (M) into the following Elgamal encryption algorithm to output specific encrypted data (CT).
Elgamal. Enc(PK, {M, O}) -> (CT, r), r은 암호문에 사용한 랜덤값임Elgamal. Enc(PK, {M, O}) -> (CT, r), where r is the random value used in the ciphertext.
하지만, 본 발명에서의 암호화 모듈은 Elgamal encryption에 한정되지 않으며, 공개키와 비밀키의 비대칭 키를 이용하여 데이터를 암호화 및 복호화하는 다양한 암호화 알고리즘에서의 암호화 모듈을 사용할 수 있다.However, the encryption module in the present invention is not limited to Elgamal encryption, and an encryption module in various encryption algorithms that encrypt and decrypt data using an asymmetric key of a public key and a private key can be used.
이후, 특정 피더 단말(100_1)은 특정 피더 영지식증명키를 이용하여 특정 데이터 증명값을 생성(S23)할 수 있다. 즉, 특정 피더 단말(100_1)은 특정 커밋먼트와 특정 암호화 데이터에 대응되는 특정 오프체인 데이터가 동일한 것임을 증명한 특정 데이터 증명값을 생성할 수 있다. 이를 좀 더 자세히 설명하면, 특정 피더 단말(100_1)은 특정 커밋먼트의 생성에 사용된 특정 오프체인 데이터와, 특정 암호화 데이터의 생성에 사용된 특정 오프체인 데이터가 동일한 것임을 증명하는 특정 데이터 증명값을 생성할 수 있다.Thereafter, a specific feeder terminal (100_1) can generate a specific data proof value using a specific feeder zero-knowledge proof key (S23). That is, a specific feeder terminal (100_1) can generate a specific data proof value proving that specific off-chain data corresponding to a specific commitment and specific encrypted data are the same. To explain this in more detail, a specific feeder terminal (100_1) can generate a specific data proof value proving that specific off-chain data used to generate a specific commitment and specific off-chain data used to generate specific encrypted data are the same.
이때, 특정 피더 단말(100_1)은 영지식 증명 모듈에 특정 피더 영지식증명키, 특정 커밋먼트, 특정 오프체인 데이터, 및 특정 암호화 데이터를 입력하여 특정 데이터 증명값을 생성하도록 할 수 있다.At this time, a specific feeder terminal (100_1) can input a specific feeder zero-knowledge proof key, a specific commitment, specific off-chain data, and specific encrypted data into the zero-knowledge proof module to generate a specific data proof value.
일 예로, 영지식 증명 모듈은 CP-SNARK의 영지식 증명 모듈일 수 있으며, 특정 피더 영지식증명키(CRSf), 특정 커밋먼트(CM), 특정 오프체인 데이터(M), 및 특정 암호화 데이터(CT)를 다음과 같은 CP-SNARK 영지식 증명 모듈에 입력하여 특정 데이터 증명값(π1)을 출력하도록 할 수 있다.For example, the zero-knowledge proof module can be a zero-knowledge proof module of CP-SNARK, and a specific feeder zero-knowledge proof key (CRSf), a specific commitment (CM), specific off-chain data (M), and specific encrypted data (CT) can be input into the CP-SNARK zero-knowledge proof module to output a specific data proof value (π1).
CP-SNARK. Prove(CRSf, {CM, M, O}, {CT, M, r}) -> π1CP-SNARK. Prove(CRSf, {CM, M, O}, {CT, M, r}) -> π1
하지만, 본 발명에서의 영지식 증명 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 영지식 증명 모듈을 사용할 수 있다.However, the zero-knowledge proof module in the present invention is not limited to CP-SNARK, and a zero-knowledge proof module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it can be used.
그리고, 특정 피더 단말(100_1)은 특정 커밋먼트, 특정 암호화 데이터, 및 특정 데이터 증명값을 포함하는 특정 피더 데이터를 어그리게이터 단말(200)로 전송(S24)할 수 있다.And, a specific feeder terminal (100_1) can transmit specific feeder data including a specific commitment, specific encrypted data, and specific data authentication value to an aggregator terminal (200) (S24).
이를 통해, 피더 단말들(100_1, 100_2, ..., 100_n) 각각은, 각각의 오프체인 데이터들을 공개하지 않으며, 엄호화 데이터들 각각이 각각의 오프체인 데이터들로부터 생성된 것임을 신뢰할 수 있도록 할 수 있다.Through this, each of the feeder terminals (100_1, 100_2, ..., 100_n) can ensure that each of the off-chain data is not disclosed and that each of the encrypted data is generated from each of the off-chain data.
그러면, 어그리게이터 단말(200)은 특정 피더 단말(100_1)로부터 전송된 특정 피더 데이터, 즉, 특정 커밋먼트, 특정 암호화 데이터, 및 특정 데이터 증명값을 포함하는 특정 피더 데이터를 데이터베이스에 저장할 수 있다.Then, the aggregator terminal (200) can store specific feeder data transmitted from a specific feeder terminal (100_1), i.e., specific feeder data including a specific commitment, specific encrypted data, and specific data authentication value, in a database.
이때, 데이터베이스는 어그리게이터 단말(200)에 대응되는 데이터 저장소, IPFS(InterPlanetary File System) 등과 같은 공개된 분산 파일 시스템, 또는 블록체인 네트워크(300)로 구현될 수 있으나, 본 발명은 이에 한정되지 않으며, TEE(Trusted Execution Environment)를 제공하는 다양한 저장소로 구현될 수 있다.At this time, the database may be implemented as a data storage corresponding to the aggregator terminal (200), a public distributed file system such as IPFS (InterPlanetary File System), or a blockchain network (300), but the present invention is not limited thereto, and may be implemented as various storages providing a TEE (Trusted Execution Environment).
한편, 상기에서는, 특정 피더 단말(100_1)이 특정 피더 데이터를 어그리게이터 단말(200)로 전송하여 어그리게이터 단말(200)이 특정 피더 데이터를 데이터베이스에 저장하였으나, 이와는 달리, 특정 피더 단말(100_1)이 특정 피더 데이터를 데이터베이스에 저장하고 어그리게이터 단말(200)이 데이터베이스에 저장된 특정 피더 데이터를 이용하도록 하거나, 특정 피더 담말(100_1)이 특정 피더 데이터를 블록체인 네트워크(300)에 등록하고 어그리게이트 단말(200)이 블록체인 네트워크(300)에 등록된 특정 피더 데이터를 이용하도록 할 수 있다. 일 예로, 특정 피더 단말(100_1)이 특정 피더 데이터를 블록체인 네트워크(300)에 등록하는 경우, 특정 피더 단말(100_1)은 특정 커밋먼트, 특정 암호화 데이터, 및 특정 데이터 증명값을 포함하는 특정 피더 데이터인 트랜잭션을 블록체인 네트워크(300)로 브로드캐스팅할 수 있으며, 그에 따라, 블록체인 네트워크(300)를 구성하는 블록체인 노드들의 분산합의에 의해 블록이 생성되어, 분산원장의 블록체인에 생성된 블록이 추가됨으로써 특정 커밋먼트, 특정 암호화 데이터, 및 특정 데이터 증명값이 블록체인 네트워크(300)에 등록될 수 있다.Meanwhile, in the above, a specific feeder terminal (100_1) transmits specific feeder data to an aggregator terminal (200) and the aggregator terminal (200) stores the specific feeder data in a database. However, in contrast, a specific feeder terminal (100_1) may store specific feeder data in a database and the aggregator terminal (200) may use specific feeder data stored in the database, or a specific feeder terminal (100_1) may register specific feeder data in a blockchain network (300) and the aggregator terminal (200) may use specific feeder data registered in the blockchain network (300). For example, when a specific feeder terminal (100_1) registers specific feeder data to a blockchain network (300), the specific feeder terminal (100_1) can broadcast a transaction, which is specific feeder data including a specific commitment, specific encrypted data, and specific data proof value, to the blockchain network (300), and accordingly, a block is generated by a distributed consensus of blockchain nodes constituting the blockchain network (300), and the generated block is added to the blockchain of the distributed ledger, so that the specific commitment, specific encrypted data, and specific data proof value can be registered in the blockchain network (300).
다음으로, 도 4를 참조하여, 본 발명의 일 실시예에 따른 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법에서 어그리게이터 단말이 피더 단말이 등록한 오프체인 데이터를 온체인 데이터로 블록체인 네트워크로 등록하는 과정을 설명하면 다음과 같다.Next, referring to FIG. 4, a method for providing an oracle service of a blockchain network using zero-knowledge proof according to one embodiment of the present invention, in which an aggregator terminal registers off-chain data registered by a feeder terminal as on-chain data in a blockchain network, will be described as follows.
도 3의 설명에 따라 복수의 피더 단말들(100_1, 100_2, ..., 100_n) 각각이 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 공개키를 이용하여 각각의 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 각각의 피더 영지식증명키들을 이용하여 각각의 커밋먼트들과 각각의 암호화 데이터들에 대응되는 각각의 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들이 데이터베이스에 저장된 상태에서, 어그리게이터 단말(200)은 기설정된 주기에 따라 특정 주기 동안 데이터베이스에 저장된 제1 피더 데이터 내지 제k 피더 데이터를 획득할 수 있다. k는 1 이상의 정수일 수 있다.According to the description of FIG. 3, in a state where each of the plurality of feeder terminals (100_1, 100_2, ..., 100_n) generates each of the commitments using the commitment key and each of the off-chain data, each of the encrypted data that encrypts each of the off-chain data using the public key, and each of the feeder data that includes each of the data proof values that prove that the each of the commitments and the each of the encrypted data are identical using the respective feeder zero-knowledge proof keys, the aggregator terminal (200) can obtain the first to kth feeder data stored in the database for a specific period according to a preset period. k can be an integer greater than or equal to 1.
그리고, 어그리게이터 단말(200)은 제1 피더 데이터 내지 제k 피더 데이터 각각, 즉, 제i 피더 데이터에서, 제i 커밋먼트, 제i 암호화 데이터, 및 제i 데이터 증명값을 획득(S31)할 수 있다. i는 1 이상이며 k 이하인 정수일 수 있다.And, the aggregator terminal (200) can obtain the i-th commitment, the i-th encrypted data, and the i-th data proof value from each of the first to k-th feeder data, i.e., the i-th feeder data (S31). i can be an integer greater than or equal to 1 and less than or equal to k.
이후, 어그리게이터 단말(200)은 제i 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성하는 과정을 1 이상이며 k 이하의 정수인 i를 대상으로 수행함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득(S32)할 수 있다. 다만, 도 4 에서는 설명의 편의상 “i"라고만 언급하여 설명하였으나, 이는 1 내지 k 각각에 대해 설명한 것으로 이해되어야 할 것이다.Thereafter, the aggregator terminal (200) verifies the i-th data proof value using the i-th feeder zero-knowledge proof key, decrypts the i-th encrypted data using the secret key corresponding to the public key, and generates the i-th decrypted data, thereby performing the process for i being an integer greater than or equal to 1 and less than or equal to k, thereby obtaining the first decrypted data to the k-th decrypted data (S32). However, in FIG. 4, for the sake of convenience of explanation, only “i” is mentioned, but it should be understood that this is explained for each of 1 to k.
즉, 제1 피더 데이터 내지 제k 피더 데이터 각각에 대응되는 제1 피더 영지식증명키 내지 제k 피더 영지식증명키를 제i 피더 영지식증명키라고 일컬을 때, 어그리게이터 단말(200)은 제i 피더 영지식증명키를 블록체인 네트워크(300)로부터 획득하고, 영지식 검증 모듈에 제i 피더 영지식증명키, 제i 암호화 데이터, 제i 커밋먼트, 및 제i 데이터 증명값을 입력하여 제i 데이터 증명값을 검증하도록 할 수 있다.That is, when the first feeder zero-knowledge proof key to the kth feeder zero-knowledge proof key corresponding to the first feeder data to the kth feeder data, respectively, are referred to as the i-th feeder zero-knowledge proof key, the aggregator terminal (200) may obtain the i-th feeder zero-knowledge proof key from the blockchain network (300) and input the i-th feeder zero-knowledge proof key, the i-th encrypted data, the i-th commitment, and the i-th data proof value into the zero-knowledge verification module to verify the i-th data proof value.
일 예로, 영지식 검증 모듈은 CP-SNARK의 영지식 검증 모듈일 수 있으며, 제i 피더 영지식증명키(CRSf_i), 제i 암호화 데이터(CT_i), 제i 커밋먼트CM_i), 및 제i 데이터 증명값(π1_i)을 다음과 같은 CP-SNARK 영지식 검증 모듈에 입력하여 데이터 검증값(0/1)을 출력하도록 할 수 있다. 이때, 데이터 검증값이 1이면 데이터 증명값이 참인 것으로 판단하며, 데이터 검증값이 0이면 데이터 증명값이 거짓인 것으로 판단할 수 있다.For example, the zero-knowledge verification module can be a zero-knowledge verification module of CP-SNARK, and the i-th feeder zero-knowledge proof key (CRSf_i), the i-th encrypted data (CT_i), the i-th commitment CM_i), and the i-th data proof value (π1_i) can be input into the following CP-SNARK zero-knowledge verification module to output a data proof value (0/1). At this time, if the data proof value is 1, the data proof value can be determined to be true, and if the data proof value is 0, the data proof value can be determined to be false.
CP-SNARK. Verify(CRSf_i, CT_i, CM_i, π1_i) -> 0/1CP-SNARK. Verify(CRSf_i, CT_i, CM_i, π1_i) -> 0/1
하지만, 본 발명에서의 영지식 검증 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 영지식 검증 모듈을 사용할 수 있다.However, the zero-knowledge verification module in the present invention is not limited to CP-SNARK, and a zero-knowledge verification module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it can be used.
그리고, 어그리게이터 단말(200)은 복호화 모듈에 참인 것으로 검증된 데이터 증명값에 대응되는 제i 암호화 데이터를 입력하여 제i 복호화 데이터를 생성하도록 할 수 있다.And, the aggregator terminal (200) can input the i-th encrypted data corresponding to the data proof value verified as true to the decryption module to generate the i-th decrypted data.
일 예로, 복호화 모듈은 Elgamal encryption의 복호화 알고리즘일 수 있으며, 비밀키(SK)와 제i 암호화 데이터(CT_i)를 다음과 같은 Elgamal 복호화 알고리즘에 입력하여 제i 복호화 데이터(m_i)를 출력하도록 할 수 있다.For example, the decryption module may be a decryption algorithm of Elgamal encryption, and may input a secret key (SK) and the i-th encrypted data (CT_i) into the following Elgamal decryption algorithm to output the i-th decrypted data (m_i).
Elgamal. Dec(SK, CT_i) -> (m_i, O_i)Elgamal. Dec(SK, CT_i) -> (m_i, O_i)
하지만, 본 발명에서의 복호화 모듈은 Elgamal encryption에 한정되지 않으며, 공개키와 비밀키의 비대칭 키를 이용하여 데이터를 암호화 및 복호화하는 다양한 암호화 알고리즘에서의 복호화 모듈을 사용할 수 있다.However, the decryption module in the present invention is not limited to Elgamal encryption, and can use a decryption module in various encryption algorithms that encrypt and decrypt data using an asymmetric key of a public key and a private key.
이후, 어그리게이터 단말(200)은 기설정된 연산기를 통해 제i 복호화 데이터, 즉, 제1 복호화 데이터 내지 제k 복호화 데이터를 연산하여 온체인 데이터를 생성(S33)할 수 있다.Thereafter, the aggregator terminal (200) can generate on-chain data (S33) by calculating the i-th decrypted data, i.e., the first decrypted data to the k-th decrypted data, through a preset calculator.
이때, 어그리게이터 단말(200)은 기설정된 연산기에 제i 복호화 데이터(m_i)를 입력하여 다음과 같은 연산 알고리즘(R)에 의해 제i 복호화 데이터(m_i)를 이용하여 기설정된 연산을 수행한 온체인 데이터(OUT)를 출력하도록 할 수 있다.At this time, the aggregator terminal (200) can input the i-th decrypted data (m_i) into a preset calculation unit and perform a preset calculation using the i-th decrypted data (m_i) by the following calculation algorithm (R) to output the on-chain data (OUT).
R({m_i}) -> OUT, W, W는 연산에 사용된 비밀값(witness)임R({m_i}) -> OUT, W, W is the secret value (witness) used in the operation
그리고, 어그리게이터 단말(200)은 어그리게이터 영지식증명키를 이용하여 온체인 데이터가 기설정된 연산기에 의해 제1 복호화 데이터 내지 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값(S34)을 생성할 수 있다.In addition, the aggregator terminal (200) can generate an operation proof value (S34) proving that the on-chain data was generated by calculating the first decrypted data to the kth decrypted data by a preset calculation unit using the aggregator zero-knowledge proof key.
이때, 어그리게이터 단말(200)은 영지식 증명 모듈에 어그리게이터 영지식증명키, 제i 커밋먼트, 제i 복호화 데이터, 및 온체인 데이터를 입력하여 연산 증명값을 생성하도록 할 수 있다.At this time, the aggregator terminal (200) can input the aggregator zero-knowledge proof key, the i-th commitment, the i-th decryption data, and the on-chain data into the zero-knowledge proof module to generate an operational proof value.
일 예로, 영지식 증명 모듈은 CP-SNARK의 영지식 증명 모듈일 수 있으며, 어그리게이터 영지식증명키(CRSa), 제i 커밋먼트(CM_i), 제i 복호화 데이터(M_i), 및 온체인 데이터(OUT)를 다음과 같은 CP-SNARK 영지식 증명 모듈에 입력하여 연산 증명값(π2)을 출력하도록 할 수 있다.For example, the zero-knowledge proof module can be a zero-knowledge proof module of CP-SNARK, and the aggregator zero-knowledge proof key (CRSa), the i-th commitment (CM_i), the i-th decrypted data (M_i), and the on-chain data (OUT) can be input into the following CP-SNARK zero-knowledge proof module to output the computational proof value (π2).
CP-SNARK. Prove(CRSa, {CM_i, M_i, O_i}, OUT:W) -> π2CP-SNARK. Prove(CRSa, {CM_i, M_i, O_i}, OUT:W) -> π2
하지만, 본 발명에서의 영지식 증명 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 영지식 증명 모듈을 사용할 수 있다.However, the zero-knowledge proof module in the present invention is not limited to CP-SNARK, and a zero-knowledge proof module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it can be used.
그리고, 어그리게이터 단말(200)은 온체인 데이터와 연산 증명값을 블록체인 네트워크(300)에 등록(S35)하여 줄 수 있다.Additionally, the aggregator terminal (200) can register (S35) on-chain data and computational proof values to the blockchain network (300).
이때, 어그리게이터 단말(200)은 온체인 데이터와 연산 증명값을 포함하는 트랜잭션을 블록체인 네트워크(300)로 브로드캐스팅할 수 있으며, 그에 따라, 블록체인 네트워크(300)를 구성하는 블록체인 노드들의 분산합의에 의해 블록이 생성되어, 분산원장의 블록체인에 생성된 블록이 추가됨으로써 온체인 데이터와 연산 증명값이 블록체인 네트워크(300)에 등록될 수 있다.At this time, the aggregator terminal (200) can broadcast a transaction including on-chain data and an operation proof value to the blockchain network (300), and accordingly, a block is generated by a distributed consensus of blockchain nodes constituting the blockchain network (300), and the generated block is added to the blockchain of the distributed ledger, so that the on-chain data and the operation proof value can be registered in the blockchain network (300).
이를 통해, 어그리게이터 단말(200)은 오프체인 데이터를 공개하지 않고도 온체인 데이터가 오프체인 데이터로부터 생성된 것을 신뢰할 수 있도록 할 수 있다.Through this, the aggregator terminal (200) can ensure that on-chain data is trustworthy as being generated from off-chain data without disclosing the off-chain data.
이와 같은 방법에 의해 블록체인 네트워크(400)에 등록된 온체인 데이터는 사용자들이 신뢰하고 사용할 수 있으며, 필요에 따라, 온체인 데이터가 오프체인 데이터로부터 생성된 것임을 확인하기 위하여 연산 증명값을 검증하며, 온체인 데이터를 생성하기 위하여 사용된 암호화 데이터가 오프체인 데이터에 대응되는 지를 확인하기 위하여 데이터 증명값들을 검증할 수 있다.By this method, on-chain data registered in the blockchain network (400) can be trusted and used by users, and, if necessary, the computational proof value can be verified to confirm that the on-chain data was generated from the off-chain data, and the data proof values can be verified to confirm that the encrypted data used to generate the on-chain data corresponds to the off-chain data.
이때, 사용자는 데이터 증명값들과 연산 증명값을 검증하기 위하여, 블록체인 네트워크(300)로부터 어그리게이터 영지식증명키(CRSa), 제i 피더 영지식증명키(CRSf_i), 온체인 데이터(OUT), 및 연산 증명값(π2)을 획득하며, 어그리게이터 단말(200)로부터 제i 암호화 데이터(CT_i), 제i 커밋먼트(CM_i), 제i 데이터 증명값(π1_i)을 획득할 수 있다.At this time, in order to verify data proof values and computation proof values, the user can obtain an aggregator zero-knowledge proof key (CRSa), an i-th feeder zero-knowledge proof key (CRSf_i), on-chain data (OUT), and an computation proof value (π2) from the blockchain network (300), and obtain an i-th encrypted data (CT_i), an i-th commitment (CM_i), and an i-th data proof value (π1_i) from the aggregator terminal (200).
그리고, 사용자는 영지식 검증 모듈에 제i 피더 영지식증명키(CRSf_i), 제i 암호화 데이터(CT_i), 제i 커밋먼트(CM_i), 및 제i 데이터 증명값(π1_i)을 입력하여 제i 데이터 증명값을 검증하도록 할 수 있다.And, the user can input the i feeder zero-knowledge proof key (CRSf_i), the i encrypted data (CT_i), the i commitment (CM_i), and the i data proof value (π1_i) into the zero-knowledge verification module to verify the i data proof value.
일 예로, 영지식 검증 모듈은 CP-SNARK의 영지식 검증 모듈일 수 있으며, 제i 피더 영지식증명키(CRSf_i), 제i 암호화 데이터(CT_i), 제i 커밋먼트(CM_i), 및 제i 데이터 증명값(π1_i)을 다음과 같은 CP-SNARK 영지식 검증 모듈에 입력하여 데이터 검증값(0/1)을 출력하도록 할 수 있다. 이때, 데이터 검증값이 1이면 데이터 증명값이 참인 것으로 판단하며, 데이터 검증값이 0이면 데이터 증명값이 거짓인 것으로 판단할 수 있다.For example, the zero-knowledge verification module can be a zero-knowledge verification module of CP-SNARK, and the i-th feeder zero-knowledge proof key (CRSf_i), the i-th encrypted data (CT_i), the i-th commitment (CM_i), and the i-th data proof value (π1_i) can be input into the CP-SNARK zero-knowledge verification module to output a data proof value (0/1). At this time, if the data proof value is 1, the data proof value can be determined to be true, and if the data proof value is 0, the data proof value can be determined to be false.
CP-SNARK. Verify(CRSf_i, CT_i, CM_i, π1_i) -> 0/1CP-SNARK. Verify(CRSf_i, CT_i, CM_i, π1_i) -> 0/1
하지만, 본 발명에서의 영지식 검증 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 영지식 검증 모듈을 사용할 수 있다.However, the zero-knowledge verification module in the present invention is not limited to CP-SNARK, and a zero-knowledge verification module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it can be used.
또한, 사용자는 영지식 검증 모듈에 어그리게이터 영지식증명키, 온체인 데이터, 제i 커밋먼트, 및 연산 증명값을 입력하여 연산 증명값을 검증하도록 할 수 있다.Additionally, the user can input the aggregator zero-knowledge proof key, on-chain data, the j-commitment, and the computational proof value into the zero-knowledge verification module to verify the computational proof value.
일 예로, 영지식 검증 모듈은 CP-SNARK의 영지식 검증 모듈일 수 있으며, 어그리게이터 영지식증명키(CRSa), 온체인 데이터(OUT), 제i 커밋먼트(CM_i), 및 연산 증명값(π2)을 다음과 같은 CP-SNARK 영지식 검증 모듈에 입력하여 연산 검증값(0/1)을 출력하도록 할 수 있다. 이때, 연산 검증값이 1이면 연산 증명값이 참인 것으로 판단하며, 연산 검증값이 0이면 연산 증명값이 거짓인 것으로 판단할 수 있다.For example, the zero-knowledge verification module can be a zero-knowledge verification module of CP-SNARK, and the aggregator zero-knowledge proof key (CRSa), on-chain data (OUT), the i commitment (CM_i), and the computational proof value (π2) can be input into the CP-SNARK zero-knowledge verification module to output the computational proof value (0/1). At this time, if the computational proof value is 1, the computational proof value can be determined to be true, and if the computational proof value is 0, the computational proof value can be determined to be false.
CP-SNARK. Verify(CRSa, OUT, {CM_i}, π2) 0/1CP-SNARK. Verify(CRSa, OUT, {CM_i}, π2) 0/1
하지만, 본 발명에서의 영지식 검증 모듈은 CP-SNARK에 한정되지 않으며, 영지식증명을 위한 증명값을 생성하고 이를 검증할 수 있도록 하는 다양한 영지식증명 알고리즘에서의 영지식 검증 모듈을 사용할 수 있다.However, the zero-knowledge verification module in the present invention is not limited to CP-SNARK, and a zero-knowledge verification module in various zero-knowledge proof algorithms that can generate a proof value for zero-knowledge proof and verify it can be used.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the embodiments according to the present invention described above may be implemented in the form of program commands that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, etc., alone or in combination. The program commands recorded on the computer-readable recording medium may be those specially designed and configured for the present invention or may be those known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program commands such as ROMs, RAMs, flash memories, etc. Examples of the program commands include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc. The hardware devices may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.Although the present invention has been described above with specific details such as specific components and limited examples and drawings, these have been provided only to help a more general understanding of the present invention, and the present invention is not limited to the above examples, and those with common knowledge in the technical field to which the present invention belongs can make various modifications and variations from this description.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the idea of the present invention should not be limited to the embodiments described above, and not only the claims described below but also all modifications equivalent to or equivalent to the claims are included in the scope of the idea of the present invention.
100_n: 피더 단말,
200: 어그리게이터 단말,
300: 블록체인 네트워크100_n: feeder terminal,
200: Aggregator terminal,
300: Blockchain Network
Claims (12)
(a) 복수의 피더 단말들 각각이, 어그리게이터 단말에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 상기 어그리게이터 단말에 의해 생성된 공개키를 이용하여 각각의 상기 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 상기 어그리게이터 단말에 의해 생성된 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 상기 커밋먼트들에 대응되는 각각의 상기 오프체인 데이터들과 각각의 상기 암호화 데이터들에 대응되는 각각의 상기 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 상기 어그리게이터 단말로 전송하면, 상기 어그리게이터 단말이, 상기 복수의 피더 단말들 각각으로부터 전송된 상기 피더 데이터들을 데이터베이스에 저장하며, 기설정된 주기에 따라 특정 주기 동안 상기 데이터베이스에 저장된 제1 피더 데이터 내지 제k - 상기 k는 1 이상의 정수임 - 피더 데이터를 획득하는 단계; 및
(b) 상기 어그리게이터 단말이, (i) 상기 제1 피더 데이터 내지 상기 제k 피더 데이터 각각에서, 제i - 상기 i는 1 이상이며 k이하인 정수임 - 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 상기 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득하며, (ii) 기설정된 연산기를 통해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 온체인 데이터를 생성하고, 상기 커밋먼트키와 기설정된 연산기를 참조하여 생성한 어그리게이터 영지식증명키를 이용하여 상기 온체인 데이터가 상기 연산기에 의해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값을 생성하며, (iii) 상기 온체인 데이터와 상기 연산 증명값을 블록체인 네트워크에 등록하는 단계;
를 포함하는 방법.A method for providing an oracle service for a blockchain network using zero-knowledge proof,
(a) a step for transmitting, to the aggregator terminal, each of the plurality of feeder terminals, each of the commitments generated using the commitment key generated by the aggregator terminal and each of the off-chain data, each of the encrypted data encrypted using the public key generated by the aggregator terminal, and each of the feeder zero-knowledge proof keys generated by referencing the commitment key generated by the aggregator terminal and the public key, each of the feeder data including the respective data proof values proving that the respective off-chain data corresponding to the respective commitments and the respective off-chain data corresponding to the respective encrypted data are identical, the aggregator terminal storing the feeder data transmitted from each of the plurality of feeder terminals in a database, and obtaining the first feeder data to the kth feeder data, wherein k is an integer greater than or equal to 1, stored in the database for a specific period according to a preset period; and
(b) the aggregator terminal, (i) using the i-th feeder zero-knowledge proof key, where i is an integer greater than or equal to 1 and less than or equal to k, to verify the i-th data proof value in each of the first to k-th feeder data, and decrypting the i-th encrypted data using a secret key corresponding to the public key to generate i-th decrypted data, thereby obtaining the first to k-th decrypted data, (ii) generating on-chain data by calculating the first to k-th decrypted data through a preset calculator, and generating a calculation proof value proving that the on-chain data was generated by calculating the first to k-th decrypted data by the calculator using the aggregator zero-knowledge proof key generated by referencing the commitment key and the preset calculator, and (iii) registering the on-chain data and the calculation proof value in a blockchain network;
A method including:
(a0) 상기 어그리게이터 단말이, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 생성하며, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 단계;
를 더 포함하는 방법.In the first paragraph,
(a0) a step of the aggregator terminal generating the commitment key, the public key, and the aggregator zero-knowledge proof key, and registering the commitment key, the public key, and the aggregator zero-knowledge proof key in the blockchain network;
How to include more.
상기 (a) 단계에서, 상기 복수의 피더 단말들 중 어느 하나인 특정 피더 단말은 상기 블록체인 네트워크로부터 상기 커밋먼트키와 상기 공개키를 획득하여 특정 오프체인 데이터에 대한 특정 커밋먼트와 특정 암호화 데이터를 생성하고, 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 특정 피더 영지식증명키를 이용하여 특정 데이터 증명값을 생성하며, 상기 특정 커밋먼트, 상기 특정 암호화 데이터, 및 상기 특정 데이터 증명값를 포함하는 특정 피더 데이터를 상기 어그리게이터 단말로 전송하는 방법.In the second paragraph,
In the step (a), a specific feeder terminal among the plurality of feeder terminals obtains the commitment key and the public key from the blockchain network to generate a specific commitment and specific encrypted data for specific off-chain data, and generates a specific data proof value using a specific feeder zero-knowledge proof key generated by referencing the commitment key and the public key, and transmits specific feeder data including the specific commitment, the specific encrypted data, and the specific data proof value to the aggregator terminal.
상기 특정 피더 영지식증명키는, 상기 특정 피더 단말이 상기 블록체인 네트워크로부터 획득한 상기 커밋먼트키와 상기 공개키를 이용하여 생성한 것이며, 상기 특정 피더 단말에 의해 상기 블록체인 네트워크에 등록되는 방법.In the third paragraph,
The above specific feeder zero-knowledge proof key is generated by using the commitment key and the public key obtained by the specific feeder terminal from the blockchain network, and is registered in the blockchain network by the specific feeder terminal.
상기 어그리게이터 단말은, 상기 연산기에 대한 키 발행을 위하여, 제1 키생성 모듈에 제1 보안 파리미터를 입력하여 상기 커밋먼트키를 생성하고, 제2 키생성 모듈에 제2 보안 파라미터를 입력하여 상기 비밀키와 상기 공개키를 생성하며, 제3 키생성 모듈에 상기 커밋먼트키와 상기 연산기를 입력하여 상기 어그리게이터 영지식증명키를 생성한 다음, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 방법.In the second paragraph,
The above aggregator terminal, in order to issue a key for the calculator, inputs a first security parameter into a first key generation module to generate the commitment key, inputs a second security parameter into a second key generation module to generate the secret key and the public key, inputs the commitment key and the calculator into a third key generation module to generate the aggregator zero-knowledge proof key, and then registers the commitment key, the public key, and the aggregator zero-knowledge proof key in the blockchain network.
상기 (b) 단계에서,
상기 어그리게이터 단말은, 제i 피더 데이터를 전송한 제i 피더 단말이 상기 블록체인 네트워크에 등록한 제i 피더 영지식증명키를 상기 블록체인 네트워크로부터 획득하여 상기 제i 데이터 증명값을 검증하는 방법.In the first paragraph,
In step (b) above,
The above aggregator terminal verifies the i data proof value by obtaining the i feeder zero-knowledge proof key registered in the blockchain network by the i feeder terminal that transmitted the i feeder data from the blockchain network.
영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및
상기 메모리에 저장된 상기 인스트럭션들에 따라 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하기 위한 동작을 수행하는 프로세서;
를 포함하며,
상기 프로세서는, (I) 복수의 피더 단말들 각각이, 어그리게이터 단말에 의해 생성된 커밋먼트키와 각각의 오프체인 데이터들을 이용하여 생성한 각각의 커밋먼트들, 상기 어그리게이터 단말에 의해 생성된 공개키를 이용하여 각각의 상기 오프체인 데이터를 암호화한 각각의 암호화 데이터들, 및 상기 어그리게이터 단말에 의해 생성된 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 각각의 피더 영지식증명키들을 이용하여, 각각의 상기 커밋먼트들에 대응되는 각각의 상기 오프체인 데이터들과 각각의 상기 암호화 데이터들에 대응되는 각각의 상기 오프체인 데이터들이 동일한 것임을 증명한 각각의 데이터 증명값들을 포함하는 각각의 피더 데이터들을 상기 어그리게이터 단말로 전송하면, 상기 복수의 피더 단말들 각각으로부터 전송된 상기 피더 데이터들을 데이터베이스에 저장하며, 기설정된 주기에 따라 특정 주기 동안 상기 데이터베이스에 저장된 제1 피더 데이터 내지 제k - 상기 k는 1 이상의 정수임 - 피더 데이터를 획득하는 프로세스, 및 (II) (i) 상기 제1 피더 데이터 내지 상기 제k 피더 데이터 각각에서, 제i - 상기 i는 1 이상이며 k이하인 정수임 - 피더 영지식증명키를 이용하여 제i 데이터 증명값을 검증하고, 상기 공개키에 대응되는 비밀키를 이용하여 제i 암호화 데이터를 복호화하여 제i 복호화 데이터를 생성함으로써 제1 복호화 데이터 내지 제k 복호화 데이터를 획득하며, (ii) 기설정된 연산기를 통해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 온체인 데이터를 생성하고, 상기 커밋먼트키와 기설정된 연산기를 참조하여 생성한 어그리게이터 영지식증명키를 이용하여 상기 온체인 데이터가 상기 연산기에 의해 상기 제1 복호화 데이터 내지 상기 제k 복호화 데이터를 연산하여 생성된 것임을 증명한 연산 증명값을 생성하며, (iii) 상기 온체인 데이터와 상기 연산 증명값을 블록체인 네트워크에 등록하는 프로세스를 수행하는 어그리게이터 단말.In an aggregator terminal that provides an oracle service for a blockchain network using zero-knowledge proof,
Memory storing instructions for providing an oracle service for a blockchain network using zero-knowledge proof; and
A processor that performs operations for providing an oracle service of a blockchain network using zero-knowledge proof according to the instructions stored in the memory;
Including,
The processor, (I) transmits to the aggregator terminal, each of the plurality of feeder terminals, each of the commitments generated using the commitment key generated by the aggregator terminal and each of the off-chain data, each of the encrypted data encrypted using the public key generated by the aggregator terminal, and each of the feeder zero-knowledge proof keys generated by referencing the commitment key generated by the aggregator terminal and the public key, each of the feeder data including the respective data proof values proving that the respective off-chain data corresponding to the respective commitments and the respective off-chain data corresponding to the respective encrypted data are identical, the feeder data transmitted from each of the plurality of feeder terminals is stored in a database, and the first feeder data to the kth feeder data, wherein k is an integer greater than or equal to 1, stored in the database for a specific period according to a preset period, and (II) (i) the first feeder data to the kth feeder data In each, the i-th - wherein i is an integer greater than or equal to 1 and less than or equal to k - verifies the i-th data proof value using a feeder zero-knowledge proof key, decrypts the i-th encrypted data using a secret key corresponding to the public key to generate i-th decrypted data, thereby obtaining the first decrypted data to the k-th decrypted data, (ii) generates on-chain data by calculating the first decrypted data to the k-th decrypted data through a preset calculator, and generates a calculation proof value proving that the on-chain data was generated by calculating the first decrypted data to the k-th decrypted data by the calculator using an aggregator zero-knowledge proof key generated by referencing the commitment key and the preset calculator, and (iii) performs a process of registering the on-chain data and the calculation proof value to a blockchain network.
상기 프로세서는, 상기 (I) 프로세스 이전에, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 생성하며, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 프로세스를 더 수행하는 어그리게이터 단말.In Article 7,
The above processor is an aggregator terminal that, prior to the (I) process, generates the commitment key, the public key, and the aggregator zero-knowledge proof key, and further performs a process of registering the commitment key, the public key, and the aggregator zero-knowledge proof key to the blockchain network.
상기 프로세서는, 상기 (I) 프로세스에서, 상기 복수의 피더 단말들 중 어느 하나인 특정 피더 단말로 하여금 상기 블록체인 네트워크로부터 상기 커밋먼트키와 상기 공개키를 획득하여 특정 오프체인 데이터에 대한 특정 커밋먼트와 특정 암호화 데이터를 생성하고, 상기 커밋먼트키와 상기 공개키를 참조하여 생성한 특정 피더 영지식증명키를 이용하여 특정 데이터 증명값을 생성하며, 상기 특정 커밋먼트, 상기 특정 암호화 데이터, 및 상기 특정 데이터 증명값를 포함하는 특정 피더 데이터를 상기 어그리게이터 단말로 전송하도록 하는 어그리게이터 단말.In Article 8,
The processor, in the process (I), causes a specific feeder terminal, which is one of the plurality of feeder terminals, to obtain the commitment key and the public key from the blockchain network to generate a specific commitment and specific encrypted data for specific off-chain data, and to generate a specific data proof value using a specific feeder zero-knowledge proof key generated by referencing the commitment key and the public key, and to transmit specific feeder data including the specific commitment, the specific encrypted data, and the specific data proof value to the aggregator terminal.
상기 특정 피더 영지식증명키는, 상기 특정 피더 단말이 상기 블록체인 네트워크로부터 획득한 상기 커밋먼트키와 상기 공개키를 이용하여 생성한 것이며, 상기 특정 피더 단말에 의해 상기 블록체인 네트워크에 등록되도록 하는 어그리게이터 단말.In Article 9,
The above specific feeder zero-knowledge proof key is generated by using the commitment key and the public key obtained by the above specific feeder terminal from the above blockchain network, and is an aggregator terminal that causes the above specific feeder terminal to be registered in the above blockchain network.
상기 프로세서는, 상기 연산기에 대한 키 발행을 위하여, 제1 키생성 모듈에 제1 보안 파리미터를 입력하여 상기 커밋먼트키를 생성하고, 제2 키생성 모듈에 제2 보안 파라미터를 입력하여 상기 비밀키와 상기 공개키를 생성하며, 제3 키생성 모듈에 상기 커밋먼트키와 상기 연산기를 입력하여 상기 어그리게이터 영지식증명키를 생성한 다음, 상기 커밋먼트키, 상기 공개키, 및 상기 어그리게이터 영지식증명키를 상기 블록체인 네트워크에 등록하는 어그리게이터 단말.In Article 8,
The processor, for issuing a key for the calculator, inputs a first security parameter into a first key generation module to generate the commitment key, inputs a second security parameter into a second key generation module to generate the secret key and the public key, inputs the commitment key and the calculator into a third key generation module to generate the aggregator zero-knowledge proof key, and then registers the commitment key, the public key, and the aggregator zero-knowledge proof key in the blockchain network.
상기 프로세서는, 상기 (II) 프로세스에서, 제i 피더 데이터를 전송한 제i 피더 단말이 상기 블록체인 네트워크에 등록한 제i 피더 영지식증명키를 상기 블록체인 네트워크로부터 획득하여 상기 제i 데이터 증명값을 검증하는 어그리게이터 단말.In Article 7,
The above processor is an aggregator terminal that verifies the i data proof value by obtaining the i feeder zero-knowledge proof key registered in the blockchain network by the i feeder terminal that transmitted the i feeder data in the above (II) process.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230068711A KR102704646B1 (en) | 2023-05-26 | 2023-05-26 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
| KR1020240000704A KR20240170381A (en) | 2023-05-26 | 2024-01-03 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230068711A KR102704646B1 (en) | 2023-05-26 | 2023-05-26 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020240000704A Division KR20240170381A (en) | 2023-05-26 | 2024-01-03 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR102704646B1 true KR102704646B1 (en) | 2024-09-11 |
Family
ID=92757348
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230068711A Active KR102704646B1 (en) | 2023-05-26 | 2023-05-26 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
| KR1020240000704A Pending KR20240170381A (en) | 2023-05-26 | 2024-01-03 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020240000704A Pending KR20240170381A (en) | 2023-05-26 | 2024-01-03 | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same |
Country Status (1)
| Country | Link |
|---|---|
| KR (2) | KR102704646B1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
| KR20220083931A (en) * | 2020-12-11 | 2022-06-21 | 충남대학교산학협력단 | System and method for creating a zero-knowledge proof generation and verification smart contract for personal information protection on the blockchain |
-
2023
- 2023-05-26 KR KR1020230068711A patent/KR102704646B1/en active Active
-
2024
- 2024-01-03 KR KR1020240000704A patent/KR20240170381A/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
| WO2019109003A1 (en) * | 2017-11-30 | 2019-06-06 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
| US20220129884A1 (en) * | 2017-11-30 | 2022-04-28 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
| KR20220083931A (en) * | 2020-12-11 | 2022-06-21 | 충남대학교산학협력단 | System and method for creating a zero-knowledge proof generation and verification smart contract for personal information protection on the blockchain |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20240170381A (en) | 2024-12-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12273470B2 (en) | Data processing method and apparatus, intelligent device, and storage medium | |
| CN112380578A (en) | Edge computing framework based on block chain and trusted execution environment | |
| JP7539170B2 (en) | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal using the same | |
| US20200250655A1 (en) | Efficient, environmental and consumer friendly consensus method for cryptographic transactions | |
| CN112765642B (en) | Data processing method, data processing device, electronic device and medium | |
| CN115242553B (en) | Data exchange method and system supporting safe multi-party calculation | |
| CN116232639B (en) | Data transmission method, device, computer equipment and storage medium | |
| CN114095165B (en) | Key updating method, server device, client device and storage medium | |
| CN118921161A (en) | Data security gateway method and system based on edge privacy calculation | |
| Yadav et al. | Mobile cloud computing issues and solution framework | |
| WO2021098152A1 (en) | Blockchain-based data processing method, device, and computer apparatus | |
| CN110737905A (en) | Data authorization method, data authorization device and computer storage medium | |
| Reddy et al. | Quantum secured blockchain framework for enhancing post quantum data security | |
| CN119622796A (en) | A method for protecting user privacy of virtual power plants based on accurate desensitization of scenario-based data | |
| Yang et al. | A lightweight anonymous mobile shopping scheme based on DAA for trusted mobile platform | |
| CN116561820B (en) | Trusted data processing method and related device | |
| KR102704646B1 (en) | Method for providing oracle service of blockchain network using zero-knowledge proof and aggregator terminal for using same | |
| US20240380615A1 (en) | REAL-TIME IoT DATA SHARING SYSTEM SUPPORTING ATTRIBUTE-BASED ACCESS CONTROL AND METHOD THEREOF | |
| CN120031565A (en) | Data processing method, device, equipment and storage medium based on multiple signatures | |
| CN119096521A (en) | Systems and methods for facilitating secure authentication when performing blockchain operations using cryptography-based storage applications | |
| JP2022141962A (en) | Data inquiry and writing methods, devices, electronic devices, readable storage media and computer programs | |
| Liu et al. | Video data integrity verification method based on full homomorphic encryption in cloud system | |
| CN115361147A (en) | Device registration method and device, computer device and storage medium | |
| Mai | Secure privacy-preserving computing applications on cloud using homomorphic cryptography | |
| CN119728172B (en) | Encryption method, decryption method and system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20230526 |
|
| PA0201 | Request for examination |
Patent event code: PA02011R01I Patent event date: 20230526 Comment text: Patent Application |
|
| PA0302 | Request for accelerated examination |
Patent event date: 20230612 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination |
|
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230822 Patent event code: PE09021S01D |
|
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20231204 |
|
| PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20240103 Patent event code: PA01071R01D |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20240904 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20240905 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |