JP2021064891A - Consortium block chain system, computer, and transaction approval method - Google Patents

Consortium block chain system, computer, and transaction approval method Download PDF

Info

Publication number
JP2021064891A
JP2021064891A JP2019189064A JP2019189064A JP2021064891A JP 2021064891 A JP2021064891 A JP 2021064891A JP 2019189064 A JP2019189064 A JP 2019189064A JP 2019189064 A JP2019189064 A JP 2019189064A JP 2021064891 A JP2021064891 A JP 2021064891A
Authority
JP
Japan
Prior art keywords
zero
knowledge proof
key
transaction
computer
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.)
Granted
Application number
JP2019189064A
Other languages
Japanese (ja)
Other versions
JP7284064B2 (en
Inventor
健 長沼
Takeshi Naganuma
健 長沼
雄介 正村
Yusuke Shomura
雄介 正村
誠 淵脇
Makoto Fuchiwaki
誠 淵脇
木下 雅文
Masafumi Kinoshita
雅文 木下
仁志夫 山田
Nishio Yamada
仁志夫 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019189064A priority Critical patent/JP7284064B2/en
Publication of JP2021064891A publication Critical patent/JP2021064891A/en
Application granted granted Critical
Publication of JP7284064B2 publication Critical patent/JP7284064B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide a consortium block chain system using an encryption method that does not require pairing calculation.SOLUTION: A consortium block chain system includes: a first computer that holds transaction data and a generation key for generating a zero knowledge certification value; and a second computer that holds a verification key for verifying the zero knowledge certification value. The first computer uses the generation key to generate a zero knowledge certification value based on the transaction data and transmits the generated zero knowledge certification value to the second computer. The second computer uses the verification key to verify the zero knowledge certification value transmitted from the first computer.SELECTED DRAWING: Figure 1

Description

本発明は、コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法に関する。 The present invention relates to a consortium blockchain system, a computer, and a transaction approval method.

近年、現実の貨幣、通貨による物品の取引だけでなく、電子マネーや仮想通貨を用いた商取引が行われている。ビットコインと呼ばれる仮想通貨を用いて、銀行などの中央集権機関を必要としない低手数料で決済取引を行う技術がある。ビットコインではP2P(Peer to Peer)ネットワーク上で取引情報(以下、トランザクションとも称する)をマイナーと呼ばれるノードが正当性を判定した後、プルーフオブワークと呼ばれる特定のハッシュ値を算出する作業によって確定処理が行われている。確定されたトランザクションは、1つのブロックにまとめられ、ブロックチェーンと呼ばれる分散台帳に記載される。 In recent years, not only transactions of goods in real money and currencies, but also commercial transactions using electronic money and virtual currencies have been carried out. There is a technology that uses a virtual currency called Bitcoin to perform settlement transactions at a low fee that does not require a centralized institution such as a bank. In Bitcoin, transaction information (hereinafter, also referred to as transaction) is confirmed on the P2P (Peer to Peer) network by a node called a miner, which determines the validity, and then calculates a specific hash value called proof of work. Is being done. Confirmed transactions are combined into one block and recorded in a distributed ledger called a blockchain.

P2Pネットワーク上の全ノードが、ビットコインのトランザクション及び分散台帳を参照可能であるため、どのノードからどのノードにビットコインの送金が行われたかを全ノードが参照可能である。従って、ユーザのビットコインアドレスが既知な場合、第三者がユーザ間の取引情報を容易に閲覧できる。 Since all the nodes on the P2P network can refer to the Bitcoin transaction and the distributed ledger, all the nodes can refer to which node the Bitcoin was remitted from which node. Therefore, if the user's bitcoin address is known, a third party can easily view the transaction information between the users.

このような問題に対して、非特許文献1は、ビットコインプロトコル上でZerocash(又はZcash)と呼ばれる匿名送金用のコインを利用する方式を開示している。 To deal with such a problem, Non-Patent Document 1 discloses a method of using a coin for anonymous remittance called Zerocash (or Zcash) on the Bitcoin protocol.

Zcash方式では、トランザクションデータ内の送金者、受金者、及び金額部分が秘匿化され、秘匿化されたデータにトランザクションのゼロ知識証明値が付された秘匿化トランザクションが、P2Pネットワークにブロードキャストされる。 In the Zcash method, the sender, recipient, and amount portion of the transaction data are concealed, and the concealed transaction in which the zero-knowledge proof value of the transaction is attached to the concealed data is broadcast to the P2P network. ..

分散台帳上で送金者、受金者、及び金額部分が秘匿化されているため、ネットワーク上の第3者にトランザクションの内容が漏えいしない。ゼロ知識証明値をトランザクションに加える理由は、不特定多数のマイナーに秘匿化されている部分の正当性を証明するためである。 Since the sender, recipient, and amount portion are kept secret on the distributed ledger, the contents of the transaction will not be leaked to a third party on the network. The reason for adding the zero-knowledge proof value to the transaction is to prove the validity of the part hidden by an unspecified number of miners.

例えば、非特許文献1にも記載されているBitcoin/Zcashのトランザクションにおいては、UTXO(Unspent Transaction Output)方式が利用されている。ここで、UTXO方式では、各トランザクションのinputの合計値とoutputの合計値が一致(手数料を含め)している必要がある。 For example, in the Bitcoin / Zcash transaction described in Non-Patent Document 1, the UTXO (Unsent Transaction Output) method is used. Here, in the UTXO method, it is necessary that the total value of input and the total value of output of each transaction match (including the fee).

input/outputの値が秘匿化されている場合、マイナーは秘匿化されていることを確認出来ないため、Zcash方式では、inputの合計値とoutputの合計値が一致することを示すゼロ知識証明値が生成されている。またこのとき、非特許文献2に記載されているPinocchio方式が、ゼロ知識証明の方式として利用されている。 When the input / output value is concealed, the miner cannot confirm that it is concealed. Therefore, in the Zcash method, the zero-knowledge proof value indicating that the total value of input and the total value of output match. Has been generated. At this time, the Pinoccio method described in Non-Patent Document 2 is used as a zero-knowledge proof method.

Eli Ben−Sasson他,“Zerocash: Decentralized Anonymous Payments from Bitcoin.”(2014)Eli Ben-Sasson et al., "Zerocas: Decentralized Anonymous Payments from Bitcoin." (2014) Bryan Parno他,“Pinocchio: Nearly Practical Verifiable Computation.” (2013)Bryan Parno et al., "Pinocchio: Nearly Practical Verifiable Computation." (2013) L. Ducas and D. Micciancio,“FHEW: Bootstrapping Homomorphic Encryption in Less Than a Second.” (2015)L. Ducas and D. Homomorphic Encryption, “FHEW: Bootstrapping Homomorphic Encryption in Less Than a Second.” (2015)

非特許文献1のZcash方式やそのベースとなっている非特許文献2のPinocchio方式では、暗号アルゴリズムとしてPairing暗号方式が採用されている。 In the Zcash method of Non-Patent Document 1 and the Pinoccio method of Non-Patent Document 2 which is the base thereof, the Pairing encryption method is adopted as the encryption algorithm.

Pairing暗号方式は、公開鍵暗号方式としては新しく、一般的に使用されている楕円暗号方式に比べて鍵長などの安全なパラメータが解明されていない。そのため、Pairing暗号を安全に運用するためには、鍵長などを必要以上に大きくとる必要がある。 The Pairing cryptosystem is new as a public key cryptosystem, and its secure parameters such as key length have not been clarified as compared with the commonly used elliptic cryptosystem. Therefore, in order to operate the Pairing encryption safely, it is necessary to make the key length or the like longer than necessary.

さらに、ゼロ知識証明値が検証される際に、Pairing暗号独自のpairing演算を必要とし、この演算にかかる計算量が大きい。また、Pairing暗号方式の安全性は離散対数問題の困難性に依拠するため、Pairing暗号方式は量子計算機を用いた攻撃に耐性を有していない。 Further, when the zero-knowledge proof value is verified, a pailing operation unique to the Pairing cipher is required, and the amount of calculation required for this operation is large. Moreover, since the security of the Pairing cryptosystem depends on the difficulty of the discrete logarithm problem, the Pairing cryptosystem is not resistant to attacks using a quantum computer.

上記課題を解決するために本発明の一態様は以下の構成を採用する。コンソーシアム型ブロックチェーンシステムは、トランザクションデータと、ゼロ知識証明値を生成するための生成鍵と、を保持する第1計算機と、前記ゼロ知識証明値を検証するための検証鍵を保持する第2計算機と、を含み、前記第1計算機は、前記生成鍵を用いて前記トランザクションデータに基づくゼロ知識証明値を生成し、前記生成したゼロ知識証明値を、前記第2計算機に送信し、前記第2計算機は、前記第1計算機から送信されたゼロ知識証明値を、前記検証鍵を用いて検証し、前記トランザクションデータを受信し、前記ゼロ知識証明値の検証結果に基づいて前記トランザクションデータが示すトランザクションを承認又は拒否する。 In order to solve the above problems, one aspect of the present invention adopts the following configuration. The consortium type blockchain system has a first computer that holds transaction data and a generation key for generating a zero-knowledge proof value, and a second computer that holds a verification key for verifying the zero-knowledge proof value. The first computer uses the generated key to generate a zero-knowledge proof value based on the transaction data, and transmits the generated zero-knowledge proof value to the second computer, and the second computer. The computer verifies the zero-knowledge proof value transmitted from the first computer using the verification key, receives the transaction data, and the transaction indicated by the transaction data based on the verification result of the zero-knowledge proof value. Approve or reject.

本発明の一態様によれば、Pairing演算を必要としない暗号方式を利用したコンソーシアムブロックチェーンシステムを実現することができる。 According to one aspect of the present invention, it is possible to realize a consortium blockchain system using an encryption method that does not require a Pairing operation.

上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。 Issues, configurations and effects other than those described above will be clarified by the description of the following embodiments.

実施例1におけるブロックチェーンシステムの構成の一例を示すブロック図である。It is a block diagram which shows an example of the structure of the blockchain system in Example 1. FIG. 実施例1におけるユーザ端末、システム管理端末、及びトランザクション承認端末、それぞれを構成する計算機のハードウェアの構成の一例を示すブロック図である。It is a block diagram which shows an example of the hardware configuration of the computer which comprises the user terminal, the system management terminal, and the transaction approval terminal in Example 1. FIG. 実施例1における、ブロックチェーンシステムのセットアップ処理と、セットアップ処理に続くゼロ知識証明値生成/検証処理と、の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the setup process of the blockchain system in Example 1, and the zero-knowledge proof value generation / verification process following the setup process. 実施例1におけるゼロ知識証明データのデータフォーマットの一例である。This is an example of the data format of the zero-knowledge proof data in the first embodiment.

以下、本発明の実施形態を図面に基づいて詳細に説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the present embodiment, in principle, the same components are designated by the same reference numerals, and the repeated description will be omitted. It should be noted that the present embodiment is merely an example for realizing the present invention and does not limit the technical scope of the present invention.

本実施形態では、限られたノードだけがトランザクションの検証及び承認を行うコンソーシアム型のブロックチェーンを説明する。例えば、Zcash方式で利用されているシステムパラメータ(CRSと呼ばれる)の一部を、検証を行う限られたノードのみが利用することにより、Pairing演算を用いない暗号方式によるコンソーシアム型のブロックチェーンシステムを実現することができる。 In this embodiment, a consortium-type blockchain in which only a limited number of nodes verify and approve transactions will be described. For example, by using some of the system parameters (called CRS) used in the Zcash method only by a limited number of nodes that perform verification, a consortium-type blockchain system using an encryption method that does not use the Pairing operation can be created. It can be realized.

図1は、ブロックチェーンシステムの構成の一例を示すブロック図である。ブロックチェーンシステムは、ユーザ端末100と、システム管理端末200と、トランザクション承認端末300と、を含み、これらの端末はインターネット等のネットワーク400によって相互に接続されている。 FIG. 1 is a block diagram showing an example of the configuration of a blockchain system. The blockchain system includes a user terminal 100, a system management terminal 200, and a transaction approval terminal 300, and these terminals are connected to each other by a network 400 such as the Internet.

なお、本実施例のブロックチェーンシステムは、トランザクション承認端末300のみが承認権限を有するコンソーシアムブロックチェーンである。 The blockchain system of this embodiment is a consortium blockchain in which only the transaction approval terminal 300 has the approval authority.

ユーザ端末100は、トランザクションを生成するトランザクション生成部101、ゼロ知識証明値を生成するゼロ知識証明値生成部102、及び他の端末との間の通信を制御する通信部103を含む。また、ユーザ端末100は、ゼロ知識証明値を生成するためのゼロ知識証明値生成鍵が格納されるゼロ知識証明値生成鍵格納部104を有する。 The user terminal 100 includes a transaction generation unit 101 that generates a transaction, a zero-knowledge proof value generation unit 102 that generates a zero-knowledge proof value, and a communication unit 103 that controls communication with other terminals. Further, the user terminal 100 has a zero-knowledge proof value generation key storage unit 104 in which a zero-knowledge proof value generation key for generating a zero-knowledge proof value is stored.

システム管理端末200は、ゼロ知識証明値生成鍵/検証鍵生成部201及び通信部202を含む。ゼロ知識証明値生成鍵/検証鍵生成部201は、ゼロ知識証明値を生成するためのゼロ知識証明値生成鍵と、ゼロ知識証明値を検証するためのゼロ知識証明検証鍵と、のペアを生成する。通信部202は、他の端末との間の通信を制御する。また、システム管理端末200は、ゼロ知識証明値生成鍵/検証鍵生成部201が生成した、ゼロ知識証明値生成鍵とゼロ知識証明検証鍵とのペアが格納される、鍵格納部203を有する。 The system management terminal 200 includes a zero-knowledge proof value generation key / verification key generation unit 201 and a communication unit 202. The zero-knowledge proof value generation key / verification key generation unit 201 sets a pair of a zero-knowledge proof value generation key for generating a zero-knowledge proof value and a zero-knowledge proof verification key for verifying the zero-knowledge proof value. Generate. The communication unit 202 controls communication with other terminals. Further, the system management terminal 200 has a key storage unit 203 in which a pair of a zero-knowledge proof value generation key and a zero-knowledge proof verification key generated by the zero-knowledge proof value generation key / verification key generation unit 201 is stored. ..

ゼロ知識証明値生成鍵/検証鍵生成部201が生成したゼロ知識証明値生成鍵は、ユーザ端末100を含むブロックチェーンネットワーク参加者全員に公開され、ゼロ知識証明値検証鍵は、トランザクション承認端末300のみに配布される。 The zero-knowledge proof value generation key / verification key generation key 201 generated by the zero-knowledge proof value generation key 201 is open to all blockchain network participants including the user terminal 100, and the zero-knowledge proof value verification key is the transaction approval terminal 300. Distributed only to.

トランザクション承認端末300は、検証部301及び通信部302を含む。検証部301は、ユーザ端末100が生成した、トランザクションとゼロ知識証明値とを検証する。通信部302は、他の端末との間の通信を制御する。また、トランザクション承認端末300は、ゼロ知識証明値検証鍵格納部303及び分散台帳304を有する。 The transaction approval terminal 300 includes a verification unit 301 and a communication unit 302. The verification unit 301 verifies the transaction and the zero-knowledge proof value generated by the user terminal 100. The communication unit 302 controls communication with other terminals. Further, the transaction approval terminal 300 has a zero-knowledge proof value verification key storage unit 303 and a distributed ledger 304.

ゼロ知識証明値検証鍵格納部303には、ゼロ知識証明値検証鍵が格納される。検証部301は、検証結果に問題が無ければ(即ち検証結果が[true]であれば)、当該トランザクションと当該ゼロ知識証明値とを分散台帳304に書き込み、検証結果に問題があれば(即ち検証結果が[false]であれば)、当該トランザクションと当該ゼロ知識証明値とを分散台帳304に書き込むことなく、検証結果をユーザ端末100に送信する。 The zero-knowledge proof value verification key storage unit 303 stores the zero-knowledge proof value verification key. If there is no problem in the verification result (that is, if the verification result is [true]), the verification unit 301 writes the transaction and the zero-knowledge proof value in the distribution ledger 304, and if there is a problem in the verification result (that is, if there is a problem in the verification result). If the verification result is [false]), the verification result is transmitted to the user terminal 100 without writing the transaction and the zero-knowledge proof value in the distribution ledger 304.

