JP2018196150A - トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム - Google Patents

トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム Download PDF

Info

Publication number
JP2018196150A
JP2018196150A JP2018153327A JP2018153327A JP2018196150A JP 2018196150 A JP2018196150 A JP 2018196150A JP 2018153327 A JP2018153327 A JP 2018153327A JP 2018153327 A JP2018153327 A JP 2018153327A JP 2018196150 A JP2018196150 A JP 2018196150A
Authority
JP
Japan
Prior art keywords
node
transaction
block
composite transaction
private
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.)
Withdrawn
Application number
JP2018153327A
Other languages
English (en)
Other versions
JP2018196150A5 (ja
Inventor
裕三 加納
Yuzo Kano
裕三 加納
峰史 小宮山
Takafumi Komiyama
峰史 小宮山
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.)
BitFlyer Inc
Original Assignee
BitFlyer Inc
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 BitFlyer Inc filed Critical BitFlyer Inc
Publication of JP2018196150A publication Critical patent/JP2018196150A/ja
Publication of JP2018196150A5 publication Critical patent/JP2018196150A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/381Currency conversion
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • 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
    • 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/405Establishing or using transaction specific rules
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/126Applying verification of the received information the source of the received data
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】トランザクションに記された取引内容の信頼性を確保しつつ、1つのトランザクションで複合的な取引形態を扱うことを可能にするトランザクション処理装置を提供する。
【解決手段】資産の移動元(保持元)A,Bが、自己の管理するアドレスの秘密鍵による署名「A」,「B」を付することを条件に、複合的な取引に関する取引情報を一つのトランザクション(複合トランザクション)に記すことを許容する。この複合トランザクションをデータベースに記録する場合、なりすまし(取引主体となる当事者を含む)を防止すべく、資産の移動元の全署名「A」,「B」が正当であることを記録の条件の一つとする。
【選択図】図6

Description

