JP6909452B2 - Information processing methods, information processing devices, programs and information processing systems - Google Patents

Information processing methods, information processing devices, programs and information processing systems Download PDF

Info

Publication number
JP6909452B2
JP6909452B2 JP2018236692A JP2018236692A JP6909452B2 JP 6909452 B2 JP6909452 B2 JP 6909452B2 JP 2018236692 A JP2018236692 A JP 2018236692A JP 2018236692 A JP2018236692 A JP 2018236692A JP 6909452 B2 JP6909452 B2 JP 6909452B2
Authority
JP
Japan
Prior art keywords
data
information processing
blockchain
common key
key
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
Application number
JP2018236692A
Other languages
Japanese (ja)
Other versions
JP2020099010A (en
Inventor
雅俊 清水
雅俊 清水
誠 古郷
誠 古郷
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2018236692A priority Critical patent/JP6909452B2/en
Publication of JP2020099010A publication Critical patent/JP2020099010A/en
Application granted granted Critical
Publication of JP6909452B2 publication Critical patent/JP6909452B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理方法、情報処理装置、プログラムならびに情報処理システムに関する。 The present invention relates to an information processing method, an information processing device, a program, and an information processing system.

近年、いくつかのトランザクションのデータとハッシュ値等とを含むデータを1つのブロックとして生成し、生成したブロックをチェーン状に連結したうえで複数のノード間で共有する、ブロックチェーンが知られている。ブロックチェーンは、その特性から改ざん不可能な情報共有プラットフォームとして期待されている。しかし、ブロックチェーンは、複数のノード間でデータを共有するため、あるノードで記録されたデータは他のノードと共有されて閲覧可能になる。すなわち、例えばユーザ間、組織間、或いは企業間でやり取りするデータを扱う場合、データの機密性の確保が課題となる場合がある。 In recent years, a blockchain has been known in which data including data of several transactions and hash values, etc. is generated as one block, the generated blocks are connected in a chain shape, and then shared among a plurality of nodes. .. Blockchain is expected as an information sharing platform that cannot be tampered with due to its characteristics. However, since the blockchain shares data among a plurality of nodes, the data recorded by one node can be shared and viewed by other nodes. That is, for example, when dealing with data exchanged between users, organizations, or companies, ensuring the confidentiality of the data may be an issue.

このような課題に対し、特許文献1は、スマートフォン等の装置がブロックチェーンに新規ブロックを追加する際に、共通鍵により暗号化したトランザクションのデータを、参照可能者の公開鍵により共通鍵を暗号化したデータと記録する技術を提案している。特許文献1で提案された技術を用いることにより、ブロックチェーンで共有されるデータを参照可能者のみが復号化して参照することが可能になる。 In response to such a problem, Patent Document 1 discloses that when a device such as a smartphone adds a new block to a blockchain, the transaction data encrypted by the common key is encrypted by the public key of a referrer. We are proposing a technology for recording and converting data. By using the technique proposed in Patent Document 1, only a referrer can decode and refer to the data shared on the blockchain.

特開2017−195627号公報JP-A-2017-195627

ところで、特許文献1に記載のように各携帯端末がノードとなるブロックチェーンのシステムとは異なり、サービス等を提供する企業等のアプリケーションサーバからブロックチェーンのノードにアクセスするシステムを構築する場合がある。すなわち、ノード上で動作するブロックチェーンサーバが、ブロックチェーンクライアント(例えばアプリケーションサーバ)からの要求を受信する。そして、ブロックチェーンサーバ上で動作するスマートコントラクトプログラムにより所定のビジネスロジックを実行し、所定のデータをブロックチェーンに記録する。 By the way, unlike the blockchain system in which each mobile terminal serves as a node as described in Patent Document 1, there is a case where a system for accessing a blockchain node is constructed from an application server of a company or the like that provides services or the like. .. That is, the blockchain server operating on the node receives the request from the blockchain client (for example, the application server). Then, the smart contract program running on the blockchain server executes the predetermined business logic and records the predetermined data in the blockchain.

このようなシステムでは、ブロックチェーンクライアントからスマートコントラクトに引き渡されるデータがブロックチェーンに記録されるように構成されるものがある。このようなシステムで秘匿化の必要なデータを扱う場合、ブロックチェーンクライアントから引き渡されるデータは予め暗号化されている必要がある。一方、スマートコントラクトで所定のビジネスロジックを実行できるようにするためには、データを復号化する必要があり、システム内の鍵の扱いが課題となる。 Some such systems are configured so that the data passed from the blockchain client to the smart contract is recorded on the blockchain. When handling data that needs to be concealed in such a system, the data delivered from the blockchain client needs to be encrypted in advance. On the other hand, in order to be able to execute a predetermined business logic with a smart contract, it is necessary to decrypt the data, and the handling of the key in the system becomes an issue.

本発明は、上記課題に鑑みてなされ、その目的は、ブロックチェーンにおいて暗号化されたデータを扱う場合に、暗号化されたデータの受け渡しと所定のビジネスロジックの実行とを両立する技術を実現することである。 The present invention has been made in view of the above problems, and an object of the present invention is to realize a technique for both passing encrypted data and executing predetermined business logic when handling encrypted data in a blockchain. That is.

この課題を解決するため、例えば本発明の情報処理方法は以下の構成を備える。すなわち、外部装置と通信する情報処理装置において各工程が実行される情報処理方法であって、外部装置において共通鍵を用いてトランザクションのデータを暗号化することで生成された第1データと、前記トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて前記外部装置において前記共通鍵を暗号化することで生成された第2データと、共通鍵とを、外部装置から受信する受信工程と、受信工程において受信された共通鍵を用いて、第1データからトランザクションのデータを復号化する復号化工程と、第1データから復号化されたトランザクションのデータに対して所定のビジネスロジックを実行して、所定のビジネスロジックの実行結果を出力する処理工程と、共通鍵を用いて所定のビジネスロジックの実行結果を暗号化する暗号化工程と、暗号化された実行結果と前記第2データとを、ブロックチェーンの同一のブロックに記録する記録工程と、を有する、ことを特徴とする。 In order to solve this problem, for example, the information processing method of the present invention has the following configuration. That is, it is an information processing method in which each process is executed in an information processing device that communicates with an external device, and the first data generated by encrypting transaction data using a common key in the external device, and the above-mentioned first data. A receiving process in which the second data generated by encrypting the common key in the external device using the public key associated with the entity that can refer to the transaction data and the common key are received from the external device. And, using the common key received in the receiving process, the decoding process that decodes the transaction data from the first data and the predetermined business logic are executed for the transaction data decrypted from the first data. Then, a processing process for outputting the execution result of the predetermined business logic, an encryption process for encrypting the execution result of the predetermined business logic using a common key, the encrypted execution result, and the second data. Is recorded in the same block of the blockchain.

本発明によれば、ブロックチェーンにおいて暗号化されたデータを扱う場合に、暗号化されたデータの受け渡しと所定のビジネスロジックの実行とを両立する技術を実現することが可能になる。 According to the present invention, when handling encrypted data in a blockchain, it is possible to realize a technique that achieves both transfer of encrypted data and execution of predetermined business logic.

本発明に係る情報処理システムの概要を説明する図The figure explaining the outline of the information processing system which concerns on this invention. 実施形態1に係る情報処理装置の一例としてのブロックチェーンサーバの機能構成例を示すブロック図A block diagram showing a functional configuration example of a blockchain server as an example of the information processing apparatus according to the first embodiment. 実施形態1に係る情報処理装置の一例としてのアプリケーションサーバの機能構成例を示すブロック図A block diagram showing a functional configuration example of an application server as an example of the information processing apparatus according to the first embodiment. 実施形態1に係るブロックチェーンサーバのソフトウェア構成例とブロックチェーンの構成例とを模式的に示す図The figure which shows typically the software configuration example of the blockchain server which concerns on Embodiment 1 and the blockchain configuration example. 実施形態1に係る書込処理における、アプリケーションサーバとブロックチェーンサーバのそれぞれの動作を示すフローチャートA flowchart showing the operation of the application server and the blockchain server in the writing process according to the first embodiment. 実施形態1に係る読出処理における、アプリケーションサーバとブロックチェーンサーバのそれぞれの動作を示すフローチャートA flowchart showing the operation of the application server and the blockchain server in the read process according to the first embodiment. 実施形態2に係る書込処理における、アプリケーションサーバとブロックチェーンサーバのそれぞれの動作を示すフローチャートA flowchart showing the operation of the application server and the blockchain server in the writing process according to the second embodiment. 実施形態2に係る読出処理における、アプリケーションサーバとブロックチェーンサーバのそれぞれの動作を示すフローチャートA flowchart showing the operation of the application server and the blockchain server in the read process according to the second embodiment.

(実施形態1)
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。
(Embodiment 1)
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings.

<ブロックチェーンシステムの構成例>
図1を参照して、本実施形態に係る情報処理システムの一例としてのブロックチェーンシステム100の構成例について説明する。ブロックチェーンシステム100は、情報処理装置の一例としての、ブロックチェーンサーバ150a〜150nと、情報処理装置の一例としてのアプリケーションサーバ110a〜110bとを含む。これらの情報処理装置の台数は例示であって、これらの数に限定されるものではない。ブロックチェーンサーバ150a〜ブロックチェーンサーバ150nはそれぞれが別個のノード上で動作するブロックチェーンサーバを示すが、これらを特に区別しない場合は単にブロックチェーンサーバ150という。ブロックチェーンサーバ150a〜150nはP2Pネットワークによって他のブロックチェーンサーバと通信可能である。詳細は後述するが、ブロックチェーンサーバ150は、アプリケーションサーバ110から受信したトランザクション(例えば企業Aから企業BにXX円支払う)の内容に基づいてスマートコントラクトを実行する。そして、その実行結果について、複数のブロックチェーンサーバ150でコンセンサスアルゴリズムに基づき合意をとり、ブロックチェーンを更新する。また、ブロックチェーンサーバ150は、ブロックチェーンに格納されているトランザクションのデータを読み出して、アプリケーションサーバ110へ送信することができる。
<Blockchain system configuration example>
A configuration example of the blockchain system 100 as an example of the information processing system according to the present embodiment will be described with reference to FIG. The blockchain system 100 includes blockchain servers 150a to 150n as an example of an information processing device and application servers 110a to 110b as an example of an information processing device. The number of these information processing devices is an example, and is not limited to these numbers. Each of the blockchain server 150a to the blockchain server 150n indicates a blockchain server operating on a separate node, but when these are not particularly distinguished, they are simply referred to as a blockchain server 150. The blockchain servers 150a to 150n can communicate with other blockchain servers via a P2P network. Although the details will be described later, the blockchain server 150 executes the smart contract based on the content of the transaction received from the application server 110 (for example, the company A pays the company B XX yen). Then, the plurality of blockchain servers 150 agree on the execution result based on the consensus algorithm, and update the blockchain. Further, the blockchain server 150 can read transaction data stored in the blockchain and send it to the application server 110.

アプリケーションサーバ110は、図1に示す例では、組織Aが管理する組織Aアプリケーションサーバ110aと組織Bが管理する組織Bアプリケーションサーバ110bとを含む(特に区別しない場合には単にアプリケーションサーバ110という)。アプリケーションサーバ110は、ブロックチェーンクライアントとして動作し、各アプリケーションサーバ110は、組織や企業ごとに管理される。なお、アプリケーションサーバをエンティティという場合がある。また、ブロックチェーンサーバ150a〜150nも、例えば、組織や企業ごとに管理されてよい。 In the example shown in FIG. 1, the application server 110 includes an organization A application server 110a managed by the organization A and an organization B application server 110b managed by the organization B (unless otherwise specified, it is simply referred to as an application server 110). The application server 110 operates as a blockchain client, and each application server 110 is managed for each organization or company. The application server may be called an entity. Further, the blockchain servers 150a to 150n may also be managed for each organization or company, for example.

アプリケーションサーバ110は、通信装置130a或いは通信装置130bと有線又は無線ネットワークを介して通信可能である(通信装置についても、特に区別しない場合には単に通信装置130という)。アプリケーションサーバ110は、通信装置130からのデータに基づいてトランザクションを生成したり、通信装置130が閲覧するトランザクションのデータをクライアントへ送信したりする。通信装置130は、例えばスマートフォンやパーソナルコンピュータを含む。また、アプリケーションサーバ110は、有線又は無線ネットワークを介して、ブロックチェーンサーバ150a〜150nのいずれかと通信可能である。ブロックチェーンサーバ150の間や、アプリケーションサーバ110とブロックチェーンサーバ150との間は、セキュアなプロトコルで通信される。 The application server 110 can communicate with the communication device 130a or the communication device 130b via a wired or wireless network (the communication device is also simply referred to as the communication device 130 unless otherwise specified). The application server 110 generates a transaction based on the data from the communication device 130, and transmits the transaction data to be viewed by the communication device 130 to the client. The communication device 130 includes, for example, a smartphone or a personal computer. Further, the application server 110 can communicate with any of the blockchain servers 150a to 150n via a wired or wireless network. Communication between the blockchain server 150 and between the application server 110 and the blockchain server 150 is performed by a secure protocol.

アプリケーションサーバ110は、通信装置130からトランザクション(例えば企業Aから企業BにXX円支払う)の実行に対するリクエストを受けると、ブロックチェーンサーバ150に当該トランザクションを実行させるためのパラメータを生成する。そして、このパラメータをスマートコントラクトパラメータとしてブロックチェーンサーバ150a〜150nのいずれかに送信する。なお、スマートコントラクトパラメータは、ブロックチェーンサーバ150のスマートコントラクトを呼び出す際のパラメータである。また、スマートコントラクトは、アプリケーションサーバからのデータに応じてブロックチェーンサーバ150側でビジネスロジックを実行するためのプログラムである。 When the application server 110 receives a request from the communication device 130 for executing a transaction (for example, the company A pays the company B XX yen), the application server 110 generates a parameter for causing the blockchain server 150 to execute the transaction. Then, this parameter is transmitted as a smart contract parameter to any of the blockchain servers 150a to 150n. The smart contract parameter is a parameter for calling the smart contract of the blockchain server 150. The smart contract is a program for executing business logic on the blockchain server 150 side according to the data from the application server.

ブロックチェーンサーバ150は、スマートコントラクトパラメータを受信すると、スマートコントラクトを実行して所定のビジネスロジックを実行し、トランザクションとその実行結果とをブロックチェーンに書き込む。所定のビジネスロジックは、例えば、企業Aから企業Bへ仮想的通貨の送金を行ったうえで残金を更新するような処理でもよい。或いは、(実際の支払いは不図示の金融システムによって実行されるが)企業Aから企業Bへの支払いの記録と残金の更新を行うものであってもよい。なお、トランザクションは、支払いに限らず、口座振替のデータや当座預金の口座に係る取引データを対象としてもよい。また、これらの金融機関で取り扱うデータに限らず、秘匿化を要するデータであれば個人の健康に関するデータなど他のデータを対象とするものであってもよい。 Upon receiving the smart contract parameter, the blockchain server 150 executes the smart contract, executes a predetermined business logic, and writes the transaction and the execution result to the blockchain. The predetermined business logic may be, for example, a process of remittance of virtual currency from company A to company B and then updating the balance. Alternatively, it may record payments from Company A to Company B and update the balance (although the actual payments are made by a financial system (not shown). The transaction is not limited to payment, and may target account transfer data or transaction data related to the checking account. Further, the data is not limited to the data handled by these financial institutions, and other data such as data on personal health may be targeted as long as the data requires confidentiality.

(ブロックチェーンシステムにおいて暗号化データを扱う際の課題)
ブロックチェーンシステム100を構成する各装置について説明する前に、ブロックチェーンにおいて暗号化データを扱う際の課題について説明する。ブロックチェーンサーバ150では、スマートコントラクトの呼び出し時のデータ(すなわちスマートコントラクトパラメータ)がブロックチェーンに記録される場合がある。このため、ブロックチェーンに記録されるデータを秘匿化する必要がある場合には、アプリケーションサーバ110側でデータを暗号化しておく必要がある。一方、ブロックチェーンサーバ150側でスマートコントラクトを実行するためにアプリケーションサーバ110からのデータを一旦復号化する必要があり、また、ビジネスロジックの実行結果も暗号化してブロックチェーンに書き込む必要がある。
(Issues when handling encrypted data in a blockchain system)
Before explaining each device constituting the blockchain system 100, problems in handling encrypted data in the blockchain will be described. In the blockchain server 150, the data at the time of calling the smart contract (that is, the smart contract parameter) may be recorded in the blockchain. Therefore, when it is necessary to conceal the data recorded on the blockchain, it is necessary to encrypt the data on the application server 110 side. On the other hand, in order to execute the smart contract on the blockchain server 150 side, it is necessary to temporarily decrypt the data from the application server 110, and it is also necessary to encrypt the execution result of the business logic and write it to the blockchain.

加えて、ブロックチェーンサーバ150におけるスマートコントラクトの実行結果は、コンセンサスを得るブロックチェーンサーバ間で一致する必要がある。このため、スマートコントラクト内で使用可能な暗号アルゴリズムに制約がある。すなわち、暗号化後のデータが複数のサーバ間で一致するように処理の同一性を担保する観点から、原則としてブロックチェーン以外のリポジトリの参照結果を用いるような処理を行うことができない。例えば、ブロックチェーン以外の外部サービスや、ローカルのファイルシステムや環境変数、乱数などを複数のサーバで参照した場合には、処理結果が同一であることが保証されないため、これらの値を用いる暗号アルゴリズムを採用することができない。このように、スマートコントラクトの中で暗号アルゴリズムを用いる場合、その鍵管理が課題となる。 In addition, the execution result of the smart contract on the blockchain server 150 needs to match between the blockchain servers that obtain consensus. Therefore, there are restrictions on the cryptographic algorithms that can be used within smart contracts. That is, from the viewpoint of ensuring the identity of processing so that the encrypted data matches among a plurality of servers, in principle, processing that uses the reference result of a repository other than the blockchain cannot be performed. For example, when external services other than blockchain, local file systems, environment variables, random numbers, etc. are referenced by multiple servers, the processing results are not guaranteed to be the same, so a cryptographic algorithm that uses these values. Cannot be adopted. In this way, when a cryptographic algorithm is used in a smart contract, its key management becomes an issue.

このような課題に対し、例えば、単一の共通鍵を用いる場合には、ブロックチェーンサーバ間で共通鍵のやりとりが必要となる。しかし、仮にこの鍵が流出した場合、既に分散台帳に記録されている広範囲のデータが危険にさらされることになる。一般的な暗号化データの管理では、鍵が流出した場合に鍵を変更してデータを暗号化し直す対応が可能な場合がある。しかし、ブロックチェーンでは、(例えばコンセンサスアルゴリズムやハッシュ値を用いたブロックの構成などの耐改ざん性を向上させるための仕組みにより)過去のデータを、変更した鍵で再暗号化して上書きすることは不可能である。 To solve such a problem, for example, when a single common key is used, it is necessary to exchange the common key between blockchain servers. However, if this key were leaked, a wide range of data already recorded in the distributed ledger would be at risk. In general encrypted data management, if the key is leaked, it may be possible to change the key and re-encrypt the data. However, in the blockchain, it is not possible to re-encrypt and overwrite past data with a changed key (for example, by a mechanism for improving tamper resistance such as a consensus algorithm or block configuration using hash values). It is possible.

他方、トランザクションごとに鍵を生成する場合、ブロックチェーンに記録したトランザクションの数だけ鍵を管理する必要があるため、そのような鍵の管理をどのように行うかが課題となる。以下、当該課題を解決するための実施形態について具体的に説明する。 On the other hand, when a key is generated for each transaction, it is necessary to manage as many keys as the number of transactions recorded on the blockchain, so how to manage such keys becomes an issue. Hereinafter, embodiments for solving the problem will be specifically described.

<ブロックチェーンサーバの構成>
次に、ブロックチェーンサーバ150の構成について、図2を参照して説明する。なお、説明する機能ブロックの各々は、統合されまたは分離されてもよく、また説明する機能が別のブロックで実現されてもよい。また、各機能ブロックはハードウェアとして説明するものがソフトウェアで実現されてもよく、その逆であってもよい。更に、ブロックチェーンサーバ150がハードウェアを用いて構成される例に説明するが、仮想マシンとして実現されてもよい。
<Blockchain server configuration>
Next, the configuration of the blockchain server 150 will be described with reference to FIG. It should be noted that each of the functional blocks described may be integrated or separated, and the functions described may be realized in separate blocks. Further, each functional block may be described as hardware and may be realized by software, and vice versa. Further, although the example in which the blockchain server 150 is configured by using hardware will be described, it may be realized as a virtual machine.

通信部201は、ネットワークを介してアプリケーションサーバ110又は他のブロックチェーンサーバ150と通信する通信回路を含む。制御部202によって処理された情報をアプリケーションサーバ110に送信したり、制御部202によって処理される情報を通信装置130等から受信したりする。 The communication unit 201 includes a communication circuit that communicates with the application server 110 or another blockchain server 150 via a network. The information processed by the control unit 202 is transmitted to the application server 110, and the information processed by the control unit 202 is received from the communication device 130 or the like.

制御部202は、中央演算装置であるCPU210とRAM211とを含む。制御部202は、記録部203に記憶されたプログラムをRAM211に展開、実行することにより、制御部202内部の各部の動作を制御したり、ブロックチェーンサーバ150の各部の動作を制御したりする。また、制御部202は、後述するように、ノードプロセスを実行して、スマートコントラクトを実行したり、ブロックチェーンへアクセスしたりする。RAM211は、例えばDRAM等の揮発性の記憶媒体を含み、制御部202がプログラムを実行するためのパラメータや処理結果等を一時的に記憶する。 The control unit 202 includes a CPU 210 and a RAM 211, which are central arithmetic units. The control unit 202 controls the operation of each part inside the control unit 202 or controls the operation of each part of the blockchain server 150 by expanding and executing the program stored in the recording unit 203 in the RAM 211. Further, the control unit 202 executes a node process to execute a smart contract or access a blockchain, as will be described later. The RAM 211 includes a volatile storage medium such as a DRAM, and temporarily stores parameters, processing results, and the like for the control unit 202 to execute a program.

記録部203は、例えば半導体メモリ或いはハードディスク等の不揮発性の記録媒体を含み、ブロックチェーンサーバ150の動作に必要な設定値、プログラム、およびブロックチェーンのデータを保持する。ブロックチェーンの構成については後述するが、ブロックチェーンは、複数のトランザクションのデータ等を格納したブロックをチェーン状に繋げた構成で保持されている。各トランザクションのデータは暗号化された状態でブロックチェーンに格納される(実際にはトランザクションごとに存在するが、便宜上、暗号化済データ221として表す)。また、各トランザクションのデータは、トランザクションごとに生成される共通鍵(Tx鍵という)を用いて暗号化される。このTx鍵も、後述するように、暗号化されてブロックチェーンに格納される(実際にはトランザクションごとに存在するが、便宜上、暗号化済Tx鍵222として表す)。 The recording unit 203 includes a non-volatile recording medium such as a semiconductor memory or a hard disk, and holds set values, programs, and blockchain data necessary for the operation of the blockchain server 150. The configuration of the blockchain will be described later, but the blockchain is held in a configuration in which blocks storing data of a plurality of transactions are connected in a chain shape. The data of each transaction is stored in the blockchain in an encrypted state (actually, it exists for each transaction, but for convenience, it is represented as encrypted data 221). Further, the data of each transaction is encrypted using a common key (called a Tx key) generated for each transaction. This Tx key is also encrypted and stored in the blockchain as described later (actually, it exists for each transaction, but for convenience, it is represented as an encrypted Tx key 222).

アプリケーション要求取得部212は、アプリケーションサーバ110から、トランザクションの書き込み要求、鍵取得要求、およびデータ取得要求などの要求信号を受信して、要求信号に含まれるパラメータを取得する。トランザクションの書き込み要求は、トランザクションをブロックチェーンに書き込む処理(書込処理)を開始させるための要求である。一方、鍵取得要求とデータ取得要求は、ブロックチェーンからトランザクションのデータを読み出す処理(読出処理)において、アプリケーションサーバ110から送信される。これらの要求信号については後述する。 The application request acquisition unit 212 receives request signals such as a transaction write request, a key acquisition request, and a data acquisition request from the application server 110, and acquires parameters included in the request signals. The transaction write request is a request for starting a process of writing a transaction to the blockchain (write process). On the other hand, the key acquisition request and the data acquisition request are transmitted from the application server 110 in the process of reading the transaction data from the blockchain (reading process). These request signals will be described later.

暗号化復号化処理部213は、アプリケーションサーバ110から受信したトランザクションのデータや鍵、ブロックチェーンから読み出したトランザクションのデータや鍵、あるいはスマートコントラクトの実行結果を、暗号化したり、復号化したりする。ビジネスロジック実行部214は、後述するように、スマートコントラクトを実行するためのコンテナ(例えば、各コンテナは仮想マシンで実現される)上で、スマートコントラクトを実行する。ビジネスロジック実行部214は、暗号化復号化処理部213によって復号化されたトランザクションのデータの内容に基づいて、スマートコントラクトに記述されているビジネスロジックを実行し、その実行結果を出力する。なお、以下の実施形態では、コンテナ上でスマートコントラクトを実行する場合を例に説明するが、スマートコントラクトの実行はコンテナ上での実行に限定されない。 The encryption / decryption processing unit 213 encrypts or decrypts the transaction data or key received from the application server 110, the transaction data or key read from the blockchain, or the execution result of the smart contract. As will be described later, the business logic execution unit 214 executes the smart contract on a container for executing the smart contract (for example, each container is realized by a virtual machine). The business logic execution unit 214 executes the business logic described in the smart contract based on the contents of the transaction data decrypted by the encryption / decryption processing unit 213, and outputs the execution result. In the following embodiment, the case where the smart contract is executed on the container will be described as an example, but the execution of the smart contract is not limited to the execution on the container.

ブロック書込部215は、暗号化されたトランザクションのデータと、暗号化されたスマートコントラクトの実行結果と、暗号化された鍵とを、ブロックチェーン220に書き込む(すなわち記録する)。また、これらのデータをブロックチェーン220に書き込むための一連の処理(例えば、コンセンサスアルゴリズムの実行等)を行う。 The block writing unit 215 writes (that is, records) the encrypted transaction data, the execution result of the encrypted smart contract, and the encrypted key to the blockchain 220. In addition, a series of processes for writing these data to the blockchain 220 (for example, execution of a consensus algorithm, etc.) are performed.

ブロック読出部216は、ブロックチェーン220から、暗号化されたトランザクションのデータと、暗号化されたスマートコントラクトの実行結果と、暗号化された鍵とを読み出す。 The block reading unit 216 reads the encrypted transaction data, the execution result of the encrypted smart contract, and the encrypted key from the block chain 220.

図4には、ブロックチェーンサーバ150のソフトウェア構成例とブロックチェーン220の構成例とを模式的に示している。ノードプロセス401は、ブロックチェーンサーバ150におけるスマートコントラクトの実行やブロックチェーンへのアクセス(書き込みおよび読み出し)を制御するプロセスであり、制御部202によって実行される。 FIG. 4 schematically shows a software configuration example of the blockchain server 150 and a configuration example of the blockchain 220. The node process 401 is a process that controls the execution of the smart contract and the access (write and read) to the blockchain in the blockchain server 150, and is executed by the control unit 202.

ブロックチェーンにチェーン状に記録される個々のブロック425は、内部に、トランザクション(群)のハッシュ値421と、タイムスタンプ等の情報422、前のブロックのハッシュ値423を含む。これらの412〜423のハッシュ値は、次のブロック(n+1)における、前のブロックのハッシュ値423に格納される。ブロックチェーンでは、このような構成により改ざんを困難にしている。ハッシュ値421は、ブロックに含まれる複数のトランザクションに基づいて計算されるハッシュ値である。そのほか、ブロック425には、個々のトランザクションの記録と実行結果を表す情報424が格納される。この情報424には、個々のトランザクションの内容として、例えば、スマートコントラクトパラメータや、その実行結果が含まれる。すなわち、ブロック425には、アプリケーションサーバ110から送信される、暗号化されたトランザクションのデータや、暗号化された鍵、暗号化されたビジネスロジックの実行結果が含まれる。なお、ブロックチェーン220は、ブロック425がチェーン状に構成されるブロックチェーンとは別に、データをキー・バリューで管理する不図示の分散DB(ワールドステートともいわれる)を備えてもよい。この場合、分散DBは、例えば、スマートコントラクトの実行結果を格納する。例えば、企業Aから企業BへXX円を支払うトランザクションをスマートコントラクトで実行した場合、分散DBは、キーを「企業A」、バリューを「残高100億円」として保持する。このように分散DBを用いれば、過去の取引履歴を用いて再計算すること無く、現在の状態を取得することができ、アプリケーションサーバ110から残高照会などの、データの読み出し要求に対して、応答速度が高速化される。 Each block 425 recorded in a chain shape on the block chain internally includes a transaction (group) hash value 421, information such as a time stamp 422, and a hash value 423 of the previous block. These hash values of 421 to 423 are stored in the hash value 423 of the previous block in the next block (n + 1). In the blockchain, such a configuration makes tampering difficult. The hash value 421 is a hash value calculated based on a plurality of transactions included in the block. In addition, block 425 stores information 424 representing the recording and execution results of individual transactions. This information 424 includes, for example, smart contract parameters and the execution result thereof as the contents of each transaction. That is, the block 425 contains the encrypted transaction data, the encrypted key, and the execution result of the encrypted business logic transmitted from the application server 110. The blockchain 220 may include a distributed database (also referred to as a world state) (also referred to as a world state), which is not shown and manages data by key value, in addition to the blockchain in which the block 425 is formed in a chain shape. In this case, the distributed DB stores, for example, the execution result of the smart contract. For example, when a transaction for paying XX yen from company A to company B is executed by a smart contract, the distributed DB holds the key as "company A" and the value as "balance 10 billion yen". By using the distributed database in this way, the current state can be acquired without recalculating using the past transaction history, and the application server 110 responds to a data read request such as a balance inquiry. The speed is increased.

スマートコントラクト実行用コンテナ410は、スマートコントラクトを実行するためのコンテナ(例えば、各コンテナは仮想マシンで実現される)である。スマートコントラクト411は、トランザクションの内容に基づいて、例えば、支払、残高照会、口座振替といった目的ごとに関数化された処理を実行するプログラムである。 The smart contract execution container 410 is a container for executing a smart contract (for example, each container is realized by a virtual machine). The smart contract 411 is a program that executes functionalized processing for each purpose such as payment, balance inquiry, and fund transfer based on the contents of a transaction.

<アプリケーションサーバ110の構成>
更に、アプリケーションサーバ110の構成について、図3を参照して説明する。なお、説明する機能ブロックの各々は、統合されまたは分離されてもよく、また説明する機能が別のブロックで実現されてもよい。また、各機能ブロックはハードウェアとして説明するものがソフトウェアで実現されてもよく、その逆であってもよい。更に、アプリケーションサーバ110がハードウェアを用いて構成される例に説明するが、仮想マシンとして実現されてもよい。
<Configuration of application server 110>
Further, the configuration of the application server 110 will be described with reference to FIG. It should be noted that each of the functional blocks described may be integrated or separated, and the functions described may be realized in separate blocks. Further, each functional block may be described as hardware and may be realized by software, and vice versa. Further, although the example in which the application server 110 is configured by using hardware will be described, it may be realized as a virtual machine.

通信部301は、ネットワークを介してブロックチェーンサーバ150a〜150nや、通信装置130と通信する通信回路を含む。制御部302によって処理された情報を通信装置130やブロックチェーンサーバ150に送信したり、制御部302によって処理される情報を通信装置130やブロックチェーンサーバ150から受信したりする。 The communication unit 301 includes a communication circuit that communicates with the blockchain servers 150a to 150n and the communication device 130 via the network. The information processed by the control unit 302 is transmitted to the communication device 130 and the blockchain server 150, and the information processed by the control unit 302 is received from the communication device 130 and the blockchain server 150.

制御部302は、中央演算装置であるCPU310とRAM311とを含む。制御部302は、記録部303に記憶されたプログラムをRAM311に展開、実行することにより、制御部302内部の各部の動作を制御したり、アプリケーションサーバ110の各部の動作を制御したりする。RAM311は、例えばDRAM等の揮発性の記憶媒体を含み、制御部302がプログラムを実行するためのパラメータや処理結果等を一時的に記憶する。 The control unit 302 includes a CPU 310 and a RAM 311 which are central arithmetic units. The control unit 302 controls the operation of each part inside the control unit 302 or controls the operation of each part of the application server 110 by expanding and executing the program stored in the recording unit 303 in the RAM 311. The RAM 311 includes a volatile storage medium such as a DRAM, and temporarily stores parameters, processing results, and the like for the control unit 302 to execute a program.

記録部303は、例えば半導体メモリ或いはハードディスク等の不揮発性の記録媒体を含み、アプリケーションサーバ110の動作に必要な設定値、およびプログラムのデータを保持する。アプリケーションサーバ110aの記録部303は、アプリケーションサーバ110a(すなわち自エンティティ)に関連付けられた鍵ペア321を保持する。この鍵ペアは、公開鍵と秘密鍵のペアである。例えば、アプリケーションサーバ110aの公開鍵は、ブロックチェーンサーバ150のそれぞれや他のアプリケーションサーバ110b〜110nに公開されている。これらのサーバにおいて当該公開鍵を用いて共通鍵が暗号化された場合、アプリケーションサーバ110a(自エンティティ)の秘密鍵を用いて復号化する場合にのみ共通鍵を取得することができる。また、記録部303は、アプリケーションサーバ110b〜110n(他のエンティティ)の公開鍵322を保持する。なお、記録部303は、自エンティティの秘密鍵を保持する必要があるが、自エンティティの公開鍵や他のエンティティの公開鍵は必要に応じて外部装置から取得してもよい。 The recording unit 303 includes a non-volatile recording medium such as a semiconductor memory or a hard disk, and holds set values necessary for the operation of the application server 110 and program data. The recording unit 303 of the application server 110a holds the key pair 321 associated with the application server 110a (that is, its own entity). This key pair is a public / private key pair. For example, the public key of the application server 110a is open to each of the blockchain servers 150 and other application servers 110b to 110n. When the common key is encrypted using the public key in these servers, the common key can be obtained only when decrypting using the private key of the application server 110a (own entity). Further, the recording unit 303 holds the public key 322 of the application servers 110b to 110n (other entities). The recording unit 303 needs to hold the private key of the own entity, but the public key of the own entity and the public key of another entity may be acquired from an external device as needed.

鍵取得部312は、トランザクションごとに生成される共通鍵(すなわちTx鍵)を生成する。暗号化復号化処理部313は、鍵取得部312で生成された共通鍵やトランザクションを暗号化したり、ブロックチェーンサーバ150から受信した暗号化された鍵を復号化したりする。 The key acquisition unit 312 generates a common key (that is, a Tx key) generated for each transaction. The encryption / decryption processing unit 313 encrypts the common key or transaction generated by the key acquisition unit 312, or decrypts the encrypted key received from the blockchain server 150.

アプリケーション要求生成部314は、必要なパラメータを格納して、ブロックチェーンサーバ150へ送信するトランザクションの書き込み要求、鍵取得要求、およびデータ取得要求などの要求信号を生成する。アプリケーション要求生成部314は、トランザクションのデータをブロックチェーンに書き込もうとする場合、トランザクションの書き込み要求を生成する。例えば、共通鍵(Tx鍵)を用いてトランザクションのデータを暗号化することで生成されたデータ(暗号化済データ)と、共通鍵と、共通鍵を各エンティティの公開鍵を用いて暗号化したデータ(暗号化済Tx鍵)と、を格納して、トランザクションの書き込み要求を生成する。 The application request generation unit 314 stores necessary parameters and generates request signals such as a transaction write request, a key acquisition request, and a data acquisition request to be transmitted to the blockchain server 150. When the application request generation unit 314 tries to write the transaction data to the blockchain, the application request generation unit 314 generates a transaction write request. For example, the data (encrypted data) generated by encrypting the transaction data using the common key (Tx key), the common key, and the common key are encrypted using the public key of each entity. The data (encrypted Tx key) and the data (encrypted Tx key) are stored to generate a write request for the transaction.

このとき、アプリケーション要求生成部314は、スマートコントラクトパラメータに、暗号化済データ、共通鍵、暗号化済Tx鍵を格納する。本実施形態のコントラクトパラメータは、ブロックチェーンに記録されるフィールドと、ブロックチェーンに記録されないように区別されたフィールド(一時フィールドともいう)とを含むように構成される。アプリケーション要求生成部314は、暗号化済データと暗号化済Tx鍵とを、ブロックチェーンに記録されるフィールドに格納し、一方、共通鍵を一時フィールドに格納する。一時フィールドは、スマートコントラクトに引き渡されるとその場で消費されて残らないように扱われる。本実施形態では、一時フィールドのデータは、アプリケーションサーバ110とブロックチェーンサーバ150との間で共通鍵を共有するためのデータとして機能する。 At this time, the application request generation unit 314 stores the encrypted data, the common key, and the encrypted Tx key in the smart contract parameter. The contract parameter of the present embodiment is configured to include a field recorded on the blockchain and a field (also referred to as a temporary field) distinguished so as not to be recorded on the blockchain. The application request generation unit 314 stores the encrypted data and the encrypted Tx key in the field recorded in the blockchain, while storing the common key in the temporary field. Temporary fields are treated so that when they are handed over to a smart contract, they are consumed on the fly and do not remain. In the present embodiment, the data in the temporary field functions as data for sharing the common key between the application server 110 and the blockchain server 150.

一方、アプリケーション要求生成部314は、鍵取得要求とデータ取得要求を、ブロックチェーンからトランザクションのデータを読み出す処理(読出処理)において生成する。これらの要求信号の詳細については後述する。 On the other hand, the application request generation unit 314 generates a key acquisition request and a data acquisition request in a process (reading process) of reading transaction data from the blockchain. Details of these request signals will be described later.

結果送信部315は、ブロックチェーンサーバ150から、トランザクションの書き込みや読み出したデータに対するビジネスロジックの実行が終了した場合に、処理の完了通知と処理結果とを受信する。そして、通信装置130に表示できるように処理結果を通信装置130に送信する。 The result transmission unit 315 receives the processing completion notification and the processing result from the blockchain server 150 when the transaction writing and the execution of the business logic for the read data are completed. Then, the processing result is transmitted to the communication device 130 so that it can be displayed on the communication device 130.

<書込処理におけるアプリケーションサーバ110の動作>
次に、図5(a)を参照して、アプリケーションサーバ110における書込処理の動作について説明する。なお、本処理は、制御部302のCPU310が記録部303に記録されるプログラムを実行することにより実現される。また、本処理は、例えば、企業Aのユーザが通信装置130aに表示されているWebページを介して、「企業Aから企業BにXX円支払う」要求を発信し、アプリケーションサーバ110が当該要求を受信した場合を例に説明する。
<Operation of application server 110 in write processing>
Next, the operation of the write process in the application server 110 will be described with reference to FIG. 5 (a). This process is realized by the CPU 310 of the control unit 302 executing a program recorded in the recording unit 303. Further, in this process, for example, the user of the company A sends a request "pay XX yen from the company A to the company B" via the Web page displayed on the communication device 130a, and the application server 110 makes the request. The case of receiving the data will be described as an example.

S501において、鍵取得部312は、トランザクションのデータを暗号化するための共通鍵(Tx鍵)を、トランザクションごとに生成する。具体的には、制御部302が、通信装置130からの要求に基づいて「企業Aから企業BにXX円支払う」を示すトランザクションを作成し、鍵取得部312は、生成されたトランザクションを暗号化するためのTx鍵をランダムに生成する。 In S501, the key acquisition unit 312 generates a common key (Tx key) for encrypting transaction data for each transaction. Specifically, the control unit 302 creates a transaction indicating "pay XX yen from company A to company B" based on the request from the communication device 130, and the key acquisition unit 312 encrypts the generated transaction. Randomly generate a Tx key to do this.

S502において、暗号化復号化処理部313は、共通鍵(Tx鍵)を用いてトランザクションのデータを暗号化することで暗号化済データを生成する。S503において、暗号化復号化処理部313は、共通鍵を各エンティティの公開鍵を用いて暗号化する。例えば、企業Aのエンティティ(アプリケーションサーバ110)の公開鍵を用いて共通鍵を暗号化することで暗号化済Tx鍵を生成する。暗号化済Tx鍵は、企業Aのエンティティ(アプリケーションサーバ110)の秘密鍵によってのみ復号化される。 In S502, the encryption / decryption processing unit 313 generates encrypted data by encrypting transaction data using a common key (Tx key). In S503, the encryption / decryption processing unit 313 encrypts the common key using the public key of each entity. For example, an encrypted Tx key is generated by encrypting the common key using the public key of the entity (application server 110) of the company A. The encrypted Tx key is decrypted only by the private key of the entity (application server 110) of the company A.

S504において、アプリケーション要求生成部314は、スマートコントラクトパラメータを含む、トランザクションの書き込み要求を生成し、当該書き込み要求をブロックチェーンサーバ150へ送信する。上述のように、トランザクションの書き込み要求のスマートコントラクトパラメータには、暗号化済データ、共通鍵、暗号化済Tx鍵が格納されており、このうち共通鍵は一時フィールドに格納される。 In S504, the application request generation unit 314 generates a transaction write request including the smart contract parameter, and transmits the write request to the blockchain server 150. As described above, the smart contract parameter of the transaction write request stores the encrypted data, the common key, and the encrypted Tx key, of which the common key is stored in the temporary field.

S505において、結果送信部315は、書き込み後の処理を行う。例えば、結果送信部315は、ブロックチェーンサーバ150においてトランザクションの書き込みや読み出したデータに対するビジネスロジックの実行が終了した場合に、ブロックチェーンサーバ150から処理の完了通知と処理結果とを受信する。そして、通信装置130に表示するための処理結果を作成して、通信装置130に送信する。制御部302は、処理結果を通信装置130へ送信すると、本一連の動作を終了する。 In S505, the result transmission unit 315 performs post-writing processing. For example, the result transmission unit 315 receives the processing completion notification and the processing result from the blockchain server 150 when the transaction writing and the execution of the business logic for the read data are completed in the blockchain server 150. Then, a processing result for displaying on the communication device 130 is created and transmitted to the communication device 130. When the control unit 302 transmits the processing result to the communication device 130, the control unit 302 ends this series of operations.

<書込処理におけるブロックチェーンサーバ150の動作>
次に、図5(b)を参照して、ブロックチェーンサーバ150における書込処理の動作について説明する。なお、本処理は、制御部202のCPU210が記録部203に記録されるプログラムを実行することにより実現される。また、本処理は、S504において送信された、トランザクションの書き込み要求をアプリケーションサーバ110から受信した場合に開始される。
<Operation of blockchain server 150 in write processing>
Next, the operation of the write process in the blockchain server 150 will be described with reference to FIG. 5 (b). This process is realized by the CPU 210 of the control unit 202 executing the program recorded in the recording unit 203. Further, this process is started when the transaction write request transmitted in S504 is received from the application server 110.

S511において、アプリケーション要求取得部212は、スマートコントラクトパラメータを含むトランザクションの書き込み要求を受信する。S512において、暗号化復号化処理部213は、スマートコントラクトパラメータに含まれる共通鍵(Tx鍵)を用いて、スマートコントラクトパラメータに含まれる暗号化済データからトランザクションのデータを復号化する。 In S511, the application request acquisition unit 212 receives the write request of the transaction including the smart contract parameter. In S512, the encryption / decryption processing unit 213 decrypts the transaction data from the encrypted data included in the smart contract parameter by using the common key (Tx key) included in the smart contract parameter.

S513において、ビジネスロジック実行部214は、暗号化復号化処理部213によって復号化されたトランザクションのデータの内容に基づいて、スマートコントラクトに記述されているビジネスロジックを実行し、その実行結果を出力する。例えば、「企業Aから企業BにXX円支払う」のトランザクションについて、企業Aおよび企業Bの現在の残金を取引額に応じて計算し、実行結果として出力する。 In S513, the business logic execution unit 214 executes the business logic described in the smart contract based on the contents of the transaction data decrypted by the encryption / decryption processing unit 213, and outputs the execution result. .. For example, for the transaction of "pay XX yen from company A to company B", the current balances of company A and company B are calculated according to the transaction amount and output as the execution result.

S514において、暗号化復号化処理部213は、共通鍵(Tx鍵)を用いて、ビジネスロジックの実行結果を暗号化する。S514において、ブロック書込部215は、暗号化されたトランザクションのデータと、暗号化されたスマートコントラクトの実行結果と、暗号化された鍵とを、ブロックチェーン220に書き込む(すなわち記録する)。また、コンセンサスアルゴリズムの実行等の、ブロックチェーンへの書き込みに必要な処理を終了すると、アプリケーションサーバ110に終了通知を送信する。制御部202は、その後、本一連の処理を終了する。 In S514, the encryption / decryption processing unit 213 encrypts the execution result of the business logic by using the common key (Tx key). In S514, the block writing unit 215 writes (that is, records) the encrypted transaction data, the execution result of the encrypted smart contract, and the encrypted key to the blockchain 220. Further, when the processing required for writing to the blockchain such as the execution of the consensus algorithm is completed, the end notification is transmitted to the application server 110. The control unit 202 then ends this series of processes.

<読出処理におけるアプリケーションサーバ110の動作>
次に、図6(a)を参照して、アプリケーションサーバ110における読出処理の動作について説明する。なお、本処理は、制御部302のCPU310が記録部303に記録されるプログラムを実行することにより実現される。また、本処理は、例えば、企業Aのユーザが通信装置130aに表示されているWebページを介して、「企業Aの現在の残高を参照」を要求し、アプリケーションサーバ110が当該要求を受信した場合を例に説明する。
<Operation of application server 110 in read processing>
Next, the operation of the read process in the application server 110 will be described with reference to FIG. 6A. This process is realized by the CPU 310 of the control unit 302 executing a program recorded in the recording unit 303. Further, in this process, for example, the user of the company A requests "refer to the current balance of the company A" via the Web page displayed on the communication device 130a, and the application server 110 receives the request. A case will be described as an example.

S601において、アプリケーション要求生成部314は、通信装置130aからの要求を受信したことに応じて、鍵取得要求を生成し、ブロックチェーンサーバ150に送信する。鍵取得要求は、ブロックチェーンサーバ150に対して、アプリケーションサーバ110(自エンティティ)に関連付けられた公開鍵を用いて暗号化された暗号化済Tx鍵の送信を要求する命令である。アプリケーション要求生成部314は、この鍵取得要求をスマートコントラクトパラメータに格納して、ブロックチェーンサーバ150に送信する。 In S601, the application request generation unit 314 generates a key acquisition request in response to receiving the request from the communication device 130a, and transmits the key acquisition request to the blockchain server 150. The key acquisition request is an instruction requesting the blockchain server 150 to transmit an encrypted Tx key encrypted using the public key associated with the application server 110 (own entity). The application request generation unit 314 stores this key acquisition request in the smart contract parameter and sends it to the blockchain server 150.

S602において、暗号化復号化処理部313は、ブロックチェーンサーバ150からS601で要求した暗号化済Tx鍵を受信したことに応じて、この暗号化済Tx鍵から共通鍵(Tx鍵)を復号化する。具体的には、暗号化復号化処理部313は、アプリケーションサーバ110(自エンティティ)に関連付けられた秘密鍵を用いて、暗号化済Tx鍵から共通鍵を復号化する。 In S602, the encryption / decryption processing unit 313 decrypts the common key (Tx key) from the encrypted Tx key in response to receiving the encrypted Tx key requested in S601 from the blockchain server 150. do. Specifically, the encryption / decryption processing unit 313 decrypts the common key from the encrypted Tx key by using the private key associated with the application server 110 (own entity).

S603において、アプリケーション要求生成部314は、復号化した共通鍵をブロックチェーンサーバ150に送信する。具体的には、アプリケーション要求生成部314は、データ取得要求を生成して、ブロックチェーンサーバ150に送信する。データ取得要求は、スマートコントラクトパラメータに、ブロックチェーンサーバ150に対するデータ取得を要求する命令と、S602で復号化された共通鍵が含まれる。共通鍵は、ブロックチェーンに記録されることを防ぐために、スマートコントラクトパラメータの一時フィールドに格納される。データ取得を要求する命令には、例えば、企業Aの現在の残高の参照を求める命令が含まれる。 In S603, the application request generation unit 314 transmits the decrypted common key to the blockchain server 150. Specifically, the application request generation unit 314 generates a data acquisition request and transmits it to the blockchain server 150. The data acquisition request includes an instruction requesting the blockchain server 150 to acquire data and a common key decrypted in S602 in the smart contract parameter. The common key is stored in a temporary field of smart contract parameters to prevent it from being recorded on the blockchain. The instruction requesting data acquisition includes, for example, an instruction requesting a reference to the current balance of company A.

S604において、結果送信部315は、読み出し後の処理を行う。例えば、結果送信部315は、ブロックチェーンサーバ150からビジネスロジックの実行結果を受信したことに応じて、通信装置130aに表示するための処理結果を作成して、通信装置130に送信する。結果送信部315は、例えば、ブロックチェーンサーバ150からの実行結果に基づいて、「企業Aの現在の残高:YY円」などと表示するWebページを通信装置130aに送信する。制御部302は、Webページを通信装置130へ送信すると、本一連の動作を終了する。 In S604, the result transmission unit 315 performs post-reading processing. For example, the result transmission unit 315 creates a processing result to be displayed on the communication device 130a in response to receiving the execution result of the business logic from the blockchain server 150, and transmits the processing result to the communication device 130. The result transmission unit 315 transmits, for example, a Web page displaying "Current balance of company A: YY yen" or the like to the communication device 130a based on the execution result from the blockchain server 150. When the control unit 302 transmits the Web page to the communication device 130, the control unit 302 ends this series of operations.

<読出処理におけるブロックチェーンサーバ150の動作>
次に、図6(b)を参照して、ブロックチェーンサーバ150における読出処理の動作について説明する。なお、本処理は、制御部202のCPU210が記録部203に記録されるプログラムを実行することにより実現される。また、本処理は、S601において送信された鍵取得要求をアプリケーションサーバ110から受信した場合に開始される。
<Operation of blockchain server 150 in read processing>
Next, the operation of the read process in the blockchain server 150 will be described with reference to FIG. 6B. This process is realized by the CPU 210 of the control unit 202 executing the program recorded in the recording unit 203. Further, this process is started when the key acquisition request transmitted in S601 is received from the application server 110.

S611において、ブロック読出部216は、暗号化済Tx鍵をブロックチェーンから読み出す。具体的には、ブロック読出部216は、要求元のアプリケーションサーバ110に関連付けられた公開鍵を用いて暗号化された、暗号化済Tx鍵をブロックチェーンから読み出す。また、S612において、読み出した暗号化済Tx鍵をアプリケーションサーバ110に送信する。 In S611, the block reading unit 216 reads the encrypted Tx key from the blockchain. Specifically, the block reading unit 216 reads the encrypted Tx key encrypted using the public key associated with the requesting application server 110 from the blockchain. Further, in S612, the read encrypted Tx key is transmitted to the application server 110.

S613において、アプリケーション要求取得部212は、アプリケーションサーバ110からのデータ取得要求を受信して、そのスマートコントラクトパラメータの一時フィールドから共通鍵を取得する。S614において、ブロック読出部216は、暗号化済データ(すなわち共通鍵を用いてトランザクションのデータを暗号化したデータ)をブロックチェーン220から読み出す。 In S613, the application request acquisition unit 212 receives the data acquisition request from the application server 110 and acquires the common key from the temporary field of the smart contract parameter. In S614, the block reading unit 216 reads the encrypted data (that is, the data obtained by encrypting the transaction data using the common key) from the blockchain 220.

S615において、暗号化復号化処理部213は、S613で受信した共通鍵を用いて、暗号化済データからトランザクションのデータを復号化する。S616において、ビジネスロジック実行部214は、暗号化復号化処理部213によって復号化されたトランザクションのデータの内容に基づいて、スマートコントラクトに記述されているビジネスロジックを実行し、その実行結果を出力する。例えば、「企業Aの現在の残高を参照」のトランザクションについて、企業Aの残高を演算或いは取得し、実行結果として出力する。ビジネスロジック実行部214は、処理が終了すると実行結果を終了通知としてアプリケーションサーバ110に送信する。制御部202は、終了通知の送信が完了すると、その後本処理を終了する。 In S615, the encryption / decryption processing unit 213 decrypts the transaction data from the encrypted data by using the common key received in S613. In S616, the business logic execution unit 214 executes the business logic described in the smart contract based on the contents of the transaction data decrypted by the encryption / decryption processing unit 213, and outputs the execution result. .. For example, for the transaction "Refer to the current balance of the company A", the balance of the company A is calculated or acquired, and the balance is output as the execution result. When the processing is completed, the business logic execution unit 214 sends the execution result to the application server 110 as a completion notification. When the transmission of the end notification is completed, the control unit 202 ends this process thereafter.

上記実施形態では、アプリケーションサーバ110とブロックチェーンサーバ150とを用いるブロックチェーンシステムについて説明した。このシステムにおいて、アプリケーションサーバ110は、共通鍵を用いて暗号化したトランザクションのデータを、ブロックチェーンサーバ150に記録するようにした。そして、ブロックチェーンサーバ150とアプリケーションサーバ110は、共通鍵をやり取りするようにし、受信した共通鍵を用いて復号化したトランザクションのデータにビジネスロジックを適用するようにした。また、ブロックチェーンサーバ150がアプリケーションサーバ110から共通鍵を受信する際には、ブロックチェーンに記録されない一時フィールドを用いて受信することで、共通鍵をブロックチェーンに記録することなく、受信できるようにした。 In the above embodiment, the blockchain system using the application server 110 and the blockchain server 150 has been described. In this system, the application server 110 records the transaction data encrypted by using the common key on the blockchain server 150. Then, the blockchain server 150 and the application server 110 exchange a common key, and apply the business logic to the transaction data decrypted using the received common key. Further, when the blockchain server 150 receives the common key from the application server 110, it can be received without recording the common key in the blockchain by receiving it using a temporary field that is not recorded in the blockchain. did.

このようにすることで、ブロックチェーンにおいて暗号化されたデータを扱う場合に、暗号化されたデータの受け渡しと所定のビジネスロジックの実行とを両立することができる。また、ブロックチェーンサーバ150は、暗号化済データをブロックチェーンに記録することで、適切な閲覧権限のある者のみがデータを参照可能になり、例えば、ブロックチェーンサーバの管理者であっても参照することができなくなる。このため、ブロックチェーンに機密データを記録することができ、機密データを扱う場合であってもブロックチェーンによる可用性、耐改ざん性のメリットを受けることができる。更に、アプリケーションサーバ110とブロックチェーンサーバ150との間でやり取りされる鍵を、トランザクションごとに生成される共通鍵とすることで、仮に共通鍵が流出した場合のリスクを1つのトランザクションに制限することができる。そして、共通鍵は復号化を必要としないため、ブロックチェーンサーバ150側の共通鍵の扱いに対する処理負荷を軽減することができる。 By doing so, when handling the encrypted data in the blockchain, it is possible to achieve both the transfer of the encrypted data and the execution of the predetermined business logic. Further, the blockchain server 150 records the encrypted data in the blockchain so that only a person having appropriate viewing authority can refer to the data. For example, even an administrator of the blockchain server can refer to the data. You will not be able to. Therefore, confidential data can be recorded on the blockchain, and even when handling confidential data, the advantages of availability and tamper resistance of the blockchain can be obtained. Further, by setting the key exchanged between the application server 110 and the blockchain server 150 as a common key generated for each transaction, the risk if the common key is leaked is limited to one transaction. Can be done. Since the common key does not require decryption, the processing load on the handling of the common key on the blockchain server 150 side can be reduced.

また、本実施形態の書込処理および読出処理を用いれば、機密データを記録するブロックチェーンサーバを特定のブロックチェーンサーバに限定する必要がない。このため、データを参照させたくないブロックチェーンサーバとも物理的にデータを共有し、多数のブロックチェーンサーバを用いたシステムの構築が可能である。すなわち、多数のブロックチェーンサーバによる実効的なコンセンサスを実現することができ、ブロックチェーンの可用性、耐改ざん性を活かすことができる。 Further, if the writing process and the reading process of the present embodiment are used, it is not necessary to limit the blockchain server that records the confidential data to a specific blockchain server. Therefore, it is possible to physically share data with a blockchain server that does not want to refer to the data, and to construct a system using a large number of blockchain servers. That is, an effective consensus can be realized by a large number of blockchain servers, and the availability and tamper resistance of the blockchain can be utilized.

(実施形態2)
次に、実施形態2について説明する。実施形態1では、トランザクションのデータを暗号化した共通鍵を、スマートコントラクトパラメータの一時フィールドに格納することで、ブロックチェーンサーバ150とアプリケーションサーバ110との間で共通鍵を共有した。これに対し、本実施形態では、トランザクションのデータを暗号化した共通鍵を、ブロックチェーンサーバに関連付けられた公開鍵で暗号化したうえで、(一時フィールドを用いることなく)ブロックチェーンサーバ150に送信する。なお、本実施形態2で用いるブロックチェーンサーバ150とアプリケーションサーバ110の構成は実質的に同一であり、書込処理および読出処理の一部が異なる。このため、同一または実質的に同一な構成や処理については同一の参照番号を付して重複する説明は省略する。
(Embodiment 2)
Next, the second embodiment will be described. In the first embodiment, the common key in which the transaction data is encrypted is stored in the temporary field of the smart contract parameter, so that the common key is shared between the blockchain server 150 and the application server 110. On the other hand, in the present embodiment, the common key that encrypts the transaction data is encrypted with the public key associated with the blockchain server, and then transmitted to the blockchain server 150 (without using a temporary field). do. The configuration of the blockchain server 150 and the application server 110 used in the second embodiment is substantially the same, and a part of the writing process and the reading process is different. Therefore, the same or substantially the same configuration and processing will be given the same reference number and duplicated description will be omitted.

なお、本実施形態では、ブロックチェーンサーバ150の公開鍵と秘密鍵のペアを用いる。このため、ブロックチェーンサーバ150は、記録部203に、自己のブロックチェーンサーバ150の公開鍵と秘密鍵のペアを保持する。一方、アプリケーションサーバ110は、記録部303に、ブロックチェーンサーバ150a〜150nの公開鍵を保持する。 In this embodiment, the public key and private key pair of the blockchain server 150 is used. Therefore, the blockchain server 150 holds a pair of the public key and the private key of its own blockchain server 150 in the recording unit 203. On the other hand, the application server 110 holds the public keys of the blockchain servers 150a to 150n in the recording unit 303.

<書込処理における動作>
次に、実施形態2に係る書込処理について、図7(a)および(b)を参照して説明する。図7(a)および(b)は、実施形態1と同様に、それぞれ制御部302および制御部202がそれぞれのプログラムを実行することにより実現される。
<Operation in writing process>
Next, the writing process according to the second embodiment will be described with reference to FIGS. 7A and 7B. 7 (a) and 7 (b) are realized by executing the respective programs by the control unit 302 and the control unit 202, respectively, as in the first embodiment.

アプリケーションサーバ110の制御部302は、実施形態1と同様に、S501〜503の処理を実行する。 The control unit 302 of the application server 110 executes the processes of S501 to 503 as in the first embodiment.

S701において、制御部302の暗号化復号化処理部213は、共通鍵を各ブロックチェーンサーバの公開鍵を用いて暗号化する。例えば、ブロックチェーンサーバ150aの公開鍵を用いて共通鍵を暗号化することで暗号化済Tx鍵を生成する。暗号化済Tx鍵は、ブロックチェーンサーバ150aの秘密鍵によってのみ復号化される。従って、暗号化復号化処理部213は、ブロックチェーンサーバ150a〜150nの公開鍵を用いて共通鍵を暗号化し、ブロックチェーンサーバ150の数に応じた暗号化済Tx鍵を生成する。 In S701, the encryption / decryption processing unit 213 of the control unit 302 encrypts the common key using the public key of each blockchain server. For example, an encrypted Tx key is generated by encrypting the common key using the public key of the blockchain server 150a. The encrypted Tx key is decrypted only by the private key of the blockchain server 150a. Therefore, the encryption / decryption processing unit 213 encrypts the common key using the public keys of the blockchain servers 150a to 150n, and generates encrypted Tx keys according to the number of blockchain servers 150.

S702において、アプリケーション要求生成部314は、スマートコントラクトパラメータを含む、トランザクションの書き込み要求を生成し、当該書き込み要求をブロックチェーンサーバ150へ送信する。本実施形態では、トランザクションの書き込み要求のスマートコントラクトパラメータには、暗号化済データと、S701における暗号化により生成された暗号化済データと、S503における暗号化により生成された暗号化済Tx鍵とが格納される。本実施形態では一時フィールドを用いない。なお、本実施形態では、S701における暗号化により生成された暗号化済データは、アプリケーションサーバ110とブロックチェーンサーバ150との間で共通鍵を共有するためのデータとして機能する。制御部302は、残りのS505の実行を完了すると、その後処理を終了する。 In S702, the application request generation unit 314 generates a transaction write request including the smart contract parameter, and transmits the write request to the blockchain server 150. In the present embodiment, the smart contract parameters of the transaction write request include the encrypted data, the encrypted data generated by the encryption in S701, and the encrypted Tx key generated by the encryption in S503. Is stored. In this embodiment, the temporary field is not used. In the present embodiment, the encrypted data generated by the encryption in S701 functions as data for sharing the common key between the application server 110 and the blockchain server 150. When the control unit 302 completes the execution of the remaining S505, the control unit 302 ends the processing thereafter.

一方、ブロックチェーンサーバ150の制御部202は、S511において、アプリケーション要求取得部212は、スマートコントラクトパラメータを含むトランザクションの書き込み要求を受信する。 On the other hand, in S511, the control unit 202 of the blockchain server 150 receives the application request acquisition unit 212 for the write request of the transaction including the smart contract parameter.

S711において、暗号化復号化処理部213は、スマートコントラクトパラメータに含まれる(自ブロックチェーンサーバの公開鍵で暗号化された)暗号化済Tx鍵から共通鍵(Tx鍵)を復号化する。但し、暗号化復号化処理部213は、自ブロックチェーンサーバの秘密鍵を用いて復号化を行う。そして、復号化により得られた共通鍵を用いて、スマートコントラクトパラメータに含まれる暗号化済データからトランザクションのデータを復号化する。そして、制御部202は、実施形態1と同様に、S512〜S515を実行して、その後、本処理を終了する。 In S711, the encryption / decryption processing unit 213 decrypts the common key (Tx key) from the encrypted Tx key (encrypted with the public key of the own blockchain server) included in the smart contract parameter. However, the encryption / decryption processing unit 213 decrypts using the private key of the own blockchain server. Then, the transaction data is decrypted from the encrypted data included in the smart contract parameter by using the common key obtained by the decryption. Then, the control unit 202 executes S512 to S515 as in the first embodiment, and then ends this process.

<読出処理における動作>
次に、実施形態2に係る読出処理について、図8(a)および(b)を参照して説明する。図8(a)および(b)は、実施形態1と同様に、それぞれ制御部302および制御部202がそれぞれのプログラムを実行することにより実現される。
<Operation in read processing>
Next, the reading process according to the second embodiment will be described with reference to FIGS. 8A and 8B. 8 (a) and 8 (b) are realized by executing the respective programs by the control unit 302 and the control unit 202, respectively, as in the first embodiment.

アプリケーションサーバ110の制御部302は、実施形態1と同様に、S601〜603の処理を実行して、共通鍵を取得する。次に、S801において、制御部302の暗号化復号化処理部213は、共通鍵を各ブロックチェーンサーバの公開鍵を用いて暗号化する。例えば、ブロックチェーンサーバ150a〜150nの公開鍵を用いて共通鍵をそれぞれ暗号化することで、ブロックチェーンサーバ150の数の暗号化済Tx鍵を生成する。更に、アプリケーション要求生成部314は、暗号化した暗号化済Tx鍵をブロックチェーンサーバ150に送信する。具体的には、アプリケーション要求生成部314は、データ取得要求を生成して、ブロックチェーンサーバ150に送信する。データ取得要求は、スマートコントラクトパラメータに、ブロックチェーンサーバ150に対するデータ取得を要求する命令と、ブロックチェーンサーバの公開鍵を用いて暗号化することで生成された暗号化済Tx鍵が含まれる。暗号化済Tx鍵は、ブロックチェーンに記録されるフィールドに格納される。アプリケーションサーバ110の制御部302は、その後、実施形態1と同様にS604を実行して一連の処理を終了する。 The control unit 302 of the application server 110 executes the processes of S601 to 603 and acquires the common key, as in the first embodiment. Next, in S801, the encryption / decryption processing unit 213 of the control unit 302 encrypts the common key using the public key of each blockchain server. For example, by encrypting the common key using the public keys of the blockchain servers 150a to 150n, the number of encrypted Tx keys of the blockchain servers 150 is generated. Further, the application request generation unit 314 transmits the encrypted encrypted Tx key to the blockchain server 150. Specifically, the application request generation unit 314 generates a data acquisition request and transmits it to the blockchain server 150. The data acquisition request includes, in the smart contract parameter, an instruction requesting data acquisition to the blockchain server 150 and an encrypted Tx key generated by encrypting using the public key of the blockchain server. The encrypted Tx key is stored in a field recorded on the blockchain. After that, the control unit 302 of the application server 110 executes S604 as in the first embodiment to end a series of processes.

一方、ブロックチェーンサーバ150の制御部202は、S611〜S612を実施形態1と同様に実行する。そして、S802において、暗号化復号化処理部213は、スマートコントラクトパラメータに含まれる(自ブロックチェーンサーバの公開鍵で暗号化された)暗号化済Tx鍵から共通鍵(Tx鍵)を復号化する。但し、暗号化復号化処理部213は、自ブロックチェーンサーバの秘密鍵を用いて復号化を行う。そして、復号化により得られた共通鍵を用いて、スマートコントラクトパラメータに含まれる暗号化済データからトランザクションのデータを復号化する。そして、制御部202は、実施形態1と同様に、S614〜S616を実行して、その後、本処理を終了する。 On the other hand, the control unit 202 of the blockchain server 150 executes S611 to S612 in the same manner as in the first embodiment. Then, in S802, the encryption / decryption processing unit 213 decrypts the common key (Tx key) from the encrypted Tx key (encrypted with the public key of the own blockchain server) included in the smart contract parameter. .. However, the encryption / decryption processing unit 213 decrypts using the private key of the own blockchain server. Then, the transaction data is decrypted from the encrypted data included in the smart contract parameter by using the common key obtained by the decryption. Then, the control unit 202 executes S614 to S616 as in the first embodiment, and then ends this process.

このように、本実施形態の読出処理では、アプリケーションサーバ110において、ブロックチェーンサーバに関連付けられた公開鍵を用いて共通鍵を暗号化した暗号化済Tx鍵を生成し、この暗号化済Tx鍵をブロックチェーンサーバに送信するようにした。そして、ブロックチェーンサーバでは、自身に関連付けられている公開鍵を用いて暗号化された暗号化済Tx鍵を、自身に関連付けられている秘密鍵を用いて共通鍵を得るようにした。このように、本実施形態では、暗号化済Tx鍵がブロックチェーンに記録されるパラメータとして送信されるものの、暗号化によって保護されているため機密性を確保することができる。例えば、スマートコントラクトパラメータに一時フィールドを設けることができない場合であっても、上述のブロックチェーンの特性を活かしつつ機密データを安全に扱うことができる。 As described above, in the reading process of the present embodiment, the application server 110 generates an encrypted Tx key in which the common key is encrypted using the public key associated with the blockchain server, and the encrypted Tx key is generated. Was sent to the blockchain server. Then, in the blockchain server, the encrypted Tx key encrypted by using the public key associated with itself is obtained, and the common key is obtained by using the private key associated with itself. As described above, in the present embodiment, the encrypted Tx key is transmitted as a parameter recorded in the blockchain, but since it is protected by encryption, confidentiality can be ensured. For example, even when a temporary field cannot be provided in a smart contract parameter, confidential data can be handled safely while taking advantage of the above-mentioned characteristics of the blockchain.

なお、実施形態1のように共通鍵を一時フィールドに格納して送信する方法と、実施形態2のように共通鍵をブロックチェーンサーバ150の公開鍵で暗号化する方法とを切り替えるようにしてもよい。例えば、アプリケーションサーバ110からの送信されるトランザクションの書き込み要求におけるスマートコントラクトパラメータに、共通鍵をいずれの方法で扱うかを示すフラグを付加してもよい。この場合、当該トランザクションを扱うアプリケーションサーバ110とブロックチェーンサーバ150は、フラグに基づいて暗号化の方法がいずれであるかを判定し、判定結果に応じて、共通鍵の復号化や取り扱いを制御すればよい。このようにすれば、システムに求められるセキュリティのレベルや性能要件、ストレージの規模などに応じて、システムの動作を切り替えることができる。 Even if the method of storing the common key in a temporary field and transmitting it as in the first embodiment and the method of encrypting the common key with the public key of the blockchain server 150 as in the second embodiment are switched. good. For example, a flag indicating how to handle the common key may be added to the smart contract parameter in the write request of the transaction transmitted from the application server 110. In this case, the application server 110 and the blockchain server 150 that handle the transaction determine which encryption method is used based on the flag, and control the decryption and handling of the common key according to the determination result. Just do it. In this way, the operation of the system can be switched according to the level of security required for the system, performance requirements, storage scale, and the like.

203…記録部、212…アプリケーション要求取得部、213…暗号化復号化処理部、214…ビジネスロジック実行部、215…ブロック書込部、216…ブロック読出部、312…鍵取得部、313…暗号化復号化処理部 203 ... Recording unit, 212 ... Application request acquisition unit, 213 ... Encryption / decryption processing unit, 214 ... Business logic execution unit, 215 ... Block writing unit, 216 ... Block reading unit, 312 ... Key acquisition unit, 313 ... Encryption Encryption / decryption processing unit

Claims (11)

外部装置と通信する情報処理装置において各工程が実行される情報処理方法であって、
前記外部装置において共通鍵を用いてトランザクションのデータを暗号化することで生成された第1データと、前記トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて前記外部装置において前記共通鍵を暗号化することで生成された第2データと、前記共通鍵とを、前記外部装置から受信する受信工程と、
前記受信工程において受信された前記共通鍵を用いて、前記第1データから前記トランザクションのデータを復号化する復号化工程と、
前記第1データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理工程と、
前記共通鍵を用いて前記所定のビジネスロジックの実行結果を暗号化する暗号化工程と、
前記暗号化された実行結果と前記第2データとを、ブロックチェーンの同一のブロックに記録する記録工程と、を有する、ことを特徴とする情報処理方法。
An information processing method in which each process is executed in an information processing device that communicates with an external device.
The common in the external device using the first data generated by encrypting the transaction data using the common key in the external device and the public key associated with the entity that can refer to the transaction data. A receiving process of receiving the second data generated by encrypting the key and the common key from the external device.
A decoding step of decoding the transaction data from the first data using the common key received in the receiving step, and a decoding step.
A processing step of executing a predetermined business logic on the transaction data decoded from the first data and outputting an execution result of the predetermined business logic.
An encryption process that encrypts the execution result of the predetermined business logic using the common key, and
An information processing method comprising a recording step of recording the encrypted execution result and the second data in the same block of the blockchain.
前記受信工程では、前記共通鍵を、前記ブロックチェーンに記録されないように区別されたフィールドを用いて受信する、ことを特徴とする請求項1に記載の情報処理方法。 The information processing method according to claim 1, wherein in the receiving step, the common key is received using distinct fields so as not to be recorded on the blockchain. 前記共通鍵は、前記情報処理装置に関連付けられた公開鍵を用いて、前記外部装置において暗号化され、
前記受信工程では、前記情報処理装置に関連付けられた公開鍵を用いて暗号化された状態の前記共通鍵を、前記ブロックチェーンに記録されるフィールドを用いて受信する、ことを特徴とする請求項1に記載の情報処理方法。
The common key is encrypted in the external device using the public key associated with the information processing device.
The claim is characterized in that, in the receiving step, the common key encrypted by using the public key associated with the information processing apparatus is received by using the field recorded in the blockchain. The information processing method according to 1.
前記処理工程では、前記第1データから復号化された前記トランザクションのデータに対して、スマートコントラクトを用いて前記所定のビジネスロジックを実行し、前記実行結果を出力する、ことを特徴とする請求項1からのいずれか1項に記載の情報処理方法。 The claim is characterized in that, in the processing step, the predetermined business logic is executed by using a smart contract on the transaction data decoded from the first data, and the execution result is output. The information processing method according to any one of 1 to 3. 前記共通鍵は、トランザクションごとに生成される鍵である、ことを特徴とする請求項1からのいずれか1項に記載の情報処理方法。 The information processing method according to any one of claims 1 to 4 , wherein the common key is a key generated for each transaction. ブロックチェーンに記録されたデータを参照する情報処理装置において各工程が実行される情報処理方法であって、
トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて共通鍵を暗号化することで生成された第1データを、前記ブロックチェーンから読み出す第1読出工程と、
前記第1読出工程において読み出された前記第1データを、前記トランザクションのデータを参照可能な前記エンティティに送信する送信工程と、
前記トランザクションのデータを参照可能な前記エンティティから、前記共通鍵を受信する受信工程と、
前記共通鍵を用いて前記トランザクションのデータを暗号化することで生成され且つ前記ブロックチェーンの前記第1データが記録されるブロックと同一のブロックに記録された第2データを、前記ブロックチェーンから読み出す第2読出工程と、
前記受信工程において受信された前記共通鍵を用いて前記第2データから前記トランザクションのデータを復号化する復号化工程と、
前記第2データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理工程と、を有する、ことを特徴とする情報処理方法。
An information processing method in which each process is executed in an information processing device that refers to data recorded in a blockchain.
The first read step of reading the first data generated by encrypting the common key using the public key associated with the entity that can refer to the transaction data from the blockchain, and
A transmission step of transmitting the first data read in the first read step to the entity that can refer to the transaction data, and a transmission step.
A receiving process that receives the common key from the entity that can refer to the transaction data, and
The second data generated by encrypting the transaction data using the common key and recorded in the same block as the block in which the first data of the blockchain is recorded is read from the blockchain. The second reading process and
A decoding step of decoding the transaction data from the second data using the common key received in the receiving step, and a decoding step.
Information processing characterized by having a processing step of executing a predetermined business logic on the transaction data decoded from the second data and outputting an execution result of the predetermined business logic. Method.
外部装置と通信する情報処理装置であって、
前記外部装置において共通鍵を用いてトランザクションのデータを暗号化することで生成された第1データと、前記トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて前記外部装置において前記共通鍵を暗号化することで生成された第2データと、前記共通鍵とを、前記外部装置から受信する受信手段と、
前記受信手段により受信された前記共通鍵を用いて、前記第1データから前記トランザクションのデータを復号化する復号化手段と、
前記第1データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理手段と、
記共通鍵を用いて前記所定のビジネスロジックの実行結果を暗号化する暗号化手段と、
前記暗号化された実行結果と前記第2データとを、ブロックチェーンの同一のブロックに記録する記録手段と、を有する、ことを特徴とする情報処理装置。
An information processing device that communicates with an external device
The common in the external device using the first data generated by encrypting the transaction data using the common key in the external device and the public key associated with the entity that can refer to the transaction data. A receiving means for receiving the second data generated by encrypting the key and the common key from the external device.
A decoding means that decodes the transaction data from the first data using the common key received by the receiving means.
A processing means that executes a predetermined business logic on the transaction data decrypted from the first data and outputs an execution result of the predetermined business logic.
Encryption means for encrypting the execution result of the predetermined business logic using the previous SL common key,
An information processing device comprising a recording means for recording the encrypted execution result and the second data in the same block of the blockchain.
ブロックチェーンに記録されたデータを参照する情報処理装置であって、
共通鍵を用いてトランザクションのデータを暗号化することで生成された第1データと、前記トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて、前記共通鍵を暗号化することで生成され且つ前記ブロックチェーンの前記第1データが記録されるブロックと同一のブロックに記録された第2データとを、前記ブロックチェーンから読み出す読出手段と、
前記読出手段により読み出された前記第2データを、前記トランザクションのデータを参照可能な前記エンティティに送信する送信手段と、
前記トランザクションのデータを参照可能な前記エンティティから、前記共通鍵を受信する受信手段と、
前記受信手段により受信された前記共通鍵を用いて前記第1データから前記トランザクションのデータを復号化する復号化手段と、
前記第1データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理手段と、を有する、ことを特徴とする情報処理装置。
An information processing device that refers to the data recorded on the blockchain.
By encrypting the common key using the first data generated by encrypting the transaction data using the common key and the public key associated with the entity that can refer to the transaction data. A reading means for reading from the blockchain the second data that is generated and recorded in the same block as the block in which the first data of the blockchain is recorded.
A transmission means for transmitting the second data read by the reading means to the entity that can refer to the transaction data, and a transmission means.
A receiving means for receiving the common key from the entity that can refer to the transaction data, and
A decoding means that decodes the transaction data from the first data using the common key received by the receiving means, and
Information processing characterized by having a processing means for executing a predetermined business logic on the transaction data decoded from the first data and outputting an execution result of the predetermined business logic. Device.
第1情報処理装置と第2情報処理装置とで構成される情報処理システムであって、
第1情報処理装置は、
共通鍵を生成する生成手段と、
生成された前記共通鍵を用いてトランザクションのデータを暗号化することで第1データを生成すると共に、前記トランザクションのデータを参照可能なエンティティに関連付けられた公開鍵を用いて前記共通鍵を暗号化することで第2データを生成する第1暗号化手段と、
前記第1データと前記第2データと前記共通鍵とを、前記第2情報処理装置に送信する送信手段と、を有し、
前記第2情報処理装置は、
前記第1データと前記第2データと前記共通鍵とを、前記第1情報処理装置から受信する受信手段と、
前記受信手段により受信された前記共通鍵を用いて、前記第1データから前記トランザクションのデータを復号化する復号化手段と、
前記第1データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理手段と、
記共通鍵を用いて前記所定のビジネスロジックの実行結果を暗号化する第2暗号化手段と、
前記暗号化された実行結果と前記第2データとを、ブロックチェーンの同一のブロックに記録する記録手段と、を有する、ことを特徴とする情報処理システム。
An information processing system composed of a first information processing device and a second information processing device.
The first information processing device is
A generation means to generate a common key and
The first data is generated by encrypting the transaction data using the generated common key, and the common key is encrypted using the public key associated with the entity that can refer to the transaction data. The first encryption means that generates the second data by doing so,
It has a transmission means for transmitting the first data, the second data, and the common key to the second information processing apparatus.
The second information processing device is
A receiving means for receiving the first data, the second data, and the common key from the first information processing apparatus, and
A decoding means that decodes the transaction data from the first data using the common key received by the receiving means.
A processing means that executes a predetermined business logic on the transaction data decrypted from the first data and outputs an execution result of the predetermined business logic.
Second encryption means for encrypting the execution result of the predetermined business logic using the previous SL common key,
An information processing system comprising a recording means for recording the encrypted execution result and the second data in the same block of the blockchain.
第1情報処理装置と第2情報処理装置とで構成される情報処理システムであって、
ブロックチェーンに記録されたデータを参照する前記第1情報処理装置は、
共通鍵を用いてトランザクションのデータを暗号化することで生成された第1データと、前記トランザクションのデータを参照可能な前記第2情報処理装置に関連付けられた公開鍵を用いて、前記共通鍵を暗号化することで生成され且つ前記ブロックチェーンの前記第1データが記録されるブロックと同一のブロックに記録された第2データとを、前記ブロックチェーンから読み出す読出手段と、
前記読出手段により読み出された前記第2データを、前記第2情報処理装置に送信する第1送信手段と、
前記共通鍵を、前記第2情報処理装置から受信する第1受信手段と、
前記第1受信手段により受信された前記共通鍵を用いて前記第1データから前記トランザクションのデータを復号化する第1復号化手段と、
前記第1データから復号化された前記トランザクションのデータに対して所定のビジネスロジックを実行して、前記所定のビジネスロジックの実行結果を出力する処理手段と、を有し、
前記第2情報処理装置は、
前記第1情報処理装置において読み出された前記第2データを、前記第1情報処理装置から受信する第2受信手段と、
前記第2情報処理装置に関連付けられた秘密鍵を用いて前記第2データから前記共通鍵を復号化する第2復号化手段と、
復号化された前記共通鍵を、前記第1情報処理装置に送信する第2送信手段と、を有することを特徴とする情報処理システム。
An information processing system composed of a first information processing device and a second information processing device.
The first information processing device that refers to the data recorded on the blockchain is
The common key is obtained by using the first data generated by encrypting the transaction data using the common key and the public key associated with the second information processing apparatus that can refer to the transaction data. A reading means for reading from the blockchain the second data generated by encryption and recorded in the same block as the block in which the first data of the blockchain is recorded.
A first transmitting means for transmitting the second data read by the reading means to the second information processing apparatus, and
A first receiving means for receiving the common key from the second information processing apparatus,
A first decoding means that decodes the transaction data from the first data using the common key received by the first receiving means.
It has a processing means that executes a predetermined business logic on the transaction data decoded from the first data and outputs an execution result of the predetermined business logic.
The second information processing device is
A second receiving means for receiving the second data read by the first information processing device from the first information processing device, and
A second decoding means that decodes the common key from the second data using the private key associated with the second information processing apparatus.
An information processing system comprising: a second transmission means for transmitting the decrypted common key to the first information processing apparatus.
情報処理装置のプロセッサに請求項1からのいずれか1項に記載の情報処理方法の各工程を実行させるためのプログラム。 A program for causing a processor of an information processing apparatus to execute each step of the information processing method according to any one of claims 1 to 6.
JP2018236692A 2018-12-18 2018-12-18 Information processing methods, information processing devices, programs and information processing systems Active JP6909452B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018236692A JP6909452B2 (en) 2018-12-18 2018-12-18 Information processing methods, information processing devices, programs and information processing systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018236692A JP6909452B2 (en) 2018-12-18 2018-12-18 Information processing methods, information processing devices, programs and information processing systems

Publications (2)

Publication Number Publication Date
JP2020099010A JP2020099010A (en) 2020-06-25
JP6909452B2 true JP6909452B2 (en) 2021-07-28

Family

ID=71106622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018236692A Active JP6909452B2 (en) 2018-12-18 2018-12-18 Information processing methods, information processing devices, programs and information processing systems

Country Status (1)

Country Link
JP (1) JP6909452B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115037548B (en) * 2022-06-24 2024-01-23 蚂蚁区块链科技(上海)有限公司 System, method, device, medium and equipment for secure multiparty computation of data based on blockchain

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5554066B2 (en) * 2007-12-27 2014-07-23 株式会社Into Information distribution system, information terminal and program
JP2018181309A (en) * 2017-04-20 2018-11-15 株式会社岩手銀行 Transaction information providing system, server device, node device and program
JP6302592B2 (en) * 2017-06-23 2018-03-28 株式会社エヌ・ティ・ティ・データ Information processing apparatus, information processing method, and program

Also Published As

Publication number Publication date
JP2020099010A (en) 2020-06-25

Similar Documents

Publication Publication Date Title
CN109144961B (en) Authorization file sharing method and device
US10673632B2 (en) Method for managing a trusted identity
JP6640320B1 (en) Token management system and token management method
JP6524347B2 (en) Information sharing system
WO2021017444A1 (en) Blockchain-based data authorization method and device
EP2915279B1 (en) Method and system for protected exchange of data
US11765145B2 (en) Controlling access to secured data in multi-system exchange environments
CA2808369C (en) System for protecting an encrypted information unit
CN110881063A (en) Storage method, device, equipment and medium of private data
KR101923943B1 (en) System and method for remitting crypto currency with enhanced security
WO2020075396A1 (en) Inference device, inference method, and inference program
US20230360042A1 (en) Method, system, and computer-readable medium for secured multi-lateral data exchange over a computer network
JPWO2019082442A1 (en) Data registration methods, data decryption methods, data structures, computers, and programs
CN112000978B (en) Private data output method, data processing system and storage medium
JP6293245B1 (en) Transaction mutual monitoring system with enhanced security
JP2018022346A (en) Data transaction system and program
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
JP6909452B2 (en) Information processing methods, information processing devices, programs and information processing systems
WO2020076234A1 (en) Apparatus and method for controlling data access
TWI766171B (en) Account data processing method and account data processing system
JP2020191552A (en) Share distribution system and method
JP7041650B2 (en) System for recreating private keys
WO2023223606A1 (en) Data management system and data management method
CN116527404B (en) Digital collection directional sharing method and system based on block chain
JP2018530284A (en) Electronic system and method for managing digital content related to artwork

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190918

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210114

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: 20210604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6909452

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150