つまり、前述したように、トランザクション承認端末300は、承認権限を有する限られた端末、即ち所謂コンソーシアムブロックチェーンシステムにおける分散台帳304を管理するノードである。 That is, as described above, the transaction approval terminal 300 is a limited terminal having approval authority, that is, a node that manages the distributed ledger 304 in the so-called consortium blockchain system.

また、トランザクション承認端末300は、ゼロ知識証明値検証鍵を有しているため強い権限を有している。従って、トランザクション承認端末300は、信頼できる機関に設置される(つまり信頼できる承認者によって使用される)ことが望ましい。仮に、悪意を持った承認者によってトランザクション承認端末300が利用されると、正当なトランザクションが承認されなかったり、不当なトランザクションが承認されたりする、おそれがある。 Further, the transaction approval terminal 300 has a strong authority because it has a zero-knowledge proof value verification key. Therefore, it is desirable that the transaction approval terminal 300 be installed in a trusted institution (ie, used by a trusted approver). If the transaction approval terminal 300 is used by a malicious approver, there is a risk that a legitimate transaction may not be approved or an illegal transaction may be approved.

図2は、ユーザ端末100、システム管理端末200、及びトランザクション承認端末300、それぞれを構成する計算機のハードウェアの構成の一例を示すブロック図である。 FIG. 2 is a block diagram showing an example of the hardware configuration of the user terminal 100, the system management terminal 200, and the transaction approval terminal 300, and the hardware constituting each of them.