本発明は、トランザクション処理装置およびトランザクション処理用コンピュータプログラムに係り、特に、一つのトランザクションにて扱うことができる取引形態の拡張に関する。
従来、ブロックチェーンと称される技術が知られている。この技術は、ネットワーク上の多数のノード間で同一の記録を同期させる仕組みであって、既存の記録に新しい記録を追加する場合、記録単位となるブロックが、直前のブロックの内容(ハッシュ)を引き継ぎながら、チェーン状に次々と追加されていくことから、このように称されている。一般に、ブロックチェーンという用語は、ブロックがチェーン状に繋がったデータベースの構造を指すこともあるが、P2Pネットワークとして稼働する仕組みや、トランザクションの承認の仕組みなども含めた広義の意味で用いられることもあり、現時点において、その定義は定かではない。そこで、本明細書では、両者の混同を防ぐために、前者の狭義の意味で用いる場合は「ブロックチェーン」、後者の広義の意味で用いる場合は「ブロックチェーン技術」とそれぞれ称することとする。
ブロックチェーン技術は、ゼロダウンタイム、改ざんの困難性、低コストといった多くの利点を有しているため、ビットコイン(bitcoin)やその派生通貨を含む仮想通貨にとどまらず、様々な資産(asset)に関する情報をトランザクションとして管理する手法としても注目され始めている。例えば、非特許文献1には、信頼性確立のために重要な役割を果たし得るブロックチェーンを、様々な文書の存在証明やアイデンティティ証明に使うことが記載されている。
ブロックチェーンはサイバー空間での信頼関係を築く――「存在証明」や「アイデンティティ証明」が持つ重要な意味、[online]、[平成28年3月28日検索]、インターネット<URL:http://diamond.jp/articles/-/53050>
従来のブロックチェーン技術において、1つのトランザクションにて扱うことができる取引形態は、例えば「AからBに100円を渡す」といった如く、1つの資産移動に限られている。そのため、例えば、「AからBに100円を渡す代わりに、BからAに1ドルを渡す」といった交換、すなわち、複数の資産移動を伴う複合的な取引形態については、1つのトランザクションで扱うことはできなかった。
本発明は、かかる事情に鑑みてなされたものであり、その目的は、トランザクションに記された取引内容の信頼性を確保しつつ、1つのトランザクションで複合的な取引形態を扱うことを可能にすることである。
かかる課題を解決すべく、第1の発明は、ネットワーク上のノードからの依頼に基づいて、取引情報が記されたトランザクションをデータベースに記録するトランザクション処理装置を提供する。このトランザクション処理装置は、署名検証部と、トランザクション処理部とを有する。署名検証部は、資産の保持元が複数存在する複合的な取引が記されたトランザクションについて、トランザクションに付された複数の署名であって、複数の保持元のそれぞれが管理するアドレスの秘密鍵による署名の正当性を、秘密鍵のそれぞれに対応する公開鍵を用いて検証する。トランザクション処理部は、複数の署名のすべてが正当であることを条件に、トランザクションをデータベースに記録する。
ここで、第1の発明において、上記トランザクション処理部は、ブロック生成部と、承認依頼部と、ブロック確定部とを有していてもよい。ブロック生成部は、トランザクションを含むブロックを生成する。承認依頼部は、ブロックに自ノードの秘密鍵による署名を付した上で、m(m≧2)個のノードに対して、ブロックの承認依頼を送信する。ブロック確定部は、承認の依頼先となるノードよりブロックの承認結果を受信した場合、この承認結果に付された署名の正当性を承認の依頼先の公開鍵を用いて検証した上で、m個のノードのうちのn(m≧n≧1)個以上の承認が得られたことを条件として、このブロックについて、トランザクションをブロック単位で記録するデータベースに追加することを確定する。
第2の発明は、取引情報が記されたトランザクションを生成して、ネットワーク上のノードにトランザクションの記録を依頼するトランザクション処理装置を提供する。このトランザクション処理装置は、転送部と、記録依頼部とを有する。転送部は、資産の保持元が複数存在する複合的な取引が記されたトランザクションについて、自己の管理するアドレスが署名を付すべき保持元のアドレスのいずれかに該当し、かつ、自己が管理するアドレス以外に署名を付すべき保持元のアドレスが残っている場合、トランザクションに自ノードが管理するアドレスの秘密鍵による署名を付した上で送信し、他ノードに転送する。記録依頼部は、トランザクションについて、自己の管理するアドレスが署名を付すべき保持元のアドレスのいずれかに該当し、かつ、自己が管理するアドレス以外に署名を付すべき保持元のアドレスが残っていない場合、トランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で、すべての保持元の署名が付されたトランザクションを送信し、トランザクションをデータベースに記録すべき旨を、データベースへの記録権限を有するノードに依頼する。
第3の発明は、ネットワーク上のノードからの依頼に基づいて、取引情報が記されたトランザクションをデータベースに記録するトランザクション処理用コンピュータプログラムを提供する。このコンピュータプログラムは、資産の保持元が複数存在する複合的な取引が記されたトランザクションについて、トランザクションに付された複数の署名であって、複数の保持元のそれぞれが管理するアドレスの秘密鍵による署名の正当性を、秘密鍵のそれぞれに対応する公開鍵を用いて検証する第1のステップと、複数の署名のすべてが正当であることを条件に、トランザクションをデータベースに記録する第2のステップとを有する処理をコンピュータに実行させる。
ここで、第3の発明において、上記第2のステップは、トランザクションを含むブロックを生成するステップと、ブロックに自ノードの秘密鍵による署名を付した上で、m(m≧2)個のノードに対して、ブロックの承認依頼を送信するステップと、承認の依頼先となるノードよりブロックの承認結果を受信した場合、当該承認結果に付された署名の正当性を承認の依頼先の公開鍵を用いて検証した上で、m個のノードのうちのn(m≧n≧1)個以上の承認が得られたことを条件として、ブロックについて、トランザクションをブロック単位で記録するデータベースに追加することを確定するステップとを有していてもよい。
第4の発明は、取引情報が記されたトランザクションを生成して、ネットワーク上のノードにトランザクションの記録を依頼するトランザクション処理用コンピュータプログラムを提供する。このコンピュータプログラムは、資産の保持元が複数存在する複合的な取引が記されたトランザクションについて、自己の管理するアドレスが署名を付すべき保持元のアドレスのいずれかに該当し、かつ、自己が管理するアドレス以外に署名を付すべき保持元のアドレスが残っている場合、トランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で送信し、他のノードに転送する第1のステップと、トランザクションについて、自己が管理するアドレスが署名を付すべき保持元のアドレスのいずれかに該当し、かつ、自己が管理するアドレス以外に署名を付すべき保持元のアドレスが残っていない場合、トランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で、すべての保持元の署名が付されたトランザクションを送信し、トランザクションをデータベースに記録すべき旨を、データベースへの記録権限を有するノードに依頼する第2のステップとを有する処理をコンピュータに実行させる。
第1から第4の発明において、上記データベースは、ネットワーク上のそれぞれのノードが同一の記録内容を同期して保持し、かつ、記録単位となるブロックが記録順序にしたがい繋がった分散データベースであることが好ましい。また、上記ネットワークは、取引情報を記したトランザクションを生成する複数のパブリックノードと、データベースへの記録権限を有するノード数が制限された複数のプライベートノードとを有し、上記資産の保持元は、パブリックノードが管理するアドレスであることが好ましい。
本発明によれば、複合的な取引に関する取引情報を一つのトランザクションに記すことを許容する。そして、複合的な取引に関するトランザクションをデータベースに記録する場合、なりすまし(取引主体となる当事者を含む)を防止すべく、資産の保持元の全署名が正当であることが記録の条件の一つとされる。これにより、複合的な取引を構成する個々の取引について、データベースに同時かつ一体で記録されることが保証され、一方のみが記録され、他方が未記録といった状況が一時的であれ生じることを回避できる。その結果、トランザクションに記された取引内容の信頼性を確保しつつ、単一のトランザクションで多様な取引形態を扱うことができる。
トランザクション処理ネットワークの物理的な構成図 トランザクション処理ネットワークの論理的な構成図 プライベートノードにおける公開鍵の設定方法の説明図 単一トランザクションおよび複合トランザクションの説明図 パブリックノード用のトランザクション処理装置の機能的なブロック図 複合トランザクションの署名フローの説明図 プライベートノード用のトランザクション処理装置の機能的なブロック図 トランザクションの記録処理のフローを示す図 トランザクションの処理待ち状態を示す図 多重署名によるブロック承認の説明図 データベース構造の説明図
図1は、本実施形態に係るトランザクション処理ネットワークの物理的な構成図である。このトランザクション処理ネットワーク1は、取引に関する情報を管理する管理システムとして用いられる。どのような取引を管理の対象とするかは、その用途に応じて、システムの仕様として予め決められている。例えば、銀行システムであれば、実通貨の取引が対象となり、証券システムであれば証券の取引が対象となる。本明細書において、「取引」とは、実通貨、仮想通貨、証券、不動産等の資産ないしこの資産の状態の保持(ストック)、資産の移転(フロー)はもとより、契約も含む概念をいい、契約は、資産にも負債にもなり得る。また、デリバティブの概念を導入することで、より広い範囲の取引を定義できる。
例えば、「AからBへ1億円を送金する」や「AからBへ特定株を500株受け取る」といったことは、資産の移転(フロー)と同義であり、1方向の取引として捉えることができる。この取引形態では、資産の移動元Aは資産の保持元であり、資産の移動先Bは資産の新たな保持元となる。「Aは1億円の預金を保有している」や「Aは特定株を500株持っている」といったことは、資産そのものとも捉えることができるし、資産の状態の保持(ストック)という概念としても捉えることができる。この資産の状態の保持(ストック)の場合、複数の資産の移動元(保持元)は存在するものの、実際には資産は移動しないというステータスを管理することにより、資産の移転(フロー)と同様に複合的な取引を記述することができる。「AはBから米ドルを1億円分購入する」や「AはBから特定株を500株分、1株1000円で購入する」といったことは、資産の移転(フロー)が2つ同時に起こる2方向の取引として捉えることができる。「資産の移動元が複数存在する複合的な取引」といった場合、複数の資産の移転(フロー)、複数の資産の状態の保持(ストック)、あるいは複数の資産の移転(フロー)と状態の保持(ストック)が混在した取引を意味する。
トランザクション処理ネットワーク1は、P2P(Peer to Peer)型のネットワークであり、純粋なP2Pのみならず、いわゆるハイブリッド型(一部にクライアントサーバ型の構成を含むもの)も含まれる。トランザクション処理ネットワーク1に参加(接続)するノード2は、1対1の対等の関係で通信(P2P通信)を行う。それぞれのノード2は、ノード装置として、コンピュータ3と、データベース4aとを有している。取引に関する情報は、ネットワーク1上の分散データベース4、すなわち、ノード2毎に設けられたデータベース4aの集合体によって管理される。ネットワーク1上に存在するすべてのデータベース4aは、ブロックチェーン技術によって同期しており、基本的に、同一の記録内容を保持している。権限を有するノード2が分散データベース4を更新する場合、自ノード2に接続されている他ノード2にその旨が通知され、以後、ノード間のP2P通信が繰り返されることによって、最終的に、ネットワーク1の全体に通知が行き渡る。これにより、すべてのノード2のデータベース4aが更新され、同一の記録内容として共有されることになる。
ネットワーク1におけるP2P通信は、セキュリティを確保すべく、SSL通信にて行われる。また、ノード2間で受け渡しされるトランザクションの正当性については、公開鍵暗号を用いた電子署名によって検証される。その前提として、それぞれのノード2は、資産の保持元(移動元)のすべてが、自己が管理するアドレスの秘密鍵による署名を付することを条件に、自己が管理するアドレスの秘密鍵(暗証番号)を保持している(ネットワークアドレスの所有者=秘密鍵の保有者)。公開鍵は、秘密鍵より一義的に特定される。ネットワークアドレスは、公開鍵そのものを用いてもよいし、ビットコイン等と同様、公開鍵をハッシュしてチェックサムを加えたものを用いてもよい。トランザクションの送り手は、送ろうとするトランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で送信する。トランザクションの受け手は、受け取ったトランザクションに付された署名の正当性を、この秘密鍵に対応する公開鍵にて検証する。なお、ここで用いられる公開鍵暗号は、後述するブロックの承認に関する多重署名(マルチシグ)の公開鍵暗号とは別個のものである。マルチシグの秘密鍵は、上記のネットワークアドレスとは関係なく、プライベートノード2bのみが保有する。
なお、図1は、個々のノード2が他の全ノード2に接続されたフルコネクト型を示しているが、これは一例であって、どのようなトポロジーを採用してもよい。また、特定のノード2に情報を送信する場合、P2P通信による間接的な送信ではなく、アドレスを指定して送信先に直接送信できるようなプロトコルを導入してもよい。
図2は、トランザクション処理ネットワーク1の論理的な構成図である。本実施形態において、トランザクション処理ネットワーク1を構成するノード2には、パブリックノード2aと、プライベートノード2bとが存在する。パブリックノード2aは、取引の主体となるアプリケーションノードである(信頼できないノードを含み得る)。パブリックノード2aは、取引に関する情報を記したトランザクションを生成し、これに署名した上で、プライベートノード2b群に直接的または間接的に送信する。パブリックノード2aは、プライベートノード2b群へのトランザクションの記録依頼のみ行い、自身では、分散データベース4への記録処理は行わない。パブリックノード2aにとって重要なことは、(最新でなくてもいいので)クエリーができること、新規に作成したトランザクションに署名すること、および、トランザクションの承認をプライベートノード2b群に依頼することである。
なお、例えば、あるアドレスの残高を算出するといった検索時に、処理の高速化を図るべく、複数のパブリックノード2aの一部において、データベース4aの記録内容をインデックス付きで管理してもよい。分散データベース4のデータは基本的にKey-Value型なので、条件付の照会に非常に時間がかかるという欠点がある。その解決のために検索用の独自のインデックスを持ったノードを設けることで、応用範囲を拡張できる。
プライベートノード2bは、ノード数が制限された信頼できるノードであって、パブリックノード2aより依頼されたトランザクションについて、分散データベース4への記録処理を行う。この記録処理は、後述するように、プライベートノード2b群が協働することによって行われる。記録処理が完了した場合、処理結果が依頼元のパブリックノード2aに通知される。プライベートノード2bにとって重要なことは、トランザクションを承認してブロック化した上で、分散データベース4に追加することであって、ビットコインなどの仮想通貨で採用されているマイニングや手数料といった報酬(インセンティブ)は、必ずしも必要ではない。
複数のプライベートノード2bは、公開鍵暗号を用いて、ブロックの承認に関する多重署名(マルチシグ)によるブロックの承認を行う。そのため、図3に示すように、それぞれのプライベートノード2bは、自ノードの秘密鍵を有している。それとともに、公開鍵が記述されたコンフィグファイルをシステムの起動時に読み込むことによって、プライベートノード2bの間で公開鍵が共有されている。また、プライベートノード2bの公開鍵を追加または失効させるプロトコルが用意されており、このプロトコルを実行することで、コンフィグファイルを書き換えなくても、公開鍵を追加または失効させることができる。この公開鍵に関する情報は、厳密な管理が要求されるので、安全性を確保すべく、SSL等によってやり取りされる。
図4は、単一トランザクションおよび複合トランザクションの説明図である。本トランザクション処理ネットワーク1が取り扱うトランザクションには、単一トランザクションと、複合トランザクションとが存在する。2つのタイプのトランザクションは、どちらもシステム処理上は同じ一つのトランザクションとして取り扱われ、すべての資産の保持元(一つを含む)について、その保有者の署名が必要となる。単一トランザクションは、同図(a)に示すように、「移動元A(保持元)から移動先B(新たな保持元)へ100円を移動する」といった如く、1つの資産の移動について記されており、資産の移動元Aが管理するアドレスの秘密鍵による署名が付される。一方、複合トランザクションは、同図(b)に示すように、「移動元A(保持元)から移動先B(新たな保持元)へ100円を移動すると共に、移動元B(保持元)から移動先A(新たな保持元)へ1ドルを移動する」といった2つの資産移動を伴う取引、すなわち、資産の交換について記されている。この場合、資産の移動元が2つ存在するため、一方の資産の移動元A(保持元)が管理するアドレスの秘密鍵による署名、および、他方の資産の移動元B(保持元)が管理するアドレスの秘密鍵による署名の双方が要求される。
複合トランザクションに記すことができる資産移動は2つに限らず、3つ以上の資産移動を伴う取引形態についても記すことができる。例えば、移動元Aから移動先Bへ100円、移動元Bから移動先Cへ1ドル、移動元Cから移動先Aへ飲料1本をそれぞれ移動させるといった如くである(3者間の交換)。この取引形態は、3つの資産移動を伴うので、3つの移動元A〜Cが管理するアドレスの秘密鍵による署名(3つ)が要求される。また、複合トランザクションをさらに複合させることも可能である。この場合、トランザクションには資産の移動以外にもメタデータを記載できるエリアがあるので、これを活用すればよい。
図5は、パブリックノード2a用のトランザクション処理装置の機能的なブロック図である。このトランザクション処理装置20は、トランザクション生成部20aと、記録依頼部20bと、結果受領部20cと、転送部20dとを有する。トランザクション生成部20aは、所定のフォーマットにしたがい、取引に関する情報が記されたトランザクション(単一トランザクションまたは複合トランザクション)を生成する。取引に関する情報は、例えば、表示画面の指示にしたがいユーザが入力した入力情報より、あるいは、別のネットワークを通じて受信した受信情報より取得される。
単一トランザクションの場合、記録依頼部20bは、トランザクション生成部20aによって生成されたトランザクションに自己が管理するアドレスの秘密鍵による署名を付した上で、ノード2間のP2P通信を介してプライベートノード2b群に送信し、トランザクションを記録すべき旨をプライベートノード2b群に依頼する。結果受領部20cは、いずれかのプライベートノード2bより送信されたトランザクションの処理結果を受領し、これをユーザに提示する。
一方、複合トランザクションの場合、トランザクション生成部20aによって生成されたトランザクションは、図6に示す署名フローを経て、プライベートノード2b群に送信される。まず、あるノード2aにおいて、資産の保持元A,Bよりなる複合的な取引を記した複合トランザクションが、トランザクション生成部20aによって生成される(同図(a))。この段階では、「移動元Aから移動先Bへ100円の資金移動」について、移動元Aの署名欄、および、「移動元Bから移動先Aへの1ドルの資金移動」について、移動元Bの署名欄は、共にブランクとされる。ただし、自己が管理するアドレスが移動元A,Bのいずれかに該当する場合には、この段階で、トランザクションに自己が管理するアドレスの秘密鍵による署名が付される(同図(b))。生成された複合トランザクションは、P2P通信によって他のパブリックノード2aに転送される。
複合トランザクションのフォーマットは、複数のトランザクションを格納可能なデータ構造であり、各トランザクションに対応した複数の電子署名も格納可能となっている。あるトランザクションにより表される資産の保持元による署名は、当該トランザクションのみでなく、複数のトランザクション全体を対象として行うことができ、これにより、一部の保持元による署名の後に、複数のトランザクションの一部又は全てに改竄がなされた場合に無効として取り扱うことができる。
複合トランザクションを受け取ったノード2aにおいて、転送部20dは、自己の管理するアドレスが署名を付すべきアドレスA,Bのいずれかに該当する場合、該当する署名欄(ブランク)に、自己が管理するアドレスの秘密鍵による署名を記入する。例えば、同図(b)に示したように、自己が管理するアドレスがAの場合、「移動元Aから移動先Bへ100円の資金移動」の署名欄に署名「A」が記入される。そして、転送部20dは、自己が管理するアドレス以外に署名を付すべきアドレスが残っている場合(本ケースでは署名「B」が未記入)、署名「A」が付されたトランザクションを、P2P通信によって他のパブリックノード2aに転送する。なお、この転送は、P2Pネットワークを介さない他の転送・交換手段(例えば、外部のネットワークを用いたデータ転送等)で行ってもよい。
一方、複合トランザクションを受け取ったノード2aにおいて、転送部20dは、自己の管理するアドレスが署名を付すべきアドレスA,Bのいずれかにも該当しない場合、このノード2aは単なる中継ノードにすぎないので、受け取った複合トランザクションをそのまま他のパブリックノード2aに転送する(同図(c))。
そして、複合トランザクションを受け取ったノード2aにおいて、自己の管理するアドレスがA,Bのいずれかに該当し、かつ、自己が管理するアドレス以外に署名を付すべきアドレスが残っていない場合、記録依頼部20bは、自己が管理するアドレスの秘密鍵による署名を、トランザクションに記入する。例えば、同図(d)に示したように、自己の管理するアドレスがBの場合、「移動元Bから移動先Aへ1ドルの資金移動」の署名欄に署名「B」が記入される。そして、記録依頼部20bは、すべての署名「A」,「B」が付された複合トランザクションを送信し、プライベートノード2b群に対して、複合トランザクションを分散データベース4に記録すべき旨を依頼する。プライベートノード2b群は、分散データベース4への記録権限を有しており、かつ、秘密鍵による署名「A」,「B」を検証する公開鍵を有している。
図7は、プライベートノード2b用のトランザクション処理装置の機能的なブロック図である。このプライベートノード装置21は、署名検証部22と、トランザクション処理部23とを有する。署名検証部22は、パブリックノード2aより記録依頼として受け付けたトランザクションに付された署名の正当性を検証する。具体的には、単一トランザクションの場合には、トランザクションに付された一つの署名の正当性が、この秘密鍵に対応する公開鍵を用いて検証される。また、複合トランザクションの場合には、複数の署名の正当性が、それぞれの秘密鍵に対応する公開鍵を用いて検証される。なお、署名の他に、その資産が二重使用されていないことなども併せて検証される。
トランザクション処理部23は、署名が正当であると検証できたこと、および、その他の条件を満たす場合に、トランザクションを分散データベース4に記録する。このトランザクション処理部23は、ブロック生成部23aと、承認依頼部23bと、ブロック確定部23cと、承認応答部23dとを有する。
ここで、トランザクション処理装置21は、2つの役割を担っている。一つは、自ノード2bがブロックを生成し、他ノード2bにブロックの承認を依頼する役割であり、そのための構成として、ブロック生成部23aと、承認依頼部23bと、ブロック確定部23cとが存在する。そして、もう一つは、他ノード2bが生成したブロックを承認する役割であり、そのための構成として、承認応答部23dが存在する。このように、プライベートノード2bは、自ノード2bが生成したブロックの承認を他ノード2bに依頼する依頼方、および、他ノード2bによって生成されたブロックの承認を自ノード2bが行う承認方のどちらにもなり得る。
ブロック生成部23aは、トランザクションの記録の依頼元となるパブリックノード2aより依頼を受けたトランザクションを複数まとめることによって、ブロックを生成する。ブロックの生成において、単一トランザクション/複合トランザクションの区別はなく、どちらも同等の一つのトランザクションとして取り扱われる。承認依頼部23bは、ブロック生成部23aによって生成されたブロックに自ノード2bの秘密鍵による署名を付した上で、システムのコンフィグとして予め設定されたm(m≧2)個の他のプライベートノード2bに対して、ブロックの承認依頼を送信する。承認の依頼先のノードには、自ノードを含めてもよい。ブロック確定部23cは、承認の依頼先となるプライベートノード2bよりブロックの承認結果を受信した場合、この承認結果に付された署名の正当性を承認の依頼先の公開鍵を用いて検証した上で、以下のブロック確定条件を満たすか否かを判定する。
[ブロック確定条件]
m(m≧2)個のプライベートノード2bのうち、
n(m≧n≧1)個以上の承認が得られたこと
このブロック確定条件において、nはmの過半数であることが好ましい。これにより、合理的かつ現実的な範囲で承認の信頼性を確保することができる。例えば、図2に示した4つのプライベートノード2bが存在するケースでは、3個(m=3)のプライベートノード2bに承認を依頼し、そのうちの2個(n=2)以上の承認が得られたことをもって、ブロック確定条件が満たされることになる。
mは、一桁、二桁等の限られた数以下であることが好ましく、ブロック確定条件に応じて、5個、9個等の奇数個であることが好ましいことがある。nは、mの過半数であることに加えて、過半数以上の指定された所定の数であることが好ましいことがある。
ブロック確定条件としては、上述の説明では一ノード一票の承認が可能とされているところ、各ノードに任意の正の実数の票を与え、その過半数によって承認が得られたことと判定することもできる。この場合、「過半数」とは、総票数に対する半数を超える数であることを付言する。
承認依頼に係るブロックがブロック確定条件を満たす場合には、このブロックを分散データベース4に追加することが確定し、これを満たさない場合には、分散データベース4へのブロックの追加は行われない。ブロック確定部23cは、トランザクションの記録の依頼元となるパブリックノード2aに対して、トランザクションの処理結果(OK/NG)を通知する。分散データベース4へのブロックの追加が確定した場合、自ノード2bのデータベース4aにブロックが追加されると共に、ブロックの確定に伴い新たなブロックを追加する旨が、トランザクション処理ネットワーク1の全ノード2に通知される。この通知によって、すべてのノード2のデータベース4a、すなわち、分散データベース4が更新される。
全ノード2に直接的又は間接的に通知されることが求められるが、ブロックの確定に伴い新たなブロックを追加する旨が全ノード2に直接的に通知される場合のほか、プライベートノード2bの全て及びパブリックノード2aの一部、プライベートノード2bの全て、プライベートノード2bの一部及びパブリックノード2aの一部、又はプライベートノード2bの一部に通知される場合も考えられる。
一方、承認応答部23dは、承認の依頼元となるプライベートノード2bよりブロックの承認依頼を受信した場合、この承認依頼に付された署名の正当性を、公開鍵(承認の依頼元の秘密鍵に対応するもの)を用いて検証する。また、承認応答部23dは、自ノード2bに記録されているトランザクションに関するデータを参照して、承認依頼に係るブロックの内容(ブロック中のトランザクションの整合性を含む。)を検証する。そして、内容が正当であるとの検証結果が得られた場合、承認応答部23dは、自ノード2bの秘密鍵による署名を付した承認結果を承認の依頼元となるプライベートノード2bに送信する。
なお、ブロック生成部23aは、プライベートノード2bのハッキング対策として、すなわち、プライベートノード2bがハッキングされたときのために、自ノード2bで一のブロックを生成した場合、少なくとも、他ノード2bによって生成された他のブロックを分散データベース4に追加することが確定するまで、新たなブロックの承認依頼を連続して送信することなく待機する。すなわち、同一のプライベートノード2bにおいて、ブロック確定の処理を連続して行うことは禁止されている。
つぎに、図8を参照しながら、トランザクションの記録処理のフローについて説明する。まず、あるパブリックノード2aにおいて、取引に関する情報が記されたトランザクションTrが生成され(ステップ1)、このトランザクションTrに自己が管理するアドレスの秘密鍵による署名を付した上で、プライベートノード2b群にトランザクションTrの記録依頼が送信される(ステップ2)。例えば、図9に示すように、資産の移動元eに係る単一トランザクションTr2については、この移動元eが管理するアドレスの秘密鍵による署名「e」が付され、資産の移動元gに係る単一トランザクションTr3については、移動元gが管理するアドレスの秘密鍵による署名「g」が付される。また、資産の移動元a,bに係る複合トランザクションTr1については、図6に示した署名フローを経て、これらの移動元が管理するアドレスの秘密鍵による署名「a」,「b」が付される。
トランザクションTrの記録依頼を受信したプライベートノード2bのそれぞれは、記録依頼に付された署名を、移動元の秘密鍵に対応する公開鍵を用いて検証する(ステップ3)。図9に示したように、単一トランザクションTr2,Tr3に付された署名「e」,「g」については、移動元e,gの秘密鍵に対応する公開鍵を用いて検証される。また、複合トランザクションTr1に付された署名「a」,「b」については、移動元a,bの秘密鍵に対応した公開鍵を用いて検証される。なお、署名の他に、その資産が二重使用されていないことなども併せて検証されることは上述したとおりである。それぞれのプライベートノード2bにおいて、署名の正当性などが確認できた場合、トランザクションTr1〜Tr3は、自己の記憶装置における所定の記憶領域(処理待ち領域)に一時的に格納される(ステップ4)。また、このステップ4において、依頼元/資産の移動元が正当でないとされた場合、依頼元/資産の移動元となるパブリックノード2aに対して、その旨が通知される。
ステップ5では、いずれかのプライベートノード2bにおいて、ブロックが生成される。このブロックは、自ノード2bの処理待ち領域に格納されている複数のトランザクションTr(単一/複合の種別は問わず。)をまとめたものである。そして、ステップ6において、図10(a)に示すようなデータ構造を有する署名付の承認依頼が生成される。このデータ構造は、ブロックの承認を依頼する依頼元の署名欄と、複数のトランザクションTrをまとめたブロック本体と、ブロックの承認先の署名欄とを有する。ただし、同図の構成は、説明の便宜上のものであって、実際には、依頼元/承認先の署名欄を別ける必要はない。図2に示した4つのプライベートノード2b群(ノード名をA〜Dとする。)のうち、ノードAがブロックを生成した場合、図10(a)の依頼元署名欄には、ノードAの秘密鍵による署名「A」が記入され、承認先署名欄(ノードB〜Dの署名が記入される欄)はブランクとされる。ノードAにて生成された承認依頼は、他のプライベートノード2b、すなわち、3つのノードB〜Dに送信される。
ステップ7〜9は、ブロックの承認依頼を受信したプライベートノード2b、すなわち、承認の依頼先B〜Dの処理である。まず、ステップ7において、承認依頼に付された署名の正当性が、承認の依頼元であるノードA等の公開鍵を用いて検証される(ステップ7)。このステップ7では、ノードAだけでなく、その検証時点で付されている他の署名も一緒に検証される。基本的に、ノードA→B→C→Dのように順番に署名していき、過半数(n)の署名が得られた時点で確定する。どのようにして順番を保つかについては、様々な実装方法が考えられる。なお、ブロックの署名の検証自体は、ハッキングされたブロックを信用することがないように、プライベートノード2bのみならず、すべてのパブリックノード2aでも行われる。トランザクションが正当であるとされた場合には、ステップ8に進み、正当でないとされた場合には、ステップ8以降の処理は行われない。
ステップ8において、承認依頼に係るブロックの内容が検証される。具体的には、自ノード2bの処理待ち領域に格納されたトランザクションを参照して、ブロックの内容が少なくとも以下の承認条件を満たす場合に、ブロックを承認する。ブロックの内容が正当であるとされた場合には、ステップ9に進み、正当でないとされた場合には、ステップ9の処理は行われない(処理結果=NG)。
[ブロックの承認条件]
(1)ブロック中のすべてのトランザクションTrが自ノード2bにおいて未処理であること(重複記録の防止)
(2)ブロック中のすべてのトランザクションTrの内容が、自ノード2bの処理待ち領域に格納されたトランザクションTrの内容と一致すること(データの改ざん防止)
(3)個々のトランザクションTrの資産が未使用であること(資産の二重使用の禁止)
ステップ9において、署名付の承認結果が生成される。承認可の場合には、図10(b)に示すように、承認先署名欄のうちの自ノード2bに割り当てられた欄に自己の秘密鍵による署名が記入される。署名が付された承認結果は、承認の依頼元Aに送信される。
ステップ10〜12は、ブロックの承認結果を受信したプライベートノード2b、すなわち、承認の依頼元Aの処理である。まず、ステップ10において、承認結果に付された署名の正当性が、承認の依頼元B〜Dの公開鍵を用いて検証される(ステップ10)。承認の依頼先が正当であるとされた場合には、ステップ11に進み、正当でないとされた場合には、ステップ12以降の処理は行われない。
ステップ11において、m個のプライベートノードのうちのn(m≧n≧1)個以上の承認が得られた場合、ブロック確定条件が満たされて、分散データベース4にブロックを追加することが確定する。図10(b)の例では、承認を依頼した3つのノードB〜Dのうち、2つのノードB,Cの承認は得られたが、ノードDの承認は得られなかったことを意味している。この場合、ブロック確定条件が過半数以上の承認であるならば、n/m=2/3となって条件を満たすことになる。逆に、n=0,1の場合には、ブロック確定条件は満たされない。
ブロック確定条件が満たされた場合、承認の依頼元Aによって、確定したブロックを分散データベース4に記録する処理が行われる。具体的には、まず、自ノードAにおいて、処理待ち領域から確定ブロックに含まれるトランザクションTrが削除され、自己のデータベース4に確定したブロックが追加される。また、自ノードAに接続されている他ノードB〜Dを含めて、トランザクション処理ネットワーク1の全体に、確定したブロックを新規に追加する旨の指示が送信される。すべてのノード2は、この確定ブロックの通知を受けた時点で、通知元の署名の検証を行った上で、自己のデータベース4aに確定ブロックを追加する。また、処理待ち領域に未処理トランザクションTrを保持しているすべてのノード2(ノードB〜Dを含む。)は、この通知をもって、確定ブロックに含まれるトランザクションTrを処理待ち領域から削除する(ステップ13)。これに対して、ブロック確定条件が満たされない場合、今回生成したブロックはキャンセルされる。これによって、処理待ち領域の未処理トランザクションTrは引き続き保持され、次回以降のブロックの生成機会を待つことになる。
図11は、データベース4aの構造の説明図である。この構造において、記録単位となるブロックは記録順序にしたがいチェーン状に繋がっている。それぞれのブロック(確定ブロック)は、複数のトランザクションと、直前のブロックのハッシュとを有している。具体的には、あるブロック2には、その前のブロック1から引き継いだ前ブロック1のハッシュH1が含まれている。そして、ブロック2のハッシュH2は、自ブロック2のトランザクション群と、前ブロック1から引き継がれたハッシュH1とを含めた形で算出され、このハッシュH2は、その次のブロックに引き継がれる。このように、直前のブロックの内容をハッシュとして引き継ぎながら(H0,H1,・・・)、記録順序にしたがい個々のブロックをチェーン状に繋げ、記録内容に一貫した連続性を持たせることで、記録内容の改ざんを有効に防止する。過去の記録内容が変更された場合、ブロックのハッシュが変更前と異なる値になり、改ざんしたブロックを正しいものとみせかけるには、それ以降の全ブロックのハッシュを再計算しなければならず、この作業は現実的には非常に困難である。
そして、ステップ12において、いずれかのプライベートノード2b(承認の依頼元A)から、トランザクションTrの記録の依頼元となるパブリックノード2aに、記録依頼に係るトランザクションTrの処理結果(OK/NG)が通知される。このパブリックノード2aは、処理結果を受領し、ユーザに対して処理結果を提示する(ステップ14)。以上の一連のプロセスを経て、トランザクションの記録処理が完了する。
なお、以上のようなトランザクションの記録処理では、複数のプライベートノード2bが同一のトランザクションを含む別個のブロックを同時に生成してしまう可能性、すなわち、プライベートノード2b同士の処理の競合が生じる可能性がある。かかる問題は、例えば、ラウンドロビン(round robin)のように、プライベートノード2b間でブロック生成の順番を割り当てて排他制御を行うことで、解決することができる。また、プライベートノード2b群に優先順位を割り当てて、上記競合が生じた場合には、優先順位の高いプライベートノード2bのみに、競合したトランザクションの再処理を認めてもよい。
このように、本実施形態によれば、資産の移動元が複数存在する複合的な取引について、複合トランザクションとして単一のトランザクションにまとめて記すことを許容する。これにより、複合的な取引について、データベース4a(または4)に同時かつ一体で記録されることが保証される。複合的な取引について、それぞれの取引を別個のトランザクションとして作成とした場合、一方のトランザクションがブロックチェーンに組み込まれ、他方のトランザクションがブロックチェーンに未だ組み込まれていないという不整合が生じ得る。これに対して、本実施形態のように、両者を一つのトランザクションで取り扱えば、そのような不整合は生じない。その結果、記録状況に不整合を生じることなく、単一のトランザクションで、交換に代表されるような多様な取引形態を扱うことが可能となる。
また、本実施形態によれば、複合トランザクションについて、資産の移動元のそれぞれが署名を付することを正当性の条件の一つとしているので、なりすまし(取引主体となる当事者を含む)を防止でき、トランザクションに記された取引内容の信頼性を確保できる。また、取引Aの成立を条件として取引Bを成立させるような形態(交換)を取り扱うことも可能となる。なお、上述したように、トランザクションの正当性の条件としては、他にも、その資産が二重使用されていないことが存在する。
また、本実施形態によれば、トランザクション処理ネットワーク1を構成するノード2を、パブリックノード2aと、プライベートノード2bとに区分している。パブリックノード2aは、記録すべきトランザクションを生成する役割を担い、その後の分散データベース4への記録処理は、プライベートノード2b群が協働することによって行われる。トランザクションの生成については、信頼できないノードを含み得るパブリックノード2aとして広く認めつつ、分散データベース4への記録処理については信頼できるプライベートノード2bに限定する。このように、パブリックノード2aの役割と、プライベートノード2bの役割とを別けることで、パブリックノード方式の利点である応用分野の拡張性と、プライベートノード方式の利点である記録の信頼性との両立を図ることができる。
また、本実施形態によれば、信頼できるプライベートノード2b相互の認証手法として、POWやPOSといった高コストで遅いコンセンサスアルゴリズムではなく、公開鍵暗号を用いた多重署名(マルチシグ)という比較的簡素なコンセンサスアルゴリズムを用いている。これにより、記録の信頼性を損なうことなく、大量のトランザクションを高速かつ確実に処理することが可能になる。
さらに、本実施形態によれば、特定のプライベートノード2bによるブロックの生成頻度が極端に高くならないように、同一のプライベートノード2bがブロックの承認依頼を連続して送信することを禁止している。これにより、特定のプライベートノード2bにブロックを常に生成させ続けて過剰な負荷をかけるなどのハッキング行為に対しても、有効に対処することができる。
なお、上述した実施形態では、パブリックノード2aと、プライベートノード2bとを有するトランザクション処理システム1について説明した。しかしながら、複合トランザクションの導入による取引形態の拡張という概念は、これに限定されるものではなく、パブリックノード方式やプライベートの方式といったブロックチェーン技術全般に広く適用することができる。また、プライベートノード2b間のコンセンサスアルゴリズムは、公開鍵暗号を用いた多重署名(マルチシグ)のみならず、POWやPOSなどを含めて、その方式は問わない。
また、本発明は、上述したパブリックノード2a用/プライベートノード2b用のトランザクション処理装置20,21を実現するコンピュータプログラムとしても捉えることができる。
1 トランザクション処理ネットワーク
2 ノード
2a パブリックノード
2b プライベートノード
3 コンピュータ
4 分散データベース
4a データベース
20 パブリックノード用のトランザクション処理装置
20a トランザクション生成部
20b 記録依頼部
20c 結果受領部
20d 転送部
21 プライベートノード用のトランザクション処理装置
22 署名検証部
23 トランザクション処理部
23a ブロック生成部
23b 承認依頼部
23c ブロック確定部
23d 承認応答部

