JP6941691B2 - 読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避するための方法および装置 - Google Patents

読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避するための方法および装置 Download PDF

Info

Publication number
JP6941691B2
JP6941691B2 JP2019559271A JP2019559271A JP6941691B2 JP 6941691 B2 JP6941691 B2 JP 6941691B2 JP 2019559271 A JP2019559271 A JP 2019559271A JP 2019559271 A JP2019559271 A JP 2019559271A JP 6941691 B2 JP6941691 B2 JP 6941691B2
Authority
JP
Japan
Prior art keywords
blockchain
data
blockchain transaction
transaction
transactions
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
JP2019559271A
Other languages
English (en)
Other versions
JP2020525874A (ja
Inventor
ジユアン・フェン
Original Assignee
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
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 アドバンスド ニュー テクノロジーズ カンパニー リミテッド, アドバンスド ニュー テクノロジーズ カンパニー リミテッド filed Critical アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Publication of JP2020525874A publication Critical patent/JP2020525874A/ja
Application granted granted Critical
Publication of JP6941691B2 publication Critical patent/JP6941691B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer 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/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
    • 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/3676Balancing accounts
    • 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/3678Payment 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 e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for 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/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/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
    • 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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本明細書は、ブロックチェーン技術の分野に関し、特に、読み書きセットモデル(Read-Write Set Model)ベースのブロックチェーン技術における二重消費問題(Double-Spending Problem)を回避するための方法および装置に関する。
分散型台帳システム(DLS)は、コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称することができ、参加エンティティが安全かつ不変に取引を行い、データを格納することを可能にする。DLSは、いかなる特定のユーザケースにも関係せず、一般的にブロックチェーンネットワークと称される。ブロックチェーンネットワークの種類の例は、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含むことができる。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御する、選択された一群のエンティティのために提供され、アクセス制御層を含む。
ブロックチェーンネットワークでは、データの再現性のため、デジタル資産が場合により再使用され得る。例えば、複数の並列ブロックチェーントランザクションが同じデジタル資産に関して行われ得る(二重消費と称される)。いくつかの場合において、複数の並列ブロックチェーントランザクションが同じデータに関して読み込む場合、一旦第1の並列ブロックチェーントランザクションがデータを変更すると、他の並列ブロックチェーントランザクションはデータ変更に起因して失敗することがある(二重消費問題と称される)。
現在、2つの主要なブロックチェーンプロセス種類がある。一方は、イーサリアムによって主導されて、最初にコンセンサスを達成し、次にスマートコントラクトを実行し、最後にデータの状態を変更する。他方は、ハイパーレッジャーファブリックによって主導されて、最初に論理的検証のためにスマートコントラクトを事前実行し、次に生成された読み書きセットに対してコンセンサスソーティングを行い、最後に各生成された読み書きセットに対してデータ検証を行う。イーサリアムは順次取引を実行するので、二重消費問題はあり得ない。しかしながら、ハイパーレッジャーファブリックは、読み書きセットに基づく事前実行スマートコントラクト方式を実装しており、二重消費問題に遭遇することがある。
読み書きセットモデルベースのブロックチェーン技術(例えば、ハイパーレッジャーファブリック)における二重消費問題の解決策を提供することが望ましいであろう。
本明細書は、ブロックチェーントランザクションにおける二重消費問題を回避するための技術を説明する。これらの技術は、概して、1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令を受信するステップであって、2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更する、ステップと、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成するステップであって、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに、同データの現在値がブロックチェーントランザクションをサポートすることを確認(validate)するために特殊命令が使用される、ステップとを含む。
本明細書は、1つまたは複数のプロセッサに結合されており、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実施形態による動作を行わせる命令が記憶された、1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書は、本明細書で提供される方法を実装するためのシステムを更に提供する。本システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実施形態による動作を行わせる命令が記憶された、1つまたは複数のプロセッサに結合されるコンピュータ可読記憶媒体とを含む。
本明細書による方法が、本明細書に記載される態様および特徴の任意の組合せを含んでよいことが認識される。すなわち、本明細書による方法は、本明細書に具体的に記載される態様および特徴の組合せに限定されるのではなく、提供される態様および特徴の任意の組合せも含むことができる。
本明細書の1つまたは複数の実施形態の詳細が、添付図面および以下の説明に明らかにされる。本明細書の他の特徴および利点は、同説明および図面から、ならびに特許請求の範囲から明らかであろう。
本明細書の実施形態を実行するために使用することができる環境の一例を例示する図である。 本明細書の実施形態による概念アーキテクチャの一例を例示する図である。 本明細書の実施形態によるブロックチェーントランザクション実行シナリオの一例を例示するブロック図である。 本明細書の実施形態による2つの並列ブロックチェーントランザクションのための従来の実行シナリオの一例を例示するブロック図である。 本明細書の実施形態による2つの並列ブロックチェーントランザクションのための実行シナリオの一例を例示するブロック図である。 本明細書の実施形態によるブロックチェーントランザクションにおける二重消費問題を回避するための方法の一例を例示するフローチャートである。 本明細書の実装形態による機器のモジュールの例を描く図である。
様々な図面における同様の参照番号および記号は、同様の要素を示す。
以下の詳細な説明は、読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避することを説明し、開示される対象を1つまたは複数の特定の実施形態の文脈で当業者が製作および使用することを可能にするために提示される。1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令が受信される。各ブロックチェーントランザクションに対して、対応するスマートコントラクトが事前実行されて、読み書きセットの代わりに特殊命令を生成する。特殊命令は、対応するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認(validate)するために使用される。
開示される実施形態の様々な変更、修正および置換をなすことができ、それらは当業者に直ちに明らかであろうし、定められる一般原則は、本明細書の範囲から逸脱することなく、他の実施形態および用途に適用できる。一部の事例では、記載される対象の理解を得るためには不必要であり、当業者の技術内である1つまたは複数の技術的詳細は、1つまたは複数の記載される実施形態を不明瞭にしないように省略され得る。本明細書は、記載または例示される実施形態に限定されるのではなく、記載される原理および特徴に合わせた最も広い範囲が与えられると意図される。
本明細書の実施形態のための更なる背景を提供するため、かつ上記提示したように、分散型台帳システム(DLS)は、コンセンサスネットワーク(例えば、ピアツーピアノードから構成される)およびブロックチェーンネットワークとも称することができ、参加エンティティが安全かつ不変に取引を行い、データを格納することを可能にする。用語ブロックチェーンが一般に特定のネットワークおよび/またはユースケースと関連付けられるが、ブロックチェーンは本明細書では、いかなる特定のユースケースにも関係なくDLS一般を指すために使用される。
ブロックチェーンは、トランザクションが不変であるようにトランザクションを記憶するデータ構造である。このように、ブロックチェーンに記録されたトランザクションは確実で信頼できる。ブロックチェーンは1つまたは複数のブロックを含む。チェーンにおける各ブロックは、チェーンにおけるそれの直前の以前のブロックの暗号ハッシュを含むことによってその以前のブロックにリンクされる。各ブロックは、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションも含む。トランザクションは、ブロックチェーンネットワークのノードによって既に検証されており、マークルツリーへハッシュおよび符号化される。マークルツリーは、ツリーのリーフノードにおけるデータがハッシュされ、ツリーの各ブランチにおける全てのハッシュがブランチのルートで連結されるデータ構造である。このプロセスはツリー全体のルートまでツリーを上がり続け、そこでツリーにおける全てのデータを表すハッシュを記憶する。ツリーに記憶されたトランザクションのものとされるハッシュは、それがツリーの構造と一致しているかどうかを判定することによって迅速に検証できる。
ブロックチェーンがトランザクションを記憶するための非集中型または少なくとも部分的に非集中型データ構造であるのに対して、ブロックチェーンネットワークは、トランザクションをブロードキャスト、検証および有効化すること等によって1つまたは複数のブロックチェーンを管理、更新および維持する計算ノードのネットワークである。上記提示したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワークまたはコンソーシアムブロックチェーンネットワークとして提供できる。本明細書の実施形態は、コンソーシアムブロックチェーンネットワークに関して本明細書に更に詳細に記載される。しかしながら、本明細書の実施形態が任意の適切な種類のブロックチェーンネットワークで実現できることが企図される。
一般に、コンソーシアムブロックチェーンネットワークは参加エンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、公認されたノードの集合によって制御されており、それらはコンセンサスノードと称することができ、1つまたは複数のコンセンサスノードがそれぞれのエンティティ(例えば、金融機関、保険会社)によって運営される。例えば、10のエンティティ(例えば、金融機関、保険会社)のコンソーシアムがコンソーシアムブロックチェーンネットワークを運営でき、その各々がコンソーシアムブロックチェーンネットワークにおいて少なくとも1つのノードを運営する。
一部の例では、コンソーシアムブロックチェーンネットワーク内に、全てのノードにわたって複製されるブロックチェーンとしてグローバルブロックチェーンが提供される。すなわち、全てのコンセンサスノードがグローバルブロックチェーンに関しては完全状態コンセンサスに達している。コンセンサス(例えば、ブロックチェーンへのブロックの追加への合意)を達成するために、コンソーシアムブロックチェーンネットワーク内にコンセンサスプロトコルが実装される。例えば、コンソーシアムブロックチェーンネットワークは、以下に更に詳細に記載される、実用的ビザンチン障害耐性(PBFT)コンセンサスを実装できる。
図1は、本明細書の実施形態を実行するために使用することができる環境100の一例を例示する図である。一部の例では、環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に参加することを可能にする。環境100は、計算装置106、108およびネットワーク110を含む。一部の例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットまたはその組合せを含み、ウェブサイト、ユーザ装置(例えば、計算装置)およびバックエンドシステムを接続する。一部の例では、ネットワーク110は有線および/または無線通信リンクを通じてアクセスできる。一部の例では、ネットワーク110は、コンソーシアムブロックチェーンネットワーク102との、および内の通信を可能にする。一般に、ネットワーク110は1つまたは複数の通信ネットワークを表す。いくつかの場合において、計算装置106、108はクラウドコンピューティングシステム(図示せず)のノードとすることができ、または各計算装置106、108は、ネットワークによって相互接続されるいくつかのコンピュータを含み、分散処理システムとして機能する別々のクラウドコンピューティングシステムとすることができる。
描かれた例では、計算システム106、108は各々、コンソーシアムブロックチェーンネットワーク102へのノードとしての参加を可能にする任意の適切な計算システムを含むことができる。計算装置の例には、限定することなく、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレット計算装置およびスマートフォンを含む。一部の例では、計算システム106、108は、コンソーシアムブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。例えば、計算システム106は、第1のエンティティ(例えば、ユーザA)が1つまたは複数の他のエンティティ(例えば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第1のエンティティのコンピュータ実装サービスをホストできる。計算システム108は、第2のエンティティ(例えば、ユーザB)が1つまたは複数の他のエンティティ(例えば、他のユーザ)とのそのトランザクションを管理するために使用するトランザクション管理システムなど、第2のエンティティのコンピュータ実装サービスをホストできる。図1の例では、コンソーシアムブロックチェーンネットワーク102はノードのピアツーピアネットワークとして表され、計算システム106、108はそれぞれ第1のエンティティおよび第2のエンティティのノードを提供し、それらがコンソーシアムブロックチェーンネットワーク102に参加する。
図2は、本明細書の実施形態による概念アーキテクチャ200の一例を例示する図である。概念アーキテクチャ例200は、それぞれ、参加者(Participant)A、参加者B、参加者Cに対応する参加者システム202、204、206を含む。各参加者(例えば、ユーザ、企業)は、複数のノード214を含み、少なくともその一部がブロックチェーン216に情報を不変に記録する、ピアツーピアネットワークとして提供されるブロックチェーンネットワーク212に参加する。ブロックチェーンネットワーク212内に単一のブロックチェーン216が概略的に描かれるが、本明細書に更に詳細に記載されるように、ブロックチェーン216の複数のコピーが提供されて、ブロックチェーンネットワーク212にわたって維持される。
描かれた例では、各参加者システム202、204、206は、それぞれ、参加者A、参加者B、参加者Cによって、またはそれに代わって提供され、ブロックチェーンネットワーク内でそれぞれのノード214として機能する。本明細書で使用されるように、ノードは一般に、ブロックチェーンネットワーク212に接続される個々のシステム(例えば、コンピュータ、サーバ)を指し、それぞれの参加者がブロックチェーンネットワークに参加することを可能にする。図2の例では、参加者は各ノード214に対応する。しかしながら、参加者がブロックチェーンネットワーク212内で複数のノード214を運営できる、および/または複数の参加者がノード214を共有できることが企図される。一部の例では、参加者システム202、204、206は、プロトコル(例えば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用して、および/またはリモートプロシージャコール(RPC)を使用してブロックチェーンネットワーク212と、またはそれを通じて通信する。
ノード214は、ブロックチェーンネットワーク212内への異なる参加の程度を有することができる。例えば、一部のノード214がコンセンサスプロセスに参加できる(例えば、ブロックチェーン216にブロックを追加するマイナーノードとして)一方、他のノード214はコンセンサスプロセスに参加しない。別の例として、一部のノード214がブロックチェーン216の完全なコピーを記憶する一方、他のノード214はブロックチェーン216の一部分のコピーを記憶するだけである。例えば、データアクセス特権が、それぞれの参加者がそのそれぞれのシステム内に記憶するブロックチェーンデータを制限できる。図2の例では、参加者システム202、204、206は、ブロックチェーン216のそれぞれの完全なコピー216'、216''、216'''を記憶する。
ブロックチェーン(例えば、図2のブロックチェーン216)は一連のブロックから構成されおり、各ブロックがデータを記憶する。データの例には、2者以上の参加者間のトランザクションを表すトランザクションデータを含む。トランザクションが非限定例として本明細書に使用されるのに対して、任意の適切なデータがブロックチェーンに記憶できる(例えば、文書、画像、ビデオ、オーディオ)ことが企図される。トランザクションの例には、限定することなく、価値があるもの(例えば、資産、製品、サービス、通貨)の交換を含むことができる。トランザクションデータはブロックチェーン内に不変に記憶される。すなわち、トランザクションデータは変更できない。
ブロックへの記憶の前に、トランザクションデータはハッシュされる。ハッシングは、トランザクションデータ(列データとして提供される)を固定長ハッシュ値(同じく列データとして提供される)へ変換するプロセスである。ハッシュ値を非ハッシュ化してトランザクションデータを得ることは可能でない。ハッシングは、トランザクションデータの僅かな変更さえ結果として完全に異なるハッシュ値になることを保証する。更に、上記したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズにかかわらず、ハッシュ値の長さは固定される。ハッシングは、ハッシュ関数を通じてトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の例には、限定することなく、セキュアハッシュアルゴリズム(SHA)-256を含み、これは256ビットハッシュ値を出力する。
複数のトランザクションのトランザクションデータがハッシュされてブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供され、それら自体ハッシュされて別のハッシュを提供する。このプロセスは、ブロックに記憶されるべき全てのトランザクションに対して、単一のハッシュ値が提供されるまで繰り返される。このハッシュ値はマークルルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションのいずれかの変更が結果としてそのハッシュ値の変更に、最終的に、マークルルートハッシュの変更になることになる。
ブロックはコンセンサスプロトコルを通じてブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードがコンセンサスプロトコルに参加して作業を行って、ブロックをブロックチェーンに追加させる。そのようなノードはコンセンサスノードと称される。上記提示したPBFTがコンセンサスプロトコルの非限定例として使用される。コンセンサスノードは、コンセンサスプロトコルを実行してブロックチェーンにトランザクションを追加し、ブロックチェーンネットワークの全体の状態を更新する。
更に詳細には、コンセンサスノードは、ブロックヘッダを生成し、ブロックにおけるトランザクションの全てをハッシュし、ブロックにおける全てのトランザクションに対して単一のハッシュ値が提供される(マークルルートハッシュ)まで、ハッシュ値を対に組み合わせて更なるハッシュ値を生成する。このハッシュはブロックヘッダに追加される。コンセンサスノードは、ブロックチェーンにおける最近のブロック(すなわち、ブロックチェーンに追加された最後のブロック)のハッシュ値も決定する。コンセンサスノードは、ブロックヘッダにナンス値およびタイムスタンプも追加する。
一般に、PBFTは、ビザンチン障害(例えば、故障ノード、悪意のあるノード)に耐える実用的なビザンチン状態機械複製を提供する。これは、障害が発生するであろうと仮定する(例えば、独立ノード障害および/またはコンセンサスノードによって送られる操作メッセージの存在を仮定する)ことによってPBFTで達成される。PBFTでは、コンセンサスノードは、主コンセンサスノードおよびバックアップコンセンサスノードを含む順序で設けられる。主コンセンサスノードは定期的に変更される。トランザクションは、ブロックチェーンネットワークの世界状態に関して合意に達しているブロックチェーンネットワーク内の全てのコンセンサスノードによってブロックチェーンに追加される。このプロセスでは、コンセンサスノード間でメッセージが送信され、各コンセンサスノードは、メッセージが指定されたピアノードから受信されることを証明し、メッセージが送信中に変更されなかったことを検証する。
PBFTでは、コンセンサスプロトコルは、全てのコンセンサスノードが同じ状態で開始する、複数の段階で提供される。初めに、クライアントが、サービス動作を起動する(例えば、ブロックチェーンネットワーク内でトランザクションを実行する)よう、主コンセンサスノードに要求を送る。要求を受信したことに応じて、主コンセンサスノードは、バックアップコンセンサスノードに要求をマルチキャストする。バックアップコンセンサスノードは要求を実行し、各々がクライアントに応答を送る。クライアントは、閾値数の応答が受信されるまで待つ。一部の例では、クライアントは、f+1個の応答が受信されるのを待ち、ここでfは、ブロックチェーンネットワーク内で許容できる障害コンセンサスノードの最大数である。最終結果は、十分な数のコンセンサスノードが、ブロックチェーンに追加されるべき記録の順に関して合意に達し、記録が受理されるかまたは却下されるかのいずれかである。
一部のブロックチェーンネットワークでは、トランザクションのプライバシーを守るために暗号法が実装される。例えば、2つのノードがトランザクションをプライベートに保つことを望めば、ブロックチェーンネットワークにおける他のノードがトランザクションの詳細を認められないように、ノードはトランザクションデータを暗号化できる。暗号法の例には、限定することなく、対称暗号化および非対称暗号化を含む。対称暗号化は、暗号化(すなわち、平文から暗号文を生成すること)のためにも復号化(すなわち、暗号文から平文を生成すること)のためにも単一の鍵を使用する暗号化プロセスを指す。対称暗号化では、複数のノードに同じ鍵が利用可能であり、その結果、各ノードがトランザクションデータを暗/復号化できる。
非対称暗号化は鍵ペアを使用し、ここで、各鍵ペアは秘密鍵および公開鍵を含む。秘密鍵は特定のノードにだけ知られており、公開鍵はブロックチェーンネットワークにおける任意のまたは全ての他のノードに知られている。ノードが別のノードの公開鍵を使用してデータを暗号化でき、暗号化データは、その別のノードの秘密鍵を使用して復号化できる。例えば、図2を再び参照すると、参加者Aが参加者Bの公開鍵を使用して、データを暗号化し、参加者Bに暗号化データを送ることができる。参加者Bはその秘密鍵を使用して、暗号化データ(例えば、暗号文)を復号化し、元データ(例えば、平文)を抽出できる。ノードの公開鍵で暗号化されたメッセージは、ノードの秘密鍵を使用してのみ復号化できる。
非対称暗号化は、デジタル署名を提供するために使用されるが、それは、トランザクションの参加者がトランザクションの他の参加者の他にトランザクションの有効性を確認することを可能にする。例えば、ノードがメッセージにデジタル署名でき、別のノードが、参加者Aのデジタル署名に基づいてメッセージがそのノードによって送られたことを確認できる。デジタル署名は、メッセージが転送中に改竄されていないことを保証するためにも使用することができる。例えば、再び図2を参照すると、参加者Aが参加者Bにメッセージを送ることになる。参加者Aは、メッセージのハッシュを生成し、次いで、その秘密鍵を使用して、ハッシュを暗号化して暗号化ハッシュとしてデジタル署名を提供する。参加者Aは、メッセージにデジタル署名を添付し、参加者Bにデジタル署名付きメッセージを送る。参加者Bは、参加者Aの公開鍵を使用してデジタル署名を復号化し、ハッシュを抽出する。参加者Bは、メッセージをハッシュし、両ハッシュを比較する。両ハッシュが同じであれば、参加者Bは、メッセージが実際に参加者Aからであり、改竄されなかったことを確認できる。
図3は、本明細書の実施形態によるブロックチェーントランザクション実行シナリオ300の一例を例示するブロック図である。ブロックチェーントランザクション実行シナリオ300は、ユーザ305が40元(40円)を消費する予定であるブロックチェーントランザクションを含む。ブロックチェーントランザクションは、スマートコントラクト事前実行段階310およびデータ記憶検証段階315を含む。便宜上、ブロックチェーントランザクション実行シナリオ300は、1つまたは複数の場所に設けられ、本明細書に従って適切にプログラムされる1つまたは複数のコンピュータのシステム(例えば、図1の計算システム106および/もしくは108または図2の参加者システム202、204および/もしくは206)によって行われるとして記載されることになる。
図3に例示されるように、ユーザ305は、100元のウォレット残高を持つデジタルウォレット320を有する。ユーザ305は40元を消費する322予定である。例えば、スマートコントラクトに対するソフトウェア開発キット(SDK)呼出し324を通じて、40元を消費するブロックチェーントランザクション326が実行のために提出される。ブロックチェーントランザクション326を実行するために、スマートコントラクトが最初に事前実行されて、ブロックチェーントランザクション326に関する論理的検証を行って読み書きセットを生成する。コンセンサスソーティング後に、読み書きセットに基づいてブロックチェーントランザクション326に関するデータ検証が行われて、ブロックチェーントランザクション326が実行成功できるかどうかを判定する。
スマートコントラクト事前実行段階310中に、328で、40元を消費するためのブロックチェーントランザクションが受信される。328から、フローは330に進む。
330で、ユーザの口座残高が読み込まれる(すなわち、残高=100)。スマートコントラクト事前実行段階310中に、ユーザの口座残高は変更されない(すなわち、残高は100元のままである)。330から、フローは332に進む。
332で、40元を消費するブロックチェーントランザクションのためにユーザの口座に十分に(すなわち、十分な)残高があるかどうかについて判定がなされる。40元を消費するブロックチェーントランザクションのためにユーザの口座に十分には残高がないと判定されれば、フローは334に進み、金額不足を示す通知がユーザ305に送られる。言い換えれば、残高不足な状況では、スマートコントラクト事前実行段階310は失敗し、40元を消費するブロックチェーントランザクションは失敗する。そうでなければ、40元を消費するブロックチェーントランザクションのためにユーザの口座に十分に残高があると判定されれば、フローは336に進み、読み書きセットが生成される。例えば、(100->60)の読み書きセットが生成される。(100->60)の読み書きセットは、100元の残高を持つユーザの口座から40元を差し引くこと、および40元を消費するブロックチェーントランザクションが成功した後の60元の残りの残高を持つユーザの口座(例えば、ユーザの口座残高が100元から60元に変化すること)を示す。336の後、生成された読み書きセットを持つブロックチェーントランザクションは、データ記憶検証段階315で確定される前に、コンセンサスソーティングのために提出される338。
データ記憶検証段階315中に、340で、(100->60)の読み書きセットを持つブロックチェーントランザクションが受信される。340から、フローは342に進む。
342で、ユーザの口座残高が読み込まれる(すなわち、残高=100)。342から、フローは344に進む。
344で、ユーザの口座残高が(100->60)の読み書きセットに示される口座残高(すなわち、読み書きセット口座残高=100)に等しいかどうかについて判定がなされる。ユーザの口座残高が(100->60)の読み書きセットに示される口座残高に等しくないと判定されれば、フローは346に進み、データが一致しないことを示すメッセージが送られてユーザ305に通知する。言い換えれば、データ記憶検証段階315は失敗し、結果として40元を消費するブロックチェーントランザクションは失敗する。そうでなければ、ユーザの口座残高が(100->60)の読み書きセットに示される口座残高に等しいと判定されれば、フローは348に進み、(100->60)の読み書きセットに従ってデータベースが変更される(例えば、ユーザの口座残高が100元から60元に変更される)。例えば、40元を消費するブロックチェーントランザクションはブロックチェーンのデータブロックに記憶される。348から、フローは350に進み、消費金額を示すメッセージが送られてユーザ305に通知する。言い換えれば、40元を消費するブロックチェーントランザクションは成功する。
図3に図示されるブロックチェーントランザクション実行シナリオ300は読み書きセットモデルベースのブロックチェーン技術(例えば、ハイパーレッジャーファブリック)を使用する。従前のスマートコントラクト呼出し論理(イーサリアムなど)とは異なり、読み書きセットモデルベースのブロックチェーン技術は論理的検証およびデータ検証を分離する。スマートコントラクト事前実行段階310(例えば、論理的検証)中の実行はデータを変更せず、ブロックチェーンネットワークにおける1つまたは複数のノードの裏付けを得ることができる。コンセンサスソーティング後かつデータ記憶検証段階315(例えば、データ検証)中のトランザクションはデータを変更できる。そうすることで、ブロックチェーン技術の性能を改善できる。
図4は、本明細書の実施形態による2つの並列ブロックチェーントランザクションのための従来の実行シナリオ400の一例を例示するブロック図である。従来の実行シナリオ400は、ユーザ405が2つの並列ブロックチェーントランザクションのうちの各ブロックチェーントランザクションで40元(40円)を消費する予定であった2つの並列ブロックチェーントランザクションを含む。各ブロックチェーントランザクションは、スマートコントラクト事前実行段階410、コンセンサスソーティング段階415およびデータ記憶検証段階420を含む。一部の実施形態において、従来の実行シナリオ400は3つ以上の並列ブロックチェーントランザクションを含むことができる。便宜上、従来の実行シナリオ400は、1つまたは複数の場所に設けられ、本明細書に従って適切にプログラムされる1つまたは複数のコンピュータのシステムによって行われるとして記載されることになる。(例えば、図1の計算システム106および/もしくは108または図2の参加者システム202、204および/もしくは206)。
図4に例示されるように、ユーザ405は、100元のウォレット残高を持つデジタルウォレット422を有する。ユーザ405は、2つの並列ブロックチェーントランザクション424および426で合計80元を消費する予定であった。各ブロックチェーントランザクションは40元を消費することになる。一部の実施形態において、各ブロックチェーントランザクションで異なる額を消費できる。2つの並列ブロックチェーントランザクション424および426を実行するために、スマートコントラクトが最初に事前実行されて、各ブロックチェーントランザクションに関する論理的検証を行って対応する読み書きセットを生成する。コンセンサスソーティング後に、対応する読み書きセットに基づいて各ブロックチェーントランザクションに関するデータ検証が行われて、各ブロックチェーントランザクションが実行成功できるかどうかを判定する。
スマートコントラクト事前実行段階410(図3におけるスマートコントラクト事前実行段階310と同様)中に、ブロックチェーントランザクション424に対して読み書きセット428(すなわち、(100->60))が生成される。読み書きセット428は、100元の残高を持つユーザの口座から40元を差し引くこと、およびブロックチェーントランザクション424が成功した後の60元の残りの残高を持つユーザの口座(例えば、ユーザの口座残高が100元から60元に変化すること)を示す。加えて、ブロックチェーントランザクション426に対して読み書きセット430(すなわち、(100->60))が生成される。
ユーザの口座がいかなる他の消費もしなければ、2つの並列ブロックチェーントランザクション424および426は、スマートコントラクト事前実行段階410中にデータベースに記憶された同じユーザの口座残高を読み込む。したがって、読み書きセット430も、100元の残高を持つユーザの口座から40元を差し引くこと、およびブロックチェーントランザクション426が成功した後の60元の残りの残高を持つユーザの口座(例えば、ユーザの口座残高が100元から60元に変化すること)を示す。
スマートコントラクト事前実行段階410後に、読み書きセット428を持つブロックチェーントランザクションはコンセンサスソーティングのために提出され432、読み書きセット430を持つブロックチェーントランザクションもコンセンサスソーティングのために提出される434。
コンセンサスソーティング段階415の間、便宜上、読み書きセット428を持つブロックチェーントランザクションが、データ記憶検証段階420で実行されるべき第1のトランザクション436とされ、読み書きセット430を持つブロックチェーントランザクションが、データ記憶検証段階420で実行されるべき第2のトランザクション438とされると仮定する。
データ記憶検証段階420(図3におけるデータ記憶検証段階315と同様)中に、読み書きセット428を持つブロックチェーントランザクションが最初に実行される440。440で、ユーザの口座残高が読み込まれる(すなわち、残高=100)。ユーザの口座残高が読み書きセット428に示される口座残高に等しい(すなわち、100==100)との判定がなされる。読み書きセット428に従ってデータベースが変更される(例えば、ユーザの口座残高が100元から60元に変更される)。言い換えれば、読み書きセット428を持つブロックチェーントランザクションに対するデータ記憶検証段階420は成功し、結果としてブロックチェーントランザクション424は成功する。読み書きセット428を持つブロックチェーントランザクションが成功した後に、フローは442に進み、読み書きセット430を持つブロックチェーントランザクションが実行される。442で、ユーザの口座残高が読み込まれる(すなわち、残高=60)。ユーザの口座残高が読み書きセット430に示される口座残高に等しくない(すなわち、60!=100)との判定がなされる。言い換えれば、読み書きセット430を持つブロックチェーントランザクションに対するデータ記憶検証段階420は失敗し、結果としてブロックチェーントランザクション426は失敗する。
図4に例示されるように、2つ以上の並列ブロックチェーントランザクションが1つのデータ(口座残高など)に関して実行されるとき、論理的検証(例えば、スマートコントラクト事前実行段階410)中に各ブロックチェーントランザクションに対して同じデータが読み込まれる。コンセンサスソーティング後かつデータ検証(例えば、データ記憶検証段階420)中に、2つ以上の並列ブロックチェーントランザクションの間で最初に実行されるブロックチェーントランザクション(例えば、ブロックチェーントランザクション424)がデータ検証に成功し、同データを変更する。結果として、最初に実行されたブロックチェーントランザクション後に実行される後続のブロックチェーントランザクションはデータ検証に失敗することになる。言い換えれば、後続のブロックチェーントランザクション(例えば、ブロックチェーントランザクション426)をサポートする十分な残高があるとしても、同データが最初に実行されたブロックチェーントランザクションによって変更されているので、後続のブロックチェーントランザクションはデータ検証に失敗することになる。例えば、最初に実行されたブロックチェーントランザクションを除いて、全ての並列ブロックチェーントランザクションが失敗する。したがって、同データに関して同時トランザクションが頻繁であるとき、従来の実行シナリオ400の性能は非効率であり、より多くのリソースを消費する。
図5は、本明細書の実施形態による2つの並列ブロックチェーントランザクションのための実行シナリオ500の一例を例示するブロック図である。実行シナリオ500は、ユーザ505が2つの並列ブロックチェーントランザクションのうちの各ブロックチェーントランザクションで40元(40円)を消費する予定であった2つの並列ブロックチェーントランザクションを含む。各ブロックチェーントランザクションは、スマートコントラクト事前実行段階510、コンセンサスソーティング段階515およびデータ記憶検証段階520を含む。一部の実施形態において、実行シナリオ500は3つ以上の並列ブロックチェーントランザクションを含むことができる。便宜上、実行シナリオ500は、1つまたは複数の場所に設けられ、本明細書に従って適切にプログラムされる1つまたは複数のコンピュータのシステムによって行われるとして記載されることになる。例えば、適切にプログラムされる計算システム(例えば、図1の計算システム106および/または108、図2の参加者システム202、204および/または206)が実行シナリオ500を行える。
図5に例示されるように、ユーザ505は、100元のウォレット残高を持つデジタルウォレット522を有する。ユーザ505は、2つの並列ブロックチェーントランザクション524および526で合計80元を消費する予定であった。各ブロックチェーントランザクションは40元を消費することになる。一部の実施形態において、各ブロックチェーントランザクションで異なる額を消費できる。2つの並列ブロックチェーントランザクション524および526を実行するために、スマートコントラクトが最初に事前実行されて、各ブロックチェーントランザクションに関する論理的検証を行って対応する読み書きセットを生成する。コンセンサスソーティング後に、対応する読み書きセットに基づいて各ブロックチェーントランザクションに関するデータ検証が行われて、各ブロックチェーントランザクションが実行成功できるかどうかを判定する。
スマートコントラクト事前実行段階510中に、ブロックチェーントランザクション524に対して、図4における読み書きセット428の代わりに、特殊命令528(例えば、(100-40))が生成される。特殊命令528は、ユーザの口座から40元を差し引くことを示す。一部の実施形態において、特殊命令528はスマートコントラクトでの残高変化の決定のために使用される。加えて、ブロックチェーントランザクション526に対して、図4における読み書きセット430の代わりに、特殊命令530(例えば、(100-40))が生成される。特殊命令530も、ユーザの口座から40元を差し引くことを示す。
スマートコントラクト事前実行段階510後に、特殊命令528を持つブロックチェーントランザクションはコンセンサスソーティングのために提出され532、特殊命令530を持つブロックチェーントランザクションもコンセンサスソーティングのために提出される534。
コンセンサスソーティング段階515の間、便宜上、特殊命令528を持つブロックチェーントランザクションが、データ記憶検証段階520で実行されるべき第1のトランザクション536とされ、特殊命令530を持つブロックチェーントランザクションが、データ記憶検証段階520で実行されるべき第2のトランザクション538とされると仮定する。
データ記憶検証段階520中に、特殊命令528を持つブロックチェーントランザクションが最初に実行される540。540で、ユーザの口座残高が読み込まれる(すなわち、残高=100)。ユーザの口座残高が特殊命令528に示される消費額(すなわち、40)以上であるかどうかについて判定がなされる。この場合、ユーザの口座残高が特殊命令528に示される消費額以上である(すなわち、100>=40)と判定される。次いで、特殊命令528に従ってデータベースが変更される(例えば、ユーザの口座から40元が差し引かれる)。言い換えれば、特殊命令528を持つブロックチェーントランザクションに対するデータ記憶検証段階520は成功し、結果としてブロックチェーントランザクション524は成功する。特殊命令528を持つブロックチェーントランザクションが成功した後に、フローは542に進み、特殊命令530を持つブロックチェーントランザクションが実行される。542で、ユーザの口座残高が読み込まれる(すなわち、残高=60)。ユーザの口座残高が特殊命令530に示される消費額(すなわち、40)以上であるかどうかについて判定がなされる。この場合、ユーザの口座残高が特殊命令530に示される消費額以上である(すなわち、60>=40)と判定される。次いで、特殊命令530に従ってデータベースが変更される(例えば、ユーザの口座から40元が差し引かれる)。言い換えれば、特殊命令530を持つブロックチェーントランザクションに対するデータ記憶検証段階520は成功し、結果としてブロックチェーントランザクション526は成功する。
図4における従来の実行シナリオ400とは異なり、図5における実行シナリオ500は、論理的検証(例えば、スマートコントラクト事前実行段階510)中に特殊命令を生成する。例えば、口座残高を検証する代わりに、特殊命令は、口座残高がデータ検証中に対応するブロックチェーントランザクションをサポートすることを確認するために使用することができる。結果として、十分に残高があれば全ての並列ブロックチェーントランザクションが実行成功できる。一部の実施形態において、実行シナリオ500は、1つのデータに関して複数の並列ブロックチェーントランザクションを処理するために既存の読み書きセットモデルベースのブロックチェーン技術(例えば、図4における従来の実行シナリオ400)への拡張として使用することができる。例えば、特殊命令ベースのブロックチェーン技術(例えば、実行シナリオ500)は、同時トランザクションが頻繁な口座に対して使用でき、読み書きセットモデルベースのブロックチェーン技術は、同時トランザクションが少ないまたはない口座に対して使用することができる。一部の実施形態において、特殊命令へ単純な論理指令を組み込める。特殊命令は次いで、データ記憶検証段階中に対応する論理検証を実行して、対応するデータトランザクションが実行成功できるかどうかを判定するために使用することができる。
利点が以下の1つまたは複数を含むことができる。第一に、口座からの同時差引きによって引き起こされる二重消費問題が解決できる。口座に十分に残高がある限り(例えば、特殊命令に従って論理的に妥当)、口座に関する複数の並列ブロックチェーントランザクションが実行成功できる。第二に、特殊命令は、既存の読み書きセットモデルベースのブロックチェーン技術への拡張として導入される。スマートコントラクトでは、残高変化を決定する論理が特殊命令によって呼び出される。ノードがデータ状況確認を行うとき、特殊命令は、残高を確認してデータ状況の妥当性を判定するために使用される。第三に、特殊命令方式は、読み書きセットモデルベースのブロックチェーン技術において1つのデータに単一のポリシー変更が適用される全ての種類の状況に適用可能である。同データは、数値型、状態型およびデータ型の少なくとも1つを含むデータ型を有することができる。
図6は、本明細書の実施形態によるブロックチェーントランザクションにおける二重消費問題を回避するための方法600の一例を例示するフローチャートである。便宜上、方法600は、1つまたは複数の場所に設けられ、本明細書に従って適切にプログラムされる1つまたは複数のコンピュータのシステムによって行われるとして記載されるべき。例えば、適切にプログラムされる計算システム(例えば、図1の計算システム106および/または108、図2の参加者システム202、204および/または206)が方法600を行える。
602で、1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令が受信される。2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更する(例えば、加算する、減算する)。一部の実施形態において、同データは、ブロックチェーンプロセスで使用される(例えば、変更される)データとすることができる。例えば、同データは、ユーザが金銭を消費または金銭を預金できるユーザ口座とすることができる。一部の実施形態において、同データは、数値型、状態型およびデータ型の少なくとも1つを含むデータ型を有することができる。一部の実施形態において、2つ以上のブロックチェーントランザクションは二重消費トランザクションであり、同データに関して並列に実行される。一部の実施形態において、ブロックチェーンは読み書きセットモデルに基づく。
604で、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトが事前実行されて、ブロックチェーントランザクションを示す特殊命令を生成する。特殊命令は、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認するために使用される。一部の実施形態において、特殊命令は、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行すると、読み書きセットの代わりに生成される。言い換えれば、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行するとき、読み書きセットは生成されない。例えば、100元の残高を持つ口座から40元を消費するブロックチェーントランザクションを実行すると、特殊命令(100-40)(図5の528および/または530など)が生成されて、読み書きセット(100->60)(図4の428および/または430など)は生成されない。
一部の実施形態において、ブロックチェーントランザクションは、同データから或る額を差し引くことである。そのような場合、同データの現在値がブロックチェーントランザクションをサポートすることを確認することは、同データの現在値が同額以上であることを確認することを含む。一部の実施形態において、ブロックチェーントランザクションは、同データに或る額を預金することである。そのような場合、同データの現在値がブロックチェーントランザクションをサポートすることを確認することは行われなくてよい。例えば、スマートコントラクトは、同データの現在値を確認することなく実行されて、ブロックチェーンにブロックチェーントランザクションを書き込める。一部の実施形態において、各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成することは、同データに関して残高確認を行うことと、同データに関する残高確認がブロックチェーントランザクションをサポートする場合、ブロックチェーントランザクションを示す特殊命令を生成することとを含む。一部の実施形態において、特殊命令は、同データに行われるべきである比較演算を示す。例えば、比較演算は、同データの現在値を同データから差し引かれることになる額と比較する。
図6に図示される方法600は、追加の、より少ないまたは異なる行為(図6に図示せず)を含むように変更または再構成でき、それらは示される順にまたは異なる順に行える。例えば、604の後、ブロックチェーントランザクションはコンセンサスソーティングのために提出される。同データの現在値が同額以上であることを確認したことに応じて、ブロックチェーントランザクションと関連するスマートコントラクトが実行されてブロックチェーンにブロックチェーントランザクションを書き込む。一部の実施形態において、同データの現在値が同額以上であることを確認することは、同データの現在値が、ブロックチェーントランザクションを示す特殊命令によって示される同データの値と同じであることを確認することを含まない。一部の実施形態において、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むことは、ブロックチェーントランザクションと関連するデータブロックを生成することと、ブロックチェーンにデータブロックを公開することとを含む。一部の実施形態において、図6に図示される行為の1つまたは複数が、例えば、終了条件に達するまで繰り返せるまたは反復できる。一部の実施形態において、図6に図示される個々の行為の1つまたは複数が複数の別々の行為として実行できる、または図6に図示される行為の1つまたは複数の部分集合が単一の行為として結合および実行できる。一部の実施形態において、図6に図示される個々の行為の1つまたは複数が方法600から省略されてもよい。
図7は、本明細書の実装形態による機器700のモジュールの例を描く。
機器700は、ブロックチェーンネットワークにおける二重消費問題を回避するように構成されるブロックチェーンノードの実施形態の一例とすることができ、ブロックチェーンネットワークはコンソーシアムブロックチェーンネットワークである。機器700は上記した実施形態に対応でき、機器700は以下を含む:1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令を受信する受信モジュール702;2つ以上のブロックチェーントランザクションのうちのブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成する事前実行モジュール704;およびコンセンサスソーティングのためにブロックチェーントランザクションを送信する送信モジュール706。
任意選択の実施形態において、2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更し、特殊命令は、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認するために使用される。
任意選択の実施形態において、2つ以上のブロックチェーントランザクションは同データに並列に実行される。
任意選択の実施形態において、ブロックチェーンは読み書きセットモデルに基づく。
任意選択の実施形態において、各ブロックチェーントランザクションに対して、特殊命令は、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行すると、読み書きセットの代わりに生成される。
任意選択の実施形態において、機器700は、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むために、同データの現在値が、ブロックチェーントランザクションによってかつ同データから差し引かれることになる額以上であるかどうかを判定するための判定モジュールを更に含む。
任意選択の実施形態において、同データの現在値がブロックチェーントランザクションをサポートすることを確認することは、同データの現在値が、ブロックチェーントランザクションを示す特殊命令によって示される同データの値と同じであることを確認することを含まない。
任意選択の実施形態において、機器700は、ブロックチェーントランザクションと関連するデータブロックを生成するための生成モジュール、およびブロックチェーンにデータブロックを公開するための公開モジュールを更に含む。
任意選択の実施形態において、機器700は、同データに関して残高確認を行うための残高確認モジュール、および同データに関する残高確認がブロックチェーントランザクションをサポートする場合ブロックチェーントランザクションを示す特殊命令を生成するための生成モジュールを更に含む。
前述の実施形態に例示されるシステム、装置、モジュールまたはユニットは、コンピュータチップもしくはエンティティを使用することによって実装できる、または或る機能を有する製品を使用することによって実装できる。典型的な実施デバイスはコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せとすることができる。
装置における各モジュールの機能および役割の実施プロセスについては、前述の方法における対応するステップの実施プロセスを参照できる。簡略化のために詳細はここでは省略される。
装置実施形態が基本的に方法実施形態に対応するので、関連部分については、方法実施形態における関連説明を参照できる。前述した装置実施形態は単に一例である。別々の部分として記載されるモジュールは物理的に別々であってもまたはなくてもよく、モジュールとして表示される部分は、物理的モジュールであってもまたはなくてもよく、1つの場所に設けられてもよく、またはいくつかのネットワークモジュールに分散されてもよい。モジュールの一部または全部が、本明細書の解決策の目的を達成するように実需に基づいて選択できる。当業者は創意工夫なしに本明細書の実施形態を理解および実装できる。
図7を再び参照すると、それは、ブロックチェーンデータ事前実行機器の内部機能モジュールおよび構造を例示すると解釈できる。ブロックチェーンデータ事前実行機器は、ブロックチェーンネットワークにおける二重消費問題を回避するように構成されるブロックチェーンノードの一例とすることができる。実行体は本質的に電子装置とすることができ、電子装置は以下を含む:1つまたは複数のプロセッサ、および1つまたは複数のプロセッサの実行可能命令を記憶するように構成されるメモリ。
本明細書に記載される手法は1つまたは複数の技術的効果をもたらすことができる。一部の実施形態において、二重消費問題(1つのデータに関して複数の並列ブロックチェーントランザクションを実行することなど)を処理するために既存の読み書きセットモデルベースのブロックチェーン技術への拡張として特殊命令が導入される。他の実施形態において、1つのデータに関して複数の並列ブロックチェーントランザクションを実行するときに、各ブロックチェーントランザクションに対して、読み書きセットの代わりに特殊命令が生成される。更に他の実施形態において、スマートコントラクトを実行してブロックチェーンに対応するブロックチェーントランザクションを書き込むときに1つのデータの現在値が対応するブロックチェーントランザクションをサポートすることを確認するために特殊命令が使用される。
本対象の記載された実施形態は1つまたは複数の特徴を単独でまたは組合せて含むことができる。
例えば、第1の実施形態において、ブロックチェーントランザクションにおける二重消費問題を回避するためのコンピュータ実装方法であって、1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令を受信するステップであり、2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更する、ステップと、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成するステップであり、特殊命令が、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認するために使用される、ステップとを含む、コンピュータ実装方法。上記および他の記載された実施形態は各々、任意選択で、以下の特徴の1つまたは複数を含むことができる:
第1の特徴は、以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションが同データに関して並列に実行されることを規定する。
第2の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーンが読み書きセットモデルに基づくことを規定する。
第3の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、特殊命令が、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行すると、読み書きセットの代わりに生成されることを規定する。
第4の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからのブロックチェーントランザクションが同データから或る額を差し引くこと、および同データの現在値がブロックチェーントランザクションをサポートすることを確認することが、同データの現在値が同額以上であることを確認することを含むことを規定する。
第5の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、本方法が、コンセンサスソーティングのためにブロックチェーントランザクションを提出するステップと、同データの現在値が同額以上であることを確認したことに応じて、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むステップとを更に含む。
第6の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、同データの現在値が同額以上であることを確認することが、同データの現在値が、ブロックチェーントランザクションを示す特殊命令によって示される同データの値と同じであることを確認することを含まないことを規定する。
第7の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むステップが、ブロックチェーントランザクションと関連するデータブロックを生成するステップと、ブロックチェーンにデータブロックを公開するステップとを含むことを規定する。
第8の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成するステップが、同データに関して残高確認を行うステップと、同データに関する残高確認がブロックチェーントランザクションをサポートする場合、ブロックチェーントランザクションを示す特殊命令を生成するステップとを含むことを規定する。
第9の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、特殊命令が、スマートコントラクトを実行するときに同データに比較演算が行われるべきであることを示すことを規定する。
第2の実施形態において、ブロックチェーントランザクションにおける二重消費問題を回避するためのシステムであって、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、命令が記憶された1つまたは複数のコンピュータ可読メモリであり、同命令が、1つまたは複数のプロセッサによって実行可能であり、1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令を受信することであり、2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更する、ことと、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成することであり、特殊命令が、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認するために使用される、こととを含む動作を行う、コンピュータ可読メモリとを備える、システム。上記および他の記載された実施形態は各々、任意選択で、以下の特徴の1つまたは複数を含むことができる:
第1の特徴は、以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションが同データに関して並列に実行されることを規定する。
第2の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーンが読み書きセットモデルに基づくことを規定する。
第3の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、特殊命令が、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行すると、読み書きセットの代わりに生成されることを規定する。
第4の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからのブロックチェーントランザクションが同データから或る額を差し引くこと、および同データの現在値がブロックチェーントランザクションをサポートすることを確認することが、同データの現在値が同額以上であることを確認することを含むことを規定する。
第5の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、同動作が、コンセンサスソーティングのためにブロックチェーントランザクションを提出することと、同データの現在値が同額以上であることを確認したことに応じて、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むこととを更に含む。
第6の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、同データの現在値が同額以上であることを確認することが、同データの現在値が、ブロックチェーントランザクションを示す特殊命令によって示される同データの値と同じであることを確認することを含まないことを規定する。
第7の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むことが、ブロックチェーントランザクションと関連するデータブロックを生成することと、ブロックチェーンにデータブロックを公開することとを含むことを規定する。
第8の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成することが、同データに関して残高確認を行うことと、同データに関する残高確認がブロックチェーントランザクションをサポートする場合、ブロックチェーントランザクションを示す特殊命令を生成することとを含むことを規定する。
第9の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、特殊命令が、スマートコントラクトを実行するときに同データに比較演算が行われるべきであることを示すことを規定する。
第3の実施形態において、ブロックチェーントランザクションにおける二重消費問題を回避するための装置であって、1つのデータに関して2つ以上のブロックチェーントランザクションを実行するための命令を受信することであり、2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが同データの値を変更する、ことと、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成することであり、特殊命令が、スマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むときに同データの現在値がブロックチェーントランザクションをサポートすることを確認するために使用される、こととを含む動作を行うための複数のモジュールを備える、装置。上記および他の記載された実施形態は各々、任意選択で、以下の特徴の1つまたは複数を含むことができる:
第1の特徴は、以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションが同データに関して並列に実行されることを規定する。
第2の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーンが読み書きセットモデルに基づくことを規定する。
第3の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、特殊命令が、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行すると、読み書きセットの代わりに生成されることを規定する。
第4の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからのブロックチェーントランザクションが同データから或る額を差し引くこと、および同データの現在値がブロックチェーントランザクションをサポートすることを確認することが、同データの現在値が同額以上であることを確認することを含むことを規定する。
第5の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、同動作が、コンセンサスソーティングのためにブロックチェーントランザクションを提出することと、同データの現在値が同額以上であることを確認したことに応じて、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むこととを更に含む。
第6の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、同データの現在値が同額以上であることを確認することが、同データの現在値が、ブロックチェーントランザクションを示す特殊命令によって示される同データの値と同じであることを確認することを含まないことを規定する。
第7の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、ブロックチェーントランザクションと関連するスマートコントラクトを実行してブロックチェーンにブロックチェーントランザクションを書き込むことが、ブロックチェーントランザクションと関連するデータブロックを生成することと、ブロックチェーンにデータブロックを公開することとを含むことを規定する。
第8の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、ブロックチェーントランザクションを示す特殊命令を生成することが、同データに関して残高確認を行うことと、同データに関する残高確認がブロックチェーントランザクションをサポートする場合、ブロックチェーントランザクションを示す特殊命令を生成することとを含むことを規定する。
第9の特徴は、以上または以下の特徴のいずれかと組み合わせ可能であり、特殊命令が、スマートコントラクトを実行するときに同データに比較演算が行われるべきであることを示すことを規定する。
本明細書に記載される対象ならびに行為および動作の実施形態は、デジタル電子回路網で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、本明細書に開示される構造およびそれらの構造等価物を含め、コンピュータハードウェアで、またはそれらの1つもしくは複数の組合せで実装できる。本明細書に記載される対象の実施形態は、1つまたは複数のコンピュータプログラム、例えば、データ処理装置による実行のために、またはその動作を制御するためにコンピュータプログラムキャリアに符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装できる。例えば、コンピュータプログラムキャリアには、命令が符号化または記憶された1つまたは複数のコンピュータ可読記憶媒体を含むことができる。キャリアは、磁気、光磁気もしくは光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)または他の種類の媒体などの有形の非一時的コンピュータ可読媒体でよい。代替的に、または加えて、キャリアは、データ処理装置による実行のために適切な受信器装置に伝送するための情報を符号化するために発生される人工発生伝搬信号、例えば、機械発生電気、光または電磁信号でよい。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せである、またはその一部とすることができる。コンピュータ記憶媒体は伝搬信号ではない。
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプトまたはコードとも称してまたは記載してよく、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含め、任意の形式のプログラミング言語で書くことができ、それは、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、エンジン、サブルーチン、または1つもしくは複数の場所にデータ通信ネットワークによって相互接続される1つもしくは複数のコンピュータを含んでよい計算環境での実行に適する他のユニットとしてを含め、任意の形式に展開できる。
コンピュータプログラムは、ファイルシステムにおけるファイルに対応してよいが、しなくてもよい。コンピュータプログラムは、他のプログラムもしくはデータ、例えば、マークアップ言語文書に記憶される1つもしくは複数のスクリプトを保持するファイルの一部分に、当該プログラムに専用の単一のファイルに、または複数の連係ファイル、例えば、1つもしくは複数のモジュール、サブプログラムもしくはコードの一部分を記憶するファイルに記憶できる。
コンピュータプログラムの実行のためのプロセッサには、例として、汎用および専用の両マイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、プロセッサに結合される非一時的コンピュータ可読媒体から実行するためのコンピュータプログラムの命令の他にデータを受け取ることになる。
用語「データ処理装置」は、例としてプログラマブルプロセッサ、コンピュータまたはマルチプロセッサもしくはコンピュータを含め、データを処理するための全ての種類の装置、デバイスおよび機械を包含する。データ処理装置は、専用論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)またはGPU(グラフィック処理装置)を含むことができる。同装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つもしくは複数の組合せを構成するコードも含むことができる。
本明細書に記載されるプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行して、入力データを演算して出力を生成することによって動作を行う1つまたは複数のコンピュータまたはプロセッサによって行える。プロセスおよび論理フローは、専用論理回路網、例えば、FPGA、ASICもしくはGPUによっても、または専用論理回路網および1つもしくは複数のプログラムされたコンピュータの組合せによっても行える。
コンピュータプログラムの実行に適するコンピュータは、汎用もしくは専用マイクロプロセッサもしくは両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、リードオンリメモリまたはランダムアクセスメモリまたは両方から命令およびデータを受け取ることになる。コンピュータの要素には、命令を実行するための中央処理装置ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスを含むことができる。中央処理装置およびメモリは、専用論理回路網によって補足、またはそれに統合できる。
一般に、コンピュータは、1つまたは複数の記憶デバイスも含むか、または作動的に結合されてデータを受け取るもしくはデータを転送することになる。記憶デバイスは、例えば、磁気、光磁気もしくは光ディスク、ソリッドステートドライブ、または任意の他の種類の非一時的、コンピュータ可読媒体とすることができる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。したがって、コンピュータは、ローカルおよび/またはリモートである、1つまたは複数のメモリなどの、1つまたは複数の記憶デバイスに結合されてよい。例えば、コンピュータは、コンピュータの不可欠な部品である1つもしくは複数のローカルメモリを含むことができる、またはコンピュータは、クラウドネットワークにある1つもしくは複数のリモートメモリに結合できる。その上、コンピュータは、別のデバイス、例えば、いくつか挙げると、移動電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信器、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込める。
部品は、直接かまたは1つもしくは複数の中間部品を介してかのいずれかで、互いに電気的または光学的になど通信可能に接続されることによって互い「に結合」できる。部品の一方が他方へ統合されても、部品は互い「に結合」できる。例えば、プロセッサへ統合された記憶部品(例えば、L2キャッシュ部品)はプロセッサ「に結合」されている。
ユーザとの対話を提供するために、本明細書に記載される対象の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、LCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供できる入力デバイス、例えば、キーボードおよびポインティングデバイス、例えば、マウス、トラックボールまたはタッチパッドを有するコンピュータに実装できる、またはそれと通信するように構成できる。ユーザとの対話を提供するために他の種類のデバイスも使用でき、例えば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックとすることができ、ユーザからの入力は、音響、音声または触覚入力を含め、任意の形態で受け取れる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、かつそれから文書を受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信される要求に応じてウェブブラウザにウェブページを送信することによって、またはユーザデバイス、例えば、スマートフォンもしくは電子タブレット上で実行するアプリと対話することによって、ユーザと対話できる。また、コンピュータは、パーソナルデバイス、例えば、メッセージングアプリケーションを実行しているスマートフォンにテキストメッセージまたは他の形式のメッセージを送信し、折り返しユーザから応答メッセージを受信することによって、ユーザと対話できる。
本明細書は、システム、装置およびコンピュータプログラム部品に関して用語「ように構成される」を使用する。1つまたは複数のコンピュータのシステムが特定の動作または行為を行うように構成されることは、システムが自らに、動作に際してシステムに同動作または行為を行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしたことを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を行うように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に同動作または行為を行わせる命令を含むことを意味する。専用論理回路網が特定の動作または行為を行うように構成されることは、回路網が同動作または行為を行う電子論理を有することを意味する。
本明細書が多くの具体的な実施詳細を含むが、これらは、請求項自体によって定められる、特許請求されるものの範囲への限定としてではなく、むしろ特定の実施形態に固有であり得る特徴の記述として解釈されるべきである。別々の実施形態の文脈で本明細書に記載される或る特徴が、組合せて単一の実施形態でも実現できる。反対に、単一の実施形態の文脈で記載される様々な特徴が、別々に複数の実施形態でも、または任意の適切な下位組合せでも実現できる。その上、特徴が或る組合せで作用すると上記され、しかも当初そのように特許請求され得るが、特許請求された組合せからの1つまたは複数の特徴が一部の場合に同組合せから削除でき、請求項は下位組合せまたは下位組合せの変形とされ得る。
同様に、動作が特定の順に図面に描かれかつ請求項に列挙されるが、これは、望ましい結果を達成するために、そのような動作が図示される特定の順にもしくは順番に行われること、または全ての例示された動作が行われることを必要とすると理解されるべきではない。或る状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記した実施形態における様々なシステムモジュールおよび部品の分離は、全ての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載されたプログラム部品およびシステムが一般に単一のソフトウェア製品に共に統合できるまたは複数のソフトウェア製品へ実装できることが理解されるべきである。
本対象の特定の実施形態が記載された。他の実施形態は以下の請求項の範囲内である。例えば、請求項に列挙される行為は異なる順に行え、それでも望ましい結果を達成できる。一例として、添付図に描かれるプロセスは、望ましい結果を達成するために、必ずしも図示される特定の順または順番を必要とするわけではない。いくつかの場合において、マルチタスキングおよび並列処理が有利であり得る。
100 環境
102 コンソーシアムブロックチェーンネットワーク
106 計算装置
108 計算装置
110 ネットワーク
200 概念アーキテクチャ
202 参加者システム
204 参加者システム
206 参加者システム
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
216' ブロックチェーンのコピー
216'' ブロックチェーンのコピー
216''' ブロックチェーンのコピー
300 ブロックチェーントランザクション実行シナリオ
305 ユーザ
310 スマートコントラクト事前実行段階
315 データ記憶検証段階
320 デジタルウォレット
324 ソフトウェア開発キット(SDK)呼出し
326 ブロックチェーントランザクション
400 従来の実行シナリオ
405 ユーザ
410 スマートコントラクト事前実行段階
415 コンセンサスソーティング段階
420 データ記憶検証段階
422 デジタルウォレット
424 並列ブロックチェーントランザクション
426 並列ブロックチェーントランザクション
428 読み書きセット
430 読み書きセット
436 第1のトランザクション
438 第2のトランザクション
500 実行シナリオ
505 ユーザ
510 スマートコントラクト事前実行段階
515 コンセンサスソーティング段階
520 データ記憶検証段階
522 デジタルウォレット
524 並列ブロックチェーントランザクション
526 並列ブロックチェーントランザクション
528 特殊命令
530 特殊命令
536 第1のトランザクション
538 第2のトランザクション
700 機器
702 受信モジュール
704 事前実行モジュール
706 送信モジュール

Claims (9)

  1. ブロックチェーントランザクションためのコンピュータ実装方法であって、
    1つのデータに関して2つ以上のブロックチェーントランザクションを並列に実行するための命令を受信するステップであり、前記2つ以上のブロックチェーントランザクションのうちの全てのブロックチェーントランザクションが前記データの値を変更し、読み書きセットモデルに基づく、ステップと、
    前記2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、
    前記ブロックチェーントランザクションと関連するスマートコントラクトを事前実行して、前記ブロックチェーントランザクションを示す特殊命令を読み書きセットの代わりに生成するステップであり、前記特殊命令は、
    前記データの現在の値からの変化量を示すとともに、
    前記スマートコントラクトを実行してブロックチェーンに前記ブロックチェーントランザクションを書き込むときに、前記データの現在値が前記ブロックチェーントランザクションをサポートすることを確認するために使用される、ステップと
    を含む、コンピュータ実装方法。
  2. 前記2つ以上のブロックチェーントランザクションからの前記ブロックチェーントランザクションが、前記データから前記変化量を差し引き、前記データの前記現在値が前記ブロックチェーントランザクションをサポートすることを確認することが、前記データの前記現在値が前記変化量以上であることを確認することを含む、請求項1に記載のコンピュータ実装方法。
  3. コンセンサスソーティングのために前記ブロックチェーントランザクションを提出するステップと、
    前記データの前記現在値が前記変化量以上であるとの確認に応じて、前記ブロックチェーントランザクションと関連する前記スマートコントラクトを実行して前記ブロックチェーンに前記ブロックチェーントランザクションを書き込むステップと、
    を更に含む、請求項2に記載のコンピュータ実装方法。
  4. 前記データの前記現在値が前記変化量以上であることを確認することが、前記データの前記現在値が、前記ブロックチェーントランザクションを示す前記特殊命令によって示される前記変化量と同じであることを確認することを含まない、請求項3に記載のコンピュータ実装方法。
  5. 前記ブロックチェーントランザクションと関連する前記スマートコントラクトを実行して前記ブロックチェーンに前記ブロックチェーントランザクションを書き込むステップが、
    前記ブロックチェーントランザクションと関連するデータブロックを生成するステップと、
    前記ブロックチェーンに前記データブロックを公開するステップと、
    を含む、請求項3に記載のコンピュータ実装方法。
  6. 前記2つ以上のブロックチェーントランザクションからの各ブロックチェーントランザクションに対して、前記ブロックチェーントランザクションと関連する前記スマートコントラクトを事前実行して、前記ブロックチェーントランザクションを示す前記特殊命令を生成するステップが、
    前記データに関して残高確認を行うステップと、
    前記データに関する前記残高確認が、前記ブロックチェーントランザクションをサポートする場合、前記ブロックチェーントランザクションを示す前記特殊命令を生成するステップと
    を含む、請求項1に記載のコンピュータ実装方法。
  7. 前記特殊命令、前記スマートコントラクトを実行するときに、前記データの現在値が前記ブロックチェーントランザクションをサポートすることを前記データの現在値が前記変化量以上であることによって確認するために、前記データに比較演算が行われるべきであることをさらに示す、請求項1に記載のコンピュータ実装方法。
  8. ブロックチェーントランザクションためのシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合されており、請求項1から7のいずれか一項に記載の方法を行うために、前記1つまたは複数のプロセッサによって実行可能である命令が記憶された1つまたは複数のコンピュータ可読メモリと
    を備える、システム。
  9. 求項1から7のいずれか一項に記載の方法を1つまたは複数のコンピュータにわせるための命令を含むコンピュータプログラム
JP2019559271A 2019-04-30 2019-04-30 読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避するための方法および装置 Active JP6941691B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/085212 WO2019137567A2 (en) 2019-04-30 2019-04-30 Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology

Publications (2)

Publication Number Publication Date
JP2020525874A JP2020525874A (ja) 2020-08-27
JP6941691B2 true JP6941691B2 (ja) 2021-09-29

Family

ID=67218456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559271A Active JP6941691B2 (ja) 2019-04-30 2019-04-30 読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避するための方法および装置

Country Status (9)

Country Link
US (1) US11449865B2 (ja)
EP (1) EP3628093B1 (ja)
JP (1) JP6941691B2 (ja)
KR (1) KR102337171B1 (ja)
CN (1) CN110998633B (ja)
AU (1) AU2019207314C1 (ja)
CA (1) CA3061810A1 (ja)
SG (1) SG11201910069YA (ja)
WO (1) WO2019137567A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111312352B (zh) 2020-02-19 2023-07-21 百度在线网络技术(北京)有限公司 一种基于区块链的数据处理方法、装置、设备和介质
US11362826B2 (en) 2020-03-18 2022-06-14 International Business Machines Corporation Endorsement process for non-deterministic application
CN112579291A (zh) * 2020-12-22 2021-03-30 北京航空航天大学 一种基于StateDB的智能合约并行运行***及并行运行方法
CN113672635A (zh) * 2021-09-01 2021-11-19 支付宝(杭州)信息技术有限公司 一种区块链中数据的订正方法和***
CN113744062B (zh) * 2021-11-04 2022-09-02 支付宝(杭州)信息技术有限公司 在区块链中执行交易的方法、区块链节点和区块链
CN114022148B (zh) * 2021-12-24 2022-04-22 杭州趣链科技有限公司 基于区块链的交易冲突检测方法、装置、设备和存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317549B2 (en) * 2013-06-25 2016-04-19 Optumsoft, Inc. Constraint-based consistency with snapshot isolation
KR101660627B1 (ko) * 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
CN106296184A (zh) * 2015-06-05 2017-01-04 地气股份有限公司 电子货币管理方法及电子货币***
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
WO2018120057A1 (zh) * 2016-12-30 2018-07-05 深圳前海达闼云端智能科技有限公司 基于区块链的货币管理方法和***
KR102384340B1 (ko) * 2017-04-05 2022-04-07 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템
JP2018181309A (ja) * 2017-04-20 2018-11-15 株式会社岩手銀行 取引情報提供システム、サーバ装置、ノード装置ならびにプログラム
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10469248B2 (en) * 2017-10-17 2019-11-05 Amrican Express Travel Related Services Company, Inc. API request and response balancing and control on blockchain
KR101856038B1 (ko) * 2017-11-07 2018-06-21 주식회사 올아이티탑 이체 사실확인 및 전화번호와 매칭된 블록체인을 갖는 디지털 가상화폐의 거래방법
CN111899005A (zh) * 2018-05-29 2020-11-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
CN108846659B (zh) * 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN108921559B (zh) * 2018-07-27 2022-03-04 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
CN109087204B (zh) * 2018-07-27 2023-04-14 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
US10896195B2 (en) * 2018-07-29 2021-01-19 International Business Machines Corporation Automatic generation of smart contracts
CN111899020A (zh) * 2018-08-13 2020-11-06 创新先进技术有限公司 区块链交易方法及装置、电子设备
US11070360B2 (en) * 2018-08-13 2021-07-20 International Business Machines Corporation Parallel transaction validation and block generation in a blockchain
CN110457123B (zh) * 2018-09-13 2021-06-15 腾讯科技(深圳)有限公司 一种区块处理任务的控制方法和装置
US10333694B1 (en) * 2018-10-15 2019-06-25 Accelor Ltd. Systems and methods for secure smart contract execution via read-only distributed ledger
CN109508968B (zh) * 2018-10-25 2020-12-18 常州唯康信息科技有限公司 区块链***以及其控制方法
RU2738826C1 (ru) * 2018-12-28 2020-12-17 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети блокчейнов
RU2731417C1 (ru) * 2018-12-28 2020-09-02 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети цепочек блоков на основе белых списков смарт-контрактов

Also Published As

Publication number Publication date
AU2019207314B2 (en) 2021-05-20
US20200349568A1 (en) 2020-11-05
CN110998633B (zh) 2023-11-21
KR102337171B1 (ko) 2021-12-08
SG11201910069YA (en) 2019-11-28
WO2019137567A2 (en) 2019-07-18
US11449865B2 (en) 2022-09-20
AU2019207314C1 (en) 2021-11-18
EP3628093B1 (en) 2021-07-07
EP3628093A4 (en) 2020-07-15
CA3061810A1 (en) 2019-07-18
AU2019207314A1 (en) 2020-11-12
WO2019137567A3 (en) 2020-03-12
CN110998633A (zh) 2020-04-10
JP2020525874A (ja) 2020-08-27
KR20200128347A (ko) 2020-11-12
EP3628093A2 (en) 2020-04-01

Similar Documents

Publication Publication Date Title
US11106817B2 (en) Data isolation in a blockchain network
JP6941691B2 (ja) 読み書きセットモデルベースのブロックチェーン技術における二重消費問題を回避するための方法および装置
US11057217B2 (en) Performing parallel execution of transactions in a distributed ledger system
US11494766B2 (en) Managing transactions on blockchain networks
CN111095326B (zh) 用于在区块链网络中执行多个交易的方法、***和装置
US11379866B2 (en) Retrieving values of digital tickets using smart contracts in blockchain networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210906

R150 Certificate of patent or registration of utility model

Ref document number: 6941691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150