計算機500は、例えば、CPU501、補助記憶装置502、メモリ503、入出力インターフェース505、及び通信装置506、を有し、これらが内部信号線504を介して接続されている。 The computer 500 has, for example, a CPU 501, an auxiliary storage device 502, a memory 503, an input / output interface 505, and a communication device 506, which are connected via an internal signal line 504.

CPU501はプロセッサを含み、メモリ503に格納されたプログラムを実行する。メモリ503は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU501が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。 The CPU 501 includes a processor and executes a program stored in the memory 503. The memory 503 includes a ROM which is a non-volatile storage element and a RAM which is a volatile storage element. The ROM stores an invariant program (for example, BIOS) and the like. The RAM is a high-speed and volatile storage element such as a DRAM (Dynamic Random Access Memory), and temporarily stores a program executed by the CPU 501 and data used when the program is executed.

補助記憶装置502は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、CPU501が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置502から読み出されて、メモリ503にロードされて、CPU501によって実行される。 The auxiliary storage device 502 is, for example, a large-capacity and non-volatile storage device such as a magnetic storage device (HDD) or a flash memory (SSD), and stores a program executed by the CPU 501 and data used when executing the program. .. That is, the program is read from the auxiliary storage device 502, loaded into the memory 503, and executed by the CPU 501.

入出力インターフェース505は、キーボードやマウス等の入寮装置が接続され、ユーザからの入力を受けるインターフェースであり、ディスプレイ装置やプリンタな等の出力装置が接続され、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースを含む。なお、計算機500が入力装置及び出力装置を備えていてもよい。 The input / output interface 505 is an interface to which a dormitory device such as a keyboard and a mouse is connected to receive input from a user, and an output device such as a display device or a printer is connected so that the user can visually recognize the execution result of the program. Includes an interface that outputs in format. The computer 500 may include an input device and an output device.

また、例えば、ユーザ端末100のゼロ知識証明値生成鍵格納部104は、ユーザ端末100を構成する計算機500の補助記憶装置502の記憶領域の一部によって実現される。同様に、他の端末が有する格納部についても、それぞれ、当該他の端末を構成する計算機500の補助記憶装置502の記憶領域の一部によって実現される。 Further, for example, the zero-knowledge proof value generation key storage unit 104 of the user terminal 100 is realized by a part of the storage area of the auxiliary storage device 502 of the computer 500 constituting the user terminal 100. Similarly, the storage unit of the other terminal is also realized by a part of the storage area of the auxiliary storage device 502 of the computer 500 that constitutes the other terminal.

通信装置506は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置506は、例えば、USB等のシリアルインターフェースを含む。 The communication device 506 is a network interface device that controls communication with other devices according to a predetermined protocol. Further, the communication device 506 includes, for example, a serial interface such as USB.

CPU501が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワーク400を介してユーザ端末100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置502に格納される。このため、計算機500は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。 The program executed by the CPU 501 is provided to the user terminal 100 via a removable medium (CD-ROM, flash memory, etc.) or a network 400, and is stored in a non-volatile auxiliary storage device 502 which is a non-temporary storage medium. Therefore, the computer 500 may have an interface for reading data from removable media.