Claims (10)

  1. 複合トランザクションのブロックチェーンの分散ネットワークに対する記録依頼の方法であって、
    前記分散ネットワークを構成する第1のノードが、資産の保持元が複数存在する複合トランザクションを前記ノードの秘密鍵により署名するステップと、
    前記複合トランザクションに署名をすべき保持元が残っている場合に、前記第1のノードが、前記分散ネットワークを構成する第2のノードに前記複合トランザクションを送信するステップと、
    前記複合トランザクションに署名をすべき保持元が残っていない場合に、前記第1のノードが、前記分散ネットワークを構成する第3のノードに前記複合トランザクションを送信し、前記分散ネットワークに対する記録を依頼するステップと
    を含むことを特徴とする方法。
  2. 前記分散ネットワークは、パブリックノード群とプライベートノード群とを有することを特徴とする請求項1に記載の方法。
  3. 前記第1のノード及び前記第2のノードは、前記パブリックノード群を構成するノードであることを特徴とする請求項2に記載の方法。
  4. 前記第3のノードは、前記プライベートノード群を構成するノードであることを特徴とする請求項2又は3に記載の方法。
  5. 受け取った複合トランザクションに自己が署名をすべき保持元が含まれない場合に、前記第1のノードが、前記分散ネットワークを構成する第4のノードに前記受け取った複合トランザクションを転送するステップをさらに含むことを特徴とする請求項1乃至4のいずれかに記載の方法。
  6. 前記第1のノードは、前記プライベートノード群を構成するノードであることを特徴とする請求項5に記載の方法。
  7. 前記第1のノードが、前記分散ネットワークに対する記録が完了したことの通知を受領するステップをさらに含むことを特徴とする請求項1乃至6のいずれかに記載の方法。
  8. 前記複合トランザクションに対する署名は、前記複合トランザクションに含まれる複数のトランザクション全体を対象として付与されることを特徴とする請求項1乃至7のいずれかに記載の方法。
  9. コンピュータに、複合トランザクションのブロックチェーンの分散ネットワークに対する記録依頼の方法を実行させるためのプログラムであって、前記方法は、
    前記分散ネットワークを構成する第1のノードが、資産の保持元が複数存在する複合トランザクションを前記ノードの秘密鍵により署名するステップと、
    前記複合トランザクションに署名をすべき保持元が残っている場合に、前記第1のノードが、前記分散ネットワークを構成する第2のノードに前記複合トランザクションを送信するステップと、
    前記複合トランザクションに署名をすべき保持元が残っていない場合に、前記第1のノードが、前記分散ネットワークを構成する第3のノードに前記複合トランザクションを送信し、前記分散ネットワークに対する記録を依頼するステップと
    を含むことを特徴とする方法。
  10. 複合トランザクションのブロックチェーンの分散ネットワークに対する記録依頼を行う第1のノードであって、
    資産の保持元が複数存在する複合トランザクションを前記ノードの秘密鍵により署名し、
    前記複合トランザクションに署名をすべき保持元が残っている場合に、前記分散ネットワークを構成する第2のノードに前記複合トランザクションを送信し、
    前記複合トランザクションに署名をすべき保持元が残っていない場合に、前記分散ネットワークを構成する第3のノードに前記複合トランザクションを送信し、前記分散ネットワークに対する記録を依頼することを特徴とする第1のノード。

