JP2020522036A - ブロックチェーンネットワークにおけるデータ隔離 - Google Patents

ブロックチェーンネットワークにおけるデータ隔離 Download PDF

Info

Publication number
JP2020522036A
JP2020522036A JP2019553830A JP2019553830A JP2020522036A JP 2020522036 A JP2020522036 A JP 2020522036A JP 2019553830 A JP2019553830 A JP 2019553830A JP 2019553830 A JP2019553830 A JP 2019553830A JP 2020522036 A JP2020522036 A JP 2020522036A
Authority
JP
Japan
Prior art keywords
node
mpt
lightweight
blockchain
account
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019553830A
Other languages
English (en)
Other versions
JP6821053B2 (ja
JP2020522036A5 (ja
Inventor
チャオ・シェン
ウェンビン・ジャン
シュミン・ル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020522036A publication Critical patent/JP2020522036A/ja
Publication of JP2020522036A5 publication Critical patent/JP2020522036A5/ja
Application granted granted Critical
Publication of JP6821053B2 publication Critical patent/JP6821053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Optical Communication System (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本明細書の実施形態は、軽量ノードの識別情報を含むブロックチェーンネットワークの軽量ノードから同期要求を受信するステップと、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップと、ブロックの高さに関連付けられた、複数のアカウントレコードを含む、元の系全体状態構造を決定するステップと、1つまたは複数のパーミッションに基づいて、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別するステップと、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットのみを含む元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するステップと、隔離型系全体状態データ構造を含む軽量ノードに応答を送信するステップとを含む。

Description

ブロックチェーンネットワークにおけるデータ隔離に関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークとも称し得る、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でデータを記憶することを可能にする。DLSは、任意の特定のユースケースを指すわけではなく、ブロックチェーンネットワークを一般には指す。タイプのブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに関与するように、すべてのエンティティに対してオープンとなっている。プライベートブロックチェーンネットワークは、特定のエンティティに提供されており、読込みパーミッションおよび書込みパーミッションを中央集権的に制御する。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御する、限定されたエンティティのグループに提供されており、アクセス制御レイヤを含む。
ブロックチェーンネットワークは、異なるタイプのノードを含み得る。フル関与ノード(以降、「ブロックチェーンノード」と称する)は、トランザクションの新規ブロックを構築し有効性を確認してブロックチェーンに追加することを試みることによって、ブロックチェーンネットワークに関するコンセンサスプロセスに関与する。軽量ノードは、ブロックチェーンネットワークに関するコンセンサスプロセスに関与しておらず、ブロックチェーンの軽量ノード自身の内部表現を完全に同期していない場合がある。例えば、軽量ノードは、ブロックチェーン内の特定のブロック内のトランザクションデータのすべてではなく、ブロックヘッダ情報のみ同期し得る。
プライベートまたはコンソーシアムブロックチェーンネットワークにおいては、ノード(軽量ノードなど)は、例えば、軽量ノードに関連付けられた識別情報が関与したトランザクションなどといった、あるトランザクションをブロックチェーンから読み込むパーミッションのみを有し得る。そのようなケースにおいては、軽量ノードは、特定のブロックについてブロックチェーンノードにクエリを行い得るし、それがブロック内でアクセスを有しているトランザクションだけについての表現(例えば、Merkle Tree)が返信され得る。このように構築されたMerkle Treeは、ブロック内のトランザクションを表すフルMerkle Treeと整合性を有していない場合があり、そのことが、ノードがブロックの正確な表現を所有していないことに起因して軽量ノードにおけるエラーの原因となり得る。
ブロックチェーンネットワークの「系全体状態(world state)」は、Merkle Patricia Trie(MPT)の構造でブロックチェーンノードに一般的に記憶されている、ブロックチェーンネットワーク上のすべての通常アカウントおよびコントラクトアカウントの状態のコレクションを指す。ブロックチェーンネットワークにおいては、いくつかの関与者がコンセンサスに関与しているブロックチェーンノードを維持管理する一方で、いくつかの関与者は1つの軽量ノードのみを維持管理する。これは、コストまたは権限、およびコンセンサスに関与していないがブロックチェーンノードからのデータと同期だけはしているノードが理由であり得る。
軽量ノードは、すべてのブロックのデータ全体、または単にブロックヘッダデータを記憶し得る。例えば、様々な例示的なブロックチェーンネットワークは、ブロックヘッダデータのみが同期されている軽量ノードを有する。軽量ノードは、検証されることになるトランザクションに従ってブロックチェーンノードからMPT上の対応するデータを取り出すが、ブロックチェーンノードは、軽量ノードがデータを取り出す範囲を制限していない。
いくつかのシナリオにおいては、特に、企業アプリケーションの連携チェーンシナリオにおいては、系全体状態データへのアクセスは制御され得る。例えば、特定のエンティティは、それが管理するアカウントについての系全体状態データにアクセスすることのみ権限を与えられ得る。しかしながら、エンティティによって制御される軽量ノードは、トランザクションを検証するためにMPT全体を受信し得る。それゆえ、軽量ノードがMPTに基づいてトランザクションを検証することはそのまま可能にしつつ、MPT内の情報に対する軽量ノードのアクセスを設定されたパーミッションに従って制御するようにすることが望ましいであろう。
本明細書の実施形態は、ブロックチェーンネットワークの軽量ノードについての隔離要件を満足する、ブロックチェーンネットワークの系全体状態データのための隔離スキームのためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、軽量ノードによるアクセスについて権限を与えられていないデータを含んでいないが、ブロックチェーンネットワークの系全体状態データと依然として整合性を有している、状態Merkle Patricia Trie(MPT)(または「隔離型MPT」)を生成することを目的としている。
本明細書による方法が本明細書に記載の態様と特徴との任意の組合せを含み得ることは諒解されよう。すなわち、本明細書による方法は、特に本明細書に記載の態様と特徴との組合せに限定されるわけではなく、提供した態様と特徴との任意の組合せも含む。
本明細書の1つまたは複数の実施形態の詳細を添付の図面および以下の説明に記載している。本明細書の他の特徴および利点が、説明および図面から、および特許請求の範囲から明らかとなるであろう。
本明細書の実施形態を実行するために使用され得る環境の例を図示している図である。 本明細書の実施形態による、概念的機構の例を図示している図である。 系全体状態同期プロセス中のブロックチェーンネットワークの軽量ノードとブロックチェーンノードとの間のインタラクションの例を図示している図である。 図3に図示したブロックチェーンノードについての系全体状態データ構造の例を図示している図である。 図3に図示した軽量ノードについての隔離型系全体状態データ構造の例を図示している図である。 本明細書の実施形態により実行され得るプロセスの例を図示している図である。 本明細書の実施形態による、装置のモジュールの例を図示している図である。
様々な図面における類似の参照記号は類似の要素を示す。
本明細書の実施形態は、ブロックチェーンネットワークの軽量ノードについての隔離要件を満足する、ブロックチェーンネットワークの系全体状態データのための隔離スキームのためのコンピュータ実施方法を含む。より詳細には、本明細書の実施形態は、軽量ノードによるアクセスについて権限を与えられていないデータを含んでいないが、ブロックチェーンネットワークの系全体状態データと依然として整合性を有している、隔離型状態Merkle Patricia Trie(MPT)(または「隔離型MPT」)を生成することを目的としている。
方法のいくつかの実施形態においては、アクションは、ブロックチェーンネットワーク内のブロックチェーンノードによって、ブロックチェーンネットワークの軽量ノードから同期要求を受信するステップであって、同期要求は、軽量ノードの識別情報および同期要求に関連付けられたブロックの高さを含む、ステップと、ブロックチェーンノードによって、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップと、ブロックチェーンノードによって、ブロックの高さに関連付けられた、複数のアカウントレコードを含む、元の系全体状態構造を決定するステップであって、各アカウントレコードは、アカウントレコードに関連付けられたアカウントについての状態情報を記憶し、元の系全体状態構造は、ブロックの高さに関連付けられたブロックがブロックチェーンに追加された時点におけるブロックチェーンネットワークの状態を表す、ステップと、ブロックチェーンノードによって、1つまたは複数のパーミッションに基づいて、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別するステップと、ブロックチェーンノードによって、元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するステップであって、隔離型系全体状態構造は、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットのみを含む、ステップと、ブロックチェーンノードによって、隔離型系全体状態データ構造を含む軽量ノードに応答を送信するステップとを含む。
本明細書の実施形態についてのさらなる状況をあげるとすれば、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)およびブロックチェーンネットワークとも称し得る、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語は、特定のネットワークおよび/またはユースケースに一般的に関連付けられているが、ブロックチェーンは、任意の特定のユースケースを指すわけではなくDLSを一般的に指すために本明細書では使用している。
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造である。そのため、ブロックチェーン上に記録されるトランザクションは、信頼性のあるものおよび信頼できるものとなる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。Merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と整合性を有しているかどうかを決定することによって素早く検証され得る。
ブロックチェーンは、トランザクションを記憶するための分散化されたまたは少なくとも部分的に分散化されたデータ構造である一方で、ブロックチェーンネットワークは、トランザクションをブロードキャストすること、検証すること、および有効性を確認することなどによって、1つまたは複数のブロックチェーンを管理、更新、および維持管理するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。コンソーシアムブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスノードとも称し得る、権限を与えられたノードのセットによって制御され、1つまたは複数のコンセンサスノードがそれぞれのエンティティ(例えば、金融機関、保険会社)に管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。
いくつかの例においては、コンソーシアムブロックチェーンネットワーク内では、グローバルブロックチェーンが、すべてのノードにわたって複製されるブロックチェーンとして提供される。すなわち、すべてのコンセンサスノードは、グローバルブロックチェーンに関する完全状態コンセンサスにある。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがコンソーシアムブロックチェーンネットワークにおいて実施される。例えば、コンソーシアムブロックチェーンネットワークは、以下でさらに詳細に説明している、実用的Byzantineフォールトトレランス(PBFT)コンセンサスを実施し得る。
Merkle Patricia Trieまたは「MPT」は、記憶されているデータを素早く検索および検証することを可能にするデータ構造である。MPTは、MerkleツリーとPatriciaトライとの態様の組み合わせたものである。Merkleツリーは、データアイテムのハッシュが各リーフノードに記憶されているバイナリツリー構造である。各非リーフノードは、その2つの子ノードのハッシュの連結のハッシュを含む。本構造は、リーフノードにおいてハッシュ化されたデータアイテムのいずれかに対する変化(ノードハッシュを変更することになる)がツリーのルートハッシュにおける変化ももたらすことになることを保証している。そのため、Merkleツリーにおいてハッシュ化されたデータアイテムのアサートされた値は、アサートされた値のハッシュがツリーと整合性を有しているかどうか(すなわち、ルートハッシュが変化したかどうか)をチェックすることによって検証され得る。
Patriciaトライは、記憶されているデータを表すキー(例えば、ハッシュ)に基づいてリーフノードに記憶されているデータを体系化する構造である。ツリーの各非リーフノードは、キー値のプレフィックスに関連付けられる。各リーフノードは、最長一致プレフィックスを有するノードの子として記憶される。このことは、ルートから開始して特定のキー値と一致するプレフィックスノードの経路をたどるPatriciaトライを巡回することによって特定のキー値を有するノードを素早く発見することを可能にする。
MPTは、MerkleツリーとPatriciaトライとの概念を組み合わせたものであり、3つのタイプのノードを含む。リーフノードは、キー(例えば、ハッシュ)に関連付けられたデータを記憶する。ブランチノードは、多数の値(例えば、26文字の各々または16進数の16桁の各々)を子ノードにマッピングする「ルータ」として機能し、ここで終端となるキーに関連付けられたデータを記憶もする。子ノードは、その子ノードのすべてに共通しているキー部分を含むノードである、リーフノードか拡張ノードかであり得る。
いくつかのケースにおいては、MPTは、ブロックチェーンネットワーク内のアカウントの状態を記憶するために使用され得る。例えば、ブロックチェーン内の各ブロックは、ブロックがブロックチェーンに追加された時点におけるブロックチェーンネットワーク内の各アカウントのための残高を含むアカウントレコードを記憶しているMPTに対する参照を含み得る。アカウントレコードは、アカウントに関連付けられた公開鍵に基づいてMPTにおいて体系化され得る。そのようなMPTは、ブロックがチェーンに追加された時点におけるブロックチェーンネットワークの「系全体状態」のスナップショットを提供し得る。
上記の状況を考慮して、本明細書の実施形態をここではさらに詳細に説明している。より詳細には、上述したように、本明細書の実施形態は、軽量ネットワークによるアクセスについて権限を与えられていない系全体状態データ構造内にデータを含んでいないが、系全体状態データ構造を表すフルMPTと依然として整合性を有している、隔離型MPTを作成することを目的としている。隔離型MPTは、軽量ネットワーク上にローカルで記憶されているMPTのデータ構造が(軽量ノードによる制限されたデータへのアクセスを必要とすることなく)ブロックチェーンネットワークの系全体状態データ構造と整合性を有するようにするための系全体状態同期要求に応答して、軽量ノードに提供され得る。
いくつかの実施形態においては、ブロックチェーンネットワークの軽量ノードは、ブロックチェーンネットワークのブロックチェーンノードに同期要求を要求し得る。同期要求は、軽量ノードの識別情報、例えば、軽量ノードを管理するエンティティの識別情報と、同期要求に関連付けられたブロックの高さとを含み得る。ブロックチェーンノードは、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別し、ブロックチェーンネットワークの系全体状態データ構造を表すとともに同期要求によって指定されたブロックの高さ内にある複数のアカウントレコードを含む元のMPTを識別し得る。ブロックチェーンノードは、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションに基づいて、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別する。ブロックチェーンノードは、元のMPTに基づいた隔離型MPTを生成する。隔離型MPTは、軽量ノードによるアクセスについて権限を与えられているアカウントレコードのサブセットのみを含む。隔離型MPTは、その後、軽量ノードに送信され、軽量ノードにおいてローカルで記録され、ブロックチェーンネットワークとの系全体状態データ同期のために使用される。後述するように、隔離型MPTは、軽量ノードによるアクセスについてパーミッション設定されていないまたは権限を与えられていないデータを含むことなくブロックチェーンネットワークの系全体状態データ構造と整合性を有しているデータ構造を含み得る。
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を図示している図である。いくつかの例においては、環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に関与することを可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。
図示した例においては、コンピューティングシステム106、108の各々は、コンソーシアムブロックチェーンネットワーク102内のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含み得る。コンピューティングデバイスの例は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含むがこれらに限定されない。いくつかの例においては、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102とやりとりするための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、ユーザA)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、ユーザB)のコンピュータ実施サービスをホストすることができる。図1の例においては、コンソーシアムブロックチェーンネットワーク102を、ノードからなるピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102に参加する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
図2は、本明細書の実施形態による、概念的機構200の例を図示している。概念的機構200は、エンティティレイヤ202、ホステッドサービスレイヤ204、およびブロックチェーンネットワークレイヤ206を含む。図示した例においては、エンティティレイヤ202は、関与者A、関与者B、および関与者Cの3つの関与者を含み、各関与者は、それぞれのトランザクション管理システム208を有する。
図示した例においては、ホステッドサービスレイヤ204は、各トランザクション管理システム210のためのインターフェース210を含む。いくつかの例においては、それぞれのトランザクション管理システム208は、プロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用してネットワーク(例えば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例においては、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワークレイヤ206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワークレイヤ206のブロックチェーンネットワーク212と通信する。いくつかの例においては、インターフェース210とブロックチェーンネットワークレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して実施される。いくつかの例においては、インターフェース210は、それぞれのトランザクション管理システム208のためのブロックチェーンネットワークノードを「ホスト」する。例えば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書に記載しているように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を変更不可能な形で記録する複数のノード214を含むピア・ツー・ピアネットワークとして提供される。単一のブロックチェーン216を概略的に図示しているが、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。例えば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実施形態においては、ブロックチェーン216は、コンソーシアムブロックチェーンネットワークに参加する2つ以上のエンティティの間で行われるトランザクションに関連付けられた情報を記憶する。
ブロックチェーン(例えば、図2のブロックチェーン216)は、各ブロックがデータを記憶しているブロックのチェーンで構成される。例えば、データは、2つ以上の関与者間のトランザクションを表すトランザクションデータを含み得る。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。例示的なトランザクションは、価値のあるもの(例えば、資産、製品、サービス、および通貨)の交換を含み得るがこれに限定されない。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ関数によってトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ関数の例は、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含むがこれに限定されない。
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、ブロックがブロックチェーンに追加されるようにする作業を行う。そのようなノードをコンセンサスノードと称する。上述したように、PBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードは、コンセンサスプロトコルを実行してトランザクションをブロックチェーンに追加し、ブロックチェーンネットワークの総合的な状態を更新する。
さらに詳細には、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに対して提供される(Merkleルートハッシュ)まで、ハッシュ値がペアになるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。コンセンサスノードはまた、ブロックチェーン内の最新ブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。コンセンサスノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。
一般に、PBFTは、Byzantine障害(例えば、正常に動作していないノード、不正ノード)に耐性がある実用的Byzantineステートマシンの複製を提供する。このことは、障害が生じるであろうことを想定すること(例えば、独立したノードの故障の存在および/またはコンセンサスノードによって送信される操作メッセージを想定すること)によって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は、系全体状態同期プロセス中の、例えば図2のブロックチェーンネットワーク212といったブロックチェーンネットワークの軽量ノード310とブロックチェーンノード320との間のインタラクションの例を図示している。系全体状態同期プロセスは、図3に示したステップで進められる。305において、軽量ノード310は、初めに、同期トリガ条件を検出する。例えば、同期トリガ条件は、軽量ノード310が最新の同期ポイントからのブロックの数などといった最新の同期ポイントからの設定閾値を超過したことを示し得る。他の例では、同期トリガ条件は、軽量ノード310によって検出され同期プロセスを開始するために使用されるブロックチェーンノード320の指定のイベントであり得る。例として、軽量ノード310は、ブロックチェーンノード320からイベントメッセージを受信し、それに応じて、イベントメッセージを受信したことに基づいて同期プロセスを開始し得る。いくつかの他の例では、同期トリガ条件は、軽量ノード310によって提供されユーザまたはエンティティが能動的に例えば手動で同期プロセスをトリガすることを可能にするサービスインターフェースを介した外部呼出を表し得る。
310において、軽量ノード310は、ステップ305における同期トリガ条件の検出に基づいて系全体状態同期要求を生成する。特に、軽量ノード310は、範囲リスト、例えば、アカウントレコードが同期されることになるアドレスまたは識別子のリストを取り出し得る。同期要求はまた、同期のためのブロックの高さを識別し得る。本明細書に記載しているように、ブロックの高さは、同期されることになる第1のブロックと、ジェネシスブロック、すなわち、0であるブロックの高さを有するブロックとの間のチェーン内のブロックの数を表す。
315において、軽量ノード310は、同期要求をブロックチェーンノード320に送信する。同期要求は、軽量ノード310を管理するまたさもなければ軽量ノード310に関連付けられたエンティティの識別情報を表す、識別情報証明書を含み得る。下記で説明しているように、識別情報証明書は、軽量ノード310によるアクセスについて権限を与えられているブロックチェーン内のデータ、例えば、識別情報証明書に関連付けられたアドレスを有するアカウントレコード、および軽量ノード310によるアクセスについて権限を与えられていないブロックチェーン内のデータ、例えば、軽量ノード310を管理するエンティティ以外のエンティティに関するアドレスを有するアカウントレコードを決定するために使用され得る。
325において、ブロックチェーンノード320は、同期要求におけるブロックの高さに対応するブロックチェーンの系全体状態を表す元のMPTを識別する。例えば、ブロックチェーンノードは、ブロックの高さに対応するブロックチェーン内のブロックのブロックヘッダに記憶されているMPTを元のMPTとして識別し得る。ブロックチェーンネットワークの系全体状態構造を表す元のMPTの例を図4Aに図示している。
330において、ブロックチェーンノード320は、元のMPTの系全体状態構造に含まれるアドレスに対応するリーフブロックを識別する。ブロックチェーンノード320は、元のMPTを解析し、各アカウントレコードに関連付けられたアドレスが軽量ノード310によるアクセスについて権限を与えられているかどうかを決定し得る。例えば、ブロックチェーンノード320は、それが軽量ノード310のエンティティに関連付けられたアドレスを含んでいる場合には、軽量ノード310がアカウントレコードにアクセスする権限を与えられていると決定する。
335において、ブロックチェーンノード320は、元のMPTに基づいた隔離型MPTを生成する。隔離型MPTは、軽量ノード310によるアクセスについて権限を与えられている元のMPTからのアカウントレコードのサブセットのみを含む。
いくつかの実施形態においては、ブロックチェーンノード320は、ブロックチェーンノード320上に記憶されるアクセス制御テーブルにアクセスすることによって、隔離型MPTを生成する。アクセス制御テーブルは、軽量ノード310によるアクセスについて権限を与えられている元のMPTの系全体状態データ構造で表される個々のアカウントレコードを決定するために使用され得る。アクセス制御テーブルは、ブロックチェーンネットワークの軽量ノードに関連付けられたエンティティについてのパーミッションを指定し得る。例えば、アクセス制御テーブルは、異なる識別情報クラスに割り当てられたエンティティがセキュアなアカウントレコードにアクセスするために異なるパーミッションレベルを有することができるように、各エンティティに関連付けられた識別情報クラスを指定し得る。例として、識別情報クラスのための1つのパーミッションレベルは、エンティティが特定のエンティティに関連付けられたすべてのアカウントレコードにアクセスする権限を与えられていることを示し得る。
いくつかの事例においては、アクセス制御テーブルによって指定されたパーミッションは、軽量ノードがアカウントデータにアクセスする権限を与えられているパーミッション設定されたアカウントアドレスのセットを含み得る。そのような事例においては、ブロックチェーンノード320は、パーミッション設定されたアカウントアドレスのセットを使用して、軽量ノード310によるアクセスについてパーミッション設定されているアカウントレコード、例えば、パーミッション設定されたアカウントアドレスを含むアカウントレコード、および軽量ノード310によるアクセスについてパーミッション設定されていないアカウントレコード、例えば、パーミッション設定されたアカウントアドレスのセットに含まれていないアカウントアドレスを含むアカウントレコードを識別する。ブロックチェーンノード320は、アクセスについてパーミッション設定されていないアカウントレコードを元のMPTによって表される系全体状態データ構造から除外するように、隔離型MPTを生成する。
340において、ブロックチェーンノード320は、ステップ315において受信した同期要求に対する応答として軽量ノード310に隔離型MPTを送信する。345において、軽量ノード310は、隔離型MPTに基づいてローカルで維持管理されている系全体状態データおよび同期ポイントを更新する。例えば、軽量ノード310は、次の同期ポイントまで、ローカルで維持管理されている系全体状態として隔離型MPTにおいて指定された系全体状態データ構造を記憶し得る。
図4Aは、ブロックチェーンノードについてのMPT400によって表される系全体状態データ構造の例を図示している。この例においては、MPT400は、軽量ノード、例えば、軽量ノード310から系全体状態同期要求を受信したことに応答して、ブロックチェーンノード、例えば、ブロックチェーンノード320によって生成される。いくつかのケースにおいては、MPT400は、特定のブロックの高さのブロックがチェーンに追加された時点におけるブロックチェーンネットワークの系全体状態を表す。
いくつかのケースにおいては、MPT400の系全体状態データ構造は、各アカウントレコードによって表されるアカウントを識別する公開鍵に従って体系化される。上記で述べたように、MPTは、アカウントレコードを記憶する、リーフノード(例えば、422A、422B)と、多数の値(例えば、26文字の各々または16進数の16桁の各々)を子ノードにマッピングする「ルータ」として機能し、アカウントレコードを記憶もし得る、ブランチノード(例えば、416A、420)と、その子ノードのすべてに共通しているキー部分を含む、拡張ノード(例えば、406B、410A、418B)とを含む。上記で説明しているように、MPT(例えば、422A、422B)内のリーフノードの各々は、ブロックチェーンネットワーク内の特定のアカウントに関連付けられた公開鍵と、アカウント残高などといった特定のアカウントに関連付けられた状態データとを含む、アカウントレコードである。加えて、各ブランチノードはまた、MPT内のブランチノードの位置に対応するキーを用いてアカウントレコードを記憶し得る。
上述したように、MPT400は、軽量ノードによるアクセスについて権限を与えられているアカウントレコード、例えば、軽量ノードに関連付けられたエンティティのアドレスを含むアカウントレコード、および軽量ノードによるアクセスについて権限を与えられていないアカウントレコードを含む。
図4Aに図示した例では、MPT400の領域400Bに含まれるアカウントレコードは軽量ノード310によるアクセスについて権限を与えられていない一方で、領域400Aに含まれるアカウントレコードは軽量ノードによるアクセスについて権限を与えられている。
図4Bは、図3に図示した軽量ノードについての隔離型MPT405によって表される系全体状態データ構造の例を図示している。この例においては、隔離型MPT405は、図4Aに図示した元のMPT400に基づいて、ブロックチェーンノード、例えば、ブロックチェーンノード320によって生成される。隔離型MPT405は、軽量ノードがアクセスする権限を与えられていないアカウントレコードを除外する。例えば、MPT405は、アカウントレコード418Cおよび418Dを含むMPT400の領域400B内のすべてのノードを除外する。上述したように、これらのアカウントレコードは、軽量ノードによるアクセスについて権限を与えられていないため、したがって、隔離型MPT405から除外される。
図4Bに図示した例では、(上記で説明しているように、リーフおよびブランチノードにおける)各アカウントレコードならびに元のMPT400のそれらの親および子要素を解析し、アカウントレコードまたはデータ要素が軽量ノードによるアクセスについて権限を与えられているかどうかを決定することに基づいて、隔離型MPT405は生成される。いくつかの事例においては、本決定は、ブロックチェーンノード上に記憶されるアクセス制御テーブルにおいて識別されるパーミッション設定されたアドレスを識別することに基づく。例えば、アカウントレコード422Aおよび422Bに含まれるキー「0x3F06」および「0x313F」は、アクセス制御テーブルに含まれており、その結果、アカウントレコード422Aおよび422Bは隔離型MPT405に含まれる。その一方、アカウントレコード418Cおよび418Dに含まれるキー「0x4E06」および「0x4E3F」は、アクセス制御テーブルに含まれていないため、したがって、隔離型MPT405から除外される。
図4Bに示しているように、MPT400のアカウントレコード422Aおよび422Bからルートノード402まで経路上の中間ノードは、隔離型MPT405において保たれる。これらの中間ノードは、MPT400のブランチノード(例えば、416A、420)および拡張ノード(例えば、406B、410A、418B)を含む。
図5は、本明細書の実施形態により実行され得るプロセス500の例を図示している。いくつかの実施形態においては、プロセス500は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。
510において、ブロックチェーンノードは、軽量ノードから同期要求を受信する。例えば、ブロックチェーンネットワークのブロックチェーンノード320は、ブロックチェーンネットワークの系全体状態のための同期要求を受信する。同期要求は、軽量ノード310から受信され、軽量ノード310に関連付けられたエンティティについての識別子などの軽量ノード310の識別情報を含む。同期要求は、例えば、最新の以前の同期ポイントに関連付けられたブロックといった、ジェネシスブロックからのブロックの数を表すブロックの高さを含み得る。
上述したように、同期要求は、最終同期ポイント以後に閾値数のブロックがブロックチェーンネットワークに追加されたなどの同期トリガ条件を検出したことに基づいて、または軽量ノードと、ブロックチェーンノードと、ブロックチェーンネットワークとの間で系全体状態データ構造の同期が必要になったというブロックチェーンネットワークにおける指定のイベントの発生に基づいて、生成され得る。
520において、ブロックチェーンノードは、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別する。いくつかのケースにおいては、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップは、ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報について1つまたは複数のパーミッションを指定するアクセス制御テーブルにアクセスするステップと、軽量ノードの識別情報についてアクセス制御テーブルにおいて指定された1つまたは複数のパーミッションを識別するステップとを含む。いくつかの実施形態においては、アクセス制御テーブルは、ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報の各々に関連付けられた識別情報クラスと、アクセス制御テーブルに含まれる各識別情報クラスに関連付けられたパーミッションとを含む。いくつかのケースにおいては、1つまたは複数のパーミッションは、軽量ノードの識別情報がパーミッション設定されたアカウントアドレスのセットに関連付けられたアカウントレコードにアクセスする権限を与えられていることを指定するパーミッションを含む。
530において、ブロックチェーンノードは、複数のアカウントレコードを含むとともにブロックの高さに関連付けられた元の系全体状態データ構造(例えば、MPT400)を決定する。例えば、ブロックチェーンノード320は、ブロックの高さに関連付けられたブロックがブロックチェーンに追加された時点におけるブロックチェーンネットワークの系全体状態データ構造を表す元のMPT400を決定する。上述したように、元のMPT400は、軽量ノード310によるアクセスについて権限を与えられているアカウントレコードを含む。
540において、ブロックチェーンノードは、軽量ノード310によるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別する。例えば、ブロックチェーンノード320は、アクセス制御リスト内のパーミッション設定されたアドレスとして指定されたアドレスを含むとともにブロックチェーンノード320へのアクセスについて権限を与えられている、アカウントレコードを識別する。
550において、ブロックチェーンノードは、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットのみを含む隔離型系全体状態データ構造を生成する。例えば、ブロックチェーンノード320は、元のMPT400の領域400Bからアカウントレコードを除外した隔離型MPT405を生成する。いくつかのケースにおいては、隔離型MPTを生成するステップは、隔離型MPTを作成するように元のMPTを修正するステップであって、軽量ノードによってアクセス可能ではないと決定されたすべてのアカウントレコードを元のMPTから除去するステップと、ブランチの各々のルートハッシュのみそのまま残してすべてのアカウントレコードが除去された元のMPTのブランチを除去するステップとを含む、修正するステップを含む。いくつかの実施形態においては、アカウントレコードは、軽量ノードがアカウントレコードに対するリードアクセスを有していないことを1つまたは複数のパーミッションが示している場合には、軽量ノードによってアクセス可能ではないと決定される。いくつかのケースにおいては、隔離型MPTを生成するステップは、軽量ノードに対してアクセス可能となっている元のMPT内のアカウントレコードを識別するステップであって、アカウントレコードは、元のMPTの特定のノードにある、ステップと、アカウントレコードを記憶している特定のノードからMPTのルートノードまでの元のMPTにおける経路を識別するステップと、アカウントレコードを記憶している特定のノードからMPTのルートノードまでの経路に沿って元のMPTに位置する中間ノードを識別するステップと、隔離型MPTに中間ノードを含めるステップとを含む。
560において、ブロックチェーンノードは、隔離型系全体状態データ構造を含む軽量ノードに同期要求に対する応答を送信する。例えば、ブロックチェーンノード320は、ステップ510において受信した同期要求に対する応答として軽量ノード310に隔離型MPT405を送信する。軽量ノード310は、次の同期ステップまでブロックチェーンネットワークのローカルで記憶されている系全体状態として隔離型MPTを記憶し得る。図4Aおよび4Bによって説明するとともに示しているように、隔離型MPT405は、元のMPTと同一の系全体状態データ構造を指定しているが、あるアカウントレコードを除外して、軽量ノード310によるアクセスについて権限を与えられていないアカウントレコードに軽量ノード310がアクセスする必要なく軽量ノード310をブロックチェーンノード320と同期することを可能にしている。
いくつかの実施形態においては、隔離型MPT405を受信すると、軽量ノード310は、そのローカルバージョンの隔離型MPTをブロックチェーンノードから返信された更新バージョンの隔離型MPTと置換し得る。
図6は、本明細書の実施形態による、装置600のモジュールの例を図示している。装置600は、コンソーシアムブロックチェーンネットワークなどのブロックチェーンネットワークによって維持管理されるブロックチェーン上に記憶される慎重に扱うべきデータを保護するように構成されたブロックチェーンノードの実施形態であり得る。装置600は、上記で説明した実施形態に対応し得るし、装置600は、ブロックチェーンネットワークの軽量ノードから同期要求を受信するための受信部または受信モジュール610であって、同期要求は、軽量ノードの識別情報を含む、受信部または受信モジュール610と、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するための第1の識別部または識別モジュール620と、複数のアカウントレコードを含む元の系全体状態構造を決定するための決定部または決定モジュール630であって、各アカウントレコードは、アカウントレコードに関連付けられたアカウントについての状態情報を記憶する、決定部または決定モジュール630と、1つまたは複数のパーミッションに基づいて、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別するための第2の識別部または識別モジュール640と、元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するための生成部または生成モジュール650であって、隔離型系全体状態構造は、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットのみを含む、生成部または生成モジュール650と、隔離型系全体状態データ構造を含む軽量ノードに応答を送信するための送信部または送信モジュール660とを含む。
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
装置内の各ユニットの機能および役割の実施プロセスについては、前回の方法における対応するステップの実施プロセスを参照することが可能である。簡潔にするために詳細はここでは省略する。
装置の実施形態が方法の実施形態に基本的に対応するため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したユニットは、物理的に分離され得るしまたはされ得ない。ユニットとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークユニットに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本明細書の実施形態を理解および実施できよう。
図6に再び戻れば、それがブロックチェーンネットワークによって維持管理されるブロックチェーン上に記憶される慎重に扱うべきデータを保護するように構成されるブロックチェーンノードの内部機能モジュールおよび構造を図示しているものとして解釈できよう。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能な命令を記憶しているメモリとを含む。
本明細書において説明した技法は、いくつかの技術的効果生み出す。例えば、隔離型系全体状態構造(例えば、MPT)を作成するための技法は、ブロックチェーンネットワーク内の軽量ノードがブロックチェーンネットワークのアクセス制御パーミッションに違反することなく系全体状態構造に基づいてトランザクションを検証することを可能にしている。このことは、ブロックチェーンネットワークにおけるデータアクセスのより効率的な制御を可能にしており、そのことがよりセキュアなネットワークをもたらし得る。加えて、隔離型系全体状態構造を作成する技法は、非隔離型系全体状態構造と整合性を有している構造をもたらす。このことは、軽量ノードが非隔離型系全体状態構造と同一のプロセスを使用して隔離型系全体状態構造に基づいてトランザクションを検証することを可能にし得るし、それによって、アクセス制御を実施するために軽量ノードを更新する必要性をいくらか軽減している。さらに他の実施形態においては、上記技法は、ブロックチェーンネットワークにおける透明性とデータ保護との間のバランスをとる。特に、ブロックチェーン設計者は、システム構築に直面すると、解決困難な問題に直面することになる。一方では、ブロックチェーンは、透過的な可監査性がすべてであり、共有分散型台帳によって信頼性を達成している。他方では、企業のトランザクションは、多数の理由によりすべての関与者の間で共有されるべきではない慎重に扱うべきデータを頻繁に取り扱う。上記技法は、関与者のデータを保護する一方で、同時に分散的な信頼性および透明性の利点を保持している。
発明特定事項の説明した実施形態は、単独または組合せで1つまたは複数の特徴を含み得る。
いくつかの実施形態においては、アクションは、ブロックチェーンネットワーク内のブロックチェーンノードによって、ブロックチェーンネットワークの軽量ノードから同期要求を受信するステップであって、同期要求は、軽量ノードの識別情報および同期要求に関連付けられたブロックの高さを含む、ステップと、ブロックチェーンノードによって、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップと、ブロックチェーンノードによって、ブロックの高さに関連付けられた、複数のアカウントレコードを含む、元の系全体状態構造を決定するステップであって、各アカウントレコードは、アカウントレコードに関連付けられたアカウントについての状態情報を記憶し、元の系全体状態構造は、ブロックの高さに関連付けられたブロックがブロックチェーンに追加された時点におけるブロックチェーンネットワークの状態を表す、ステップと、ブロックチェーンノードによって、1つまたは複数のパーミッションに基づいて、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットを識別するステップと、ブロックチェーンノードによって、元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するステップであって、隔離型系全体状態構造は、軽量ノードによるアクセスについて権限を与えられている複数のアカウントレコードのサブセットのみを含む、ステップと、ブロックチェーンノードによって、隔離型系全体状態データ構造を含む軽量ノードに応答を送信するステップとを含む。
他の実施形態は、対応するシステムと、装置と、コンピュータ記憶デバイス上に符号化された、方法のアクションを行うように構成される、コンピュータプログラムとを含む。
これらの実施形態および他の実施形態の各々は、以下の特徴の1つまたは複数を必要に応じて含む。
いくつかのケースにおいては、軽量ノードの識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップは、ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報について1つまたは複数のパーミッションを指定するアクセス制御テーブルにアクセスするステップと、軽量ノードの識別情報についてアクセス制御テーブルにおいて指定された1つまたは複数のパーミッションを識別するステップとを含む。
いくつかの実施形態においては、アクセス制御テーブルは、ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報の各々に関連付けられた識別情報クラスと、アクセス制御テーブルに含まれる各識別情報クラスに関連付けられたパーミッションとを含む。
いくつかの実施形態においては、1つまたは複数のパーミッションは、軽量ノードの識別情報がパーミッション設定されたアカウントアドレスのセットに関連付けられたアカウントレコードにアクセスする権限を与えられていることを指定するパーミッションを含む。
いくつかの実施形態においては、元の系全体状態構造は、元のMerkle Patricia Trie(MPT)であり、隔離型系全体状態構造は、隔離型MPTである。
いくつかの実施形態においては、隔離型MPTを生成するステップは、隔離型MPTを作成するように元のMPTを修正するステップであって、軽量ノードによってアクセス可能ではないと決定されたすべてのアカウントレコードを元のMPTから除去するステップと、ブランチの各々のルートハッシュのみそのまま残してすべてのアカウントレコードが除去された元のMPTのブランチを除去するステップとを含む、修正するステップを含む。
いくつかの実施形態においては、アカウントレコードは、軽量ノードがアカウントレコードに対するリードアクセスを有していないことを1つまたは複数のパーミッションが示している場合には、軽量ノードによってアクセス可能ではないと決定される。
いくつかの実施形態においては、隔離型MPTを生成するステップは、軽量ノードに対してアクセス可能となっている元のMPT内のアカウントレコードを識別するステップであって、アカウントレコードは、元のMPTの特定のノードにあり、特定のノードは、ブランチノードまたはリーフノードである、ステップと、アカウントレコードを記憶している特定のノードからMPTのルートノードまでの元のMPTにおける経路を識別するステップと、アカウントレコードを記憶している特定のノードからMPTのルートノードまでの経路に沿って元のMPTに位置する中間ノードを識別するステップと、隔離型MPTに中間ノードを含めるステップとを含む。
本明細書はまた、1つまたは複数のプロセッサに結合されるとともに命令を記憶している1つまたは複数の非一時的コンピュータ可読記憶媒体を提供しており、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による動作を行わせる。
本明細書は、本明細書で提供している方法を実施するためのシステムをさらに提供している。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるとともに命令を記憶しているコンピュータ可読記憶媒体とを含み、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに本明細書で提供した方法の実施形態による動作を行わせる。
発明特定事項の実施形態ならびに本明細書において説明したアクションおよび動作は、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、本明細書において開示した構造およびそれらの構造的均等物を含むコンピュータハードウェアの形で、またはそれらの組合せのうちの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つまたは複数の記憶デバイスに結合され得る。例えば、コンピュータは、コンピュータの統合コンポーネントである1つまたは複数のローカルメモリを含み得る、または、コンピュータは、クラウドネットワークにある1つまたは複数のリモートメモリに結合され得る。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
コンポーネントは、直接または1つまたは複数の中間コンポーネントを介して互いに電気的または光学的などといった通信可能なように接続することによって互いに「結合」され得る。コンポーネントは、コンポーネントの1つが他のものに統合されている場合も互いに「結合」され得る。例えば、プロセッサ(例えば、L2キャッシュコンポーネント)に統合されている記憶コンポーネントは、プロセッサに「結合」される。
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えば、LCD(液晶ディスプレイ)モニタといった、表示デバイスと、例えば、キーボード、および例えば、マウス、トラックボールまたはタッチパッドなどのポインティングデバイスといった、ユーザがコンピュータに入力を提供することができる、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される、主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意の適切なサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理およびパラレル処理が有利となり得る。
110 ネットワーク
208 トランザクション管理
210 インターフェース
310 軽量ノード
320 ブロックチェーンノード
610 受信部
620 第1の識別部
630 決定部
640 第2の識別部
650 生成部
660 送信部

Claims (20)

  1. ブロックチェーンネットワークによって維持管理されるブロックチェーン上に記憶されるデータを隔離するためのコンピュータ実施方法であって、前記方法は、
    前記ブロックチェーンネットワーク内のブロックチェーンノードによって、前記ブロックチェーンネットワークの軽量ノードから同期要求を受信するステップであって、前記同期要求は、前記軽量ノードの識別情報を含む、ステップと、
    前記ブロックチェーンノードによって、前記軽量ノードの前記識別情報に関連付けられた1つまたは複数のパーミッションを識別するステップと、
    前記ブロックチェーンノードによって、複数のアカウントレコードを含む元の系全体状態構造を決定するステップであって、各アカウントレコードは、前記アカウントレコードに関連付けられたアカウントについての状態情報を記憶する、ステップと、
    前記ブロックチェーンノードによって、前記1つまたは複数のパーミッションに基づいて、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードのサブセットを識別するステップと、
    前記ブロックチェーンノードによって、前記元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するステップであって、前記隔離型系全体状態構造は、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードの前記サブセットのみを含む、ステップと、
    前記ブロックチェーンノードによって、前記隔離型系全体状態データ構造を含む前記軽量ノードに応答を送信するステップと
    を含む、コンピュータ実施方法。
  2. 前記軽量ノードの前記識別情報に関連付けられた前記1つまたは複数のパーミッションを識別するステップは、
    前記ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報について1つまたは複数のパーミッションを指定するアクセス制御テーブルにアクセスするステップと、
    前記軽量ノードの前記識別情報について前記アクセス制御テーブルにおいて指定された1つまたは複数のパーミッションを識別するステップと
    を含む、請求項1に記載のコンピュータ実施方法。
  3. 前記アクセス制御テーブルは、
    前記ブロックチェーンネットワークの前記複数の軽量ノードの前記複数の識別情報の各々に関連付けられた識別情報クラスと、
    前記アクセス制御テーブルに含まれる各識別情報クラスに関連付けられたパーミッションと
    を含む、請求項2に記載のコンピュータ実施方法。
  4. 前記1つまたは複数のパーミッションは、前記軽量ノードの前記識別情報がパーミッション設定されたアカウントアドレスのセットに関連付けられたアカウントレコードにアクセスする権限を与えられていることを指定するパーミッションを含む、請求項2に記載のコンピュータ実施方法。
  5. 前記元の系全体状態構造は、元のMerkle Patricia Trie(MPT)であり、前記隔離型系全体状態構造は、隔離型MPTである、請求項1に記載のコンピュータ実施方法。
  6. 前記隔離型MPTを生成するステップは、前記隔離型MPTを作成するように前記元のMPTを修正するステップであって、
    前記軽量ノードによってアクセス可能ではないと決定されたすべてのアカウントレコードを前記元のMPTから除去するステップと、
    ブランチの各々のルートハッシュのみそのまま残してすべてのアカウントレコードが除去された前記元のMPTの前記ブランチを除去するステップと
    を含む、修正するステップを含む、請求項5に記載のコンピュータ実施方法。
  7. アカウントレコードは、前記軽量ノードが前記アカウントレコードに対するリードアクセスを有していないことを前記1つまたは複数のパーミッションが示している場合には、前記軽量ノードによってアクセス可能ではないと決定される、請求項6に記載のコンピュータ実施方法。
  8. 前記隔離型MPTを生成するステップは、
    前記軽量ノードに対してアクセス可能となっている前記元のMPT内のアカウントレコードを識別するステップであって、前記アカウントレコードは、前記元のMPTの特定のノードにあり、前記特定のノードは、ブランチノードまたはリーフノードである、ステップと、
    前記アカウントレコードを記憶している前記特定のノードから前記MPTのルートノードまでの前記元のMPTにおける経路を識別するステップと、
    前記アカウントレコードを記憶している前記特定のノードから前記MPTの前記ルートノードまでの前記経路に沿って前記元のMPTに位置する中間ノードを識別するステップと、
    前記隔離型MPTに前記中間ノードを含めるステップと
    を含む、請求項5に記載のコンピュータ実施方法。
  9. 前記同期要求は、前記同期要求に関連付けられたブロックの高さを含み、前記元の系全体状態構造は、前記ブロックの高さに基づいて決定され、前記ブロックの高さに関連付けられたブロックが前記ブロックチェーンに追加された時点における前記ブロックチェーンネットワークの状態を表す、請求項1に記載のコンピュータ実施方法。
  10. ブロックチェーンネットワークによって維持管理されるブロックチェーン上に記憶されるデータを隔離するための装置であって、
    前記ブロックチェーンネットワークの軽量ノードから同期要求を受信するための受信モジュールであって、前記同期要求は、前記軽量ノードの識別情報を含む、受信モジュールと、
    前記軽量ノードの前記識別情報に関連付けられた1つまたは複数のパーミッションを識別するための第1の識別モジュールと、
    複数のアカウントレコードを含む元の系全体状態構造を決定するための決定モジュールであって、各アカウントレコードは、前記アカウントレコードに関連付けられたアカウントについての状態情報を記憶する、決定モジュールと、
    前記1つまたは複数のパーミッションに基づいて、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードのサブセットを識別するための識別モジュールと、
    前記元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成するための生成モジュールであって、前記隔離型系全体状態構造は、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードの前記サブセットのみを含む、生成モジュールと、
    前記隔離型系全体状態データ構造を含む前記軽量ノードに応答を送信するための送信モジュールと
    を含む、装置。
  11. 前記軽量ノードの前記識別情報に関連付けられた前記1つまたは複数のパーミッションを識別することは、
    前記ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報について1つまたは複数のパーミッションを指定するアクセス制御テーブルにアクセスすることと、
    前記軽量ノードの前記識別情報について前記アクセス制御テーブルにおいて指定された1つまたは複数のパーミッションを識別することと
    を含む、請求項10に記載の装置。
  12. 前記アクセス制御テーブルは、
    前記ブロックチェーンネットワークの前記複数の軽量ノードの前記複数の識別情報の各々に関連付けられた識別情報クラスと、
    前記アクセス制御テーブルに含まれる各識別情報クラスに関連付けられたパーミッションと
    を含む、請求項11に記載の装置。
  13. 前記1つまたは複数のパーミッションは、前記軽量ノードの前記識別情報がパーミッション設定されたアカウントアドレスのセットに関連付けられたアカウントレコードにアクセスする権限を与えられていることを指定するパーミッションを含む、請求項11に記載の装置。
  14. 前記元の系全体状態構造は、元のMerkle Patricia Trie(MPT)であり、前記隔離型系全体状態構造は、隔離型MPTである、請求項10に記載の装置。
  15. 前記隔離型MPTを生成することは、前記隔離型MPTを作成するように前記元のMPTを修正することであって、
    前記軽量ノードによってアクセス可能ではないと決定されたすべてのアカウントレコードを前記元のMPTから除去することと、
    ブランチの各々のルートハッシュのみそのまま残してすべてのアカウントレコードが除去された前記元のMPTの前記ブランチを除去することと
    を含む、修正することを含む、請求項14に記載の装置。
  16. アカウントレコードは、前記軽量ノードが前記アカウントレコードに対するリードアクセスを有していないことを前記1つまたは複数のパーミッションが示している場合には、前記軽量ノードによってアクセス可能ではないと決定される、請求項15に記載の装置。
  17. 前記隔離型MPTを生成することは、
    前記軽量ノードに対してアクセス可能となっている前記元のMPT内のアカウントレコードを識別することであって、前記アカウントレコードは、前記元のMPTの特定のノードにあり、前記ノードは、ブランチノードまたはリーフノードである、ことと、
    前記アカウントレコードを記憶している前記特定のノードから前記MPTのルートノードまでの前記元のMPTにおける経路を識別することと、
    前記アカウントレコードを記憶している前記特定のノードから前記MPTの前記ルートノードまでの前記経路に沿って前記元のMPTに位置する中間ノードを識別することと、
    前記隔離型MPTに前記中間ノードを含めることと
    を含む、請求項14に記載の装置。
  18. 前記同期要求は、前記同期要求に関連付けられたブロックの高さを含み、前記元の系全体状態構造は、前記ブロックの高さに基づいて決定され、前記ブロックの高さに関連付けられたブロックが前記ブロックチェーンに追加された時点における前記ブロックチェーンネットワークの状態を表す、請求項10に記載の装置。
  19. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合されるとともに、前記1つまたは複数のプロセッサによって実行可能な命令を記憶している、1つまたは複数のコンピュータ可読メモリとを含み、前記命令は、
    ブロックチェーンネットワーク内のブロックチェーンノードによって、前記ブロックチェーンネットワークの軽量ノードから同期要求を受信することであって、前記同期要求は、前記軽量ノードの識別情報を含む、ことと、
    前記ブロックチェーンノードによって、前記軽量ノードの前記識別情報に関連付けられた1つまたは複数のパーミッションを識別することと、
    前記ブロックチェーンノードによって、複数のアカウントレコードを含む元の系全体状態構造を決定することであって、各アカウントレコードは、前記アカウントレコードに関連付けられたアカウントについての状態情報を記憶する、ことと、
    前記ブロックチェーンノードによって、前記1つまたは複数のパーミッションに基づいて、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードのサブセットを識別することと、
    前記ブロックチェーンノードによって、前記元の系全体状態データ構造に基づいた隔離型系全体状態構造を生成することであって、前記隔離型系全体状態構造は、前記軽量ノードによるアクセスについて権限を与えられている前記複数のアカウントレコードの前記サブセットのみを含む、ことと、
    前記ブロックチェーンノードによって、前記隔離型系全体状態データ構造を含む前記軽量ノードに応答を送信することと
    をする、システム。
  20. 前記軽量ノードの前記識別情報に関連付けられた前記1つまたは複数のパーミッションを識別することは、
    前記ブロックチェーンネットワークの複数の軽量ノードの複数の識別情報について1つまたは複数のパーミッションを指定するアクセス制御テーブルにアクセスすることと、
    前記軽量ノードの前記識別情報について前記アクセス制御テーブルにおいて指定された1つまたは複数のパーミッションを識別することとを含む、請求項19に記載のシステム。
JP2019553830A 2019-03-21 2019-03-21 ブロックチェーンネットワークにおけるデータ隔離 Active JP6821053B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/078944 WO2019101246A2 (en) 2019-03-21 2019-03-21 Data isolation in blockchain networks

Publications (3)

Publication Number Publication Date
JP2020522036A true JP2020522036A (ja) 2020-07-27
JP2020522036A5 JP2020522036A5 (ja) 2021-01-07
JP6821053B2 JP6821053B2 (ja) 2021-01-27

Family

ID=66631377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553830A Active JP6821053B2 (ja) 2019-03-21 2019-03-21 ブロックチェーンネットワークにおけるデータ隔離

Country Status (10)

Country Link
US (2) US11228596B2 (ja)
EP (2) EP3610383B1 (ja)
JP (1) JP6821053B2 (ja)
KR (1) KR102243754B1 (ja)
CN (1) CN110998556B (ja)
AU (1) AU2019203869A1 (ja)
CA (1) CA3058238C (ja)
SG (1) SG11201909091TA (ja)
TW (1) TWI721691B (ja)
WO (1) WO2019101246A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019101246A2 (en) * 2019-03-21 2019-05-31 Alibaba Group Holding Limited Data isolation in blockchain networks
SG11202001975SA (en) 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
SG11202001989WA (en) 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
CN111108478B (zh) 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
CN110609872B (zh) * 2019-09-20 2021-03-05 北京海益同展信息科技有限公司 用于同步节点数据的方法和装置
US11281794B2 (en) * 2019-09-26 2022-03-22 Microsoft Technology Licensing, Llc Fine grained access control on procedural language for databases based on accessed resources
SG11202010682UA (en) * 2019-11-29 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd Taking snapshots of blockchain data
US11750392B1 (en) * 2019-12-10 2023-09-05 Hiro Systems Pbc Authenticated index data structure with back-pointers
CN111159289B (zh) * 2019-12-17 2024-03-01 深圳前海微众银行股份有限公司 一种区块同步的方法及装置
US20230085773A1 (en) * 2020-02-18 2023-03-23 Freeverse, S.L. System and method for dynamic computation scaling in distributed ledger networks
CN111339191B (zh) * 2020-02-20 2023-05-26 百度在线网络技术(北京)有限公司 一种区块链的数据存储方法、装置、设备和介质
CN111383378B (zh) * 2020-03-11 2021-07-30 合肥鼎方信息科技有限公司 基于区块链架构的门禁识别系统信息节点互联方法
CN111447069B (zh) * 2020-03-23 2021-10-26 腾讯科技(深圳)有限公司 一种基于区块链的低频访问数据处理方法
CN111159308B (zh) * 2020-04-02 2020-07-24 支付宝(杭州)信息技术有限公司 基于区块链网络的交易记录共享方法、装置及电子设备
CN111475575B (zh) 2020-04-09 2021-08-10 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
KR20220031341A (ko) 2020-09-04 2022-03-11 주식회사 엘지에너지솔루션 전지팩 조립 시스템 및 이를 이용한 전지팩의 조립 방법
CN112130772A (zh) * 2020-09-29 2020-12-25 合肥城市云数据中心股份有限公司 一种基于稀疏随机纠删码技术的区块链安全存储方法
CN112883117B (zh) * 2020-12-24 2022-03-15 腾讯科技(深圳)有限公司 一种数据同步方法、设备以及计算机可读存储介质
CN112714192B (zh) * 2021-03-25 2021-07-02 腾讯科技(深圳)有限公司 数据同步方法、装置、计算机可读介质及电子设备
CN112949582A (zh) * 2021-03-30 2021-06-11 吉安职业技术学院 基于区块链的生物特征采集系统
KR102650336B1 (ko) * 2021-05-04 2024-03-22 계명대학교 산학협력단 외부 저장소와 pbft 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치
CN113259130B (zh) * 2021-06-21 2021-09-14 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
CN114092252A (zh) * 2021-11-26 2022-02-25 成都质数斯达克科技有限公司 一种区块链交易执行方法、装置、设备及可读存储介质
CN114531450B (zh) * 2021-12-30 2024-01-09 北京天成通链科技有限公司 一种基于高度的区块链对等网络数据同步方法
CN114357080A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 账户数据的读写方法及装置
WO2023177136A1 (ko) * 2022-03-14 2023-09-21 계명대학교 산학협력단 서비스 제공을 위한 블록체인 데이터 저장 방법 및 저장 관리장치
US11954074B2 (en) * 2022-04-28 2024-04-09 Micro Focus Llc Method and apparatus for efficient file/folder synchronization
CN116614316B (zh) * 2023-07-20 2023-09-22 国网四川省电力公司信息通信公司 多终端场景的区块链数据安全控制方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140375A1 (en) * 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
US20180374173A1 (en) * 2016-03-01 2018-12-27 Huawei Technologies Co., Ltd Copyright management method and system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170132620A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US9635000B1 (en) * 2016-05-25 2017-04-25 Sead Muftic Blockchain identity management system based on public identities ledger
US20170345011A1 (en) 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US10282558B2 (en) * 2016-09-02 2019-05-07 The Toronto-Dominion Bank System and method for maintaining a segregated database in a multiple distributed ledger system
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
US10586210B2 (en) * 2016-11-30 2020-03-10 International Business Machines Corporation Blockchain checkpoints and certified checkpoints
CN106796688B (zh) * 2016-12-26 2020-12-18 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
CA3055829A1 (en) * 2017-03-08 2018-09-13 Ip Oversight Corporation System and method for creating commodity asset-secured tokens from reserves
CN106899412A (zh) * 2017-03-30 2017-06-27 北京链银博科技有限责任公司 一种区块链隐私保护方法、装置及系统
US10708070B2 (en) * 2017-05-24 2020-07-07 Nxm Labs Canada Inc. System and method for utilizing connected devices to enable secure and anonymous electronic interaction in a decentralized manner
US10528551B2 (en) * 2017-09-29 2020-01-07 Oracle International Corporation System and method for providing a representational state transfer proxy service for a blockchain cloud service
CN107807984A (zh) * 2017-10-31 2018-03-16 上海分布信息科技有限公司 一种分区的区块链网络及其实现分区共识的方法
US20190158275A1 (en) * 2017-11-22 2019-05-23 Michael Beck Digital containers for smart contracts
US10783272B2 (en) * 2017-12-08 2020-09-22 Nec Corporation Method and system of preserving privacy for usage of lightweight blockchain clients
CN108230109A (zh) 2018-01-02 2018-06-29 罗梅琴 一种基于区块链技术的共享系统及方法
CN108282539A (zh) * 2018-02-06 2018-07-13 北京奇虎科技有限公司 基于双层网络的去中心化存储系统
US10365922B1 (en) * 2018-04-10 2019-07-30 Sap Se Distributed-ledger based enterprise application deployment and management
CN108563788B (zh) 2018-04-27 2023-05-23 腾讯科技(深圳)有限公司 基于区块链的数据查询方法、装置、服务器及存储介质
CN109002349B (zh) 2018-06-25 2021-01-05 百度在线网络技术(北京)有限公司 应用程序交互方法、实现方法、装置、设备和介质
CN109326337B (zh) 2018-09-06 2021-09-03 西安电子科技大学 基于区块链的电子医疗记录存储和共享的模型及方法
TWM572512U (zh) 2018-09-28 2019-01-01 彰化商業銀行股份有限公司 使用區塊鏈技術之跨行帳戶交易查詢系統
CN109492419B (zh) 2018-11-27 2022-07-01 众安信息技术服务有限公司 用于获取区块链中的数据的方法、装置及存储介质
BR112019015423A8 (pt) * 2018-12-13 2023-03-28 Advanced New Technologies Co Ltd Método implementado por computador para proteger dados sensíveis armazenados em um protocolo de confiança mantido por uma rede de protocolo de confiança, meio de armazenamento não transitório, legível por computador e sistema
WO2019101246A2 (en) * 2019-03-21 2019-05-31 Alibaba Group Holding Limited Data isolation in blockchain networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170140375A1 (en) * 2015-11-15 2017-05-18 Michael Kunstel System and Method for Permissioned Distributed Block Chain
US20180374173A1 (en) * 2016-03-01 2018-12-27 Huawei Technologies Co., Ltd Copyright management method and system
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
JP2020522796A (ja) * 2017-06-01 2020-07-30 シュヴェイ, インク. ディー/ビー/エー アクソーニSCHVEY, INC. d/b/a AXONI 安全なアクセス制限を管理する分散型のプライベートにサブスペース化されたブロックチェーン・データ構造

Also Published As

Publication number Publication date
SG11201909091TA (en) 2019-10-30
TW202036419A (zh) 2020-10-01
US11228596B2 (en) 2022-01-18
AU2019203869A1 (en) 2019-05-31
CN110998556A (zh) 2020-04-10
US20210385223A1 (en) 2021-12-09
TWI721691B (zh) 2021-03-11
EP3893433A1 (en) 2021-10-13
WO2019101246A3 (en) 2020-01-23
WO2019101246A2 (en) 2019-05-31
EP3610383A4 (en) 2020-05-27
CA3058238A1 (en) 2019-05-31
KR20200113155A (ko) 2020-10-06
EP3610383A2 (en) 2020-02-19
EP3610383B1 (en) 2021-07-07
KR102243754B1 (ko) 2021-04-26
JP6821053B2 (ja) 2021-01-27
CA3058238C (en) 2021-03-02
CN110998556B (zh) 2023-09-15
US11265322B2 (en) 2022-03-01
EP3893433B1 (en) 2023-12-27
US20200304505A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
JP6821053B2 (ja) ブロックチェーンネットワークにおけるデータ隔離
JP6856772B2 (ja) 信頼できる実行環境において実行されるスマートコントラクト動作に基づくブロックチェーンデータの処理
CN111448781B (zh) 一种计算机实现的用于通信共享的区块链数据的方法
JP6830549B2 (ja) ブロックチェーンのワールドステートマークルパトリシアトライ(world state merkle patricia trie)サブツ
JP6779389B2 (ja) 信頼できる実行環境下でのブロックチェーンデータの処理および保存
CN110462621B (zh) 在区块链网络中管理敏感数据元素
TWI715338B (zh) 用於配置用於區塊鏈網路的基於現場可程式化閘陣列的可信執行環境的方法、系統和裝置
TWI737392B (zh) 電腦實現的用於由區塊鏈網路的區塊鏈節點在可信賴執行環境tee中處理區塊鏈資料的方法、通信共享區塊鏈資料的系統及用於通信共享區塊鏈資料的裝置
US20190372756A1 (en) Method for managing content based on blockchain and system for performing the method
JP2020527259A (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
CN111108478A (zh) 共享的区块链数据存储
JP2020522034A (ja) 複数の鍵ペア署名を使用したプログラム実行およびデータ証明スキーム
KR20200083936A (ko) 블록체인 네트워크에서의 트랜잭션의 병렬 실행
CN111837115A (zh) 共享的区块链数据存储
TW202111568A (zh) 可信賴執行環境中基於錯誤校正編碼的共享區塊鏈資料儲存
JP2021518962A (ja) ブロックチェーンブロックの非同期処理
CN111066019A (zh) 处理存储在区块链网络中的数据元素
Feldman et al. Privacy and Integrity are Possible in the Untrusted Cloud.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201120

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201120

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201203

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

R150 Certificate of patent or registration of utility model

Ref document number: 6821053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250