なお、例えば、ユーザ端末100を構成する計算機500のCPU501は、当該計算機500のメモリ503にロードされたトランザクション生成プログラムに従って動作することで、トランザクション生成部101として機能し、当該メモリ503にロードされたゼロ知識証明値生成プログラムに従って動作することで、ゼロ知識証明値生成部102として機能する。ユーザ端末100が有する他の機能部とプログラムとの関係、及び他の端末が有する機能部とプログラムとの関係についても上記したことは同様である。 For example, the CPU 501 of the computer 500 constituting the user terminal 100 functions as the transaction generation unit 101 by operating according to the transaction generation program loaded in the memory 503 of the computer 500, and is loaded into the memory 503. By operating according to the zero-knowledge proof value generation program, it functions as the zero-knowledge proof value generation unit 102. The same applies to the relationship between the program and the other functional unit of the user terminal 100 and the relationship between the functional unit and the program of the other terminal.

なお、ブロックチェーンシステムに含まれる端末が有する機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field−Programmable Gate Array)等のハードウェアによって実現されてもよい。 Note that some or all of the functions of the terminal included in the blockchain system may be realized by hardware such as ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).

なお、本実施形態において、ブロックチェーンシステムに含まれる各端末が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。 In the present embodiment, the information used by each terminal included in the blockchain system may be represented by any data structure regardless of the data structure. For example, a properly selected data structure from a table, list, database or queue can store the information.

ユーザ端末100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。他の端末についても同様である。 The user terminal 100 is a computer system configured on one computer physically or on a plurality of computers logically or physically configured, and operates in separate threads on the same computer. It may operate on a virtual computer built on a plurality of physical computer resources. The same applies to other terminals.

図3は、本実施例のブロックチェーンシステムのセットアップ処理と、セットアップ処理に続くゼロ知識証明値生成/検証処理と、の一例を示すシーケンス図である。
まず、セットアップ処理について説明する。システム管理端末200のゼロ知識証明値生成鍵/検証鍵生成部201は、ゼロ知識証明値生成鍵及びゼロ知識証明値検証鍵を生成する(S210)。
FIG. 3 is a sequence diagram showing an example of the setup process of the blockchain system of this embodiment and the zero-knowledge proof value generation / verification process following the setup process.
First, the setup process will be described. The zero-knowledge proof value generation key / verification key generation unit 201 of the system management terminal 200 generates a zero-knowledge proof value generation key and a zero-knowledge proof value verification key (S210).

なお、ゼロ知識証明値生成鍵及びゼロ知識証明値検証鍵の生成用いられるアルゴリズムは、例えば、非特許文献2に記載されている、公開鍵で暗号化される公開鍵暗号文の集合からゼロ知識証明値生成鍵が生成されるCRS(Common Reference Strings)生成アルゴリズム(非対称型加法的準同型暗号方式の一例)等である。また、例えば、このCRS生成アルゴリズムにおける公開鍵暗号文の集合に対する秘密鍵が、ゼロ知識証明値検証鍵として生成される。 The algorithm used to generate the zero knowledge proof value generation key and the zero knowledge proof value verification key is, for example, zero knowledge from a set of public key cryptographic statements encrypted with a public key described in Non-Patent Document 2. A CRS (Comon Reference Strings) generation algorithm (an example of an asymmetric additive quasi-isomorphic cryptosystem) in which a certification value generation key is generated is used. Further, for example, a private key for a set of public key cryptosystems in this CRS generation algorithm is generated as a zero-knowledge proof value verification key.

次に、システム管理端末200の通信部202は、ステップS210で生成したゼロ知識証明値生成鍵をユーザ端末100に送信し(S211)、ゼロ知識証明値検証鍵をトランザクション承認端末300に送信(S212)する。 Next, the communication unit 202 of the system management terminal 200 transmits the zero-knowledge proof value generation key generated in step S210 to the user terminal 100 (S211), and transmits the zero-knowledge proof value verification key to the transaction approval terminal 300 (S212). ).

ユーザ端末100が受信したゼロ知識証明値生成鍵は、ゼロ知識証明値生成鍵格納部104に格納され、トランザクション承認端末300が受信したゼロ知識証明値検証鍵は、ゼロ知識証明値検証鍵格納部303に格納されて、セットアップ処理が終了する。 The zero-knowledge proof value generation key received by the user terminal 100 is stored in the zero-knowledge proof value generation key storage unit 104, and the zero-knowledge proof value verification key received by the transaction approval terminal 300 is the zero-knowledge proof value verification key storage unit. It is stored in 303, and the setup process ends.

次に、コンソーシアムブロックチェーン運用時のゼロ知識証明値生成/検証処理について説明する。ユーザ端末100のトランザクション生成部101は、ブロックチェーンに送信するトランザクションを生成する(S110)。 Next, the zero-knowledge proof value generation / verification process during the operation of the consortium blockchain will be described. The transaction generation unit 101 of the user terminal 100 generates a transaction to be transmitted to the blockchain (S110).

ユーザ端末100のゼロ知識証明値生成部102は、ステップS111で生成したトランザクションに対して、ゼロ知識証明値生成鍵格納部104に格納されているゼロ知識証明値生成鍵を用いて(例えば、ゼロ知識証明値生成鍵で暗号化することにより)、ゼロ知識証明値を生成し、生成したゼロ知識証明値を含むゼロ知識証明データを生成する(S111)。ユーザ端末100の通信部103は、生成されたゼロ知識証明データをトランザクション承認端末300に送信する(S112)。 The zero-knowledge proof value generation unit 102 of the user terminal 100 uses the zero-knowledge proof value generation key stored in the zero-knowledge proof value generation key storage unit 104 for the transaction generated in step S111 (for example, zero). (By encrypting with the knowledge proof value generation key), the zero knowledge proof value is generated, and the zero knowledge proof data including the generated zero knowledge proof value is generated (S111). The communication unit 103 of the user terminal 100 transmits the generated zero-knowledge proof data to the transaction approval terminal 300 (S112).

なお、ユーザ端末100のゼロ知識証明値生成部102が利用するゼロ知識証明生成アルゴリズムは、例えば、非特許文献2に記載されている、ゼロ知識証明生成アルゴリズム等である。この場合、特定の公開鍵暗号方式の暗号文の集合であるゼロ知識証明生成鍵内の暗号文データの部分集合(真部分集合だけでなく暗号文データの集合そのものも含む)の線型和からなる暗号文の集合は、ゼロ知識証明値の一例である。 The zero-knowledge proof generation algorithm used by the zero-knowledge proof value generation unit 102 of the user terminal 100 is, for example, the zero-knowledge proof generation algorithm described in Non-Patent Document 2. In this case, it consists of a linear sum of the ciphertext data subsets (including not only the true subset but also the ciphertext data set itself) in the zero-knowledge proof generation key, which is a set of ciphertexts of a specific public key cryptosystem. The set of ciphertexts is an example of zero-knowledge proof values.

図4は、ゼロ知識証明データのデータフォーマットの一例である。ゼロ知識証明データ600は、ゼロ知識証明値部601と、ステートメントを保持するステートメント部602を含む。ゼロ知識証明値部601は、ゼロ知識証明値を保持する。ステートメント部602は、後述するゼロ知識証明値検証処理に必要な補助情報であるステートメントを保持する。なお、非特許文献2に記載された、ゼロ知識証明生成アルゴリズムが用いられた場合、ゼロ知識証明値部601は複数の特定の公開鍵暗号文を含む。 FIG. 4 is an example of a data format of zero-knowledge proof data. The zero-knowledge proof data 600 includes a zero-knowledge proof value unit 601 and a statement unit 602 that holds a statement. The zero-knowledge proof value unit 601 holds a zero-knowledge proof value. The statement unit 602 holds a statement which is auxiliary information necessary for the zero-knowledge proof value verification process described later. When the zero-knowledge proof generation algorithm described in Non-Patent Document 2 is used, the zero-knowledge proof value unit 601 includes a plurality of specific public key cryptosystems.

