JP2020503585A - 論理マップを通じたスマートコントラクトデータベースの走査 - Google Patents

論理マップを通じたスマートコントラクトデータベースの走査 Download PDF

Info

Publication number
JP2020503585A
JP2020503585A JP2019521792A JP2019521792A JP2020503585A JP 2020503585 A JP2020503585 A JP 2020503585A JP 2019521792 A JP2019521792 A JP 2019521792A JP 2019521792 A JP2019521792 A JP 2019521792A JP 2020503585 A JP2020503585 A JP 2020503585A
Authority
JP
Japan
Prior art keywords
key
kvps
index
kvp
computer
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
JP2019521792A
Other languages
English (en)
Other versions
JP6869342B2 (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 JP2020503585A publication Critical patent/JP2020503585A/ja
Application granted granted Critical
Publication of JP6869342B2 publication Critical patent/JP6869342B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Tires In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本開示の実装形態は、スマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の第1の1つまたは複数のkey-value pair(KVP)のうちの1つに対応するインデックスの第1の番号を決定することと、インデックスの第1の番号に基づいて、MPTを走査するためのマップの第2の1つまたは複数のKVPのうちの第1のKVPの第1の鍵を決定することと、第1のKVPの第1の鍵に対応する第1の値を決定することと、第2の1つまたは複数のKVPのうちの第2のKVPの第2の鍵を決定することと、第2のKVPの第2の鍵に対応する第2の値を取り出すこととを含む。

Description

本開示は、論理マップを通じたスマートコントラクトデータベースの走査に関する。
ブロックチェーンシステム、コンセンサスネットワーク、分散型台帳システム(DLS)ネットワーク、またはブロックチェーンとも呼ばれ得るブロックチェーンネットワークは、参加するエンティティが安全にかつ変更不可能にデータを記録することを可能にする。ブロックチェーンはトランザクションの台帳として記述されることが可能であり、ブロックチェーンの複数のコピーがブロックチェーンネットワークにわたって記録される。例示的なタイプのブロックチェーンには、パブリックブロックチェーン、コンソーシアムブロックチェーン、およびプライベートブロックチェーンがあり得る。パブリックブロックチェーンは、そのブロックチェーンを使用しコンセンサスプロセスに参加するためにすべてのエンティティに対して開かれている。コンソーシアムブロックチェーンは、コンセンサスプロセスがノードの事前に選択されたセットによって制御される、ブロックチェーンである。プライベートブロックチェーンは、読取りパーミッションおよび書込みパーミッションを集中的に制御する特定のエンティティだけに提供される。
スマートコントラクトは、ブロックチェーン上で動くコンピュータコードであり得る。スマートコントラクトは、スマートコントラクトの関係者が互いに対話するために合意した、所定の規則のセットを含み得る。所定の規則が満たされると、合意が自動的に施行され得る。スマートコントラクトは、ブロックチェーンプラットフォーム内で符号化され、実行される。例示的なブロックチェーンプラットフォームには、限定はされないが、スイス、ツークのEthereum Foundationによって提供されるEthereumがある。Ethereumなどの一部のブロックチェーンプラットフォームでは、状態機械を使用することができ、この場合トランザクションは状態間の遷移をもたらし得る。状態は、key-value pair(KVP)として表現され得る。いくつかの場合、Merkle Patricia Tree(MPT)が、KVPを保存するための方法として使用される。MPTのサイズは、KVPの数とともに増大し得る。KVPの走査、読取り、または削除などの動作を実行するには、KVPの対応する鍵が、ユーザによって知られている必要がある。この動作の効率は、MPTサイズの増大とともに低下し得る。
本開示の実装形態は、論理マップに基づいてスマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の1つまたは複数のkey-value pair(KVP)を走査することを対象とする。より具体的には、本開示の実装形態は、複数の関数を含む論理マップを構成することを対象とする。MPTの中の1つまたは複数のKVPを走査するために、それらの関数を使用して複数のKVPを操作することができる。
いくつかの実装形態では、活動は、スマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の第1の1つまたは複数のkey-value pair(KVP)のうちの1つに対応するインデックスの第1の番号を決定することと、インデックスの第1の番号に基づいて、MPTを走査するためのマップの第2の1つまたは複数のKVPのうちの第1のKVPの第1の鍵を決定することと、第1のKVPの第1の鍵に対応する第1の値を決定することと、第2の1つまたは複数のKVPのうちの第2のKVPの第2の鍵を決定することと、第2のKVPの第2の鍵に対応する第2の値を取り出すこととを含む。他の実装形態は、対応するシステムと、装置と、コンピュータ記録デバイスに符号化される、方法の活動を実行するように構成されるコンピュータプログラムとを含む。
これらのおよび他の実装形態は各々、任選選択で以下の特徴のうちの1つまたは複数を含むことがあり、それらの特徴とは、インデックスの第2の番号に基づいて、第2の1つまたは複数のKVPのうちの第3のKVPの第3の鍵を決定すること、第3のKVPの第3の鍵に対応する第3の値を決定すること、第4の1つまたは複数のKVPのうちの第4のKVPの第4の鍵を決定すること、第4のKVPの第4の鍵に対応する第4の値を取り出すこと、インデックスの第2の番号が削除されないと決定すること、第1の1つまたは複数のKVPの中のKVPの数が第2の1つまたは複数のKVPの中のKVPの数以下であること、第1の1つまたは複数のKVPの鍵および第2の1つまたは複数のKVPの鍵がハッシュ値として記録されること、第2の1つまたは複数のKVPが、第1の1つまたは複数のKVPに含まれる1つまたは複数の値と同じ1つまたは複数の値と、第1の1つまたは複数のKVPに含まれる1つまたは複数の鍵と同じ1つまたは複数の値とを含むこと、第2の1つまたは複数のKVPが、インデックスに含まれる番号を示す1つまたは複数の値と、第1の1つまたは複数のKVPのうちの1つまたは複数が削除されるかどうかを示す1つまたは複数の値と、第1の1つまたは複数のKVPの中のKVPの量とを含むことである。
本開示はまた、1つまたは複数のプロセッサによって実行されると、本明細書で提供される方法の実装形態に従って1つまたは複数のプロセッサに動作を実行させる命令が記録された、1つまたは複数のプロセッサに結合される1つまたは複数の非一時的コンピュータ可読記録媒体を提供する。
本開示はさらに、本明細書で提供される方法を実施するためのシステムを提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに本明細書で提供される方法の実装形態に従って動作を実行させる命令が記録された、1つまたは複数のプロセッサに結合されるコンピュータ可読記録媒体とを含む。
本開示による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることを了解されたい。すなわち、本開示による方法は、本明細書で特に説明される態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴および利点が、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
本開示の実装形態を実行するために使用され得る例示的な環境の図である。 本開示の実装形態による例示的な概念のアーキテクチャの図である。 本開示の実装形態による、MPTを走査するための論理マップを作成する例示的なプロセスの図である。 本開示の実装形態による、例示的な論理マップおよび例示的なMPTに対応する例示的なKVPの図である。 本開示の実装形態による、MPTを走査するための論理マップを使用する例示的なプロセスの図である。 本開示の実装形態による、スマートコントラクトデータベースを走査する例示的なプロセスの図である。
様々な図における同様の参照記号は同様の要素を示す。
本開示の実装形態は、論理マップに基づいてスマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の1つまたは複数のkey-value pair(KVP)を走査することを対象とする。より具体的には、本開示の実装形態は、複数の関数を含む論理マップを構成することを対象とする。関数は、MPTの中の1つまたは複数のKVPを走査するために、複数のKVPを操作するために使用され得る。
いくつかの実装形態では、活動は、スマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の第1の1つまたは複数のkey-value pair(KVP)のうちの1つに対応するインデックスの第1の番号を決定することと、インデックスの第1の番号に基づいて、MPTを走査するためのマップの第2の1つまたは複数のKVPのうちの第1のKVPの第1の鍵を決定することと、第1のKVPの第1の鍵に対応する第1の値を決定することと、第2の1つまたは複数のKVPのうちの第2のKVPの第2の鍵を決定することと、第2のKVPの第2の鍵に対応する第2の値を取り出すこととを含む。
本開示の、および上で紹介された実装形態のさらなる文脈を提供すると、コンセンサスネットワーク(たとえば、ピアツーピアノードからなる)、分散型台帳システム、または単にブロックチェーンとも呼ばれ得る、ブロックチェーンネットワークは、参加するエンティティが安全かつ変更不可能にトランザクションを行いデータを記録することを可能にする。本開示の実装形態は、ブロックチェーンネットワークのスマートコントラクトに関して、本明細書でさらに詳細に説明される。しかしながら、本開示の実装形態はあらゆる適切なブロックチェーンプラットフォームにおいて実現され得ることが企図される。
いくつかの例では、スマートコントラクトは、様々な関係者に影響する契約条件を有する、現実世界の法的な契約のデジタル表現として説明され得る。スマートコントラクトは、例示的な文脈では、コンソーシアムブロックチェーンネットワーク内で実装され、記録され、(必要に応じて)更新され、実行される。スマートコントラクトと関連付けられる契約関係者(たとえば、購入者および販売者)は、コンソーシアムブロックチェーンネットワークにおいてノードとして表現される。いくつかの例では、契約関係者は、(たとえば、スマートコントラクトの関係者として)スマートコントラクトと関連付けられるエンティティ(たとえば、企業)を含み得る。
いくつかの例では、スマートコントラクトはデータを記録することができ、このデータは、情報、事実、関連付け、残高、および契約実行のための論理を実装するために必要な任意の他の情報を記録するために使用され得る。スマートコントラクトは、関数からなるコンピュータ実行可能プログラムとして記述されることが可能であり、このとき、スマートコントラクトのインスタンスが作成されることが可能であり、その中の論理の実行のために関数が呼び出されることが可能である。いくつかの例では、スマートコントラクトは、そのうちの1つまたは複数も契約として記述され得る、様々な構成要素を含み得る。いくつかの例では、スマートコントラクトの構成要素の1つまたは複数は、スマートコントラクト全体に対する更新の一部として更新され得る。
いくつかの実装形態では、スマートコントラクトの例示的な構成要素は、限定はされないが、コントローラコントラクト、サービスコントラクト、およびデータコントラクトを含み得る。コントローラコントラクトは、スマートコントラクトを始める契約開始者による要求を受け取ると、ディスパッチャによって定義され得る。スマートコントラクトの開始は、コンソーシアムブロックチェーンネットワークの中のノードに(たとえば、スマートコントラクトの関係者になる予定のエンティティ)にスマートコントラクトを提供することを含み得る。スマートコントラクトの開始はまた、スマートコントラクトが作成された時間と、スマートコントラクトの開始者の識別情報とを特定し得る。いくつかの例では、サービスコントラクトはスマートコントラクトの論理を含む。この論理は、事象の順序の定義と、スマートコントラクトと関連付けられるエンティティとの関係とを含めて、契約がどのように実行されるかを定義することができる。データコントラクトは、限定はされないが、スマートコントラクトの対象である製品および/またはサービスと、その製品および/またはサービスの提供のためのスマートコントラクトについての支払情報とを含む、スマートコントラクトの条件を含む。データコントラクトに記録されるデータは、限定はされないが、残高、支払、受領、引き渡し、納期、およびスマートコントラクトの論理を実装するために必要な任意の他の情報を含む、情報、事実、および関連付けを記録するために使用され得る。
技術的には、スマートコントラクトは、オブジェクトおよびオブジェクト指向クラスに基づいて実装され得る。たとえば、スマートコントラクトの条件および構成要素は、スマートコントラクトを実装するアプリケーションによって扱われるオブジェクトとして表現され得る。スマートコントラクト(またはスマートコントラクトの中のオブジェクト)は、ちょうど他のオブジェクト指向オブジェクトのように、別のスマートコントラクト(または同じスマートコントラクトの中のあるオブジェクト)を呼び出すことができる。オブジェクトによって行われる呼出しは、たとえば、別のクラスのオブジェクトを作成し、更新し、削除し、伝播し、またはそれと通信するための呼出しであり得る。オブジェクト間の呼出しは、関数、メソッド、アプリケーションプログラミングインターフェース(API)、または他の呼出し機構として実装され得る。たとえば、第1のオブジェクトは第2のオブジェクトを作成するためにある関数を呼び出すことができる。
本開示の実装形態は、論理マップに基づいてスマートコントラクトデータベースによって使用されるMPTの1つまたは複数のKVPを走査することを対象とする。より具体的には、本開示の実装形態は、複数の関数を含む論理マップを構成することを対象とする。関数は、MPTの中の1つまたは複数のKVPを走査するために、複数のKVPを操作するために使用され得る。
図1は、本開示の実装形態を実行するために使用され得る例示的な環境100を図示する。いくつかの例では、例示的な環境100は、エンティティがパブリックブロックチェーン102に参加することを可能にする。例示的な環境100は、コンピューティングシステム106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはこれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は有線および/またはワイヤレス通信リンクを通じてアクセスされ得る。
図示される例では、コンピューティングシステム106、108は各々、ブロックチェーン104にトランザクションを記録するための、コンソーシアムブロックチェーンシステム102の中のノードとしての参加を可能にする、任意の適切なコンピューティングシステムを含み得る。例示的なコンピューティングデバイスには、限定はされないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、コンソーシアムブロックチェーンシステム102と対話するための、1つまたは複数のコンピュータで実施されるサービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティ(たとえば、ユーザA)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどの、第1のエンティティのコンピュータで実施されるサービスをホストすることができる。コンピューティングシステム108は、第2のエンティティ(たとえば、ユーザB)が1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどの、第2のエンティティのコンピュータで実施されるサービスをホストすることができる。図1の例では、コンソーシアムブロックチェーンシステム102はノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108はそれぞれ、コンソーシアムブロックチェーンシステム102に参加する第1のエンティティおよび第2のエンティティのノードを提供する。
図2は、本開示の実装形態による例示的な概念のアーキテクチャ200を図示する。例示的な概念のアーキテクチャ200は、エンティティレイヤ202、ホストされたサービスレイヤ204、およびブロックチェーンレイヤ206を含む。図示される例では、エンティティレイヤ202は、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)という3つのエンティティを含み、各エンティティがそれぞれのトランザクション管理システム208をもつ。
図示される例では、ホストされるサービスレイヤ204は、各トランザクション管理システム208のためのブロックチェーンインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、通信プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用してネットワーク(たとえば、図1のネットワーク110)を通じてそれぞれのブロックチェーンインターフェース210と通信する。いくつかの例では、各ブロックチェーンインターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンレイヤ206との間の通信接続を提供する。より具体的には、各ブロックチェーンインターフェース210は、それぞれのエンティティがブロックチェーンレイヤ206のコンソーシアムブロックチェーンシステム212に記録されるトランザクションを行うことを可能にする。いくつかの例では、ブロックチェーンインターフェース210とブロックチェーンレイヤ206との間の通信は、リモートプロシージャコール(RPC)を使用して行われる。いくつかの例では、ブロックチェーンインターフェース210は、それぞれのトランザクション管理システム208のためのコンセンサスノードを「ホスト」する。たとえば、ブロックチェーンインターフェース210は、コンソーシアムブロックチェーンシステム212へのアクセスのためにアプリケーションプログラミングインターフェース(API)を提供する。
上で紹介されたように、スマートコントラクトは、ブロックチェーンプラットフォーム内で符号化され、実行される。例示的なブロックチェーンプラットフォームには、限定はされないが、スイス、ツークのEthereum Foundationによって提供されるEthereumがある。本開示の実装形態はEthereumに関して本明細書でさらに詳細に説明されるが、本開示の実装形態は任意の適切なプラットフォームで実現され得ることが企図される。
Ethereumなどの一部のブロックチェーンプラットフォームでは、状態機械を使用することができ、この場合トランザクションは状態間の遷移をもたらし得る。いくつかの場合、EthereumブロックチェーンのためのMPTとして符号化される状態は、KVPとして記録される。KVPの鍵および値はマッピング関係を形成することができる。しかしながら、鍵が知られていない限り、マッピング関係だけに基づいてKVPを走査することはできない。高水準において、本開示の実装形態は、複数のKVPを含む論理マップを作成して運用するための機能を提供する。論理マップの複数のKVPに基づいて、ユーザは、走査するために、または他の操作を実行するために、MPTのKVPを選択することができる。
図3は、本開示の実装形態による、MPTを走査するための論理マップを作成する例示的なプロセス300を図示する。提示を明確にするために、以下の説明は概して、この説明では他の図面の文脈で例示的なプロセス300を説明する。しかしながら、例示的なプロセス300は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適宜実行され得ることが理解されるであろう。いくつかの実装形態では、例示的なプロセス300の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
302において、論理マップの1つまたは複数の鍵が生成され得る。論理マップは、MPTに含まれる1つまたは複数のKVPを走査するために使用され得る。図4を参照すると、たとえば、図4は、本開示の実装形態による、例示的な論理マップおよび例示的なMPTに対応する例示的なKVP400を図示する。この例400では、MPTの2つの選択されたKVPを走査するために論理マップが作成されると仮定される。表402はMPVの論理KVPを示し、これは、鍵「Alice」および対応する値「22」を伴う第1のKVPと、鍵「Bob」および対応する値「23」を伴う第2のKVPとを含む。表404は、スマートコントラクトデータベースに記録される2つのKVPの実際の形式を示す。表404に示されるように、鍵はハッシュ値としてデータベースに記録され得る。
MPTの2つのKVPを走査するために使用され得るKVPを伴う論理マップを作成するために、マップの複数のKVPが生成され得る。たとえば、論理マップが表406に示されるように「Dict_A」という名称であり、「Dict_A_KEY_VALUE_Alice」鍵が値「22」と関連するように生成されることが可能であり、表402の中の鍵「Alice」に割り当てられるインデックス「1」に対応する「Dict_A_KEY_INDEX_Alice」鍵が生成されることが可能であると仮定する。同様に、「Dict_A_KEY_VALUE_Bob」鍵が値「23」と関連するように生成されることが可能であり、表402の中の鍵「Bob」に割り当てられるインデックス「2」に対応する「Dict_A_KEY_INDEX_Bob」が生成されることが可能である。MPTの中のKVPと同様に、論理マップの中のKVPの鍵は、表408に示されるように、実際のスマートコントラクトデータベースにハッシュ値として記録され得る。
いくつかの実装形態では、追加のインデックス鍵が論理マップのために生成され得る。インデックス鍵は、論理マップの中の他の鍵を特定する値と関連付けられ得る。たとえば、表406の中の鍵「Dict_A_INDEX_KEY_1」および「Dict_A_INDEX_KEY_2」は、値「Alice」および「Bob」と関連付けられ得る。値「Alice」および「Bob」は、「Dict_A_KEY_VALUE_Alice」および「Dict_A_KEY_VALUE_Bob」などの、論理マップの中の他の鍵を特定するために使用され得る。
304において、1つまたは複数の鍵のうちの1つの値は、マップを作成するユーザによって入力され得る。たとえば、鍵「Dict_A_KEY_VALUE_Alice」を生成した後で、ユーザはその鍵と関連付けるべき値「Alice」を入力することができる。この値は、ユーザがマップに含めることを望む、MPTの中のKVPの値であり得る。
306において、論理マップを走査するためのインデックスが存在するかどうかが決定され得る。いくつかの実装形態では、この決定は、インデックスに対応する鍵(たとえば、「Dict_A_KEY_INDEX_Alice」)が存在するかどうかに基づき得る。存在する場合、例示的なプロセス300は308に進み、そこで削除フラグに対応する鍵が値「False」に設定される。再び図4を参照すると、たとえば、インデックス値「1」が存在する場合、「Alice」に対応するインデックスが削除されるかどうかを示す鍵「Dict_A_KEY_DELETE_Alice」は、値「False」に設定され得る。同様に、インデックス値「2」が存在する場合、鍵「Dict_A_KEY_DELETE_Bob」が値「False」に設定され得る。それ以外の場合、図3に図示される例示的なプロセス300は310に進む。
310において、新しいインデックスが追加される。いくつかの実装形態では、新しいインデックスを追加するために、論理マップに追加されたすべてのインデックスを示すマップの別の鍵が作成され得る。たとえば、「Alice」および「Bob」に対応するインデックスが論理マップに追加された場合、論理マップのサイズは2である。インデックス「2」が論理マップから削除されるとすると、それでも論理マップのサイズは2である。再び図4を参照すると、論理マップのサイズに対応する例示的な鍵を「Dict_A_SIZE」として表現することができ、その対応する値は「2」である。インデックス「2」が削除される場合、マップのサイズは、「Bob」に割り当てられる新しいインデックスを含むように、1だけ増やされ得る。たとえば、鍵「Dict_A_KEY_INDEX_Bob」および鍵「Dict_A_SIZE」は今や、値「3」に対応し得る。それと比較して、表406の中の鍵「Dict_A_LENGTH」は、論理マップに含まれる実際のKVPの数を示すことができる。インデックス「2」が削除され、鍵「Dict_A_KEY_INDEX_Bob」が今や値「3」に対応する場合であっても、「Dict_A_LENGTH」はまだ2であり、それは2つの鍵「Alice」および「Bob」だけが論理マップによってマッピングされるからである。しかしながら、鍵「Dict_A_KEY_DELETE_Bob」が値「False」に対応し、新しいインデックスが論理マップの中の別のKVPを含むように追加される場合、鍵「Dict_A_LENGTH」の値は1だけ増やされ得る。
例示的なプロセス300の説明に従って論理マップを作成するための例示的な疑似コードは、次のように表現され得る。
def imap_set(self, key, value):
if self[imap_key_index + key] not null :
key_index = self[imap_key_index + key]
self[imap_key_value + key] = value
if self[imap_index_deleted_flag + key_index] == True:
self[imap_index_deleted_flag + key_index] = False
self.imap_size += 1
else:
key_index = self.imap_length
self.imap_length = self.imap_length + 1
self[imap_key_index + key] = key_index
self[imap_index_key + key_index] = key
self[imap_key_value + key] = value
self[imap_index_deleted_flag + key_index] = False
self.imap_size += 1
図5は、本開示の実装形態による、MPTを走査するための論理マップを使用する例示的なプロセス500を図示する。提示を明確にするために、以下の説明は概して、この説明では他の図面の文脈で例示的なプロセス500を説明する。しかしながら、例示的なプロセス500は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適宜実行され得ることが理解されるであろう。いくつかの実装形態では、例示的なプロセス500の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
502において、インデックスに対応する鍵が特定される。いくつかの実装形態では、MPTの中のKVPは、論理マップにおいて定義されるインデックスを通じて走査され得る。図3および図4の説明において論じられた論理マップを例として使用すると、インデックス「1」は、インデックス鍵「Dict_A_INDEX_KEY_1」を特定するために使用され得る。また、図4の表406の中の対応する値「Alice」が返され得る。インデックス鍵に基づいて値を返すための例示的な疑似コードは次のように表現され得る。
def imap_get_key_by_index(self, index):
key = self[imap_index_key + index]
return key
図4の表406に示される論理マップに基づくと、「Dict_A_INDEX_KEY_1」から返される値は「Alice」である。次いで、値「Alice」を使用して、鍵「Dict_A_KEY_VALUE_A」を特定し、MPTの中の「Alice」の真の値「22」を取り出すことができる。例示的な疑似コードは次のように表現され得る。
def imap_get_key_by_index(self, index):
key = self[imap_index_key + index]
return key
504において、インデックス鍵に対応する削除フラグが「False」であるかどうかが決定される。削除フラグは、「False」として設定されているとき、インデックス鍵が削除されないことを示し得る。それ以外の場合、削除フラグは「True」として設定される。図3の説明において論じられたように、削除フラグが「False」として設定される場合、対応するインデックスが506において返される。それ以外の場合、削除フラグは、インデックス鍵が削除されることを示し、例示的なプロセス500は508に進み、そこで対応するインデックスは「1」だけ増やされる。図4において論じられる例を参照して、例示的なプロセス500がインデックス「1」で開始すると仮定する。削除フラグが「False」である場合、インデックス「1」は削除されず、「Alice」および「22」の対応するKVPが502の説明において論じられたようなプロセスに基づいて取り出され得ることが推測され得る。それ以外の場合、インデックスは「2」に増やされる。インデックス「2」に対応する削除フラグが「False」である場合、「Bob」および「23」という対応するKVPが取り出され得る。インデックスに基づいてKVPを走査するための例示的な疑似コードは、次のように表現され得る。
def imap_next_index(self, index):
index += 1
while index < self.imap_length:
if self[imap_index_deleted_flag + index] == False:
return index
else:
index += 1
return -1
いくつかの実装形態では、論理マップは、鍵がマップに含まれるかどうかを特定するための関数を含み得る。この関数に対応する例示的な疑似コードは次のように表現され得る。
def imap_contains(self, key):
if key in self.imap_key_index:
key_index = self[imap_key_index + key]
if self[imap_index_deleted_flag + key_index] == False:
return True
return False
いくつかの実装形態では、論理マップは、論理マップからKVPを削除するための関数を含み得る。KVPが論理マップから削除される場合、削除フラグは「True」に設定されることが可能であり、対応する値は「None」に設定されることが可能であり、論理マップの「長さ」は1だけ減らされることが可能である。削除関数に対応する例示的な疑似コードは次のように表現され得る。
def imap_remove(self, key):
if key in self.imap_key_index:
self[imap_key_value + key] = None
key_index = self[imap_key_index + key]
self[imap_index_deleted_flag + key_index] = True
self.imap_length -= 1
図6は、本開示の実装形態による、スマートコントラクトデータベースを走査する例示的なプロセスを図示する。提示を明確にするために、以下の説明は概して、この説明では他の図面の文脈で例示的なプロセス600を説明する。しかしながら、例示的なプロセス600は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって、適宜実行され得ることが理解されるであろう。いくつかの実装形態では、例示的なプロセス600の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
602において、スマートコントラクトデータベースによって使用されるMPTの第1の1つまたは複数のKVPのうちの1つに対応するインデックスの第1の番号が決定される。
604において、MPTを走査するためのマップの第2の1つまたは複数のKVPのうちの第1のKVPの第1の鍵が、インデックスの第1の番号に基づいて決定される。
606において、第1のKVPの第1の鍵に対応する第1の値が決定される。
608において、第2の1つまたは複数のKVPのうちの第2のKVPの第2の鍵が決定される。いくつかの実装形態では、第1の1つまたは複数のKVPの中のKVPの数は、第2の1つまたは複数のKVPの中のKVPの数以下である。いくつかの実装形態では、第1の1つまたは複数のKVPの鍵および第2の1つまたは複数のKVPの鍵が、ハッシュ値として記録される。いくつかの実装形態では、第2の1つまたは複数のKVPは、第1の1つまたは複数のKVPに含まれる1つまたは複数の値と同じ1つまたは複数の値と、第1の1つまたは複数のKVPに含まれる1つまたは複数の鍵と同じ1つまたは複数の値とを含む。いくつかの実装形態では、第2の1つまたは複数のKVPは、インデックスに含まれる番号を示す1つまたは複数の値と、第1の1つまたは複数のKVPのうちの1つまたは複数が削除されるかどうかを示す1つまたは複数の値と、第1の1つまたは複数のKVPの中のKVPの量とを含む。
610において、第2のKVPの第2の鍵に対応する第2の値が取り出される。いくつかの例では、第2の1つまたは複数のKVPのうちの第3のKVPの第3の鍵は、インデックスの第2の番号に基づいて決定され得る。いくつかの例では、インデックスの第2の番号は削除されないものとして決定され得る。いくつかの例では、第3のKVPの第3の鍵に対応する第3の値が決定され得る。いくつかの例では、第4の1つまたは複数のKVPのうちの第4のKVPの第4の鍵が決定され得る。いくつかの例では、第4のKVPの第4の鍵に対応する第4の値が取り出され得る。
本明細書で説明される実装形態および動作は、本明細書で開示される構造もしくはそれらのうちの1つまたは複数の組合せを含めて、デジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで実装され得る。動作は、1つまたは複数のコンピュータ可読記録デバイスに記録される、または他のソースから受信されるデータに対して、データ処理装置によって実行される動作として実施され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、前述の1つのプログラマブルプロセッサ、1つのコンピュータ、1つのシステムオンチップ、またはこれらの複数、または組合せを例として含む、データを処理するための装置、デバイス、および機械を包含し得る。装置は、専用論理回路、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含み得る。装置はまた、対象のコンピュータプログラムのための実行環境を作り出すコード、たとえば、プロセッサファームウェア、プロトロルスタック、データベース管理システム、オペレーティングシステム(たとえば、1つのオペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはこれらの1つまたは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれてよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットを含む、任意の形式で展開されてよい。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記録される1つまたは複数のスクリプト)を保持するファイルの一部分、対象のプログラムに専用の単一のファイル、または複数の協調的なファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記録するファイル)に記録され得る。コンピュータプログラムは、1つの場所に位置する、または、複数の場所に分散され通信ネットワークによって相互接続される、1つのコンピュータまたは複数のコンピュータ上で実行され得る。
コンピュータプログラムの実行のためのプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受信する。コンピュータの不可欠な要素は、命令に従って活動を実行するためのプロセッサ、ならびに、命令およびデータを記録するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記録するための1つまたは複数のマスストレージデバイスも含み、または、そのマスストレージデバイスからデータを受信し、もしくはそこへデータを移し、もしくはその両方を行うように、動作可能に結合される。コンピュータは、別のデバイス、たとえば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記録デバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを記録するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および磁気光学ディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されても、またはそれに組み込まれてもよい。
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、携帯電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマート眼鏡)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含み得る。モバイルデバイスは、様々な通信ネットワーク(以下で説明される)にワイヤレスに(たとえば、高周波(RF)信号を使用して)通信することができる。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含み得る。センサは、カメラ、マイクロフォン、近接センサ、GPSセンサ、モーションセンサ、加速度計、周辺光センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセルラー無線)、温度センサ、または他のタイプのセンサを含み得る。たとえば、カメラは、可動レンズまたは固定レンズ、フラッシュ、イメージセンサ、およびイメージプロセッサを伴う、前面カメラまたは後面カメラを含み得る。カメラは、顔認識および/または虹彩認識のための詳細を捉えることが可能なメガピクセルカメラであり得る。カメラは、データプロセッサ、およびメモリに記録されるまたはリモートでアクセスされる認証情報とともに、顔認識システムを形成することができる。顔認識システムまたは1つまたは複数のセンサ、たとえば、マイクロフォン、モーションセンサ、加速度計、GPSセンサ、またはRFセンサは、ユーザ認証のために使用され得る。
ユーザとの対話を提供するために、実装形態は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびに、ユーザがそれによってコンピュータに入力を提供できるタッチスクリーン、キーボード、およびポインティングデバイスを有する、コンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは任意の形式の感覚的なフィードバック、たとえば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックであってよく、ユーザからの入力は、音響入力、発話入力、または触覚入力を含む、任意の形式で受け取られ得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信してそれからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
実装形態は、有線またはワイヤレスデジタルデータ通信(またはそれらの組合せ)の任意の形式もしくは媒体、たとえば通信ネットワークによって相互接続されるコンピューティングデバイスを使用して実装され得る。相互接続されたデバイスの例は、一般に互いから離れており典型的には通信ネットワークを介して対話する、クライアントおよびサーバである。クライアント、たとえばモバイルデバイスは、たとえば、購入、売却、支払、贈与、送付、もしくは貸付のトランザクションの実行、またはこれらの認可を行うサーバと、またはサーバを通じて、自身でトランザクションを実行することができる。そのようなトランザクションは、活動と応答が時間的に近くなるようにリアルタイムであり得る。たとえば、ある個人は、活動および応答が実質的に同時に発生することを知覚し、その個人の活動に続く応答の時間差が1ミリ秒(ms)未満もしくは1秒(s)未満であり、または応答にシステムの処理制約を考慮した意図的な遅延がない。
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せの、すべてもしくは一部分を含み得る。情報は、Long Term Evolution(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、または他のプロトコルもしくはプロトコルの組合せを含む、様々なプロトコルおよび規格に従って通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイス間で、音声データ、ビデオデータ、バイオメトリックデータ、または認証データ、または他の情報を送信することができる。
別個の実装形態として説明される特徴は、組合せで、単一の実装形態で実装され得るが、単一の実装形態として説明される特徴は、複数の実装形態で、別々に、または任意の適切な部分組合せで実装され得る。特定の順序で説明され特許請求される動作は、特定の順序が実行されなければならないこと、またはすべての図示される動作が実行されなければならないことを要求するものとして理解されるべきではない(いくつかの動作は任意選択であり得る)。適宜、マルチタスキングまたは並列処理(またはマルチタスキングと並列処理の組合せ)が実行され得る。
102 パブリックブロックチェーン
106 コンピューティングシステム
108 コンピューティングシステム
110 ネットワーク
202 エンティティレイヤ
204 ホストされたサービスレイヤ
206 パブリックブロックチェーンレイヤ
208 トランザクション管理システム
210 ブロックチェーンインターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
402 表
404 表
406 表
408 表

Claims (9)

  1. スマートコントラクトデータベースを走査するコンピュータで実行される方法であって、
    スマートコントラクトデータベースによって使用されるMerkle Patricia Tree(MPT)の第1の1つまたは複数のkey-value pair(KVP)のうちの1つに対応するインデックスの第1の番号を決定するステップと、
    前記インデックスの前記第1の番号に基づいて、前記MPTを走査するためのマップの第2の1つまたは複数のKVPのうちの第1のKVPの第1の鍵を決定するステップと、
    前記第1のKVPの前記第1の鍵に対応する第1の値を決定するステップと、
    前記第2の1つまたは複数のKVPのうちの第2のKVPの第2の鍵を決定するステップと、
    前記第2のKVPの前記第2の鍵に対応する第2の値を取り出すステップとを備える、
    コンピュータで実行される方法。
  2. 前記インデックスの第2の番号に基づいて、前記第2の1つまたは複数のKVPのうちの第3のKVPの第3の鍵を決定するステップと、
    前記第3のKVPの前記第3の鍵に対応する第3の値を決定するステップと、
    第4の1つまたは複数のKVPのうちの第4のKVPの第4の鍵を決定するステップと、
    前記第4のKVPの前記第4の鍵に対応する第4の値を取り出すステップとをさらに備える、
    請求項1に記載のコンピュータで実行される方法。
  3. 前記インデックスの前記第2の番号が削除されないと決定するステップをさらに備える、
    請求項2に記載のコンピュータで実行される方法。
  4. 前記第1の1つまたは複数のKVPの中のKVPの数が、前記第2の1つまたは複数のKVPの中のKVPの数以下である、
    請求項1に記載のコンピュータで実行される方法。
  5. 前記第1の1つまたは複数のKVPの鍵および前記第2の1つまたは複数のKVPの鍵が、ハッシュ値として記録される、
    請求項1に記載のコンピュータで実行される方法。
  6. 前記第2の1つまたは複数のKVPが、前記第1の1つまたは複数のKVPに含まれる1つまたは複数の値と同じ1つまたは複数の値と、前記第1の1つまたは複数のKVPに含まれる1つまたは複数の鍵と同じ1つまたは複数の値とを含む、
    請求項1に記載のコンピュータで実行される方法。
  7. 前記第2の1つまたは複数のKVPが、前記インデックスに含まれる番号を示す1つまたは複数の値と、前記第1の1つまたは複数のKVPのうちの1つまたは複数が削除されるかどうかを示す1つまたは複数の値と、前記第1の1つまたは複数のKVPの中のKVPの量とを含む、
    請求項1に記載のコンピュータで実行される方法。
  8. 1つまたは複数のプロセッサに結合され、かつ前記1つまたは複数のプロセッサによって実行されると、請求項1から7のいずれか一項に記載の方法に従った動作を前記1つまたは複数のプロセッサに実行させる命令が記録された、
    非一時的コンピュータ可読記録媒体。
  9. コンピューティングデバイスと、
    前記コンピューティングデバイスに結合され、かつ前記コンピューティングデバイスによって実行されると、請求項1から7のいずれか一項に記載の方法に従った動作を前記コンピューティングデバイスに実行させる命令が記録された、コンピュータ可読記録デバイスとを備える、
    システム。
JP2019521792A 2018-11-07 2018-11-07 論理マップを通じたスマートコントラクトデータベースの走査 Active JP6869342B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114410 WO2019072266A2 (en) 2018-11-07 2018-11-07 CROSSING AN INTELLIGENT CONTRACT DATA BASE THROUGH A LOGIC CARD

Publications (2)

Publication Number Publication Date
JP2020503585A true JP2020503585A (ja) 2020-01-30
JP6869342B2 JP6869342B2 (ja) 2021-05-12

Family

ID=66100053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019521792A Active JP6869342B2 (ja) 2018-11-07 2018-11-07 論理マップを通じたスマートコントラクトデータベースの走査

Country Status (14)

Country Link
US (1) US11403344B2 (ja)
EP (1) EP3542278A4 (ja)
JP (1) JP6869342B2 (ja)
KR (1) KR102238954B1 (ja)
CN (1) CN110291514A (ja)
AU (1) AU2018347188A1 (ja)
BR (1) BR112019008154A2 (ja)
CA (1) CA3041158A1 (ja)
MX (1) MX2019004676A (ja)
PH (1) PH12019500897A1 (ja)
RU (1) RU2019111895A (ja)
SG (1) SG11201903584YA (ja)
TW (1) TW202101279A (ja)
WO (1) WO2019072266A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3665595B1 (en) * 2019-05-14 2021-11-24 Advanced New Technologies Co., Ltd. Methods and devices for data traversal
US11513815B1 (en) * 2019-05-24 2022-11-29 Hiro Systems Pbc Defining data storage within smart contracts
US11657391B1 (en) 2019-05-24 2023-05-23 Hiro Systems Pbc System and method for invoking smart contracts
US10699269B1 (en) 2019-05-24 2020-06-30 Blockstack Pbc System and method for smart contract publishing
WO2019179539A2 (en) 2019-07-11 2019-09-26 Alibaba Group Holding Limited Shared blockchain data storage
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
SG11202002165RA (en) * 2019-08-30 2020-04-29 Alibaba Group Holding Ltd Methods and devices for providing traversable key-value data storage on blockchain
US10585882B1 (en) 2019-09-23 2020-03-10 Trace, LLC Systems and methods for writing updates to and/or reading previously stored updates of assets implemented as smart contracts on a decentralized database
WO2021184325A1 (en) * 2020-03-19 2021-09-23 Wang Chau Tyler Kot Ethereum state data storage optimization method, ethereum system and storage medium
CN111596954B (zh) * 2020-05-12 2023-08-01 杭州溪塔科技有限公司 一种基于区块链的分布式版本控制方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016177688A (ja) * 2015-03-20 2016-10-06 株式会社東芝 データ処理装置、データ処理方法およびコンピュータプログラム
US20170255950A1 (en) * 2016-03-04 2017-09-07 Forecast Foundation Ou Systems and methods for providing block chain state proofs for prediction market resolution

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102084363B (zh) 2008-07-03 2014-11-12 加利福尼亚大学董事会 一种用于在结构化数据上高效地支持交互式模糊搜索的方法
US20130124545A1 (en) 2011-11-15 2013-05-16 Business Objects Software Limited System and method implementing a text analysis repository
US9152642B2 (en) 2012-12-21 2015-10-06 Zetta, Inc. Systems and methods for on-demand data storage
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
CN107660293B (zh) * 2015-04-20 2022-04-26 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
AU2017222471B2 (en) * 2016-02-23 2022-09-01 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
US10235374B2 (en) * 2016-03-08 2019-03-19 International Business Machines Corporation Key-value store for managing user files based on pairs of key-value pairs
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
CN109983456B (zh) * 2016-09-22 2023-08-15 维萨国际服务协会 存储器内密钥范围搜索方法和系统
US11128603B2 (en) 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
CN107103098A (zh) 2017-05-12 2017-08-29 曾建伟 一种包含智能合约的区块链网式数据库及工作方法
CN107332847B (zh) * 2017-07-05 2019-04-26 武汉凤链科技有限公司 一种基于区块链的访问控制方法和系统
CN108595538B (zh) * 2018-04-04 2020-05-01 中国地质大学(武汉) 一种基于区块链的键值数据组织方法及系统
CN108615156A (zh) * 2018-05-09 2018-10-02 上海魅联信息技术有限公司 一种基于区块链的数据结构

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016177688A (ja) * 2015-03-20 2016-10-06 株式会社東芝 データ処理装置、データ処理方法およびコンピュータプログラム
US20170255950A1 (en) * 2016-03-04 2017-09-07 Forecast Foundation Ou Systems and methods for providing block chain state proofs for prediction market resolution

Also Published As

Publication number Publication date
EP3542278A2 (en) 2019-09-25
WO2019072266A3 (en) 2019-08-29
EP3542278A4 (en) 2019-12-18
KR20200054126A (ko) 2020-05-19
KR102238954B1 (ko) 2021-04-14
MX2019004676A (es) 2019-08-21
CA3041158A1 (en) 2019-04-18
RU2019111895A3 (ja) 2020-10-19
TW202101279A (zh) 2021-01-01
RU2019111895A (ru) 2020-10-19
BR112019008154A2 (pt) 2019-09-10
WO2019072266A2 (en) 2019-04-18
US11403344B2 (en) 2022-08-02
SG11201903584YA (en) 2019-05-30
US20190251124A1 (en) 2019-08-15
PH12019500897A1 (en) 2019-12-02
JP6869342B2 (ja) 2021-05-12
CN110291514A (zh) 2019-09-27
AU2018347188A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
JP6869342B2 (ja) 論理マップを通じたスマートコントラクトデータベースの走査
KR102396739B1 (ko) 자산 관리 방법 및 장치, 및 전자 디바이스
US11106655B2 (en) Asset management system, method, apparatus, and electronic device
KR102215773B1 (ko) 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
US11321308B2 (en) Asset management method and apparatus, and electronic device
RU2747449C2 (ru) Способ и устройство сверки транзакций в блокчейне и электронное устройство
KR102141771B1 (ko) 멀티 블록체인 네트워크 데이터 처리 방법, 장치 및 서버
KR102151894B1 (ko) 계좌 모델 하에서 퍼블릭 및 프라이빗 트랜잭션을 지원하는 블록체인 시스템
AU2018347191B2 (en) Managing private transactions on blockchain networks based on workflow
US20200133938A1 (en) Asset management method and apparatus, and electronic device
KR20200079289A (ko) 블록체인 기반 트랜잭션 프로세싱 방법 및 장치
JP2021512379A (ja) ブロックチェーンベースのスマートコントラクト呼び出し方法および装置、および電子デバイス
WO2019083994A1 (en) METHOD AND DEVICE FOR DATA AUDIT
CN117678196A (zh) 隐私安全联合标识协议

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200803

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210413

R150 Certificate of patent or registration of utility model

Ref document number: 6869342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150