JP6816300B2 - ブロックチェーンネットワークにおけるトランザクションの並列実行 - Google Patents

ブロックチェーンネットワークにおけるトランザクションの並列実行 Download PDF

Info

Publication number
JP6816300B2
JP6816300B2 JP2019542182A JP2019542182A JP6816300B2 JP 6816300 B2 JP6816300 B2 JP 6816300B2 JP 2019542182 A JP2019542182 A JP 2019542182A JP 2019542182 A JP2019542182 A JP 2019542182A JP 6816300 B2 JP6816300 B2 JP 6816300B2
Authority
JP
Japan
Prior art keywords
transactions
transaction
blockchain network
blockchain
group
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
JP2019542182A
Other languages
English (en)
Other versions
JP2020515942A (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 JP2020515942A publication Critical patent/JP2020515942A/ja
Application granted granted Critical
Publication of JP6816300B2 publication Critical patent/JP6816300B2/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/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/40Network security protocols
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、ブロックチェーンネットワークにおけるトランザクションの並列実行に関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも呼ばれることのある分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能にデータを格納することを可能にするものである。DLSは、どんな特定のユーザケースとも無関係に、ブロックチェーンネットワークと一般に呼ばれる。ブロックチェーンネットワークのタイプの例としては、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークがあり得る。コンソーシアムブロックチェーンネットワークは、選択された1群のエンティティのために設けられるものであり、これらのエンティティがコンセンサスプロセスを制御し、コンソーシアムブロックチェーンネットワークはまた、アクセス制御層を含む。
ブロックチェーンネットワークにおいて遭遇する1つの問題は、トランザクションが処理される速度である。一般に、ブロックチェーンネットワーク内のノードは、トランザクションを、それらがサブミットされた順序で逐次的に処理する。このことが、低いトランザクションスループット、およびトランザクションがサブミットされたときと、それがクリアされる(clear)ときとの間の遅延を招くことがある。
ブロックチェーンネットワークにおけるこれらのトランザクション性能問題に対処するための技法が有利となろう。
本明細書の実装形態は、ブロックチェーンネットワークにおけるトランザクションの並列実行のためのコンピュータで実行される方法を含む。より具体的には、本明細書の実装形態は、共通の依存関係を有するトランザクショングループを、他のグループと並列に実行することを対象とする。
いくつかの実装形態では、アクションは、ブロックチェーン内で実行される複数のトランザクションを特定することであって、これらのトランザクションが実行順序で並べられ、実行順序が、複数のトランザクションの後に並べられたコントラクトコール(contract call)を含む、特定することと、複数のトランザクション内のトランザクショングループを特定することであって、各グループ内の各トランザクションが、そのグループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる、特定することと、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することであって、各トランザクショングループを実行することが、そのグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む、命令することと、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したと判定することと、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したとの判定に応答して、ブロックチェーンネットワークのノードに、コントラクトコールを実行するように命令することとを含む。他の実装形態には、対応するシステム、装置、および方法のアクションを実施するように構成された、コンピュータ記憶デバイス上に符号化されたコンピュータプログラムが含まれる。
これらの実装形態および他の実装形態は各々、任意選択により、以下の特徴のうちの1つまたは複数を含み得る。
場合によっては、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することが、第1のノードセットに、第1のトランザクショングループを実行するように命令することと、第1のノードセットに、第2のトランザクショングループを実行するように命令することとを含む。
いくつかの実装形態では、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したと判定することが、複数のトランザクションのうちの全てのトランザクションが、ブロックチェーンネットワークによって維持されるブロックチェーン内に格納された1つまたは複数のブロック内に含まれていると判定することを含む。
いくつかの実装形態では、方法は、ブロックチェーンネットワークのノードがコントラクトコールの実行を完了したと判定することと、ブロックチェーン内で実行される第2の複数のトランザクションを特定することであって、第2の複数のトランザクションがコントラクトコールの後に実行順序で並べられる、特定することと、第2の複数のトランザクション内の第2のトランザクショングループを特定することと、ブロックチェーンネットワークのノードに、第2のトランザクショングループの各々を並列に実行するように命令することであって、各第2のトランザクショングループを実行することが、その第2のグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む、命令することとを含む。
場合によっては、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することが、それらのノードにネットワークを介してメッセージを送ることを含む。
場合によっては、ブロックチェーン内で実行される複数のトランザクションを特定することが、ブロックチェーンネットワークにブロードキャストされたトランザクションを受け取ることを含む。
いくつかの実装形態では、コントラクトコールが、ブロックチェーンネットワークによって維持されるブロックチェーン内に格納されたスマートコントラクトを実行することの要求である。
本明細書は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると本明細書において提供する方法の実装形態による動作を1つまたは複数のプロセッサに実施させる命令を格納した、1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書は、本明細書において提供する方法を実施するためのシステムをさらに提供する。このシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると本明細書において提供する方法の実装形態による動作を1つまたは複数のプロセッサに実施させる命令を格納した、1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
本明細書による方法が、本明細書において説明する態様および特徴のどんな組合せも含み得ることが、理解されよう。すなわち、本明細書による方法は、本明細書において具体的に説明する態様および特徴の組合せに限定されるのではなく、提供される態様および特徴のどんな組合せも含む。
本明細書の1つまたは複数の実装形態の詳細については、添付の図面および下の説明において記述される。本明細書の他の特徴および利点は、説明および図面から、また特許請求の範囲から、明らかとなろう。
本明細書の実装形態を実行するために使用することのできる環境の一例を示す図である。 本明細書の実装形態による概念アーキテクチャの一例を示す図である。 本明細書の実装形態による、ブロックチェーンネットワークにおけるトランザクションの実行順序の一例を示す図である。 本明細書の実装形態による、ブロックチェーンネットワークにおけるトランザクションの並列実行順序の一例を示す図である。 本明細書の実装形態に従って実行することのできるプロセスの一例を示す図である。 本明細書の実装形態による装置のモジュールの例を示す図である。
さまざまな図面中の同様の参照符号は、同様の要素を示す。
本明細書の実装形態は、ブロックチェーンネットワークにおけるトランザクションの並列実行のためのコンピュータで実行される方法を含む。より具体的には、本明細書の実装形態は、共通の依存関係を有するトランザクショングループを、他のグループと並列に実行することを対象とする。いくつかの実装形態では、アクションは、ブロックチェーン内で実行される複数のトランザクションを特定することであって、これらのトランザクションが実行順序で並べられ、実行順序が、複数のトランザクションの後に並べられたコントラクトコールを含む、特定することと、複数のトランザクション内のトランザクショングループを特定することであって、各グループ内の各トランザクションが、そのグループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる、特定することと、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することであって、各トランザクショングループを実行することが、そのグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む、命令することと、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したと判定することと、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したとの判定に応答して、ブロックチェーンネットワークのノードに、コントラクトコールを実行するように命令することとを含む。
本明細書の実装形態にさらなる文脈を提供すべく、また上で紹介したように、(例えばピアツーピアノードで構成される)コンセンサスネットワーク、およびブロックチェーンネットワークとも呼ばれることのある、分散型台帳システム(DLS)は、参加エンティティが安全かつ変更不可能にトランザクションを行い、データを格納することを可能にするものである。ブロックチェーンという用語は、本明細書においては、どんな特定のユースケースとも無関係にDLSのことを一般に指すのに使用される。
ブロックチェーンは、トランザクションが変更不可能であるように、かつトランザクションを後に検証できるように、トランザクションを格納するデータ構造である。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、チェーン内でその直前にある先行ブロックに、先行ブロックの暗号ハッシュを含めることによってリンクされる。各ブロックは、タイムスタンプ、それ自体の暗号ハッシュ、および1つまたは複数のトランザクションも含む。ブロックチェーンネットワークのノードによってすでに検証されたトランザクションは、ハッシュされ、マークルツリーに符号化される。マークルツリーは、ツリーのリーフノードのところのデータがハッシュされ、ツリーの各ブランチ内の全てのハッシュがブランチのルート(root)のところで連結される、データ構造である。このプロセスは、ツリーの上方へツリー全体のルートに至るまで継続し、そのルートが、ツリー内の全てのデータを表すハッシュを格納する。ツリー内に格納されたトランザクションのものであるとされるハッシュは、それがツリーの構造と矛盾がないかどうかを判定することによって、迅速に検証することができる。
ブロックチェーンが、トランザクションを格納するためのデータ構造であるのに対して、ブロックチェーンネットワークは、1つまたは複数のブロックチェーンを管理、更新、および維持するコンピューティングノードのネットワークである。上で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして設けることができる。パブリックブロックチェーンネットワークでは、コンセンサスプロセスが、コンセンサスネットワークのノードによって制御される。例えば、数百のエンティティが、数千のエンティティが、数百万のエンティティでさえもが、パブリックブロックチェーンネットワークに協力することができ、そのそれぞれが、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを運営する。したがって、パブリックブロックチェーンネットワークは、参加エンティティに関するパブリックなネットワークと見なすことができる。いくつかの例では、ブロックが有効になりブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加されるように、エンティティ(ノード)の大多数がどのブロックにも承認しなければならない。例示的パブリックブロックチェーンネットワークとしては、ブロックチェーンと呼ばれる分散型台帳を活用する、特定のピアツーピア支払いネットワークがある。しかし、上記したように、ブロックチェーンという用語は、どんな特定のブロックチェーンネットワークとも特に無関係に分散型台帳のことを一般に指すのに使用される。
一般に、コンソーシアムブロックチェーンネットワークは、参加エンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスが、権限が付与された1組のノードによって制御され、1つまたは複数のノードが、それぞれのエンティティ(例えば金融機関、保険会社)によって運営されている。例えば、10個のエンティティ(例えば金融機関、保険会社)からなるコンソーシアムが、コンソーシアムブロックチェーンネットワークを運営することができ、そのそれぞれが、コンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを運営する。したがって、コンソーシアムブロックチェーンネットワークは、参加エンティティに関するプライベートなネットワークと見なすことができる。いくつかの例では、ブロックが有効になりブロックチェーンに追加されるように、各エンティティ(ノード)が、どのブロックにも承認しなければならない。いくつかの例では、ブロックが有効になりブロックチェーンに追加されるように、エンティティ(ノード)の少なくともサブセット(例えば少なくとも7つのエンティティ)が、どのブロックにも承認しなければならない。
本明細書の実装形態は、どんな適切なタイプのブロックチェーンネットワークにおいても実現することができる。
本明細書の実装形態について、本明細書の中で、上記の文脈に鑑みてさらに詳細に説明する。より具体的には、また上で紹介したように、本明細書の実装形態は、共通の依存関係を有するトランザクショングループを、他のグループと並列に実行することを対象とする。異なるグループ内のトランザクションは、互いに依存関係がない(例えば、ブロックチェーンネットワーク内の同一口座に影響を及ぼさない)ので、異なるグループ内のトランザクションが互いに実行される順序は、ブロックチェーンネットワークのステート全体に影響を及ぼさない。したがって、これらのトランザクションは並列に実行することができ、それにより、ブロックチェーンネットワーク内でのトランザクションスループットを向上させることができる。
図1は、本明細書の実装形態を実行するために使用することのできる環境100の一例を示す。いくつかの例では、環境100は、パブリックブロックチェーンネットワーク102へのエンティティの参加を可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(例えばコンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110には、有線通信リンクおよび/またはワイヤレス通信リンクを介してアクセスすることができる。いくつかの例では、ネットワーク110は、パブリックブロックチェーンネットワーク102との通信、およびパブリックブロックチェーンネットワーク102内での通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。場合によっては、コンピューティングデバイス106、108は、クラウドコンピューティングシステム(図示せず)のノードとすることができ、または各コンピューティングデバイス106、108を、ネットワークによって相互接続された複数のコンピュータを含み、分散処理システムとして機能する、別々のクラウドコンピューティングシステムとすることができる。
図示の例では、コンピューティングシステム106、108は、それぞれが、パブリックブロックチェーンネットワーク102へのノードとしての参加を可能にする任意の適切なコンピューティングシステムを含むことができる。コンピューティングデバイスの例としては、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンがある。いくつかの例では、コンピューティングシステム106、108は、パブリックブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティ(例えば参加者A)の、トランザクション管理システムなどのコンピュータ実装サービスをホストすることができ、このトランザクション管理システムは、第1のエンティティがその、1つまたは複数の他のエンティティ(例えば他の参加者)とのトランザクションを管理するために使用するものである。コンピューティングシステム108は、第2のエンティティ(例えば参加者B)の、トランザクション管理システムなどのコンピュータ実装サービスをホストすることができ、このトランザクション管理システムは、第2のエンティティがその、1つまたは複数の他のエンティティ(例えば他の参加者)とのトランザクションを管理するために使用するものである。図1の例では、パブリックブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表されており、コンピューティングシステム106、108はそれぞれ、第1のエンティティのノードおよび第2のエンティティのノードとなっており、それらが、パブリックブロックチェーンネットワーク102に参加している。
図2は、本明細書の実装形態による概念アーキテクチャ200の一例を示す。概念アーキテクチャ200のこの例は、参加者システム202、204、206を含み、それらはそれぞれ、参加者A、参加者B、および参加者Cに対応する。各参加者(例えばユーザ、企業)は、ブロックチェーンネットワーク212に参加し、ブロックチェーンネットワーク212は、その少なくとも一部が情報をブロックチェーン216内に変更不可能に記録する複数のノード214を含む、ピアツーピアネットワークとして設けられている。ブロックチェーンネットワーク212内に単一のブロックチェーン216が概略的に示されているが、本明細書においてさらに詳細に説明するように、ブロックチェーン216の複数のコピーが形成され、ブロックチェーンネットワーク212全体にわたって維持される。
図示の例では、各参加者システム202、204、206がそれぞれ、参加者A、参加者B、および参加者Cによって、またはそれらの代理として設けられ、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書では、ノードは一般に、ブロックチェーンネットワーク212に接続されるとともにそれぞれの参加者がブロックチェーンネットワークに参加することを可能にする、個々のシステム(例えばコンピュータ、サーバ)を指す。図2の例では、参加者は各ノード214に対応する。しかし、参加者がブロックチェーンネットワーク212内の複数のノード214を運営できること、かつ/または複数の参加者がノード214を共有できることが企図されている。いくつかの例では、参加者システム202、204、206はブロックチェーンネットワーク212と、またはブロックチェーンネットワーク212を通じて、プロトコル(例えばハイパーテキスト転送プロトコルセキュア(HTTPS))を使用して、かつ/またはリモートプロシージャコール(RPC)を使用して通信する。
ノード214は、ブロックチェーンネットワーク212内でさまざまな参加の度合いを有することができる。例えば、(例えばブロックチェーン216にブロックを追加するマイナーノードとして)コンセンサスプロセスに参加することのできるノード214もあれば、コンセンサスプロセスに参加しないノード214もある。別の例として、ブロックチェーン216の完全コピーを格納するノード214もあれば、ブロックチェーン216の一部分のコピーを格納するにすぎないノード214もある。例えば、データアクセス権が、それぞれの参加者がそのそれぞれに対応するシステム内に格納するブロックチェーンデータを制限することができる。図2の例では、参加者システム202、204、206は、それぞれに対応するブロックチェーン216の完全コピー216'、216''、216'''を格納する。
ブロックチェーン(例えば図2のブロックチェーン216)は、ブロックの連鎖で構成され、各ブロックがデータを格納する。データの例としては、2つ以上の参加者間のトランザクションを表すトランザクションデータがある。トランザクションが本明細書では非限定的な例として使用されているが、任意の適切なデータをブロックチェーン内に格納できることが企図されている(例えばドキュメント、画像、ビデオ、オーディオ)。トランザクションの例としては、限定はしないが、価値のあるもの(例えば資産、製品、サービス)の交換があり得る。トランザクションデータは、ブロックチェーン内に変更不可能に格納される。すなわち、トランザクションデータを変更することはできない。
ブロック内に格納する前に、トランザクションデータはハッシュされる。ハッシュ化は、(文字列データとしてもたらされる)トランザクションデータを(やはり文字列データとしてもたらされる)固定長ハッシュ値に変換するプロセスである。ハッシュ値をアンハッシュして(un-hash)、トランザクションデータを得ることは不可能である。ハッシュ化は、トランザクションデータが少しでも変化するとハッシュ値が完全に異なる結果となることを確実にするものである。さらに、上記したように、ハッシュ値は固定長のものである。すなわち、トランザクションデータのサイズがどうであれ、ハッシュ値の長さは固定である。ハッシュ化は、トランザクションデータを、ハッシュ関数を通じて処理して、ハッシュ値を生成することを含む。ハッシュ関数の一例としては、限定はしないが、256ビットのハッシュ値を出力するセキュアハッシュアルゴリズム(SHA)-256がある。
複数のトランザクションのトランザクションデータがハッシュされ、ブロック内に格納される。例えば、2つのトランザクションのハッシュ値がもたらされ、それら自体がハッシュされて、別のハッシュがもたらされる。このプロセスが、ブロック内に格納される全てのトランザクションに対してただ1つのハッシュ値がもたらされるまで反復される。このハッシュ値は、マークルルートハッシュと呼ばれ、ブロックのヘッダ内に格納される。トランザクションのいずれかに変化があると、そのハッシュ値が変化する結果となり、最終的には、マークルルートハッシュが変化する結果となる。
ブロックは、ブロックチェーンに、コンセンサスプロトコルを通じて追加される。ブロックチェーンネットワーク内の複数のノードが、コンセンサスプロトコルに参加し、ブロックチェーンにブロックを追加させようと競い合う。そのようなノードは、マイナー(またはマイナーノード)と呼ばれる。上で紹介したPOWが、非限定的な例として使用される。
マイナーノードは、ブロックチェーンにトランザクションを追加するために、コンセンサスプロセスを実行する。複数のマイナーノードがコンセンサスプロセスに参加するが、ただ1つのマイナーノードだけが、ブロックチェーンにブロックを書き込むことができる。すなわち、マイナーノードは、コンセンサスプロセスにおいて、ブロックチェーンにそれらのブロックを追加させようと競い合う。さらに詳細には、マイナーノードは、保留中のトランザクションをトランザクションプールから(例えば、ブロック内に含めることのできるトランザクション数の予め定められた限度があればその限度まで)定期的に収集する。トランザクションプールは、ブロックチェーンネットワーク内の参加者からのトランザクションメッセージを含む。マイナーノードは、ブロックを構築し、そのブロックにそれらのトランザクションを追加する。ブロックにトランザクションを追加する前に、マイナーノードは、それらのトランザクションのうちのいずれかがすでにブロックチェーンのブロック内に含められているかどうかをチェックする。トランザクションがすでに別のブロック内に含められている場合、そのトランザクションは破棄される。
マイナーノードは、ブロックヘッダを生成し、ブロック内の全てのトランザクションをハッシュし、ハッシュ値を2つずつ組み合わせてさらなるハッシュ値を生成し、それを、ブロック内の全てのトランザクションにとってただ1つのハッシュ値がもたらされるまで続ける(マークルルートハッシュ)。このハッシュが、ブロックヘッダに追加される。マイナーはまた、ブロックチェーン内の一番最近のブロック(すなわちブロックチェーンに追加された最後のブロック)のハッシュ値を特定する。マイナーノードは、ブロックヘッダにナンス値およびタイムスタンプも追加する。マイニングプロセスにおいて、マイナーノードは、要求されるパラメータを満たすハッシュ値を見いだそうと試みる。マイナーノードは、要求されるパラメータを満たすハッシュ値を見いだすまで、ナンス値を変更し続ける。
ブロックチェーンネットワーク内のどのマイナーも、要求されるパラメータを満たすハッシュ値を見いだそうと試み、このようにして、互いに競い合う。最終的に、マイナーノードのうちの1つが、要求されるパラメータを満たすハッシュ値を見いだし、それをブロックチェーンネットワーク内の他の全てのマイナーノードにアドバタイズする。他のマイナーノードは、そのハッシュ値を検証し、正しいと判定された場合、ブロック内の各トランザクションを検証し、ブロックを承認し、ブロックをブロックチェーンのそれらのコピーに加える。このようにして、ブロックチェーンのグローバルステートは、ブロックチェーンネットワーク内の全てのマイナーノードにわたって一貫している。上で説明したプロセスは、POWコンセンサスプロトコルである。
図2を参照して、非限定的な例を示す。この例では、参加者Aがある金額を参加者Bに送りたい。参加者Aは、(例えばFromフィールド、Toフィールド、およびValueフィールドを含む)トランザクションメッセージを生成し、そのトランザクションメッセージをブロックチェーンネットワークに送り、ブロックチェーンネットワークがそのトランザクションメッセージをトランザクションプールに追加する。ブロックチェーンネットワーク内の各マイナーノードがブロックを作成し、全てのトランザクションをトランザクションプールから(例えば、ブロックに追加することのできるトランザクション数の予め定められた限度があればその限度まで)選択し、それらのトランザクションをブロックに追加する。このようにして、参加者Aによって公開されたトランザクションが、マイナーノードのブロックに追加される。
一部のブロックチェーンネットワークでは、トランザクションのプライバシを維持するために、暗号技術が実施される。例えば、2つのノードが、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を識別することができないようにトランザクションをプライベートに保ちたい場合、それらのノードはトランザクションデータを暗号化することができる。暗号方式の例としては、限定はしないが、対称暗号化および非対称暗号化がある。対称暗号化は、(平文から暗号文を生成する)暗号化と(暗号文から平文を生成する)復号化の両方にただ1つの鍵を使用する、暗号化処理を指す。対称暗号化では、複数のノードが同じ鍵を入手することができ、したがって、各ノードはトランザクションデータを暗号化/復号化することができる。
非対称暗号化は、秘密鍵と公開鍵をそれぞれが含む鍵ペアを使用し、秘密鍵は、それぞれのノードのみに知られており、公開鍵は、ブロックチェーンネットワーク内の他の、いずれかまたは全てのノードに知られている。あるノードが、別のノードの公開鍵を使用してデータを暗号化することができ、暗号化データは、他のノードの秘密鍵を使用して復号化することができる。例えば、図2を再度参照すると、参加者Aは、参加者Bの公開鍵を使用してデータを暗号化し、暗号化データを参加者Bに送ることができる。参加者Bはその秘密鍵を使用して暗号化データ(暗号文)を復号化し、元のデータ(平文)を抽出することができる。あるノードの公開鍵を用いて暗号化されたメッセージは、そのノードの秘密鍵を使用してのみ復号化することができる。
非対称暗号化は、トランザクションの参加者がトランザクションの他の参加者ならびにトランザクションの正当性を確認することを可能にするデジタル署名の形成に使用される。例えば、あるノードがメッセージにデジタル署名をすることができ、別のノードが、メッセージがそのノードによって送られたことを、参加者Aのデジタル署名に基づいて確認することができる。デジタル署名は、確実にメッセージが伝送中に改ざんされないようにするために使用することもできる。例えば、再度図2を参照すると、参加者Aが参加者Bにメッセージを送ることになっている。参加者Aは、メッセージのハッシュを生成し、次いで、その秘密鍵を使用してハッシュを暗号化して、暗号化ハッシュとしてのデジタル署名を形成する。参加者Aはこのデジタル署名をメッセージに添付し、デジタル署名付きメッセージを参加者Bに送る。参加者Bはこのデジタル署名を、参加者Aの公開鍵を使用して復号化し、ハッシュを抽出する。参加者Bは、メッセージをハッシュし、これらのハッシュ同士を比較する。これらのハッシュが同じである場合、参加者Bは、メッセージが確かに参加者Aからのものであったこと、および改ざんされていなかったことを確認することができる。
本明細書の実装形態にさらなる文脈を提供するために、図3Aは、本明細書の実装形態による、ブロックチェーンネットワークにおけるトランザクションの実行順序300の一例を示す。図示のように、実行順序300は、複数のトランザクション(305、310、315、320)を含み、それらは、ブロックチェーンネットワークのノードによってそれらが実行されるべき順序に従って、順番に並べられている。トランザクション305a、305b、および305cは、スマートコントラクトのコールである。スマートコントラクトコールに加えて、実行順序300は、例えば同一口座に影響を及ぼすなどの、(平行線模様によって示される)共通の依存関係を共有する、複数のトランザクショングループを含む。トランザクション310a、310bは第1のグループを表し、トランザクション315a〜eは第2のグループを表し、トランザクション320a〜cは第3のグループを表す。下で説明するように、各トランザクショングループは、本明細書の実装形態に従って、ブロックチェーンネットワークのノードによって並列に実行することができる。
図3Bは、本明細書の実装形態による、ブロックチェーンネットワークにおけるトランザクションの並列実行順序350の一例を示す。図示のように、並列実行順序350では、トランザクショングループ355、360、365、370、および375が特定されている。ブロックチェーンネットワークのノードは、図3Bに示し、論じるように、これらのトランザクショングループを並列に実行することができる。場合によっては、グループ内の全てのトランザクションが、共通の依存関係を共有し、したがって、元の実行順序に従って逐次的に実行される。これにより、並列実行順序350に従ってトランザクションを実行する結果としてのブロックチェーンネットワークのステート(例えば口座残高)が、図3Aの実行順序300に従ってトランザクションを実行した後にそうなるはずであるのと同じになることが確実になる。
図3Bのトランザクションのいずれかを実行する前に口座Aの残高が$0である例について考えられたい。ここで、トランザクション310aは、口座Bから口座Aへの$300という金額の支払いを表し、トランザクション310bは、口座Aから口座Cへの$50の支払いを表す。トランザクション310aおよび310bが、(実行順序300において当初説明したように)逐次的に実行される場合、口座Aは最初に$300が資金供給され、次いで$50だけ引き落とされ、$250の残高が残る。しかし、トランザクション310aおよび310bが逐次的に実行されず、トランザクション310bが310aより前に実行される場合、トランザクション310bの支払いが実行されるときに、口座Aの残高は$0である。口座Aは、このシナリオにおいては、支払いに資金供給するのに十分な残高を有しておらず、そのため、トランザクション310bがブロックチェーンネットワークによって拒絶されるおそれがある。
この例に基づいて、トランザクション320aが口座Dから口座Eへの$100の支払いを表す場合を考えられたい。トランザクション320aによって影響を受ける口座(口座DおよびE)は、トランザクション310aおよび310bによって影響を受ける口座(口座A、B、およびC)のいずれも含んでいないので、トランザクション320aは、トランザクション310aおよび310bと共通の依存関係を有していない。したがって、トランザクション320aは、トランザクション310aおよび310bと並列に実行することができる。
いくつかの実装形態では、逐次的に実行すべきトランザクションを、一緒にグループ化することができる。例えば、図3Bに示すように、トランザクション310a〜bが、355内にグループ化され、トランザクション315a、315b、および315cが、360内にグループ化され、トランザクション320aが、365内にグループ化されている。グループ355、360、および365はそれぞれ、ブロックチェーンネットワークのノードによって並列に実行することができる。トランザクショングループ355、360、および365を並列に実行すると、ブロックチェーンネットワーク上でのトランザクションスループットを向上させることができ、というのも、ネットワークはこのとき、全てのトランザクションが逐次的に実行されるならただ1つのトランザクションを実行しているところ、3つのトランザクションを同時に並列に実行しているためである。
図3Bは、コントラクトコール305a〜cも含む。コントラクトコールは、並列実行が収束する同期点になっている。コントラクトコールにより、スマートコントラクトを構成する命令が実行されるので、個別のコントラクトコールが影響を及ぼす口座の範囲を特定することは可能ではない場合がある。例えば、特定の口座および支払い金額をパラメータとしてとり、何らかの条件が真である場合に支払い金額を特定の口座に適用する、単純なスマートコントラクトを考えられたい。このスマートコントラクトの呼び出し元が、スマートコントラクトの呼び出しの際に特定の口座を指定するので、スマートコントラクト自体の定義(すなわちそのソースコード)から、スマートコントラクトの個別のコールが影響を及ぼすのはどの口座かを特定することは可能ではない。この理由から、いくつかの実装形態では、コントラクトコールは、ブロックチェーンネットワーク内の全ての口座に影響を及ぼす可能性のあるトランザクションと見なすことができ、したがってそれを、他のトランザクションと並列に実行することはできない。したがって、並列実行順序350は、コントラクトコールに到達したときに収束する。例えば、図示のように、グループ355、360、および365は、コントラクトコール305bに到達するまで並列に実行される。この時点で、ブロックチェーンネットワークは、グループ355、360、および365内の全てのトランザクションが実行を完了するまで待機し、次いで、スマートコントラクトコール305bの実行を進める。
コントラクトコール305bが完了した後に、トランザクショングループ(例えば370および375)をやはり、別のスマートコントラクトコール(例えば305c)に遭遇するまで、ブロックチェーンネットワークによって並列に実行することができ、その遭遇時点で、並列実行はこの場合も、スマートコントラクトコールの実行の前に収束する。
図4は、本明細書の実装形態に従って実行することのできるプロセス400の一例を示す。いくつかの実装形態では、プロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される、1つまたは複数のコンピュータ実行可能プログラムを使用して実施されてよい。
402において、ブロックチェーン内で実行される複数のトランザクションが特定される。これらのトランザクションは実行順序で並べられ、実行順序が、複数のトランザクションの後に並べられたコントラクトコールを含む。場合によっては、ブロックチェーン内で実行される複数のトランザクションを特定することが、ブロックチェーンネットワークにブロードキャストされたトランザクションを受け取ることを含む。いくつかの実装形態では、コントラクトコールは、ブロックチェーンネットワークによって維持されるブロックチェーン内に格納されたスマートコントラクトを実行することの要求である。
404において、複数のトランザクション内のトランザクショングループが特定され、各グループ内の各トランザクションが、そのグループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる。
406において、ブロックチェーンネットワークのノードが、トランザクショングループの各々を並列に実行するように命令され、各トランザクショングループを実行することが、そのグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む。場合によっては、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することが、第1のノードセットに、第1のトランザクショングループを実行するように命令することと、第1のノードセットに、第2のトランザクショングループを実行するように命令することとを含む。いくつかの実装形態では、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令することが、それらのノードにネットワークを介してメッセージを送ることを含む。
408において、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したとの判定が行われる。いくつかの実装形態では、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したと判定することが、複数のトランザクションのうちの全てのトランザクションが、ブロックチェーンネットワークによって維持されるブロックチェーン内に格納された1つまたは複数のブロック内に含まれていると判定することを含む。
410において、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したとの判定に応答して、ブロックチェーンネットワークのノードが、コントラクトコールを実行するように命令される。
いくつかの実装形態では、プロセス400は、ブロックチェーンネットワークのノードがコントラクトコールの実行を完了したと判定することと、ブロックチェーン内で実行される第2の複数のトランザクションを特定することであって、第2の複数のトランザクションが実行順序の中でコントラクトコールの後に並べられている、特定することと、
第2の複数のトランザクション内の第2のトランザクショングループを特定することと、ブロックチェーンネットワークのノードに、第2のトランザクショングループの各々を並列に実行するように命令することであって、各第2のトランザクショングループを実行することが、その第2のグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む、命令することとを含む。
図5は、本明細書の実装形態による装置500のモジュールの例を示す。装置500は、コンソーシアムブロックチェーンネットワークなどのブロックチェーンネットワークにおけるトランザクションの並列実行を可能にするように構成された装置の、例示的実装形態とすることができる。装置500は、上で説明した実装形態に対応してよく、装置500は次の、ブロックチェーン内で実行される複数のトランザクションを特定するための、第1の特定部または第1の特定ユニット502であって、これらのトランザクションが実行順序で並べられ、実行順序が、複数のトランザクションの後に並べられたコントラクトコールを含む、第1の特定部または第1の特定ユニット502と、複数のトランザクション内のトランザクショングループを特定するための、第2の特定部または第2の特定ユニット504であって、各グループ内の各トランザクションが、そのグループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる、第2の特定部または第2の特定ユニット504と、ブロックチェーンネットワークのノードに、トランザクショングループの各々を並列に実行するように命令するための、第1の命令部または第1の命令ユニット506であって、各トランザクショングループを実行することが、そのグループ内のトランザクションを逐次的に、実行順序に従って実行することを含む、第1の命令部または第1の命令ユニット506と、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したと判定するための、判定部または判定ユニット508と、ブロックチェーンネットワークのノードが全てのトランザクショングループの実行を完了したとの判定に応答して、ブロックチェーンネットワークのノードに、コントラクトコールを実行するように命令するための、第2の命令部または第2の命令ユニット510とを含む。
先の実装形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装することもでき、ある特定の機能を有する製品を使用して実装することもできる。典型的な実装デバイスがコンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスのいずれかの組合せとすることができる。
機能の実施プロセスおよび装置内の各ユニットの役割については、先の方法における対応するステップの実施プロセスを参照することができる。簡単のために、本明細書では詳細は省略する。
装置実装形態は基本的に方法実装形態に対応するので、関連する部分については、方法実装形態における関連する説明を参照することができる。先に説明した装置実装形態は、単なる一例である。別々の部分として説明したユニットは、物理的に別々であってもよく、そうでなくてもよく、ユニットとして表示された部分は、物理的なユニットであってもよく、そうでなくてもよく、1つの位置にあってもよく、いくつかのネットワークユニット上に分散されていてもよい。モジュールの一部または全てを、本明細書の解決策の目的を達成すべく、実際の必要性に基づいて選択することができる。当業者なら、創造的な努力なしに本出願の実装形態を理解し実装することができよう。
図5を再度参照すると、図5は、ブロックチェーンネットワークにおけるトランザクションの並列実行を可能にするための装置の、内部機能モジュールおよび構造を示すものと解釈することができる。この並列実行装置は、ブロックチェーンネットワークにおけるトランザクションの並列実行を可能にするように構成された装置の一例とすることができる。
本明細書において説明した本主題ならびにアクションおよび動作の実装形態は、デジタル電子回路として、有形に具現化されたコンピュータソフトウェアもしくはファームウェアとして、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数の組合せとして、実装することができる。本明細書において説明した本主題の実装形態は、データ処理装置によって実行できるように、またはデータ処理装置の動作を制御するために、コンピュータプログラムキャリア上に符号化された1つまたは複数のコンピュータプログラム、例えばコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。キャリアは、有形の非一時的コンピュータ記憶媒体であってよい。その代わりにまたはそれに加えて、キャリアは、情報を、データ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、人工的に生成された伝搬信号、例えば機械により生成された電気信号、光信号、または電磁信号であってもよい。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せとすることもでき、その一部とすることもできる。コンピュータ記憶媒体は、伝搬信号ではない。
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。データ処理装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理装置)を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むこともできる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも呼ばれるかまたは説明されることのあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境において実行するのに適した他のユニットとして、を含む、任意の形態で展開することができ、この環境は、1つまたは複数の位置にある、データ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含んでよい。
コンピュータプログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。コンピュータプログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一のファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは部分を格納するファイル内に、格納することができる。
本明細書において説明したプロセスおよび論理フローは、動作を実施するための1つまたは複数のコンピュータプログラムを、入力データに作用し出力を生成することにより実行する、1つまたは複数のコンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGA、ASIC、もしくはGPUによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによって、実施することもできる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはその両方、または他の任意の種類の中央処理装置をベースとすることができる。一般に、中央処理装置は、読出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令およびデータを受け取る。コンピュータの要素は、命令を実行するための中央処理装置、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスを含むことができる。中央処理装置およびメモリは、専用論理回路によって補完するか、またはそれに組み込むことができる。
一般に、コンピュータは、少なくとも1つの非一時的コンピュータ可読記憶媒体(コンピュータ可読メモリとも呼ばれる)に結合される。コンピュータに結合される記憶媒体は、コンピュータの内部コンポーネント(例えば内蔵ハードドライブ)または外部コンポーネント(例えばユニバーサルシリアルバス(USB)ハードドライブもしくはネットワークを介してアクセスされるストレージシステム)とすることができる。記憶媒体の例としては、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、ソリッドステートドライブ、クラウドストレージシステムなどのネットワークストレージリソース、または他のタイプの記憶媒体があり得る。しかし、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム(GPS)レシーバ、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
ユーザとの対話を可能にするために、本明細書において説明した本主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力することのできる入力デバイス、例えばキーボード、およびポインティングデバイス、例えばマウス、トラックボール、またはタッチパッドとを有するコンピュータ上に実装するか、またはそれと通信するように構成することができる。他の種類のデバイスを使用して、ユーザとの対話を可能にすることもでき、例えば、ユーザにもたらされるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受け取ることができる。加えて、コンピュータはユーザと、ドキュメントをユーザによって使用されているデバイスに送り、そこからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信した要求に応答してウェブページを送ることによって、またはユーザデバイス、例えばスマートフォンもしくは電子タブレット上で実行されているアプリケーションと対話することによって、対話することができる。また、コンピュータはユーザと、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、例えばメッセージングアプリケーションを実行しているスマートフォンに送り、返信としてユーザから応答メッセージを受信することによって、対話することもできる。
本明細書では、システム、装置、およびコンピュータプログラムコンポーネントに関連して、「ように構成される」という用語を使用している。1つまたは複数のコンピュータからなるシステムが、特定の動作またはアクションを実施するように構成される、ということは、システム上に、動作の際にシステムにその動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされる、ということを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成される、ということは、1つまたは複数のプログラムが、データ処理装置によって実行されると装置にその動作またはアクションを実施させる命令を含む、ということを意味する。専用論理回路が、特定の動作またはアクションを実施するように構成される、ということは、回路が、その動作またはアクションを実施する電子論理回路を有する、ということを意味する。
本明細書は、多くの特定の実装形態の詳細を含んでいるが、これらは、特許請求の範囲自体によって定められる特許請求されるものの範囲に対する限定と解釈するのではなく、特定の実装形態に特有であってよい特徴についての説明と解釈すべきである。本明細書において別々の実装形態の文脈の中で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実現することもできる。反対に、単一の実装形態の文脈の中で説明されるさまざまな特徴を、複数の実装形態において別々に、または任意の適切な部分組合せで実現することもできる。さらに、特徴については上で、ある特定の組合せで作用するものと説明されていることがあり、そういうものとして最初に特許請求されていることすらあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によってはその組合せから削除することができ、請求項が部分組合せまたは部分組合せの変形を対象としてもよい。
同様に、動作は特定の順序で図面中に示され、特許請求の範囲に記載されているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを要求するものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が有利となる場合がある。さらに、上で説明した実装形態におけるさまざまなシステムモジュールおよびコンポーネントの分離は、そのような分離をあらゆる実装形態において要求するものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化することができる、ということを理解すべきである。
以上、本主題の特定の実装形態について説明してきた。他の実装形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲に記載のアクションを、異なる順序で実施し、それでもなお、望ましい結果を達成することができる。一例として、添付の図中に示されたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を、必ずしも要求するとは限らない。場合によっては、マルチタスキングおよび並列処理が有利となる場合がある。
100 環境
102 パブリックブロックチェーンネットワーク
106 コンピューティングデバイス、コンピューティングシステム
108 コンピューティングデバイス、コンピューティングシステム
110 ネットワーク
200 概念アーキテクチャ
202 参加者システム
204 参加者システム
206 参加者システム
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
216' 完全コピー
216'' 完全コピー
216''' 完全コピー
300 実行順序
305 トランザクション
305a トランザクション、コントラクトコール
305b トランザクション、スマートコントラクトコール
305c トランザクション、スマートコントラクトコール
310 トランザクション
310a トランザクション
310b トランザクション
315 トランザクション
315a トランザクション
315b トランザクション
315c トランザクション
315d トランザクション
315e トランザクション
320 トランザクション
320a トランザクション
320b トランザクション
320c トランザクション
350 並列実行順序
355 トランザクショングループ
360 トランザクショングループ
365 トランザクショングループ
370 トランザクショングループ
375 トランザクショングループ
400 プロセス
500 装置
502 第1の特定部または第1の特定ユニット
504 第2の特定部または第2の特定ユニット
506 第1の命令部または第1の命令ユニット
508 判定部または判定ユニット
510 第2の命令部または第2の命令ユニット
A 参加者、口座
B 参加者、口座
C 参加者、口座
D 口座
E 口座

Claims (20)

  1. ブロックチェーンネットワークにおけるトランザクションの並列実行のためのコンピュータで実行される方法であって、
    ブロックチェーン内で実行される複数のトランザクションを特定するステップであって、前記トランザクションが実行順序で並べられ、前記実行順序が、前記複数のトランザクションの後に並べられたコントラクトコールを含む、ステップと、
    前記複数のトランザクション内のトランザクショングループを特定するステップであって、各グループ内の各トランザクションが、当該グループ内の残りのトランザクションと同じ、前記ブロックチェーンネットワーク内の口座に関連付けられる、ステップと、
    前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令するステップであって、各トランザクショングループを実行することが、そのグループ内の前記トランザクションを逐次的に、前記実行順序に従って実行することを含む、ステップと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定するステップと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したとの判定に応答して、前記ブロックチェーンネットワークの前記ノードに、前記コントラクトコールを実行するように命令するステップとを含む、
    方法。
  2. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令するステップが、
    第1のノードセットに、第1のトランザクショングループを実行するように命令するステップと、
    第1のノードセットに、第2のトランザクショングループを実行するように命令するステップとを含む、
    請求項1に記載の方法。
  3. 前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定するステップが、
    前記複数のトランザクションのうちの全てのトランザクションが、前記ブロックチェーンネットワークによって維持されるブロックチェーン内に格納された1つまたは複数のブロック内に含まれていると判定するステップを含む、
    請求項1に記載の方法。
  4. 前記ブロックチェーンネットワークの前記ノードが前記コントラクトコールの実行を完了したと判定するステップと、
    前記ブロックチェーン内で実行される第2の複数のトランザクションを特定するステップであって、前記第2の複数のトランザクションが前記コントラクトコールの後に前記実行順序で並べられる、ステップと、
    前記第2の複数のトランザクション内の第2のトランザクショングループを特定するステップと、
    前記ブロックチェーンネットワークのノードに、前記第2のトランザクショングループの各々を並列に実行するように命令するステップであって、各第2のトランザクショングループを実行することが、その第2のグループ内の前記トランザクションを逐次的に、前記実行順序に従って実行することを含む、ステップとをさらに含む、
    請求項1に記載の方法。
  5. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令するステップが、
    前記ノードにネットワークを介してメッセージを送るステップを含む、
    請求項1に記載の方法。
  6. ブロックチェーン内で実行される前記複数のトランザクションを特定するステップが、
    前記ブロックチェーンネットワークにブロードキャストされたトランザクションを受け取るステップを含む、
    請求項1に記載の方法。
  7. 前記コントラクトコールが、前記ブロックチェーンネットワークによって維持されるブロックチェーン内に格納されたスマートコントラクトを実行することの要求である、
    請求項1に記載の方法。
  8. 1つまたは複数のコンピュータに結合され、かつ以下の動作を行うように前記1つまたは複数のコンピュータによって実行可能な命令を格納した非一時的コンピュータ可読記憶媒体であって、前記動作が、
    ブロックチェーン内で実行される複数のトランザクションを特定することであって、前記トランザクションが実行順序で並べられ、前記実行順序が、前記複数のトランザクションの後に並べられたコントラクトコールを含む、ことと、
    前記複数のトランザクション内のトランザクショングループを特定することであって、各グループ内の各トランザクションが、そのグループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる、ことと、
    前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することであって、各トランザクショングループを実行することが、そのグループ内のトランザクションを逐次的に、前記実行順序に従って実行することを含む、ことと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定することと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したとの判定に応答して、前記ブロックチェーンネットワークの前記ノードに、前記コントラクトコールを実行するように命令することとを含む、
    非一時的コンピュータ可読記憶媒体。
  9. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することが、
    第1のノードセットに、第1のトランザクショングループを実行するように命令することと、
    第1のノードセットに、第2のトランザクショングループを実行するように命令することとを含む、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  10. 前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定することが、
    前記複数のトランザクションのうちの全てのトランザクションが、前記ブロックチェーンネットワークによって維持されるブロックチェーン内に格納された1つまたは複数のブロック内に含まれていると判定することを含む、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  11. 前記非一時的コンピュータ可読記憶媒体が、以下の動作を行うように前記1つまたは複数のコンピュータによって実行可能な命令をさらに格納し、前記動作が、
    前記ブロックチェーンネットワークの前記ノードが前記コントラクトコールの実行を完了したと判定することと、
    前記ブロックチェーン内で実行される第2の複数のトランザクションを特定することであって、前記第2の複数のトランザクションが前記コントラクトコールの後に前記実行順序で並べられる、特定することと、
    前記第2の複数のトランザクション内の第2のトランザクショングループを特定することと、
    前記ブロックチェーンネットワークのノードに、前記第2のトランザクショングループの各々を並列に実行するように命令することであって、各第2のトランザクショングループを実行することが、その第2のグループ内の前記トランザクションを逐次的に、前記実行順序に従って実行することを含む、こととを含む、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  12. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することが、
    前記ノードにネットワークを介してメッセージを送ることを含む、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  13. 前記ブロックチェーン内で実行される前記複数のトランザクションを特定することが、
    前記ブロックチェーンネットワークにブロードキャストされたトランザクションを受け取ることを含む、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  14. 前記コントラクトコールが、前記ブロックチェーンネットワークによって維持されるブロックチェーン内に格納されたスマートコントラクトを実行することの要求である、
    請求項8に記載の非一時的コンピュータ可読記憶媒体。
  15. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合され、かつ以下の動作を行うように前記1つまたは複数のコンピュータによって実行可能な命令を格納した1つまたは複数のコンピュータ可読メモリとを備えたシステムであって、前記動作が、
    ブロックチェーン内で実行される複数のトランザクションを特定することであって、前記トランザクションが実行順序で並べられ、前記実行順序が、前記複数のトランザクションの後に並べられたコントラクトコールを含む、ことと、
    前記複数のトランザクション内のトランザクショングループを特定することであって、各グループ内の各トランザクションが、当該グループ内の残りのトランザクションと同じ、ブロックチェーンネットワーク内の口座に関連付けられる、ことと、
    前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することであって、各トランザクショングループを実行することが、そのグループ内の前記トランザクションを逐次的に、前記実行順序に従って実行することを含む、ことと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定することと、
    前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したとの判定に応答して、前記ブロックチェーンネットワークの前記ノードに、前記コントラクトコールを実行するように命令することとを含む、
    システム。
  16. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することが、
    第1のノードセットに、第1のトランザクショングループを実行するように命令することと、
    第1のノードセットに、第2のトランザクショングループを実行するように命令することとを含む、
    請求項15に記載のシステム。
  17. 前記ブロックチェーンネットワークの前記ノードが全ての前記トランザクショングループの実行を完了したと判定することが、
    前記複数のトランザクションのうちの全てのトランザクションが、前記ブロックチェーンネットワークによって維持されるブロックチェーン内に格納された1つまたは複数のブロック内に含まれていると判定することを含む、
    請求項15に記載のシステム。
  18. 前記コンピュータ可読メモリが、以下の動作を行うように前記1つまたは複数のコンピュータによって実行可能な命令をさらに格納し、前記動作が、
    前記ブロックチェーンネットワークの前記ノードが前記コントラクトコールの実行を完了したと判定することと、
    前記ブロックチェーン内で実行される第2の複数のトランザクションを特定することであって、前記第2の複数のトランザクションが前記コントラクトコールの後に前記実行順序で並べられる、ことと、
    前記第2の複数のトランザクション内の第2のトランザクショングループを特定することと、
    前記ブロックチェーンネットワークのノードに、前記第2のトランザクショングループの各々を並列に実行するように命令することであって、各第2のトランザクショングループを実行することが、その第2のグループ内の前記トランザクションを逐次的に、前記実行順序に従って実行することを含む、こととを含む、
    請求項15に記載のシステム。
  19. 前記ブロックチェーンネットワークのノードに、前記トランザクショングループの各々を並列に実行するように命令することが、
    前記ノードにネットワークを介してメッセージを送ることを含む、
    請求項15に記載のシステム。
  20. 前記ブロックチェーン内で実行される前記複数のトランザクションを特定することが、
    前記ブロックチェーンネットワークにブロードキャストされたトランザクションを受け取ることを含む、
    請求項15に記載のシステム。
JP2019542182A 2018-12-28 2018-12-28 ブロックチェーンネットワークにおけるトランザクションの並列実行 Active JP6816300B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124814 WO2019072303A2 (en) 2018-12-28 2018-12-28 EXECUTING PARALLEL TRANSACTIONS IN A BLOCK CHAINS NETWORK

Publications (2)

Publication Number Publication Date
JP2020515942A JP2020515942A (ja) 2020-05-28
JP6816300B2 true JP6816300B2 (ja) 2021-01-20

Family

ID=66100036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019542182A Active JP6816300B2 (ja) 2018-12-28 2018-12-28 ブロックチェーンネットワークにおけるトランザクションの並列実行

Country Status (13)

Country Link
US (1) US11132676B2 (ja)
EP (1) EP3571653A4 (ja)
JP (1) JP6816300B2 (ja)
KR (1) KR102234128B1 (ja)
CN (1) CN110520882B (ja)
AU (1) AU2018347203B2 (ja)
BR (1) BR112019016064A2 (ja)
CA (1) CA3052348A1 (ja)
MX (1) MX2019009286A (ja)
PH (1) PH12019501791A1 (ja)
RU (1) RU2738826C1 (ja)
SG (1) SG11201907157XA (ja)
WO (1) WO2019072303A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111369710A (zh) * 2018-12-06 2020-07-03 开利公司 由区块链支持的智能锁系统
SG11201907243UA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Parallel execution of transactions in a blockchain network based on smart contract whitelists
CN110520882B (zh) 2018-12-28 2023-07-14 创新先进技术有限公司 在区块链网络中并行执行交易
WO2019120334A2 (en) 2019-04-12 2019-06-27 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
CN111095325B (zh) * 2019-04-12 2023-10-27 创新先进技术有限公司 在分布式账本系统中进行交易的并行执行
WO2019137567A2 (en) * 2019-04-30 2019-07-18 Alibaba Group Holding Limited Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
CN114096966A (zh) * 2019-06-15 2022-02-25 元平台公司 可扩展的、安全的、高效的和适应性强的分布式数字分类账交易网络
CN110611702B (zh) * 2019-08-29 2022-04-01 魏松杰 区块链的文件快速传输方法、设备、系统及存储介质
CN113570460A (zh) * 2019-08-30 2021-10-29 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
EP4040323A4 (en) * 2019-10-01 2022-09-07 Fujitsu Limited TRANSACTION MANAGEMENT DEVICE, TRANSACTION MANAGEMENT PROGRAM AND TRANSACTION MANAGEMENT METHOD
KR102342788B1 (ko) * 2019-11-19 2021-12-24 한양대학교 산학협력단 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
KR102335058B1 (ko) * 2019-11-19 2021-12-06 한양대학교 산학협력단 상호 의존성을 가지는 병렬 트랜잭션들을 선형화하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN111181731B (zh) * 2019-12-31 2022-07-12 南京可信区块链与算法经济研究院有限公司 联盟链中智能合约的执行优化方法、系统及存储介质
CN111240831A (zh) * 2019-12-31 2020-06-05 陕西医链区块链集团有限公司 区块链中交易并行执行方法、装置、电子设备、存储介质
CN111339108A (zh) * 2020-02-18 2020-06-26 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111292192A (zh) * 2020-02-18 2020-06-16 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111405037A (zh) * 2020-03-13 2020-07-10 杭州复杂美科技有限公司 区块同步方法、设备和存储介质
CN111414374B (zh) * 2020-03-20 2023-04-28 深圳市迅雷网络技术有限公司 一种区块链交易并发处理方法、装置及设备
CN111640020B (zh) * 2020-05-22 2023-09-19 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN112104606B (zh) * 2020-08-12 2022-06-17 北京智融云河科技有限公司 一种基于随机多节点的可信执行方法和系统
CN112037061A (zh) * 2020-08-31 2020-12-04 深圳前海微众银行股份有限公司 区块链中交易的处理方法、装置、电子设备及存储介质
WO2022093256A1 (en) * 2020-10-30 2022-05-05 Hewlett-Packard Development Company, L.P. Provisioning of computational resources
US11743327B2 (en) 2021-02-05 2023-08-29 International Business Machines Corporation Topological ordering of blockchain associated proposals
CN112884586B (zh) * 2021-04-28 2021-08-03 支付宝(杭州)信息技术有限公司 交易执行方法和区块链节点
CN113064730A (zh) * 2021-04-30 2021-07-02 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置
CN113658003B (zh) * 2021-08-17 2024-03-29 工银科技有限公司 基于区块链网络的交易方法、装置、设备及存储介质
CN113656507B (zh) * 2021-08-26 2024-03-08 支付宝(杭州)信息技术有限公司 区块链系统中执行交易的方法及装置
CN113537991B (zh) * 2021-09-16 2022-03-01 中国信息通信研究院 一种跨链交易有序执行方法和跨链系统
KR20230068800A (ko) 2021-11-11 2023-05-18 서강대학교산학협력단 트랜잭션 충돌 방지 가능한 블록체인 네트워크 및 트랜잭션 충돌 방지 방법

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401235B2 (en) * 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
US11310165B1 (en) 2013-11-11 2022-04-19 Amazon Technologies, Inc. Scalable production test service
EP4375908A1 (en) 2015-10-17 2024-05-29 Banqu, Inc. Blockchain-based identity and transaction platform
US20170132615A1 (en) 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
EP3193299A1 (en) 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
US10255108B2 (en) * 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
CN109313781A (zh) 2016-07-01 2019-02-05 富国银行 国际贸易融资区块链系统
US10425399B2 (en) * 2016-07-12 2019-09-24 International Business Machines Corporation Template-based distributed certificate issuance in a multi-tenant environment
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
EP3497581A4 (en) 2016-08-08 2020-03-11 The Dun and Bradstreet Corporation SECURED PLATFORM AND INTEGRATED BOP APPLICATIONS FOR NETWORKING BOP COMPONENTS
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11200966B2 (en) * 2016-12-27 2021-12-14 Cerner Innovation, Inc. Healthcare system based on devices and wearables
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
KR102470727B1 (ko) 2016-12-30 2022-11-25 비씨 디벨롭먼트 랩스 게엠베하 블록체인 가능한 서비스 제공자 시스템
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN106934710A (zh) 2017-03-06 2017-07-07 钱德君 一种基于智能合约内容的量子合约账本
CN106878000B (zh) 2017-03-06 2020-02-21 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种联盟链共识方法及系统
US10489597B2 (en) * 2017-03-28 2019-11-26 General Electric Company Blockchain verification of network security service
GB201707296D0 (en) * 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US11966886B2 (en) * 2017-06-22 2024-04-23 Jpmorgan Chase Bank, N.A. System and method for implementing an interbank information network
US10679210B2 (en) 2017-06-26 2020-06-09 International Business Machines Corporation Blockchain transaction commitment ordering
US10616324B1 (en) 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11196552B2 (en) * 2017-08-04 2021-12-07 Truss Financial, LLC Secure data distribution protocol using blockchains
CN107688999B (zh) * 2017-08-11 2020-11-13 杭州溪塔科技有限公司 一种基于区块链的并行交易执行方法
US11132451B2 (en) * 2017-08-31 2021-09-28 Parity Technologies Ltd. Secret data access control systems and methods
US20190087793A1 (en) * 2017-08-31 2019-03-21 Brown University Adding concurrency to smart contracts
RU2673399C1 (ru) 2017-09-07 2018-11-26 Олег Александрович Серебренников Способ сохранения покупательной способности сбережений
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及系统
EP3688699A4 (en) * 2017-09-27 2021-06-23 Securrency, Inc. PROCEDURE, DEVICE AND COMPUTER-READABLE MEDIUM FOR CONFORMITY-CONSCIOUS TOKENIZATION AND CONTROL OF ASSETS
US11100483B2 (en) * 2017-09-29 2021-08-24 Intel Corporation Hierarchical data information
CN107704269A (zh) * 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及系统
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
JP2019125914A (ja) 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
CN108848119B (zh) 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、系统、电子设备
RU181439U1 (ru) 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108681565B (zh) * 2018-04-28 2020-11-10 百度在线网络技术(北京)有限公司 区块链数据并行处理方法、装置、设备和存储介质
CN108683646B (zh) * 2018-04-28 2021-03-16 厦门美图之家科技有限公司 一种认证方法及计算设备
CN108769173B (zh) * 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
CN108846659B (zh) * 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
CN109064171A (zh) * 2018-07-26 2018-12-21 杭州秘猿科技有限公司 一种区块链并行交易的方法、装置及电子系统
SG11201907243UA (en) 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Parallel execution of transactions in a blockchain network based on smart contract whitelists
CN110520882B (zh) 2018-12-28 2023-07-14 创新先进技术有限公司 在区块链网络中并行执行交易

Also Published As

Publication number Publication date
AU2018347203B2 (en) 2021-01-21
AU2018347203A1 (en) 2020-07-16
CN110520882B (zh) 2023-07-14
JP2020515942A (ja) 2020-05-28
KR102234128B1 (ko) 2021-04-02
EP3571653A4 (en) 2020-04-08
PH12019501791A1 (en) 2020-03-09
MX2019009286A (es) 2019-10-30
CN110520882A (zh) 2019-11-29
RU2738826C1 (ru) 2020-12-17
WO2019072303A2 (en) 2019-04-18
KR20200083936A (ko) 2020-07-09
WO2019072303A3 (en) 2019-11-14
BR112019016064A2 (pt) 2020-03-31
CA3052348A1 (en) 2019-04-18
SG11201907157XA (en) 2019-09-27
US20190287101A1 (en) 2019-09-19
EP3571653A2 (en) 2019-11-27
US11132676B2 (en) 2021-09-28

Similar Documents

Publication Publication Date Title
JP6816300B2 (ja) ブロックチェーンネットワークにおけるトランザクションの並列実行
JP7012730B2 (ja) スマートコントラクトホワイトリストに基づくブロックチェーンネットワークにおけるトランザクションの並列実行
JP6827564B2 (ja) 分散型台帳システムにおけるトランザクションのパラレル実行の実施
US11088875B2 (en) Asynchronous processing of blockchain blocks
CN111095325B (zh) 在分布式账本系统中进行交易的并行执行
JP6858264B2 (ja) スマートコントラクトのホワイトリスト

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191001

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201223

R150 Certificate of patent or registration of utility model

Ref document number: 6816300

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250