また、この場合、ステートメント部602に入力されるステートメント(補助情報)は、例えば、トランザクションデータの一部又は全部、バージョン情報、プロトコル名等を含む。なお、ゼロ知識証明値検証処理に補助情報が必要でない場合には、ステートメント部602は、ブランクであってもよい。 Further, in this case, the statement (auxiliary information) input to the statement unit 602 includes, for example, a part or all of the transaction data, version information, protocol name, and the like. If auxiliary information is not required for the zero-knowledge proof value verification process, the statement unit 602 may be blank.

なお、ゼロ知識証明値検証処理に補助情報が必要である場合であっても、ゼロ知識証明データ600は、ゼロ知識証明値のみを保持してもよいが、この場合、ユーザ端末100は、例えば、別の方法やネットワーク400経由でトランザクションデータ等の補助情報を、トランザクション承認端末300に送信する。 Even when auxiliary information is required for the zero-knowledge proof value verification process, the zero-knowledge proof data 600 may hold only the zero-knowledge proof value. In this case, the user terminal 100 may, for example, hold the zero-knowledge proof value. , Another method or auxiliary information such as transaction data is transmitted to the transaction approval terminal 300 via the network 400.

図3の説明に戻る。ステップS112に続いて、ゼロ知識証明値を受信したトランザクション承認端末300、の検証部301は、ゼロ知識証明値検証鍵格納部303に格納されたゼロ知識証明検証鍵を用いて、特定のアルゴリズムに従いゼロ知識証明値の検証を実行する(S310)。 Returning to the description of FIG. Following step S112, the verification unit 301 of the transaction approval terminal 300 that has received the zero-knowledge proof value follows a specific algorithm using the zero-knowledge proof verification key stored in the zero-knowledge proof value verification key storage unit 303. Verification of the zero-knowledge proof value is executed (S310).

検証部301は、検証結果が[true]と判定した場合、受信したトランザクションを正当なトランザクションであると判定し、分散台帳304に書き込む。一方、検証部301は、検証結果が[false]と判定した場合、受信したトランザクションを不当なトランザクションであると判定し、破棄する。なお、検証部301は、通信部302を介して、検証結果をユーザ端末100に送信してもよい。 When the verification unit 301 determines that the verification result is [true], the verification unit 301 determines that the received transaction is a legitimate transaction and writes it in the distributed ledger 304. On the other hand, when the verification unit 301 determines that the verification result is [false], the verification unit 301 determines that the received transaction is an invalid transaction and discards it. The verification unit 301 may transmit the verification result to the user terminal 100 via the communication unit 302.

なお、例えば、ゼロ知識証明値が、特定の公開鍵暗号方式の暗号文の集合であり、かつゼロ知識証明検証鍵がこれらの暗号文を復号化する秘密鍵である場合は、検証部301は、ステップS310のゼロ知識証明検証処理において、公開鍵暗号文の集合を当該秘密鍵で復号化し、復号化した平文の集合が非特許文献2の検証処理にあるような、特定の線型式及び2次式の関係式を全て満たす場合に[true]、そうでない場合に[false]を出力する。 For example, when the zero knowledge proof value is a set of ciphertexts of a specific public key cryptosystem and the zero knowledge proof verification key is a secret key for decrypting these ciphertexts, the verification unit 301 In the zero knowledge proof verification process of step S310, a set of public key ciphertexts is decrypted with the private key, and the decrypted plain text set is in the verification process of Non-Patent Document 2. [True] is output when all the relational expressions of the following equations are satisfied, and [false] is output when not.

具体的には、例えば、非特許文献3に記載された加法準同型性を持つLWE暗号方式(非対称型加法的準同型暗号方式の一例)の暗号文の集合をゼロ知識証明値生成鍵、それらの秘密鍵をゼロ知識証明値検としてもよい。非特許文献3に記載されたLWE暗号が利用される事で、量子計算機による攻撃に耐性を有することができ、ひいては、ブロックチェーンを利用するユーザの利便性及び安全性が向上する。また、より一般に、加法準同型性を持つ公開鍵暗号の暗号文の集合をゼロ知識証明生成鍵、それらの秘密鍵をゼロ知識証明検証鍵としてもよい。 Specifically, for example, a set of ciphertexts of the LWE encryption method (an example of an asymmetric additive homomorphic encryption method) having additive homomorphism described in Non-Patent Document 3 is set as a zero-knowledge proof value generation key, and they are used. The private key of may be used as a zero-knowledge proof value test. By using the LWE cipher described in Non-Patent Document 3, it is possible to have resistance to attacks by quantum computers, and by extension, the convenience and security of users who use the blockchain are improved. Further, more generally, a set of ciphertexts of public key cryptography having additive homomorphism may be used as a zero-knowledge proof generation key, and their private keys may be used as a zero-knowledge proof verification key.

このように、本実施例のブロックチェーンシステムでは、計算量が大きく、かつ量子計算機を用いた攻撃への耐性を有していないPairing演算を用いることなく、一般的な加法的準同型暗号であるElGammal暗号やPaillier暗号等(つまりPairing演算とは異なる演算のみを用いた暗号)を用いてトランザクションの検証を行うことができる。ひいては、本実施例のブロックチェーンシステムでは、各種パラメータ長を短くすることが出来る。 As described above, the blockchain system of the present embodiment is a general additive homomorphic encryption without using the Paillier operation, which has a large amount of calculation and does not have resistance to attacks using a quantum computer. Transaction verification can be performed using ElGammal encryption, Paillier encryption, or the like (that is, encryption using only operations different from the Pairing operation). As a result, in the blockchain system of this embodiment, various parameter lengths can be shortened.

なお、ゼロ知識証明値生成鍵及びゼロ知識証明値検証鍵を、非特許文献1にあるようなPairing暗号の暗号文の集合とその秘密鍵の集合とする暗号方式が用いられても、本実施例のブロックチェーンシステムは実現可能である。 Even if a cryptographic method is used in which the zero-knowledge proof value generation key and the zero-knowledge proof value verification key are a set of ciphertexts of the Pairing cipher and a set of their private keys as described in Non-Patent Document 1, this implementation is performed. The example blockchain system is feasible.

なお、ブロックチェーンシステムが1台のトランザクション承認端末300を含む例を説明したが、ブロックチェーンシステムは、相互に通信可能であってトランザクション及びゼロ知識証明値を検証可能な複数台のトランザクション承認端末300を含んでもよい。 Although the example in which the blockchain system includes one transaction approval terminal 300 has been described, the blockchain system has a plurality of transaction approval terminals 300 that can communicate with each other and can verify transactions and zero-knowledge proof values. May include.

