JP2022014369A - 分散台帳管理システム、分散台帳管理方法、およびノード - Google Patents

分散台帳管理システム、分散台帳管理方法、およびノード Download PDF

Info

Publication number
JP2022014369A
JP2022014369A JP2020116659A JP2020116659A JP2022014369A JP 2022014369 A JP2022014369 A JP 2022014369A JP 2020116659 A JP2020116659 A JP 2020116659A JP 2020116659 A JP2020116659 A JP 2020116659A JP 2022014369 A JP2022014369 A JP 2022014369A
Authority
JP
Japan
Prior art keywords
block
transaction
verification
result
node
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
JP2020116659A
Other languages
English (en)
Other versions
JP7408499B2 (ja
Inventor
航史 池川
Koji Ikegawa
直 西島
Sunao Nishijima
洋司 小澤
Yoji Ozawa
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 JP2020116659A priority Critical patent/JP7408499B2/ja
Priority to US17/191,983 priority patent/US11568399B2/en
Publication of JP2022014369A publication Critical patent/JP2022014369A/ja
Application granted granted Critical
Publication of JP7408499B2 publication Critical patent/JP7408499B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】トランザクションの型式を問わず、適宜な形でシステム全体でのデータ総量削減を実現可能とする。【解決手段】ブロックチェーンシステム10において、クライアント300が発行した各トランザクションを含むブロックを生成し、このブロックが含む各トランザクションの有効性について検証し、ブロックと検証結果をピアノード200に配信し、ブロックを自身の記憶部のブロックチェーン125に追加し、検証結果を自身の記憶部に格納するオーダラーノード100と、ブロックおよび検証結果をオーダラーノード100から受信し、これらに基づき自身の記憶部のステート情報225にトランザクションが示す所定事象の情報を追加し、ブロックおよび検証結果を破棄するピアノード200を含む構成とする。【選択図】図1

Description

本発明は、分散台帳管理システム、分散台帳管理方法、およびノードに関する。
従来、金融機関や政府などの信頼できる中央集権機関を経由して実施されてきた取引を、利用者間のP2P(Peer to Peer)による直接的な取引で代替する技術として、ブロックチェーンを用いた分散台帳技術が登場している。
分散台帳技術に関しては、様々な派生技術が提案され、進化を続けている。現状の主な特徴としては、(1)分散台帳への参加者間の取引において、中央集権機関ではなく(任意ないしは特定の)参加者による合意形成や承認によって取引を確定させること、(2)複数のトランザクションをブロックとしてまとめ、数珠つなぎにブロックチェーンと呼ばれる分散台帳に記録し、連続するブロックにハッシュ計算を施すことにより、改ざんを実質不可能にすること、(3)参加者全員が同一の台帳データを共有することにより、参加者全員での取引の確認を可能とすることが挙げられる。
このようなブロックチェーンを用いた分散台帳技術は、以上のような特徴から、信頼できるデータの管理/共有や、契約に基づく取引の執行/管理を行う仕組みとして、金融や製造業等、幅広い分野での応用が検討されている。
こうした技術により実装される分散台帳システムでは、構成ノード間で所定の合意水準にて合意形成しながらトランザクションを受け入れ、各ノードでトランザクションを実行し、当該トランザクションの結果を保持することにより、複数ノード上で情報(台帳)を共有する。
この場合、分散台帳システムにおける全てのピアノードが台帳を持つため、分散台帳システム全体でのデータ総量は時間とともに単調増加しやすく、ストレージリソースを圧迫する問題がある。当該問題に関しては、例えば、以下の特許文献1および非特許文献1が示すように、様々なアプローチが取られている。
US20180129700
Hyperledger Labs/fabric-block-archiving
上述の従来技術うち特許文献1が示す技術では、Unspent Transaction Output(UTXO)型のトランザクションに関して、当該トランザクションの内容をまとめることにより、システム全体としてのデータ量削減を実現している。しかし、当該技術においては、UTXO型以外のトランザクションを扱うブロックチェーンには適用できないという問題が残されている。
また、非特許文献1が示す該当では、各組織に属しているピアノードは、全てのブロックチェーンを持たず、各組織に置かれているアーカイバにブロックチェーンを保存しておく手法を提案している。
ところが、この手法では、オーダラーノードの数と組織の数の和の分だけブロックチェーンを保存しておく必要があり、データ削減量が十分でないという課題が残されている。また他にも、オーダラーノードのブロックチェーンでは、トランザクションの検証情報(当該トランザクションが有効か無効かを識別するための情報)が付与されず、その後の利活用が適宜に行えないといった課題も残っている。
そこで本発明の目的は、トランザクションの型式を問わず、適宜な形でシステム全体でのデータ総量削減を実現可能とする技術を提供することにある。
上記課題を解決する本発明の分散台帳管理システムは、1つまたは複数のピアノードと、1つのオーダラーノードとから構成されるブロックチェーンシステムにおいて、前記オーダラーノードは、クライアントが発行した各トランザクションを受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行し、前記ピアノードは、前記ブロックおよび前記検証の結果を前記オーダラーノードから受信し、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証の結果を破棄する処理を実行するものである、ことを特徴とする。
また、本発明の分散台帳管理方法は、1つまたは複数のピアノードと、1つのオーダラーノードとから構成されるブロックチェーンシステムにおいて、前記オーダラーノードが、クライアントが発行した各トランザクションを受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行し、前記ピアノードが、前記ブロックおよび前記検証の結果を前記オーダラーノードから受信し、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証の結果を破棄する処理を実行する、ことを特徴とする。
また、本発明のオーダラーノードは、ブロックチェーンシステムを構成するノードであって、ネットワークを介して、前記ブロックチェーンシステム上のピアノードおよびクライアントと通信する通信部と、前記クライアントが本ノードに宛て発行した各トランザクションを、前記通信部を介して受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記通信部を介して前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行する演算部と、を備えることを特徴とする。
また、本発明のピアノードは、ブロックチェーンシステムを構成するノードであって、ネットワークを介して、前記ブロックチェーンシステム上のオーダラーノードと通信する通信部と、前記オーダラーノードが送信してきた、前記ブロックチェーンシステム上のクライアント由来の各トランザクションを含むブロックと当該ブロックが含む各トランザクションの有効性についての検証の結果を前記通信部を介して受信する処理、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証
の結果を破棄する処理を実行する演算部と、を備えることを特徴とする。
本発明によれば、トランザクションの型式を問わず、適宜な形でシステム全体でのデータ総量削減を実現可能となる。
本実施形態におけるブロックチェーンネットワークの構成例を示す図である 本実施形態のオーダラーノードのハードウェア構成例を示す図である。 本実施形態のピアノードのハードウェア構成例を示す図である。 本実施形態のクライアントのハードウェア構成例を示す図である。 本実施形態における分散台帳管理方法のフロー例を示す図である。 本実施形態における分散台帳管理方法のフロー例を示す図である 本実施形態におけるブロックチェーンおよび検証情報DBの構成例を示す図である。 本実施形態における分散台帳管理方法のフロー例を示す図である
<<ネットワーク構成>>
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態におけるブロックチェーンネットワークの構成例を示す図である図1に示すブロックチェーンネットワークは、本発明の分散台帳管理システム10に対応する(以後、ブロックチェーンネットワーク10と称する)。
こうしたブロックチェーンネットワーク10は、1つまたは複数の組織における分散台帳システム5を含んでいる。また、クライアント300を1つまたは複数含んでいる。
こうした構成において、各組織の分散台帳システム5は、ネットワーク1を介して通信可能に接続されているものとする。
また各組織の分散台帳システム5は、それぞれ1つまたは複数のピアノード200および1つのオーダラーノード100から構成される。
<<ハードウェア構成>>
また、本実施形態の分散台帳管理システム10を構成する各装置のハードウェア構成を、以下に示す。図2は、本実施形態のオーダラーノード100のハードウェア構成例を示す図である。
オーダラーノード100は、記憶部101、メモリ103、演算部104、および通信部105を備えている。
このうち記憶部101は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ103は、RAMなど揮発性記憶素子で構成される。
また、演算部104は、記憶部101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
この場合のオーダラーノード100は、上述のプログラム102の実行に伴い実装する
動作モジュールとして、ブロック作成部110、トランザクション検証部111、ブロック配布部112、ブロックチェーン追加部113、ブロック参照受付部114、およびブロックデータ送信部115を備えるものとする。
このうちブロック作成部110は、トランザクションをまとめたデータを1つのブロックとして梱包する。
また、トランザクション検証部111は、上記ブロックに梱包された各トランザクションがvalidかinvalidかを検証する。
また、ブロック配布部112は、1つもしくは複数のピアノード200に対して上記ブロックを配布する。
また、ブロックチェーン追加部113は、本オーダラーノード200が記憶部101で保持するブロックチェーン125に、ブロック作成部110で新たに作成したブロックを追加する。
また、ブロック参照受付部114は、クライアントノード300から受けたブロック参照依頼を受け付ける。
また、ブロックデータ送信部115は、上記クライアントノード300から受け付けたブロック参照依頼に対して、ブロックチェーン125から対応するブロックデータを抽出し応答する。
なお、オーダラーノード100が備える通信部105は、ネットワーク1と接続して他装置との通信処理を担うネットワークインターフェイスカードである。
また、記憶部101内には、本実施形態のオーダラーノード100として必要な機能を実装する為の上記プログラム102に加えて、ブロックチェーン125および検証情報DB126が少なくとも記憶されている。
このうちブロックチェーン227は、本オーダラーノード200のみが持つブロックチェーンデータである。また、検証情報DB126は、トランザクション検証部111がブロック内のトランザクションを検証した結果、を保存したデータベースである。
続いて図3に、本実施形態のピアノード200のハードウェア構成例を示す。ピアノード200は、記憶部201、メモリ203、演算部204、および通信部205を備えている。
このうち記憶部201は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ203は、RAMなど揮発性記憶素子で構成される。
また、演算部204は、記憶部201に保持されるプログラム202をメモリ203に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
この場合のピアノード200は、上述のプログラム202の実行に伴い実装する動作モジュールとして、ブロック受け取り部210、ステートDB書き込み部211、およびブ
ロック破棄部212を備えるものとする。
このうちブロック受け取り部210は、オーダラーノード200から配布されたブロックを受け取る。
また、ステートDB書き込み部211は、オーダラーノード200から受け取ったブロック内に格納されたトランザクションを読み込み、これに基づいてステートDB225に対する書き込みを行う。
また、ブロック破棄部212は、オーダラーノード200から受け取ったブロックを破棄する。
なお、ピアノード200が備える通信部105は、ネットワーク1と接続して他装置との通信処理を担うネットワークインターフェイスカードである。
また、記憶部201内には、本実施形態のピアノード200として必要な機能を実装する為の上記プログラム202に加えて、ステートDB225が少なくとも記憶されている。このステートDB225は、ブロックチェーン技術において一般的なステートDBと構成、機能ともに同様である。
続いて図4に、本実施形態のクライアント300のハードウェア構成例を示す。クライアント300は、記憶部301、メモリ303、演算部304、入力部305、出力部306、および通信部307を備えている。
このうち記憶部301は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ303は、RAMなど揮発性記憶素子で構成される。
また、演算部304は、記憶部301に保持されるプログラム302をメモリ303に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
この場合のクライアント300は、上述のプログラム302の実行に伴い実装する動作モジュールとして、ブロック参照依頼部310、およびブロックデータ受信部311を備えるものとする。
このうちブロック参照依頼部310は、オーダラーノード200に対して過去のブロックの参照依頼を送信する。
また、ブロックデータ受信部311は、ブロックの参照依頼を受け取ったオーダラーノード200から送信されるブロックデータを受け取る。
なお、クライアント300が備える入力部305は、ユーザからのキー入力や音声入力を受け付ける、キーボードやマウス、マイクなどの適宜な装置である。
また、入力部306は、演算部304での処理データの表示を行うディスプレイ、スピーカー等の適宜な装置である。
また、クライアント300が備える通信部307は、ネットワーク1と接続して他装置
との通信処理を担うネットワークインターフェイスカードである。
<<フロー例:ブロック作成・配信と破棄>>
以下、本実施形態における分散台帳管理方法の実際手順について図に基づき説明する。以下で説明する分散台帳管理方法に対応する各種動作は、分散台帳管理システム10を構成するオーダラーノード100およびピアノード200、クライアント300らがメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図5は、本実施形態における分散台帳管理方法のフロー例であり、具体的には、オーダラーノード100がブロックを作成し、ピアノード200に配布する一連の流れを示す図である。
この場合、まずオーダラーノード100は、ブロック作成部110を用いてトランザクションをまとめたブロックを作成する(s10)。なお、このトランザクションは、例えば、クライアント300が一定期間中に発行したトランザクションとなる。
続いて、オーダラーノード100は、トランザクション検証部111を用いて、上述のs10にて作成したブロック内のトランザクションの検証を行う(s11)。このトランザクションの検証処理の詳細については後述する。
続いて、オーダラーノード100は、ブロック配布部112を用いて、上述のs10にて作成したブロックとs11にて得た当該検証の結果(以下、検証情報)を、ピアノード200に配布する(s12)。
また、オーダラーノード100は、ブロックチェーン追加部113を用いて、s10で作成したブロックを、自身の記憶部101で保持するブロックチェーン227に追加する(s13)。
また、オーダラーノード100は、上述のs11で得た検証情報を、自身の記憶部101で保持する検証情報DB402に追加し(s14)、処理を終了する。
一方、ピアノード200は、ブロック受け取り部210を用いて、オーダラーノード100から配布されたブロックおよび検証情報を受け取る(s15)。
また、ピアノード200は、ステートDB書き込み部211を用いて、オーダラーノード100からs15で受信した上述のブロックと検証情報に基づき、ステートDB225に書き込みを実行する(s16)。
また、ピアノード200は、ブロック破棄部212を用いて、オーダラーノード100からs15で受信したブロックおよび検証情報を破棄し(s17)、処理を終了する。
<<フロー例:トランザクション検証>>
続いて、上述の図5のフローにおけるトランザクション検証s11の詳細について、図6のフローに基づき説明する。
この場合、オーダラーノード100のトランザクション検証部111は、検証対象のトランザクションが含まれるブロックに関して、前のループ(s30からs36の一連の検証処理)にて確認していたトランザクション(初回の場合は検証するトランザクション)の直前に、他のトランザクションが存在するか判定する(s30)。
この判定の結果、他のトランザクションが存在する場合(s30:YES)、トランザ
クション検証部111は、処理をs31に遷移する。一方、他のトランザクションが存在しない場合(s30:NO)、トランザクション検証部111は、処理をs32に遷移する。
s31におけるトランザクション検証部111は、s30で特定した直前のトランザクションの内容を読み取って、s32に進む。
続いて、トランザクション検証部111は、検証対象のトランザクションと、s31で内容を読み取った直前のトランザクションが、同じキーを参照して更新をしているか判定する(s32)。
上述の判定の結果、同じキーを参照して更新を行っている場合(s32:YES)、トランザクション検証部111は、処理をs33に進める。
一方、上述の判定の結果、同じキーを参照した更新が行われていない場合(s32:NO)、トランザクション検証部111は、処理をs30に戻す。
続いて、トランザクション検証部111は、検証対象のトランザクションのステートバージョンが、s31で内容を読み取っているトランザクションのステートバージョンの1つ進んだバージョンであるか判定する(s33)。
この判定の結果、1つ進んだバージョンである場合(s33:YES)、トランザクション検証部111は、処理をs34に進める。他方、上述の判定の結果、1つ進んだバージョンではない場合(s33:NO)、トランザクション検証部111は、処理をs38に進める。
また、トランザクション検証部111は、s31で内容を読み取っているトランザクションの検証情報が「valid」であるか判定する。
上述の判定の結果、検証情報が「valid」である場合(s34:YES)、トランザクション検証部111は、処理をs37に進める。
一方、上述の判定の結果、検証情報が「valid」ではない、すなわちinvalidである場合(s34:NO)、トランザクション検証部111は処理をs30に戻す。
ここで、上述のs30での判断分岐に説明を戻す。s30での判定の結果、他のトランザクションが存在しない場合(s30:NO)、トランザクション検証部111は、1ループ前に確認していたトランザクションが入っているブロックの、前のブロックの内容を読取り(s35)、処理をs36に進める。
また、トランザクション検証部111は、s35で内容を読み取った前のブロックがGenesisブロックであるか判定する(s36)。
上述の判定の結果、Genesisブロックである場合(s36:YES)、トランザクション検証部111は、処理をs38に進める。
他方、上述の判定の結果、Genesisブロックでない場合(s36:NO)、トランザクション検証部111は、処理をs30に戻す。
また、ステップs37において、トランザクション検証部111は、検証対象のトラン
ザクションはvalidである、すなわち検証成功と特定し、処理を終了する。他方、ステップs38において、トランザクション検証部111は、検証対象のトランザクションはinvalidである、すなわち検証失敗と特定し、処理を終了する。
なお、トランザクション検証部111は、こうした検証結果を、検証情報DB126において検証対象のトランザクションと紐付けて格納、管理する。
図7に、本実施形態のオーダラーノード100が記憶部101で保持する、ブロックチェーン125と検証情報DB126を、理解のため併合した形で示す。ここではブロックチェーン125が、Genesisブロックを先頭にして、ブロック1からブロック3まで連なる一連のブロックである構成を例示している。
また、Genesisブロック以外の各ブロックは、当該ブロックに梱包されたトランザクション621、とそのステートバージョン622を含むものとする。また本図では、そうした各ブロックが含むトランザクションには、その検証情報631が紐付いている。
以下、各トランザクションの構成について説明する。なお、Genesisブロック内にはトランザクションが含まれず、トランザクション601は空である。
トランザクション602は、ブロック1において、キーaを作成して0を代入するトランザクションである。この場合、ステートバージョンは、キーを新規作成したためv0である。また、検証情報はvalidである。
また、トランザクション603は、ブロック1において、キーbを作成して0を代入するトランザクションである。この場合、ステートバージョンはキーを新規作成したためv0である。また、検証情報はvalidである。
また、トランザクション604は、ブロック1において、キーbを作成して0を代入するトランザクションである。この場合、ステートバージョンはキーを新規作成したためv0である。しかし、すでにキーbは新規作成されているため、コンフリクトが発生しており、検証情報はinvalidとなる。
また、トランザクション605は、ブロック2において、キーaの内容を1カウントアップするトランザクションである。この場合、ステートバージョンは、v0のものを参照しv1に変更する。また、検証情報はvalidである。
また、トランザクション606は、ブロック2において、キーcを作成して0を代入するトランザクションである。この場合、ステートバージョンは、キーを新規作成したためv0である。また、検証情報はvalidである。
また、トランザクション607は、ブロック2において、キーaの内容を1カウントアップするトランザクションである。この場合、ステートバージョンは、v0のものを参照しv1に変更する。しかし、トランザクション606においてステートバージョンv0を参照しv1に変更するトランザクションがvalidとなっているため、検証情報はinvalidとなる。
また、トランザクション608は、ブロック3において、キーbの内容を1カウントアップするトランザクションである。この場合、ステートバージョンはv0のものを参照しv1に変更する。また、検証情報はvalidである。
また、トランザクション609は、ブロック3において、キーaの内容を1カウントアップするトランザクションである。この場合、ステートバージョンはv1のものを参照しv2に変更する。また、検証情報はvalidである。
また、トランザクション610は、ブロック3において、キーcの内容を1カウントアップするトランザクションである。この場合、ステートバージョンはv0のものを参照しv1に変更する。また、検証情報はvalidである。
<<フロー例:ブロック参照>>
続いて図8に、本実施形態の分散台帳管理方法のフローのうち、オーダラーノード100が、クライアント300からの過去のブロックの参照要求に応答するフローを示す。
この場合、ライアント300は、ブロック参照依頼部310を用いて、オーダラーノード100に対してブロック参照依頼を送信する(s20)。このブロック参照依頼には、ブロックのIDなど識別情報が含まれる。
一方、オーダラーノード100は、ブロック参照受付部114を用いて、上述のクライアント300から送信されたブロック参照依頼を受け付ける(s21)。
また、オーダラーノード100は、s21で受けたブロック参照依頼が示す識別情報に基づき、自身の記憶部101で保持するブロックチェーン125からブロックデータを取得する(s22)。
また、オーダラーノード100は、自身の記憶部101で保持する検証情報DB126より、上述のs22で得たブロックデータに対応する検証情報を取得する(s23)。
続いて、オーダラーノード100は、s22で得たブロックデータおよびs23で得たその検証情報を、クライアント300に対して送信する(s24)。
一方、クライアント300は、上述のオーダラーノード100から送信されたブロックデータおよび検証情報を受信し(s25)、これを出力部306で表示するなどし処理を終了する。
<<その他の例>>
上述の図8におけるフローでは、オーダラーノード100が、クライアント300よりブロック参照依頼を直接受信する形態となっているが、クライアント300がピアノード200を経由してブロック参照依頼を送信し、このピアノード200が当該ブロック参照依頼をオーダラーノード100に転送するなどし、処理を代行するとしてもよい。その場合、ピアノード200がオーダラーノード100から取得したブロックデータおよび検証情報を、クライアント300に応答することになる。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、トランザクションの型式を問わず、適宜な形でシステム全体でのデータ総量削減を実現可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の分散台帳管理システムにおいて、前記オーダラーノードは、クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、お
よび前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、を更に実行するものである、としてもよい。
これによれば、クライアントのユーザによるブロック参照要求に応じて、対応するブロックの情報を応答可能である。翻れば、各ピアノードでブロックチェーンを保持せずとも、ユーザからの参照要求に的確に応答できると言える。つまり、トランザクションの型式を問わず、適宜な形でシステム全体でのデータ総量削減を実現可能である。
本実施形態の分散台帳管理方法において、前記オーダラーノードが、クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、および前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、を更に実行するとしてもよい。
また、本実施形態の前記オーダラーノードにおいて、前記演算部は、クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、および前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、を更に実行するものである、としてもよい。
1 ネットワーク
10 分散台帳管理システム
100 オーダラーノード
101 記憶部
102 プログラム
103 メモリ
104 演算部
105 通信部
110 ブロック作成部
111 トランザクション検証部
112 ブロック配布部
113 ブロックチェーン追加部
114 ブロック参照受付部
115 ブロックデータ送信部
125 ブロックチェーン
126 検証情報DB
200 ピアノード
201 記憶部
202 プログラム
203 メモリ
204 演算部
205 通信部
210 ブロック受け取り部
211 ステートDB書き込み部
212 ブロック破棄部
225 ステートDB
300 クライアント
301 記憶部
302 プログラム
303 メモリ
304 演算部
305 入力部
306 出力部
307 通信部
310 ブロック参照依頼部
311 ブロックデータ受信部

Claims (7)

  1. 1つまたは複数のピアノードと、1つのオーダラーノードとから構成されるブロックチェーンシステムにおいて、
    前記オーダラーノードは、クライアントが発行した各トランザクションを受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行し、
    前記ピアノードは、前記ブロックおよび前記検証の結果を前記オーダラーノードから受信し、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証の結果を破棄する処理を実行するものである、
    ことを特徴とする分散台帳管理システム。
  2. 前記オーダラーノードは、
    クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、および前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、を更に実行するものである、
    ことを特徴とする請求項1に記載の分散台帳管理システム。
  3. 1つまたは複数のピアノードと、1つのオーダラーノードとから構成されるブロックチェーンシステムにおいて、
    前記オーダラーノードが、
    クライアントが発行した各トランザクションを受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行し、
    前記ピアノードが、
    前記ブロックおよび前記検証の結果を前記オーダラーノードから受信し、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証の結果を破棄する処理を実行する、
    ことを特徴とする分散台帳管理方法。
  4. 前記オーダラーノードが、
    クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、および前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、
    を更に実行することを特徴とする請求項3に記載の分散台帳管理方法。
  5. ブロックチェーンシステムを構成するオーダラーノードであって、
    ネットワークを介して、前記ブロックチェーンシステム上のピアノードおよびクライアントと通信する通信部と、
    前記クライアントが本ノードに宛て発行した各トランザクションを、前記通信部を介し
    て受信し、当該各トランザクションを含むブロックを生成する処理、前記ブロックが含む各トランザクションの有効性について検証する処理、前記ブロックと前記検証の結果を前記通信部を介して前記ピアノードに配信する処理、前記ブロックを自身の記憶部のブロックチェーンに追加する処理、および前記検証の結果を自身の記憶部に格納する処理を実行する演算部と、
    を備えることを特徴とするノード。
  6. 前記演算部は、クライアントからブロック参照依頼を受信した場合、自身の記憶部で保持するブロックチェーンより、前記ブロック参照依頼が示す対象ブロックを抽出する処理、自身の記憶部で保持する前記検証の結果のうち、前記対象ブロックを構成する各トランザクションに関するものを抽出する処理、および前記抽出した前記対象ブロックおよび前記検証の結果を、前記クライアントに返信する処理、を更に実行するものである、
    ことを特徴とする請求項5に記載のノード。
  7. ブロックチェーンシステムを構成するピアノードであって、
    ネットワークを介して、前記ブロックチェーンシステム上のオーダラーノードと通信する通信部と、
    前記オーダラーノードが送信してきた、前記ブロックチェーンシステム上のクライアント由来の各トランザクションを含むブロックと当該ブロックが含む各トランザクションの有効性についての検証の結果を前記通信部を介して受信する処理、前記ブロックおよび前記検証の結果に基づき、自身の記憶部のステート情報に、前記トランザクションが示す所定事象の情報を追加する処理、および前記受信した前記ブロックおよび前記検証の結果を破棄する処理を実行する演算部と、
    を備えることを特徴とするノード。
JP2020116659A 2020-07-06 2020-07-06 分散台帳管理システム、分散台帳管理方法、およびノード Active JP7408499B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020116659A JP7408499B2 (ja) 2020-07-06 2020-07-06 分散台帳管理システム、分散台帳管理方法、およびノード
US17/191,983 US11568399B2 (en) 2020-07-06 2021-03-04 Distributed ledger management system, distributed ledger management method, and node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020116659A JP7408499B2 (ja) 2020-07-06 2020-07-06 分散台帳管理システム、分散台帳管理方法、およびノード

Publications (2)

Publication Number Publication Date
JP2022014369A true JP2022014369A (ja) 2022-01-19
JP7408499B2 JP7408499B2 (ja) 2024-01-05

Family

ID=79167159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020116659A Active JP7408499B2 (ja) 2020-07-06 2020-07-06 分散台帳管理システム、分散台帳管理方法、およびノード

Country Status (2)

Country Link
US (1) US11568399B2 (ja)
JP (1) JP7408499B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115796889B (zh) * 2023-01-10 2023-04-18 开鑫科技信息服务(南京)有限公司 适用于交易平台的数据处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019009767A (ja) * 2018-03-01 2019-01-17 株式会社エヌ・ティ・ティ・データ 情報処理装置
JP2020512757A (ja) * 2017-09-29 2020-04-23 オラクル・インターナショナル・コーポレイション ブロックチェーンクラウドサービスを管理するためのシステムおよび方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3321819B1 (en) * 2016-11-09 2020-07-22 Ingenico Group Device, method and program for securely reducing an amount of records in a database
WO2019222309A1 (en) * 2018-05-15 2019-11-21 Schlumberger Technology Corporation Blockchain-based entitlement service
US11196542B2 (en) * 2018-08-29 2021-12-07 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11526487B2 (en) * 2019-05-17 2022-12-13 International Business Machines Corporation Database world state integrity validation
US11050822B2 (en) * 2019-06-05 2021-06-29 International Business Machines Corporation Secure data dissemination

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020512757A (ja) * 2017-09-29 2020-04-23 オラクル・インターナショナル・コーポレイション ブロックチェーンクラウドサービスを管理するためのシステムおよび方法
JP2019009767A (ja) * 2018-03-01 2019-01-17 株式会社エヌ・ティ・ティ・データ 情報処理装置

Also Published As

Publication number Publication date
US11568399B2 (en) 2023-01-31
US20220005025A1 (en) 2022-01-06
JP7408499B2 (ja) 2024-01-05

Similar Documents

Publication Publication Date Title
US11790370B2 (en) Techniques for expediting processing of blockchain transactions
US10986177B2 (en) Systems and methods of self-forking blockchain protocol
US11055703B2 (en) Smart contract lifecycle management
US11070360B2 (en) Parallel transaction validation and block generation in a blockchain
Bonomi et al. B-coc: A blockchain-based chain of custody for evidences management in digital forensics
US20200177373A1 (en) System and method for storing contract data structures on permissioned distributed ledgers
US11232221B2 (en) Right to be forgotten on an immutable ledger
KR20210050526A (ko) 업그레이드 가능한 증권형 토큰
CN112868210B (zh) 区块链时间戳协议
CN113302645A (zh) 定义和管理分布式账本信托网络中的表单
US20190354968A1 (en) Utilization Management Method, Utilization Management System, and Node
CN112835612A (zh) 一种基于区块链的电子文档版本管理方法及装置
CN110874739A (zh) 实现高完整性、高带宽、低延迟、安全处理的分布式计算和存储网络
CN102316152B (zh) 分布式服务授权管理
US11151122B2 (en) Distributed ledger data linkage management
JP7181455B2 (ja) ブロックチェーンシステム、承認端末、利用者端末、履歴管理方法、および、履歴管理プログラム
CN111831739A (zh) 数据库复合背书
JP2021189638A (ja) 移行支援システム、移行支援方法、およびノード
JPWO2020152893A1 (ja) 改ざん検知性を有するデータ管理システム
JP2023515369A (ja) 分散型データベース
CN110807209B (zh) 一种数据处理方法、设备及存储介质
JP7408499B2 (ja) 分散台帳管理システム、分散台帳管理方法、およびノード
US20210256512A1 (en) Provisioning Of Assets Based On Content Usage
US20230412402A1 (en) Endorsement policy consolidation in blockchain networks
JP7421443B2 (ja) データ移行方法、データ移行システム、およびノード

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231220

R150 Certificate of patent or registration of utility model

Ref document number: 7408499

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150