JP2018153327A 2016-03-31 2018-08-16 トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム Withdrawn JP2018196150A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016071342 2016-03-31
JP2016071342 2016-03-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018509457A Division JP6389350B2 (ja) 2016-03-31 2017-03-30 トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム

Publications (2)

Publication Number Publication Date
JP2018196150A true JP2018196150A (ja) 2018-12-06
JP2018196150A5 JP2018196150A5 (ja) 2020-05-21

Family

ID=59964740

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018509457A Active JP6389350B2 (ja) 2016-03-31 2017-03-30 トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム
JP2018153327A Withdrawn JP2018196150A (ja) 2016-03-31 2018-08-16 トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018509457A Active JP6389350B2 (ja) 2016-03-31 2017-03-30 トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム

Country Status (5)

Country Link
US (1) US11436593B2 (ja)
EP (1) EP3439232B1 (ja)
JP (2) JP6389350B2 (ja)
CN (1) CN109314643B (ja)
WO (1) WO2017170912A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030204A1 (ja) * 2020-08-04 2022-02-10 株式会社三菱Ufj銀行 システム、端末、及び記録媒体
JP2022104802A (ja) * 2020-12-29 2022-07-11 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド グループサービス実現方法、装置、機器および記憶媒体
JP7410060B2 (ja) 2019-07-18 2024-01-09 オールファウンズ バンク エスエイユー 制限トランザクションを有するブロックチェーンシステム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10586062B1 (en) 2015-11-23 2020-03-10 United Services Automobile Association (Usaa) Systems and methods to track, store, and manage events, rights and liabilities
US10818170B1 (en) 2016-01-20 2020-10-27 United Services Automobile Association Systems and methods for traffic management via inter-party resource allocation
GB201607477D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger
JP6511017B2 (ja) * 2016-06-03 2019-05-08 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意装置および合意検証装置
DE102017209381A1 (de) * 2017-06-02 2018-12-06 Bundesdruckerei Gmbh Bidirektional verkettete Blockchain-Struktur
WO2019032089A1 (en) * 2017-08-07 2019-02-14 Visa International Service Association BLOCK CHAIN ARCHITECTURE WITH SECURITY RECORDING
US10810546B2 (en) 2017-10-02 2020-10-20 R3 Ltd. Settling obligations via netting transactions
US10630769B2 (en) * 2017-12-26 2020-04-21 Akamai Technologies, Inc. Distributed system of record transaction receipt handling in an overlay network
CN108335206B (zh) 2018-02-14 2020-12-22 创新先进技术有限公司 资产管理方法及装置、电子设备
US11100578B2 (en) * 2018-05-16 2021-08-24 Chicago Mercantile Exchange Inc. Secure deterministic tokens for encrypting electronic communications
JP6859293B2 (ja) * 2018-07-13 2021-04-14 Kddi株式会社 データ管理システム、データ管理方法及びデータ管理プログラム
JP6545888B1 (ja) * 2018-11-09 2019-07-17 国立大学法人東北大学 情報処理システム、公開鍵の変更方法、およびプログラム
JP7261566B2 (ja) * 2018-11-14 2023-04-20 日鉄ソリューションズ株式会社 プログラム、記憶媒体、情報処理装置及び情報処理方法
EP3888297A1 (en) * 2018-11-27 2021-10-06 Nchain Holdings Limited Computer implemented system and method for storing data on a blockchain
KR102086688B1 (ko) * 2018-12-06 2020-04-20 윤여표 블록체인을 이용한 차량 정보 활용 시스템
US11397814B2 (en) * 2019-03-25 2022-07-26 Micron Technology, Inc. Local ledger block chain for secure electronic control unit updates
KR102182750B1 (ko) * 2019-09-16 2020-11-25 주식회사 마크애니 블록체인을 이용한 데이터 유통 시스템 및 방법
WO2021064852A1 (ja) 2019-10-01 2021-04-08 富士通株式会社 トランザクション管理装置、トランザクション管理プログラム、及びトランザクション管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000041035A (ja) * 1998-07-23 2000-02-08 Ntt Data Corp 認証システム、認証方法、及び記録媒体
JP2005524149A (ja) * 2002-04-25 2005-08-11 ウィノー・テクノロジー・リミテッド・ライアビリティ・カンパニー コンテンツ・サーチ・エンジン
JP2009500951A (ja) * 2005-07-01 2009-01-08 ソニック ソリューションズ マルチメディア信号エンコーディングに使用される方法、装置およびシステム
WO2009066443A1 (ja) * 2007-11-21 2009-05-28 Nec Corporation 電子バリュー交換システム、端末装置、及び復旧装置
JP2015186101A (ja) * 2014-03-25 2015-10-22 三菱電機株式会社 鍵交換装置、及び鍵交換方法
JP5858506B1 (ja) * 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5858506B2 (ja) 1981-01-26 1983-12-26 タキロン株式会社 雨樋部材
US5005200A (en) * 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US20080046731A1 (en) * 2006-08-11 2008-02-21 Chung-Ping Wu Content protection system
JP2008131632A (ja) 2006-11-17 2008-06-05 Zopa Ltd 契約にデジタル処理にて署名する方法
CN101170554B (zh) * 2007-09-04 2012-07-04 萨摩亚商·繁星科技有限公司 资讯安全传递系统
US20090254479A1 (en) * 2008-04-02 2009-10-08 Pharris Dennis J Transaction server configured to authorize payment transactions using mobile telephone devices
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US9876775B2 (en) 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
WO2015175722A1 (en) 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
CN104320262B (zh) * 2014-11-05 2017-07-21 中国科学院合肥物质科学研究院 基于加密数字货币公开账本技术的用户公钥地址绑定、检索和校验的方法及系统
US20160342989A1 (en) * 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US9298806B1 (en) * 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US10129238B2 (en) * 2016-02-10 2018-11-13 Bank Of America Corporation System for control of secure access and communication with different process data networks with separate security features

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000041035A (ja) * 1998-07-23 2000-02-08 Ntt Data Corp 認証システム、認証方法、及び記録媒体
JP2005524149A (ja) * 2002-04-25 2005-08-11 ウィノー・テクノロジー・リミテッド・ライアビリティ・カンパニー コンテンツ・サーチ・エンジン
JP2009500951A (ja) * 2005-07-01 2009-01-08 ソニック ソリューションズ マルチメディア信号エンコーディングに使用される方法、装置およびシステム
WO2009066443A1 (ja) * 2007-11-21 2009-05-28 Nec Corporation 電子バリュー交換システム、端末装置、及び復旧装置
JP2015186101A (ja) * 2014-03-25 2015-10-22 三菱電機株式会社 鍵交換装置、及び鍵交換方法
JP5858506B1 (ja) * 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7410060B2 (ja) 2019-07-18 2024-01-09 オールファウンズ バンク エスエイユー 制限トランザクションを有するブロックチェーンシステム
WO2022030204A1 (ja) * 2020-08-04 2022-02-10 株式会社三菱Ufj銀行 システム、端末、及び記録媒体
JP2022029319A (ja) * 2020-08-04 2022-02-17 株式会社三菱Ufj銀行 システム及びプログラム
JP2022104802A (ja) * 2020-12-29 2022-07-11 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド グループサービス実現方法、装置、機器および記憶媒体
JP7332672B2 (ja) 2020-12-29 2023-08-23 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド グループサービス実現方法、装置、機器および記憶媒体