この場合、ユーザ端末100が複数のトランザクション承認端末300にゼロ知識証明データ600を送信する。また、例えば、限られた(例えば1台の)トランザクション承認端末300にゼロ知識証明データ600を送信し、当該トランザクション承認端末300によって、他のトランザクション承認端末300にゼロ知識証明データ600を送信したり、当該他のトランザクション承認端末300が参照可能なようにゼロ知識証明データ600を公開したりして、共有してもよい。 In this case, the user terminal 100 transmits the zero-knowledge proof data 600 to the plurality of transaction approval terminals 300. Further, for example, the zero-knowledge proof data 600 may be transmitted to a limited (for example, one) transaction approval terminal 300, and the transaction approval terminal 300 may transmit the zero-knowledge proof data 600 to another transaction approval terminal 300. , The zero-knowledge proof data 600 may be disclosed or shared so that the other transaction approval terminal 300 can refer to it.

このとき、各トランザクション承認端末300は、異なるアルゴリズムで検証処理を行なってもよい。またこの際に、各トランザクション承認端末300は相互にネットワーク400を介した通信を行い、互いの検証結果を参照し、分散台帳304に書き込むか否かについての合意を取ってもよい。 At this time, each transaction approval terminal 300 may perform the verification process by a different algorithm. At this time, the transaction approval terminals 300 may communicate with each other via the network 400, refer to each other's verification results, and agree on whether or not to write in the distributed ledger 304.

具体的には、例えば、複数のトランザクション承認端末300のうち所定の割合(例えば80%)以上のトランザクション承認端末300の検証結果が[true]である場合に対象のトランザクションを承認することとして合意し、所定の割合未満のトランザクション承認端末300の検証結果が[true]である場合に対象のトランザクションを拒否することとして合意する。 Specifically, for example, it is agreed to approve the target transaction when the verification result of the transaction approval terminal 300 of a predetermined ratio (for example, 80%) or more of the plurality of transaction approval terminals 300 is [true]. , Agree to reject the target transaction when the verification result of the transaction approval terminal 300 less than a predetermined ratio is [true].

このようにブロックチェーンシステムが複数のトランザクション承認端末300を含むことにより、強力なトランザクション承認権限が分散するため、一部のトランザクション承認端末300が悪意を持った承認者に利用された場合であっても、正当な承認結果を得ることができる。 Since the blockchain system includes a plurality of transaction approval terminals 300 in this way, strong transaction approval authority is distributed, so that some transaction approval terminals 300 are used by a malicious approver. However, a legitimate approval result can be obtained.

また、トランザクション承認権限を分散するためには、例えば、1企業や1グループ企業で複数のトランザクション承認端末300するのではなく、牽制力が働く競合他社と複数のトランザクション承認端末300を共有することが望ましい。 Further, in order to distribute the transaction approval authority, for example, instead of having a plurality of transaction approval terminals 300 in one company or one group company, it is possible to share a plurality of transaction approval terminals 300 with competitors having a restraining force. desirable.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The present invention is not limited to the above-described examples, and includes various modifications. For example, the above-described embodiment has been described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to the one including all the described configurations. It is also possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Further, it is possible to add / delete / replace a part of the configuration of each embodiment with another configuration.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above configurations, functions, processing units, processing means and the like may be realized by hardware by designing a part or all of them by, for example, an integrated circuit. Further, each of the above configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function. Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 In addition, the control lines and information lines indicate those that are considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. In practice, it can be considered that almost all configurations are interconnected.

100 ユーザ端末、102 ゼロ知識証明値生成部、200 システム管理端末、202 ゼロ知識証明値生成鍵/検証鍵生成部、300 トランザクション承認端末、301 検証部、400 ネットワーク、500 計算機、501 CPU、502 補助記憶装置、503 メモリ、506 通信装置、600 ゼロ知識証明データ 100 user terminal, 102 zero-knowledge proof value generator, 200 system management terminal, 202 zero-knowledge proof value generation key / verification key generator, 300 transaction approval terminal, 301 verification unit, 400 network, 500 computer, 501 CPU, 502 auxiliary Storage device, 503 memory, 506 communication device, 600 zero-knowledge proof data

Claims (15)

コンソーシアムブロックチェーンシステムであって、
トランザクションデータと、ゼロ知識証明値を生成するための生成鍵と、を保持する第1計算機と、
前記ゼロ知識証明値を検証するための検証鍵を保持する第2計算機と、を含み、
前記第1計算機は、
前記生成鍵を用いて前記トランザクションデータに基づくゼロ知識証明値を生成し、
前記生成したゼロ知識証明値を、前記第2計算機に送信し、
前記第2計算機は、
前記第1計算機から送信されたゼロ知識証明値を、前記検証鍵を用いて検証し、
前記トランザクションデータを受信し、
前記ゼロ知識証明値の検証結果に基づいて前記トランザクションデータが示すトランザクションを承認又は拒否する、コンソーシアムブロックチェーンシステム。
A consortium blockchain system
A first computer that holds transaction data, a generation key for generating zero-knowledge proof values, and
Including a second computer holding a verification key for verifying the zero-knowledge proof value.
The first calculator is
Using the generated key, a zero-knowledge proof value based on the transaction data is generated.
The generated zero-knowledge proof value is transmitted to the second computer,
The second calculator
The zero-knowledge proof value transmitted from the first computer is verified by using the verification key.
Receive the transaction data and
A consortium blockchain system that approves or rejects the transaction indicated by the transaction data based on the verification result of the zero-knowledge proof value.
請求項1に記載のコンソーシアムブロックチェーンシステムであって、
前記生成鍵及び前記検証鍵は、Pairing演算とは異なる演算のみが行われる暗号方式によって生成された鍵である、コンソーシアムブロックチェーンシステム。
The consortium blockchain system according to claim 1.
The consortium blockchain system, wherein the generated key and the verification key are keys generated by a cryptographic method in which only operations different from the Pairing operation are performed.
請求項2に記載のコンソーシアムブロックチェーンシステムであって、
前記生成鍵は、非対称型加法的準同型暗号の暗号文の集合を含み、
前記ゼロ知識証明値は、前記非対称型加法的準同型暗号の暗号文の部分集合の線型和を含み、
前記検証鍵は、前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合を含む、コンソーシアムブロックチェーンシステム。
The consortium blockchain system according to claim 2.
The generated key contains a set of ciphertexts of asymmetric additive homomorphic encryption.
The zero-knowledge proof value includes a linear sum of a subset of the ciphertext of the asymmetric additive homomorphic encryption.
The verification key is a consortium blockchain system that includes a set of private keys that decrypt the ciphertext of the asymmetric additive homomorphic encryption.
請求項3に記載のコンソーシアムブロックチェーンシステムであって、
前記非対称型加法的準同型暗号の暗号文はLWE暗号方式の暗号文を含み、
前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合は、LWE暗号方式の秘密鍵を含む、コンソーシアムブロックチェーンシステム。
The consortium blockchain system according to claim 3.
The ciphertext of the asymmetric additive homomorphic encryption includes the ciphertext of the LWE encryption method.
The set of private keys for decrypting the ciphertext of the asymmetric additive homomorphic encryption is a consortium blockchain system including the private key of the LWE encryption method.
請求項1に記載のコンソーシアムブロックチェーンシステムであって、
複数の前記第2計算機を含み、
前記第1計算機が生成したゼロ知識証明値及びトランザクションデータは、前記複数の第2計算機によって共有され、
前記複数の第2計算機それぞれは、前記ゼロ知識証明値を、前記検証鍵を用いて検証し、
前記複数の第2計算機は、
前記複数の第2計算機それぞれによる検証結果を共有し、
前記共有した検証結果に基づいて、前記トランザクションデータが示すトランザクションを承認又は拒否する、コンソーシアムブロックチェーンシステム。
The consortium blockchain system according to claim 1.
Including a plurality of the second calculators
The zero-knowledge proof value and transaction data generated by the first computer are shared by the plurality of second computers.
Each of the plurality of second computers verifies the zero-knowledge proof value by using the verification key.
The plurality of second calculators
Sharing the verification results by each of the plurality of second calculators,
A consortium blockchain system that approves or rejects the transaction indicated by the transaction data based on the shared verification result.
コンソーシアムブロックチェーンシステムにおけるトランザクションを承認する計算機であって、
プロセッサとメモリとを含み、
前記メモリは、前記トランザクションを示すトランザクションデータと、生成鍵を用いて生成されたゼロ知識証明値と、前記ゼロ知識証明値を検証するための検証鍵と、を保持し、
前記プロセッサは、
前記ゼロ知識証明値を、前記検証鍵を用いて検証し、
前記ゼロ知識証明値の検証結果に基づいて前記トランザクションデータが示すトランザクションを承認又は拒否する、計算機。
A computer that approves transactions in a consortium blockchain system.
Including processor and memory
The memory holds transaction data indicating the transaction, a zero-knowledge proof value generated by using the generation key, and a verification key for verifying the zero-knowledge proof value.
The processor
The zero-knowledge proof value is verified using the verification key, and the zero-knowledge proof value is verified.
A computer that approves or rejects the transaction indicated by the transaction data based on the verification result of the zero-knowledge proof value.
請求項6に記載の計算機であって、
前記生成鍵及び前記検証鍵は、Pairing演算とは異なる演算のみが行われる暗号方式によって生成された鍵である、計算機。
The calculator according to claim 6.
The generated key and the verification key are keys generated by an encryption method in which only an operation different from the Pairing operation is performed, a calculator.
請求項7に記載の計算機であって、
前記生成鍵は、非対称型加法的準同型暗号の暗号文の集合を含み、
前記ゼロ知識証明値は、前記非対称型加法的準同型暗号の暗号文の部分集合の線型和を含み、
前記検証鍵は、前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合を含む、計算機。
The calculator according to claim 7.
The generated key contains a set of ciphertexts of asymmetric additive homomorphic encryption.
The zero-knowledge proof value includes a linear sum of a subset of the ciphertext of the asymmetric additive homomorphic encryption.
The verification key is a computer including a set of private keys for decrypting the ciphertext of the asymmetric additive homomorphic encryption.
請求項8に記載の計算機であって、
前記非対称型加法的準同型暗号の暗号文はLWE暗号方式の暗号文を含み、
前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合は、LWE暗号方式の秘密鍵を含む、計算機。
The calculator according to claim 8.
The ciphertext of the asymmetric additive homomorphic encryption includes the ciphertext of the LWE encryption method.
The set of secret keys for decrypting the ciphertext of the asymmetric additive homomorphic encryption is a computer including the secret key of the LWE encryption method.
請求項6に記載の計算機であって、
前記コンソーシアムブロックチェーンシステムに含まれ、前記コンソーシアムブロックチェーンシステムにおけるトランザクションを承認し、検証鍵を有する他の計算機と、前記ゼロ知識証明値及び前記トランザクションデータを共有し、
前記他の計算機は、前記ゼロ知識証明値を、前記他の計算機が有する検証鍵を用いて検証し、
自身による検証結果、及び前記他の計算機による検証結果を共有し、
前記共有した検証結果に基づいて、前記トランザクションデータが示すトランザクションを承認又は拒否する、計算機。
The calculator according to claim 6.
The zero-knowledge proof value and the transaction data are shared with other computers included in the consortium blockchain system, approving transactions in the consortium blockchain system, and having a verification key.
The other computer verifies the zero-knowledge proof value by using the verification key possessed by the other computer.
Share the verification results by yourself and the verification results by the other computers mentioned above,
A computer that approves or rejects the transaction indicated by the transaction data based on the shared verification result.
コンソーシアムブロックチェーンシステムに含まれる計算機による、トランザクションを承認するトランザクション承認方法であって、
前記計算機は、プロセッサとメモリとを含み、
前記メモリは、前記トランザクションを示すトランザクションデータと、生成鍵を用いて生成されたゼロ知識証明値と、前記ゼロ知識証明値を検証するための検証鍵と、を保持し、
前記トランザクション承認方法は、
前記プロセッサが、前記ゼロ知識証明値を、前記検証鍵を用いて検証し、
前記プロセッサが、前記ゼロ知識証明値の検証結果に基づいて前記トランザクションデータが示すトランザクションを承認又は拒否する、トランザクション承認方法。
A transaction approval method that approves transactions by a computer included in the consortium blockchain system.
The calculator includes a processor and memory.
The memory holds transaction data indicating the transaction, a zero-knowledge proof value generated by using the generation key, and a verification key for verifying the zero-knowledge proof value.
The transaction approval method is
The processor verifies the zero-knowledge proof value using the verification key.
A transaction approval method in which the processor approves or rejects the transaction indicated by the transaction data based on the verification result of the zero-knowledge proof value.
請求項11に記載のトランザクション承認方法であって、
前記生成鍵及び前記検証鍵は、Pairing演算とは異なる演算のみが行われる暗号方式によって生成された鍵である、トランザクション承認方法。
The transaction approval method according to claim 11.
A transaction approval method, wherein the generated key and the verification key are keys generated by an encryption method in which only an operation different from the Pairing operation is performed.
請求項12に記載のトランザクション承認方法であって、
前記生成鍵は、非対称型加法的準同型暗号の暗号文の集合を含み、
前記ゼロ知識証明値は、前記非対称型加法的準同型暗号の暗号文の部分集合の線型和を含み、
前記検証鍵は、前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合を含む、トランザクション承認方法。
The transaction approval method according to claim 12.
The generated key contains a set of ciphertexts of asymmetric additive homomorphic encryption.
The zero-knowledge proof value includes a linear sum of a subset of the ciphertext of the asymmetric additive homomorphic encryption.
The verification key is a transaction approval method including a set of private keys for decrypting the ciphertext of the asymmetric additive homomorphic encryption.
請求項13に記載のトランザクション承認方法であって、
前記非対称型加法的準同型暗号の暗号文はLWE暗号方式の暗号文を含み、
前記非対称型加法的準同型暗号の暗号文を復号化する秘密鍵の集合は、LWE暗号方式の秘密鍵を含む、トランザクション承認方法。
The transaction approval method according to claim 13.
The ciphertext of the asymmetric additive homomorphic encryption includes the ciphertext of the LWE encryption method.
The set of private keys for decrypting the ciphertext of the asymmetric additive homomorphic encryption is a transaction approval method including the private key of the LWE encryption method.
請求項11に記載のトランザクション承認方法であって、
前記トランザクション承認方法は、
前記プロセッサが、前記コンソーシアムブロックチェーンシステムに含まれ、前記コンソーシアムブロックチェーンシステムにおけるトランザクションを承認し、検証鍵を有する他の計算機と、前記ゼロ知識証明値及び前記トランザクションデータを共有し、
前記他の計算機は、前記ゼロ知識証明値を、前記他の計算機が有する検証鍵を用いて検証し、
前記プロセッサが、自身による検証結果、及び前記他の計算機による検証結果を共有し、
前記プロセッサが、前記共有した検証結果に基づいて、前記トランザクションデータが示すトランザクションを承認又は拒否する、トランザクション承認方法。
The transaction approval method according to claim 11.
The transaction approval method is
The processor is included in the consortium blockchain system, approves a transaction in the consortium blockchain system, and shares the zero-knowledge proof value and the transaction data with another computer having a verification key.
The other computer verifies the zero-knowledge proof value by using the verification key possessed by the other computer.
The processor shares the verification result by itself and the verification result by the other computer,
A transaction approval method in which the processor approves or rejects the transaction indicated by the transaction data based on the shared verification result.
JP2019189064A 2019-10-16 2019-10-16 Consortium Blockchain System, Calculator, Transaction Approval Method Active JP7284064B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019189064A JP7284064B2 (en) 2019-10-16 2019-10-16 Consortium Blockchain System, Calculator, Transaction Approval Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019189064A JP7284064B2 (en) 2019-10-16 2019-10-16 Consortium Blockchain System, Calculator, Transaction Approval Method