Also Published As

Publication number Publication date
JPWO2017170912A1 (ja) 2018-08-02
CN109314643B (zh) 2021-12-31
EP3439232B1 (en) 2023-12-06
CN109314643A (zh) 2019-02-05
EP3439232A4 (en) 2019-10-23
US20190108513A1 (en) 2019-04-11
JP6389350B2 (ja) 2018-09-12
EP3439232A1 (en) 2019-02-06
EP3439232C0 (en) 2023-12-06
US11436593B2 (en) 2022-09-06
WO2017170912A1 (ja) 2017-10-05

Similar Documents

Publication Publication Date Title
JP6389350B2 (ja) トランザクション処理装置、トランザクション処理方法、及びそのためのプログラム
JP6199518B1 (ja) プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
WO2017170679A1 (ja) プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
JP6370016B2 (ja) 階層型ネットワークシステム、これに用いられるノード及びプログラム
Sarmah Understanding blockchain technology
CN108781161B (zh) 用于控制和分发数字内容的区块链实现的方法
AU2019204712B2 (en) Managing sensitive data elements in a blockchain network
JP2017200196A (ja) プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
JP6877448B2 (ja) 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム
KR102296831B1 (ko) 블록체인 네트워크에 기반한 디지털 티켓의 전송
US20200051041A1 (en) System and method for arbitrating a blockchain transaction
US20160162897A1 (en) System and method for user authentication using crypto-currency transactions as access tokens
KR20180123709A (ko) 블록체인에서 복수개의 거래를 기록하는 방법 및 시스템
WO2020157708A2 (en) Point-to-point distributed decentralized system
KR102627868B1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
US20220067125A1 (en) Method for distributing certificate of right to use digital content, and computer program stored in medium in order to carry out method
EP4152197A1 (en) Methods and systems for managing user data privacy
CN115136543A (zh) 在区块链网络中使用的认证服务
CN114631110A (zh) 使用区块链交易分配数字资产
CN117318956A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN118118178A (zh) 基于区块链的数字资源处理方法、装置和计算机设备

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200330

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211130

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20220201