Publications (2)

Publication Number Publication Date
JP2021064891A true JP2021064891A (en) 2021-04-22
JP7284064B2 JP7284064B2 (en) 2023-05-30

Family

ID=75486619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019189064A Active JP7284064B2 (en) 2019-10-16 2019-10-16 Consortium Blockchain System, Calculator, Transaction Approval Method

Country Status (1)

Country Link
JP (1) JP7284064B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113627911A (en) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 Method, device and storage medium for anonymously receiving and sending red packet based on block chain
CN114153630A (en) * 2021-11-23 2022-03-08 国网黑龙江省电力有限公司双鸭山供电公司 Power information sharing method based on alliance chain
WO2022249439A1 (en) * 2021-05-28 2022-12-01 富士通株式会社 Information processing system, information processing device, information processing program, and information processing method
WO2023079832A1 (en) * 2021-11-04 2023-05-11 ソニーグループ株式会社 Information processing device, information processing method, and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171349A (en) * 1995-12-19 1997-06-30 Nec Corp Method for digital signiture
JPH09200198A (en) * 1996-01-17 1997-07-31 Nec Corp Message verfication system
WO2019092552A1 (en) * 2017-11-09 2019-05-16 nChain Holdings Limited Systems and methods for ensuring correct execution of computer program using a mediator computer system
WO2019092543A1 (en) * 2017-11-09 2019-05-16 nChain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171349A (en) * 1995-12-19 1997-06-30 Nec Corp Method for digital signiture
JPH09200198A (en) * 1996-01-17 1997-07-31 Nec Corp Message verfication system
WO2019092552A1 (en) * 2017-11-09 2019-05-16 nChain Holdings Limited Systems and methods for ensuring correct execution of computer program using a mediator computer system
WO2019092543A1 (en) * 2017-11-09 2019-05-16 nChain Holdings Limited System for securing verification key from alteration and verifying validity of a proof of correctness

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
BEN-SASSON, E. ET AL.: "Aurora: Transparent Succinct Arguments for R1CS", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2018/828 ver:20190508:195055, JPN6023009708, 8 May 2019 (2019-05-08), pages 1 - 64, ISSN: 0005011668 *
DAIRA: "Fully post-quantum Zcash #805", GITHUB, JPN6023009706, 28 March 2016 (2016-03-28), ISSN: 0005011666 *
GENNARO, R. ET AL.: " Lattice-Based zk-SNARKs from Square Span Programs", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2018/275 ver:20181015:202218, JPN6023009704, 15 October 2018 (2018-10-15), pages 1 - 28, XP061027309, ISSN: 0005011664 *
GHEORGHIU, V. ET AL., QUANTUM-PROOFING THE BLOCKCHAIN, JPN6023009705, November 2017 (2017-11-01), pages 1 - 28, ISSN: 0005011665 *
LAVRENOV, D.: "Securing a Blockchain with a Noninteractive Zero-Knowledge Proof", ALTOROS, JPN6023009703, 14 March 2019 (2019-03-14), ISSN: 0005011663 *
MINE, A.: "複数の管理主体により共同で運用されるブロックチェーン「コンソーシアムチェーン」", BLOCKCHAIN BIZ, JPN6023009707, 14 June 2017 (2017-06-14), ISSN: 0005011667 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022249439A1 (en) * 2021-05-28 2022-12-01 富士通株式会社 Information processing system, information processing device, information processing program, and information processing method
CN113627911A (en) * 2021-09-03 2021-11-09 杭州复杂美科技有限公司 Method, device and storage medium for anonymously receiving and sending red packet based on block chain
WO2023079832A1 (en) * 2021-11-04 2023-05-11 ソニーグループ株式会社 Information processing device, information processing method, and program
CN114153630A (en) * 2021-11-23 2022-03-08 国网黑龙江省电力有限公司双鸭山供电公司 Power information sharing method based on alliance chain
CN114153630B (en) * 2021-11-23 2022-11-18 国网黑龙江省电力有限公司双鸭山供电公司 Power information sharing method based on alliance chain

Also Published As

Publication number Publication date
JP7284064B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
JP7364724B2 (en) Operating system for blockchain IoT devices
TWI734090B (en) Block chain transaction method and device, and electronic equipment
TWI706275B (en) System and method for information protection
Cecchetti et al. Solidus: Confidential distributed ledger transactions via PVORM
JP7289298B2 (en) Computer-implemented system and method for authorizing blockchain transactions using low-entropy passwords
JP6841911B2 (en) Information protection systems and methods
Franco Understanding Bitcoin: Cryptography, engineering and economics
JP6528008B2 (en) Personal Device Security Using Elliptic Curve Cryptography for Secret Sharing
JP7284064B2 (en) Consortium Blockchain System, Calculator, Transaction Approval Method
JP2020507222A (en) System and method for information protection
TW202008271A (en) Method, apparatus and electronic device for blockchain transactions
Wu et al. A regulated digital currency
JP2020502856A (en) System and method for information protection
TW201733303A (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
TW202029044A (en) Block chain transaction generation method and device
TW202008272A (en) Block-chain transaction method and device, and electronic device
WO2020233631A1 (en) Transaction type-based receipt storage method and node
JP6719410B2 (en) Generation device, verification device, and program
WO2021057124A1 (en) Fpga-based privacy block chain implementing method and device
Sathya et al. A comprehensive study of blockchain services: future of cryptography
Shmueli Semi-quantum tokenized signatures
WO2018105038A1 (en) Communication device and distributed ledger system
Sui et al. AuxChannel: Enabling efficient bi-directional channel for scriptless blockchains
US11669833B1 (en) Blockchain endpoint protection
Hajar et al. Blockchain Security Attacks: A Review Study

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230518

R150 Certificate of patent or registration of utility model

Ref document number: 7284064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150