JP6638024B2 - システム、スマートコントラクトのライフサイクルの管理方法、及び非一時的コンピュータ可読媒体 - Google Patents

システム、スマートコントラクトのライフサイクルの管理方法、及び非一時的コンピュータ可読媒体 Download PDF

Info

Publication number
JP6638024B2
JP6638024B2 JP2018115418A JP2018115418A JP6638024B2 JP 6638024 B2 JP6638024 B2 JP 6638024B2 JP 2018115418 A JP2018115418 A JP 2018115418A JP 2018115418 A JP2018115418 A JP 2018115418A JP 6638024 B2 JP6638024 B2 JP 6638024B2
Authority
JP
Japan
Prior art keywords
smart contract
transaction
result
computing node
consensus
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
JP2018115418A
Other languages
English (en)
Other versions
JP2019008791A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2019008791A publication Critical patent/JP2019008791A/ja
Application granted granted Critical
Publication of JP6638024B2 publication Critical patent/JP6638024B2/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

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

Description

ブロックチェーンは、ブロックと呼ばれる連続的に増加する一連のレコード(すなわち、チェーン)を維持する一種の分散型データベースである。各ブロックには、タイムスタンプと前のブロックへのリンクが含まれる。ブロックは、トランザクションに関する情報または他のタイプの情報を格納することができる。ブロックの検証プロセスはかなり簡単に実行することができ、トランザクションが不正である可能性を低減する。ブロックチェーン技術は、ネットワーク上の複数の場所に分散して複数のブロックチェーンにデータを格納することで、データが中央集権的に保持されるリスクを軽減または排除する。
さらに、ブロックチェーン技術は、チェーンの任意の単一ブロックを遡及的に変更することを非常に困難にすることができる。例えば、データベースが分散されている(すなわち、複数の異なるコンピュータに同時に格納されている)ので、分散型データベース内の任意の1つのコンピュータにアクセスするすべてのユーザに、ブロックチェーンに対して新たな追加が行われたことを直ちに通知することができる。
場合によっては、ブロックチェーンを使用して記録された情報は、2人以上の当事者間のコンピュータ実行可能「契約」である「スマートコントラクト」のためのものであってもよい。特に、スマートコントラクトは、特定の条件が満たされたことに応答して特定の動作を行うために実行するよう構成されたソフトウェアとすることができる。スマートコントラクトの実行は、自動化と強制執行との両方が可能である。
本明細書におけるいくつかの例は、第1のコンピューティングノードを備えるシステムであって、前記第1のコンピューティングノードは、複数のブロックチェーンを管理するコンセンサスシステムに参加するために、少なくとも1つの第2のコンピューティングノードと通信可能であり、前記第1のコンピューティングノードは、複数のスマートコントラクトのうち、前記複数のブロックチェーンの第1のブロックチェーンと関連付けられる第1のスマートコントラクトを実行するための要求を、コンピューティングデバイスから受信する操作と、前記第1のブロックチェーンに格納されるトランザクション情報の少なくとも一部をトランザクションの結果として読み出す処理を含む、トランザクションを実行させるために、前記受信した要求に基づいて前記第1のスマートコントラクトを呼び出す操作と、前記第1のスマートコントラクトに、前記第1のスマートコントラクトの満了時間に達したことを示すシミュレーションインジケータが設定されているか否かを判定する操作と、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止し、かつ、前記コンピューティングデバイスに前記トランザクションの結果を含む応答メッセージを送信する操作と、を実行するための実行可能命令によって構成される、少なくとも1つのプロセッサを含む
詳細な説明は、添付図面を参照して記述される。図面において、参照番号の最も左の桁により、参照番号が最初に現れる図を識別する。異なる図面で同じ参照番号が使用される場合、類似または同一の項目または特徴を示す。
いくつかの実装形態によるブロックチェーン実行およびスマートコントラクト管理のためのシステムの例示的なアーキテクチャを示す図である。 いくつかの実装態様によるコンセンサスノード・コンピューティング・デバイスの一例を示す図である。 いくつかの実装態様によるスマートコントラクト期間データ構造の例示的なデータ構造を示す図である。 スマートコントラクトがいくつかの実装態様に従って良好に実行される場合のスマートコントラクト応答メッセージのデータ構造の一例を示す図である。 スマートコントラクト実行がいくつかの実装態様に従って失敗した場合のスマートコントラクト応答メッセージのデータ構造の一例を示す図である。 スマートコントラクトがいくつかの実装態様に従ってシミュレーションモードで実行される場合のスマートコントラクト応答メッセージのデータ構造の一例を示す図である。 いくつかの実装態様によるスマートコントラクトコンフィギュレータによって実行されるプロセスの一例を示す流れ図である。 いくつかの実装態様によるスマートコントラクト・ライフサイクル・マネージャによって実行されるプロセスの一例を示す流れ図である。 いくつかの実装態様に従って無効なトランザクション結果を破棄するブロックチェーンを用いるスマートコントラクトを実行するための例示的なプロセスを示す流れ図である。 いくつかの実装態様に従って有効および無効なトランザクション結果の両方を格納するブロックチェーンを用いるスマートコントラクトを実行するための例示的なプロセスを示す流れ図である。
本明細書のいくつかの実装態様は、ブロックチェーン技術を使用して実装されたスマートコントラクトのライフサイクルを管理するための技術および構成に関する。例えば、スマートコントラクト機能を管理してスマートコントラクトを作成、更新、満了、および削除することでスマートコントラクトライフサイクルを管理し、それにより、スマートコントラクトを現実の用途で使用可能にすることができる。例えば、本明細書のブロックチェーンと共に使用されるスマートコントラクトは、本明細書の他の箇所でさらに列挙されるように、機器制御、資産管理、在庫管理、サプライチェーン管理、金融取引追跡など、多くの異なる実用的用途を可能にすることができる。
スマートコントラクトライフサイクル管理の一例として、ユーザは、新しいスマートコントラクトを作成することができ、スマートコントラクトを呼び出してトランザクションなどを実行することができる。トランザクションの結果および/または他の情報は、ブロックチェーン上に格納することができる。例えば、トランザクションの実質的に変更不能なレコードを作成するために、スマートコントラクトのブロックチェーンに1つまたは複数のブロックを追加することができる。スマートコントラクトによって実行された可能性のある1つまたは複数のトランザクションに関する情報を取得するなどのために、複数のユーザが、ブロックチェーン上のデータにアクセスして読み取ることができる。さらに、1人以上のユーザが、スマートコントラクトを改善することができ、ユーザは、改善されたスマートコントラクトを引き続き使用することができる。
スマートコントラクトは、通常、スマートコントラクトが満了(例えば、スマートコントラクトを破棄および/または終了)する満了日時(以下、「満了時間」という)を有することができる。スマートコントラクトが満了すると、ユーザは、通常、スマートコントラクトを使用してトランザクションを実行することができなくなる。しかしながら、本明細書の実装態様では、スマートコントラクトが満了した後に監査またはその他の目的などのために、ユーザがブロックチェーン上のデータに引き続きアクセスすることを可能にする。さらに、本明細書におけるスマートコントラクトは、スマートコントラクトが満了した後の指定された保管期間を有することができ、保管期間が終わると削除されるか、または解除することができる。保管期間が終了する前に、スマートコントラクトからのトランザクション情報(例えば、スマートコントラクトによって行われたトランザクションからの結果)は、シミュレーションモードを使用するユーザによってブロックチェーン上で引き続きアクセスすることができる。保管期間が終了すると、ブロックチェーンは、解除(例えば、停止、アーカイブ、または削除など)することができ、ユーザはもはやブロックチェーン上のスマートコントラクトデータを読み込むことも、アクセスすることもできない。
本明細書の実装態様は、スマートコントラクトライフサイクル管理のための機能を提供するか、または可能にする。例えば、本明細書のいくつかの例は、満了時間および保管期間に従ってスマートコントラクトの状態を制御することを可能にする。さらに、本明細書の例は、スマートコントラクトの満了時間に達した後であるが、保管期間の終了前に、データにアクセスすることを可能にする。さらに、いくつかの例では、満了時間に応じて自動的にスマートコントラクトを停止することが可能であり、スマートコントラクトの保管期間中は、スマートコントラクトが満了する前にスマートコントラクトを実行することによりブロックチェーンに格納された情報にアクセスすることを可能にする。
本明細書の実装態様では、スマートコントラクトによって生成されるデータは、特定のブロックチェーンおよび/または指定されたブロックチェーンに格納することができる。ブロックチェーン内のデータにアクセスするために、ユーザは、トランザクション要求としてクエリを含むスマートコントラクト要求を送信することによってスマートコントラクトのクエリ機能を呼び出すことができる。このクエリ機能は、典型的には、スマートコントラクトが実行されている間(すなわち、満了時間に達する前に)呼び出すことができるが、従来は、スマートコントラクトの満了時間に達してスマートコントラクトがもはや実行されていない場合にデータにアクセスする方法はない。
本明細書のいくつかの例は、スマートコントラクトの満了時間および保管期間に従ってスマートコントラクトの状態を制御することができるスマートコントラクトコンフィギュレータを含む。さらに、本明細書の例には、スマートコントラクトのライフサイクルを管理して、ユーザが満了時間の開始と保管期間の終了との間に、ブロックチェーンに格納されたスマートコントラクトのデータにアクセスすることを可能にするスマートコントラクト・ライフサイクル・マネージャが含まれる。さらに、場合によっては、満了時間に達すると、スマートコントラクトの状態を「実行」から「シミュレート」に変更することができ、次いで、保管期間の終了時に「シミュレート」から「停止」に変更することができる。
スマートコントラクトの状態が「シミュレート」モードの場合、スマートコントラクトは、シミュレーションモードで実行されてトランザクションを実行することができるが、スマートコントラクトは、有効なトランザクション結果としてブロックチェーンにトランザクションの結果を書き込むことによってブロックチェーンを更新することができない。したがって、シミュレーションモードは、ブロックチェーンの更新が有効にならない点で実行モードとは異なる。このようにして、ユーザは、スマートコントラクトをシミュレーションモードで実行すること、すなわち、スマートコントラクトを使用してトランザクションを実行すること、およびシミュレーションモードでのスマートコントラクト下でトランザクションを実行した結果としてブロックチェーンが更新されるのを防止することによって、満了時間後にブロックチェーン内のデータにアクセスすることができる。スマートコントラクトが「停止」状態にある場合、スマートコントラクトは解除され、完全に実行されなくすることができる。
本明細書の実装態様は、シミュレーションモードでブロックチェーンが更新されないようにするためのいくつかの異なる方法を含むことができる。一例として、コンセンサスプロセスをスキップすることによって、シミュレーションモードにおけるスマートコントラクトの下でのトランザクションの結果を破棄することができる。コンセンサスプロセスを経ないと、トランザクション結果によるブロックチェーンの更新が妨げられる可能性がある。別の例では、無効なフラグをシミュレーションモードでトランザクション結果に追加して、無効なトランザクションを示すことができる。コンセンサスプロセスを実行すると、無効なトランザクション結果をブロックチェーンに格納しようとする可能性があるが、無効フラグにより、コンセンサスシステムが無効なトランザクション結果でブロックチェーンを更新することを防止する。
説明のために、スマートコントラクトの実行に関連して使用されるブロックチェーンの環境において、いくつかの例示的な実装態様について記述する。しかしながら、本明細書の実装態様は、提供される特定の例に限定されず、本明細書の開示から当業者に明らかである、他の用途、他の種類のコンピューティングシステム、および他のシステムアーキテクチャなどで使用されるブロックチェーンおよび同様のデータ構造に拡張することができる。
図1は、いくつかの実装態様によるシステム100の例示的なアーキテクチャを示す。システム100は、以下でコンセンサスノード102と称する複数のコンセンサスノード・コンピューティング・デバイス102(1)、102(2)、102(3)、...、102(N)を含み、少なくとも1つのスマートコントラクト106などに関して、1つまたは複数のネットワーク104を介して互いに通信することができる。さらに、コンセンサスノード102は、1つまたは複数のネットワーク104を介して、1つまたは複数のクライアント・コンピューティング・デバイス108ならびに/もしくは1つまたは複数の外部システム・コンピューティング・デバイス110と通信することができる。
本明細書のいくつかの例では、システム100は、少なくとも1つのブロックチェーン112を生成および維持することができるスケーラブルな分散型ピアツーピアシステムである。したがって、データの完全性は、例えば、単なる信頼ベースのインフラストラクチャではなく、コンセンサスメカニズムに基づいている。本明細書の例では、「コンセンサス」は、真実か偽であるかに関する集合的な意思決定プロセスまたは合意を指すことができる。例えば、システム100は、システム100に参加する様々な異なるコンセンサスノード102が合意に至ることができる、参加するコンセンサスノード102から構成される分散型コンセンサスネットワークを提供する。個々のコンセンサスノード102は、それぞれが自身のデータを提供して、コンセンサスネットワーク全体が集合的に合意に基づく決定を達成することを可能にすることができる。
システム100は、スマートコントラクト106からの時系列のトランザクションまたは他の情報をブロックチェーン112内の連続するブロックとして記録するよう構成される。したがって、各ブロックチェーン112は、そのブロック内に格納された対応するトランザクションのための分散型データベースとして機能することができる。その結果、トランザクション記録は安全に記録され、事実上変更することができない。システム100内のすべてのコンセンサスノード102は、同じスマートコントラクト106および同じブロックチェーン112を含むことができ、同じトランザクションに対する(コンセンサスプログラム116、スマートコントラクト・ライフサイクル・マネージャ118、およびスマートコントラクトコンフィギュレータ120を含む)同じノードプログラム114の各インスタンスを実行することができ、したがって、各トランザクションを検証(または無効化)することができ、各トランザクションについてブロックチェーン112にトランザクション情報を追加することができる。有効なトランザクションは、ブロックチェーン112内の次のブロックに書き込まれる。後述するように、いくつかの実施形態では、ブロックチェーン112が無効なトランザクションで更新されていないことを示す無効フラグを用いて無効なトランザクションもブロックチェーン112に書き込まれる。一例として、ブロックを無効トランザクションのブロックチェーンに追加することができるが、そのブロックは無効としてマークされる。コンセンサスノード102はまた、トランザクションなどに対して、すなわち、各スマートコントラクト106の各実行に対応して、トランザクション結果および/または他のトランザクション情報をブロックチェーンに追加することもできる。例えば、いくつかの例では、特定のスマートコントラクト106とその特定のスマートコントラクト106のトランザクション情報を格納するための各ブロックチェーン112との間に1対1の関係が存在することができる。
いくつかの例では、本明細書のシステム100の分散型ピアツーピアの性質は、任意の単一ユーザまたはユーザグループが、基盤インフラストラクチャを制御すること、またはシステム100の完全性を損なわせることを防止することを助けることができる。例えば、システム100のユーザ119(例えば、クライアントノード108)は、すべてが等しい状態を有することができ、同じプロトコルを遵守することができる。場合によっては、ユーザ119は、個人、企業、国家主体、および組織など、またはこれらの任意の組み合わせとすることができる。本明細書のいくつかの例では、システム100は、プライベート(すなわち、一般に、公衆はアクセスできない)とすることができ、コンセンサスノード102は、典型的には、1人または複数のユーザによって所有されるか、操作されるか、またはそのようなユーザの1人または複数と関連することができる。例えば、いくつかの場合、コンセンサスノード102のいくつかは、スマートコントラクト106への第1の参加者に関連付けることができ、コンセンサスノード102のノードのいくつかの他のノードは、スマートコントラクト106への第2の参加者に関連付けることができる。もちろん、他の場合には、コンセンサスノード102のいくつかまたはすべてが、第1の参加者または第2の参加者のいずれとも関連していない第三者に関連付けられてもよい。
コンセンサスノード102は、それぞれ、ブロックチェーン112のコピーを維持することができ、スマートコントラクト106に従って実施されるトランザクションの検証に参加することができる。例えば、システム100は、製品のサプライチェーンを追跡し、企業資産の使用に関する資産管理を行い、クラウドファンディングプロジェクトを追跡し、暗号通過を生成し、行政の結果を公に使用できるようにし、ファイルストレージを分散し、モノのインターネット(IoT)デバイスを管理し、知的財産を保護し、データを管理し、土地の所有権を登録し、株式取引を追跡し、および銀行取引を追跡するなどの、様々な異なる用途のために、1つまたは複数のスマートコントラクト106を実行するために使用することができる。
本明細書のブロックチェーン技術と共に使用されるスマートコントラクト106は、上述の例示的な用途または他の多くの用途のいずれかを実行するために使用することができる。上記のように、スマートコントラクトは、特定の条件が満たされた場合に、特定の機能が実行されるという当事者間の合意を含むことができる。したがって、スマートコントラクト106は、満たされるべき条件および実行されるべき対応機能を指定するようプログラムされた実行可能コードとすることができ、ブロックチェーン112は、条件が満たされ、対応機能が自動的に実行されることを保証することができる。
一例として、IoTに関して、複数の検出された条件に基づいて建物内の異なるゾーンの温度を自動的に制御するなどの、リモートIoTシステムの管理を自動化するためにスマートコントラクトを使用することができる。別の例として、スマートコントラクト106およびブロックチェーン112は、例えば、組織の物理的資産の使用およびライフサイクルを管理するために、企業資産管理に使用することができる。別の例として、スマートコントラクト106およびブロックチェーン112は、例えば、金融商品が特定の基準を満たしたときにデリバティブを支払う、特定の価格に達すると株を売買するなど、仲介取引などの金融取引を実行および記録するために使用することができる。さらに別の例として、スマートコントラクト106およびブロックチェーン112は、電力を自動的に再分配するために使用することができ、ローカルソーラーマイクログリッドが余剰エネルギーを生成する場合などに、スマートコントラクト106およびブロックチェーン112を使用して、余剰エネルギーを自動的に再分配することができる。ブロックチェーン112およびスマートコントラクト106を使用して、他の多くの機能を実行することができ、本明細書で説明する例は、多くの可能な用途のうちのほんの少数である。
スマートコントラクト106が最初にセットアップされるか、または確立されると、スマートコントラクト106の1人または複数人の参加者(すなわち、ユーザ)は、スマートコントラクトをデジタル署名するために、それぞれのクライアント・コンピューティング・デバイス108上のそれぞれのクライアントプログラム122を使用することができる。例えば、クライアントプログラム122は、スマートコントラクト106を実行するコンセンサスノード102にスマートコントラクト106およびスマートコントラクトのデジタル署名124を送信するようにクライアント・コンピューティング・デバイスを構成するために実行することができる。したがって、以下に説明するように、コンセンサスノード102は、スマートコントラクト106を実行する前にスマートコントラクト106が署名されていることを検証することができる。
いくつかの例では、スマートコントラクトがコンセンサスノード102に提供され、アクティブにされる、すなわち、「実行中」になると、スマートコントラクト106はスマートコントラクト106で指定された条件が満たされた場合に実行することができる。いくつかの例では、スマートコントラクト106を実行することは、1つまたは複数の外部システム・コンピューティング・デバイス110からの外部データの受信に依存することができる。例えば、外部システム・コンピューティング・デバイス110は、外部データ128をコンセンサスノード102に送信するよう構成することができる。スマートコントラクト106の性質に応じて、外部データ128は、任意の対応する種類のデータとすることができる。例えば、スマートコントラクトが建物内の1つまたは複数のサーモスタットの制御用である場合、外部データ128は、サーモスタットに対応するゾーンの温度データとすることができる。スマートコントラクトが1つまたは複数の証券を管理するためのものである場合、外部データ128は、現在の株式市場情報などとすることができる。上述した例および本明細書の開示を考慮すると、多くの他の種類の外部データ128が当業者には明らかであろう。外部データ128を受信すると、コンセンサスノード102は、スマートコントラクトを実行することを決定することができる。各コンセンサスノード102は、スマートコントラクト106をトランザクションとして実行することができる。
別の例として、クライアント・コンピューティング・デバイス108の1つからコンセンサスノード102への通信は、スマートコントラクト要求126を含むことができる。スマートコントラクト要求126は、スマートコントラクト(SC)メッセージ130で情報をクライアント・コンピューティング・デバイス108に提供することなどを、スマートコントラクト106に実行させることができる。例えば、コンセンサスノード102は、(例えば、1つまたは複数の実行結果を含むことができる)SCメッセージ130をクライアント・コンピューティング・デバイス108に送信することができる。
さらに、またはあるいは、いくつかの例では、スマートコントラクト106の各実行後に、スマートコントラクト実行結果132を含むSCメッセージ130を、クライアント・コンピューティング・デバイス108および/または外部システム・コンピューティング・デバイス110の少なくとも1つに送信することができる。例えば、SC実行結果132を含むSCメッセージ130の受信により、クライアント・コンピューティング・デバイス108または外部システム・コンピューティング・デバイス110は、SC実行結果132に基づいて機能を実行することができる。例えば、スマートコントラクト106がサーモスタットの制御用である場合、SC実行結果132は、外部システム・コンピューティング・デバイス110のシステムプログラムにサーモスタットを指定された量だけ増減させることができる。いくつかの例では、SC実行結果132は、ブロックチェーン全体112を含むことができる。他の例では、SC実行結果132は、スマートコントラクトの出力値のみを含むことができる。さらに、いくつかの例では、SCメッセージ130は、SC実行結果132を含まない可能性があるが、以下にさらに説明するように、他の情報を含むことができる。多くの他の変形が、本明細書の開示の利益を有する当業者には明らかであろう。
図2は、いくつかの実装態様によるコンセンサスノード102の一例を示す。場合によっては、コンセンサスノード102は、複数の物理サーバまたは任意の数の方法で実現することができる他の種類のコンピューティングデバイスを含むことができる。例えば、サーバの場合、モジュール、プログラム、他の機能コンポーネント、およびデータストレージの一部は、例えば、1つまたは複数のサーバファームまたはデータセンター、およびクラウドホストコンピューティングサービスなどのサーバで実施することができるが、他のコンピュータアーキテクチャが追加的にまたは代替的に使用されてもよい。図示の例では、コンセンサスノード102は、1つまたは複数のプロセッサ202、1つまたは複数の通信インターフェース204、1つまたは複数のコンピュータ可読媒体206、ならびに1つまたは複数の入出力(I/O)デバイス208を含むか、またはそれらと関連することができる。例えば、コンピュータ可読媒体206は、ローカルストレージ210およびメモリ212を含むことができる。さらに、1つのコンセンサスノード102の説明が提供されているが、他のコンセンサスノード102は、同じまたは類似のハードウェアおよびソフトウェア構成およびコンポーネントを有することができる。さらに、クライアント・コンピューティング・デバイス108および任意の外部システム・コンピューティング・デバイスは、異なるプログラム、ソフトウェア、および他の機能コンポーネントを有する同様のハードウェア構成を有することができる。
各プロセッサ202は、単一の処理ユニットまたは複数の処理ユニットとすることができ、単一または複数の演算ユニットまたは複数の処理コアを含むことができる。プロセッサ202は、1つまたは複数の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、状態機械、論理回路、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装することができる。例えば、プロセッサ202は、本明細書で説明するアルゴリズムおよびプロセスを実行するよう特にプログラムまたは構成された任意の適切な種類の1つまたは複数のハードウェアプロセッサおよび/または論理回路とすることができる。プロセッサ202は、本明細書に記載の機能を実行するようプロセッサ202をプログラムする、コンピュータ可読媒体206に格納されたコンピュータ可読命令をフェッチおよび実行するよう構成することができる。
コンピュータ可読媒体206は、コンピュータ可読命令、データ構造、プログラムコード、または他のデータなどの情報を格納するための任意の種類の技術で実施される揮発性および不揮発性メモリならびに/もしくはリムーバブルおよび非リムーバブル媒体を含むことができる。例えば、コンピュータ可読媒体206は、これらに限定するものではないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、光学ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、RAIDストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、または所望の情報を格納するために使用することができ、コンピューティングデバイスによってアクセスすることができる任意の他の媒体を含むことができる。コンセンサスノード102の構成により、コンピュータ可読媒体206は、言及した場合に、非一時的なコンピュータ可読媒体が、エネルギー、搬送波信号、電磁波、および/または信号などの媒体を除外する限りにおいて、有形の非一時的媒体とすることができる。場合によっては、コンピュータ可読媒体206は、コンセンサスノード102と同じ場所にあってもよく、他の例では、コンピュータ可読媒体206は、コンセンサスノード102とは別々であるか、または部分的に離れていてもよい。
コンピュータ可読媒体206は、プロセッサ202によって実行可能な任意の数の機能コンポーネントを格納するために使用することができる。多くの実装態様では、これらの機能コンポーネントは、プロセッサ202によって実行可能であり、実行されると、ここに属する動作をコンセンサスノード102に実行するようプロセッサ202を具体的にプログラムする命令、モジュール、またはプログラムを含む。コンピュータ可読媒体206に格納された機能コンポーネントは、スマートコントラクトコンフィギュレータ120、スマートコントラクト・ライフサイクル・マネージャ118、およびコンセンサスプログラム116を含む、ノードプログラム114を含むことができる。さらなる機能コンポーネントには、コンセンサスノード102の様々な機能を制御および管理することができるスマートコントラクト106およびオペレーティングシステム(OS)214が含まれる。例えば、スマートコントラクト106は、以下にさらに説明するように、コンセンサスノード102上で実行することができる少なくとも第1のスマートコントラクト106(1)を含む。
機能コンポーネントのそれぞれは、1つまたは複数のコンピュータプログラム、アプリケーション、実行可能コード、コンピュータ可読命令、またはその一部を含むことができる。さらに、スマートコントラクトコンフィギュレータ120、スマートコントラクト・ライフサイクル・マネージャ118、およびコンセンサスプログラム116は、この例では、ノードプログラム114の一部である実行可能命令として示されているが、他の例では、これらのコンポーネントはそれぞれ、別々のプログラム、モジュール、または他の実行可能命令を含むことができ、および/または単一のプログラムに組み合わせることなどができる。場合によっては、機能コンポーネントは、コンピュータ可読媒体206のローカルストレージ210に格納され、コンピュータ可読媒体206のメモリ212にロードされ、1つまたは複数のプロセッサ202によって実行され得る。多くの他のソフトウェアおよび/またはハードウェアが、本明細書の開示の利益を有する当業者には明らかであろう。
さらに、コンピュータ可読媒体206は、本明細書で説明される機能およびサービスを実行するために使用されるデータおよびデータ構造を格納することができる。例えば、コンピュータ可読媒体206は、ノードプログラム114、スマートコントラクト106、および/またはOS214によって使用されるデータ、メタデータ、データ構造、および/または他の情報を格納することができる。例えば、コンセンサスノード102の一部または全部は、スマートコントラクト期間データ構造(DS)218と同様に、ブロックチェーン112を維持することができる。例えば、スマートコントラクト期間DS218は、スマートコントラクトコンフィギュレータ120または他の機能コンポーネントによって生成および更新することができる。さらに、ブロックチェーン112は、第1のスマートコントラクト106(1)に対応し、第1のスマートコントラクトの満了時間に達する前に第1のスマートコントラクト106(1)によって実行される複数のトランザクションに関するトランザクション情報222を格納または維持する、少なくとも第1のブロックチェーン112(1)を含む。
各コンセンサスノード102はまた、プログラム、ドライバなど、および機能コンポーネントによって使用または生成された他のデータを含むことができる、他の機能コンポーネントおよびデータを含むか、または維持することができる。さらに、コンセンサスノード102は、多くの他の論理的、プログラム的、および物理的コンポーネントを含むことができ、そのうちの上記のものは、本明細書の説明に関連する単なる例である。
通信インターフェース204は、ネットワーク104などにある、様々な他のデバイスとの通信を可能にするための1つまたは複数のインターフェースおよびハードウェアコンポーネントを含むことができる。したがって、通信インターフェース204は、他のコンセンサスノード102、クライアントデバイス108、および任意の外部システム・コンピューティング・デバイス110(図2には図示せず)と通信するためにネットワーク104への接続を提供する1つまたは複数のポートを含むことができるか、またはそのようなポートに結合することができる。例えば、通信インターフェース204は、本明細書の他の箇所でさらに列挙されているような、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク(例えば、Wi−Fi)および有線ネットワーク(例えば、ファイバチャネル、光ファイバ、イーサネット)、直接接続、ならびにBLUETOOTH(登録商標)などの近距離通信などの1つまたは複数を介して通信することを可能にすることができる。
1つまたは複数のネットワーク104は、インターネットなどのワイドエリアネットワーク、イントラネットなどのローカルエリアネットワーク、セルラネットワークなどの無線ネットワーク、Wi−Fiなどのローカル無線ネットワーク、BLUETOOTH(登録商標)などの短距離無線通信、ファイバチャネル、光ファイバ、イーサネット、または他の任意のそのようなネットワークを含む有線ネットワーク、直接有線接続、またはそれらの任意の組み合わせを含む、任意の適切な通信技術を含むことができる。したがって、ネットワーク104は、有線および/または無線通信技術を含むことができる。そのようなネットワークを介して通信するために使用されるプロトコルは、当技術分野において周知であり、本開示において詳細には説明しない。
場合によっては、I/Oデバイス208は、ディスプレイ、様々なユーザインターフェース制御(例えば、マウス、キーボード、タッチスクリーンなど)、オーディオスピーカ、および接続ポートなどを含むことができる。多くの他のハードウェアおよびソフトウェアが、本明細書の開示の利益を有する当業者には明らかであろう。したがって、本明細書で開示される例の範囲は、ハードウェア、ソフトウェア、またはそれらの組み合わせの特定のセットに限定されない。
図3は、いくつかの実装態様によるスマートコントラクト期間データ構造(DS)218の例示的なデータ構造を示す。このデータ構造は、テーブルまたは他の所望のデータ構造とすることができ、図2に関して上述したように、スマートコントラクトコンフィギュレータ120によってコンセンサスノードメモリ112に保持することができる。図示の例では、列302は、コンセンサスノード102上で実行することができスマートコントラクト106のID(識別子)を含む。列304は、スマートコントラクト106の状態を含む。列306は、スマートコントラクト106の満了時間を含む。列308は、スマートコントラクト106の保管期間を含む。
スマートコントラクト期間DS218内の各行は、スマートコントラクトごとに作成することができる。図3の例は、それぞれ、スマートコントラクトID1001、1002、1003を有する3つの異なるスマートコントラクトに対するエントリを含む。スマートコントラクトの状態304は、「実行」、「シミュレート」、または「停止」のうちの1つの状態指定を含むことができる。「実行」状態は、各スマートコントラクトの性質および機能に応じて、スマートコントラクトが展開されて実行中であること、すなわち、トランザクションなどを実行するために実行可能であることを示す。「シミュレート」状態は、スマートコントラクトが展開されているが、シミュレーションモードでのみ実行可能であることを示す。「停止」状態は、各スマートコントラクトが展開および停止されていること、すなわち、実行モードまたはシミュレーションモードでは実行できないことを示す。コンセンサスノード上の各スマートコントラクトの状態304は、以下にさらに説明するように、スマートコントラクトコンフィギュレータ120によって設定および更新することができる。
スマートコントラクトが展開されると、スマートコントラクトの状態304は、「実行」に設定される。各スマートコントラクトは、関連付けられた満了時間306および保管期間308を有することができる。例えば、満了時間306および保管期間308は、スマートコントラクトが最初に当事者によって入力された場合にスマートコントラクトの一部として確立することができる。場合によっては、満了時間306および/または保管期間308は、当事者がスマートコントラクトに同意することなどによって、更新または変更することができる。満了時間306に達すると、状態304は、「実行」から「シミュレート」に移行されるか、そうでなければ変更される。保管期間308が終了すると、状態304が「シミュレート」から「停止」に移行されるか、そうでなければ変更される。後述するように、スマートコントラクト・ライフサイクル・マネージャ118は、各コンセンサスノード上の各スマートコントラクトのライフサイクルを管理するため、満了時間306および保管期間308をチェックするために実行することができる。
図4Aは、スマートコントラクトがいくつかの実装態様に従って実行モード中に良好に実行される場合、コンセンサスノードによって、例えば、クライアント・コンピューティング・デバイスに、送信され得るスマートコントラクト応答メッセージ130のデータ構造の一例を示す。例えば、SCメッセージ130が送信される場合、コンセンサスノードは、スマートコントラクトを使用してトランザクションをすでに実行しており、実行結果のコンセンサスに達しており、実行結果を含むトランザクションのトランザクション情報を、スマートコントラクト用のブロックチェーン内の少なくとも1つの新しいブロックに追加しているであろう。
図4Aの例では、行402は、コンセンサスノード102上で実行されたスマートコントラクト106のIDを含む。行404は、スマートコントラクト応答メッセージの種類を含む。この例では、種類は「応答の呼び出し」に設定されている。行406は、スマートコントラクトの実行の状態を含む。この場合、状態は「成功」に設定され、トランザクションが正常に実行されたことを示す。行408は、スマートコントラクト応答メッセージ130のメッセージを含み、この場合、トランザクションが正常に完了したので”null”である。行410は、スマートコントラクト応答メッセージ130のペイロードを含み、いくつかの例ではトランザクション実行結果を含むことができる。例えば、この例では、ペイロードは、値X=100などの、1つまたは複数の値を含む。非限定的な例の1つとして、スマートコントラクトがサーモスタットを制御する場合、スマートコントラクト応答メッセージ130を受信するコンピューティングデバイスによってサーモスタットを制御するためにペイロード内の値を使用することができる。さらに、行412は、応答メッセージのタイムスタンプを含む。
図4Bは、スマートコントラクト実行がいくつかの実装態様に従って失敗した場合のスマートコントラクト応答メッセージ130のデータ構造の一例を示す。例えば、スマートコントラクトは、コンセンサスノードの1つまたは複数上で適切に実行されなかった可能性があり、および/またはコンセンサスノード間で、トランザクションの実行結果に関して、コンセンサスに達していない。この例では、行404のスマートコントラクト応答メッセージ130の種類は「応答を呼び出す」に設定され、行406のスマートコントラクトの実行の状態は「エラー」に設定される。行408のメッセージは、「無効なトランザクション」を示す。さらに、行410のペイロードは、トランザクション要求が拒否されたことまたはエラー結果の他の原因を示すエラーメッセージに設定される。
図4Cは、スマートコントラクトがいくつかの実装態様に従ってシミュレーションモードで実行される場合のスマートコントラクト応答メッセージ130のデータ構造の一例を示す。本明細書の例では、上述のように、特定のスマートコントラクトが「シミュレーション」モードの場合、スマートコントラクトは、トランザクションを実行するよう実行されることが許可されるが、スマートコントラクトは、有効なトランザクション結果としてブロックチェーンにトランザクションの結果を書き込むことによってブロックチェーンを更新することが許可されない。したがって、シミュレーションモードは、ブロックチェーンが更新されない点で実行モードとは異なる。このようにして、クライアント・コンピューティング・デバイスのユーザは、シミュレーションモードでスマートコントラクトを実行することによってスマートコントラクトの満了時間に達した後に、ブロックチェーン内のデータにアクセスすることができる。シミュレーションモードでは、スマートコントラクトを用いてトランザクションを実行することにより、ユーザは、ブロックチェーンからトランザクション情報を取得することができ、シミュレーションモードでスマートコントラクトの下でトランザクションを実行した結果によってブロックチェーンが更新されないことにより、ブロックチェーンの完全性が維持される。
図4Cの例では、行404のSCメッセージ130の種類は「応答をシミュレート」に設定され、行406のスマートコントラクトの実行の状態は「成功」に設定される。スマートコントラクトの要求されたトランザクションの実行が成功したので、行408のメッセージは”null”に設定される。行410のペイロードは、返される値に設定される。したがって、スマートコントラクト応答メッセージ130は、ブロックチェーンの内容に影響を与えることなく、ブロックチェーンに格納されたトランザクション情報または他のコンテンツ(この例では値X=100)を返すことができる。
図5から図8は、いくつかの実装態様による例示的プロセスを示す流れ図である。プロセスは、一連の動作を表す論理流れ図におけるブロックの集合として示され、その一部または全部は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実現することができる。ソフトウェアの場合では、ブロックは、1つまたは複数のプロセッサによって実行されると、列挙された動作を実行するようにプロセッサをプログラムする、1つまたは複数のコンピュータ可読媒体に格納されたコンピュータ実行可能命令を表すことができる。一般に、コンピュータ実行可能命令は、特定の機能を実行する、または特定のデータ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。ブロックが記述されている順序は、限定するものとして解釈されるべきではない。任意の数の記述されたブロックは、プロセスまたは代替プロセスを実装するために任意の順序および/または並列で組み合わせることができ、すべてのブロックを実行する必要はない。説明のために、プロセスは、本明細書の例に記載された環境、フレームワーク、およびシステムを参照して記述されるが、プロセスは、多種多様な他の環境、フレームワーク、およびシステムで実施してもよい。
図5は、いくつかの実装態様によるスマートコントラクトコンフィギュレータ120の例示的なプロセス500を示す流れ図である。スマートコントラクトコンフィギュレータ120は、スマートコントラクトの展開、アップグレード、移行、シミュレート、および解除のプロセスを実行する。プロセス500は、ノードプログラム114を実行することによって各コンセンサスノード102上のスマートコントラクトコンフィギュレータ120によって実行されるアルゴリズムを含むことができる。例えば、各コンセンサスノード上でノードプログラム114を実行して、コンセンサスノードの1つまたは複数のプロセッサがプロセス500を実行するよう構成することができる。
502では、スマートコントラクトコンフィギュレータは、(例えば、図6のプロセス600を実行する場合などに、スマートコントラクト・ライフサイクル・マネージャ118から送信される)スマートコントラクト構成の要求を受信することができる。要求メッセージは、スマートコントラクトプログラムの指示および構成要求の種類を含むことができる。
504では、スマートコントラクトコンフィギュレータは、要求メッセージから、「展開」、「アップグレード」、「シミュレート」、または「解除」とすることができる、構成要求の種類を判定する。
506では、スマートコントラクトコンフィギュレータは、種類の値をチェックすることによって構成要求の種類が「解除」であるかどうかを判定する。種類が「解除」である場合、プロセスは520に進み、スマートコントラクトを停止および解除する。そうでなければ、種類が「解除」でない場合、プロセスは508に進む。
508では、構成要求の種類が「シミュレート」であるかどうかを判定する。種類が「シミュレート」である場合、プロセスは518に進み、スマートコントラクトをシミュレーションモードに変更する。そうでなければ、種類が「シミュレート」でない場合、プロセスは510に進む。
510では、種類が「解除」または「シミュレート」でない場合、種類は「展開」または「アップグレード」であり、スマートコントラクトコンフィギュレータは、各スマートコントラクトから満了時間および保管期間を読み込む。例えば、種類が「展開」または「アップグレード」の場合、要求は、新しいスマートコントラクトを展開するか、既存のスマートコントラクトをアップグレードすることを意図する。新しいスマートコントラクトを展開する場合、スマートコントラクトコンフィギュレータは、例えば、図3に関して上述した、スマートコントラクト期間DS218における新しいスマートコントラクトのための新しい記録を作成する。既存のスマートコントラクトをアップグレードする場合、スマートコントラクトコンフィギュレータは、スマートコントラクト期間DS218におけるスマートコントラクトの既存のレコードを更新することができる。
512では、スマートコントラクトコンフィギュレータは、スマートコントラクト期間DS218の満了時間および/または保管期間を更新することができる。
514では、スマートコントラクトコンフィギュレータは、スマートコントラクト期間DS218におけるスマートコントラクトの状態を「実行」に設定する。換言すれば、スマートコントラクトは、各コンセンサスノード上で実行される準備が整う。
516では、スマートコントラクトコンフィギュレータは、スマートコントラクトを実行する、すなわち、スマートコントラクトを各コンセンサスノード上でアクティブにする。この時点から、スマートコントラクトは、スマートコントラクトのトランザクションを実行するためにスマートコントラクト要求126をクライアントノード108から受け取ることができる。トランザクションが実行されると、新しいブロックがブロックチェーンに追加され、トランザクション結果および他のトランザクション情報(コンセンサスに達したと仮定する)が記録される。
518では、508での要求の種類が「シミュレート」であると判定された場合、スマートコントラクトコンフィギュレータは、スマートコントラクト期間DS218におけるスマートコントラクトの状態として「シミュレート」に設定する。この時点から、スマートコントラクトは、例えば、図1に関して上述したように、スマートコントラクトのトランザクションをシミュレートするためにスマートコントラクト要求126をクライアントノード108から受け取ることができる。
520では、506における要求の種類が「解除」であると判定された場合、スマートコントラクトコンフィギュレータは、スマートコントラクト期間DS218におけるスマートコントラクトの状態として「停止」に設定する。
522では、スマートコントラクトコンフィギュレータは、スマートコントラクトを停止する。この時点から、スマートコントラクトは、スマートコントラクト要求126をクライアントノード108からもはや受け取ることができない。いくつかの例では、対応するブロックチェーンを削除またはアーカイブすることができる。
図6は、いくつかの実装態様に従って、例えば図1に関して上述した、スマートコントラクト・ライフサイクル・マネージャ118によって実行することができる例示的なプロセス600を示す流れ図である。例えば、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクトを変更して、スマートコントラクトの状態をシミュレーションモードに変更するシミュレーションインジケータを設定することができ、スマートコントラクトコンフィギュレータに要求を送信して、スマートコントラクトコンフィギュレータに、例えば、図5に関して上述したように、スマートコントラクトをシミュレーションモードに再構成させることができる。場合によっては、プロセス600は、条件の発生などに基づいて、自動的に、例えば、定期的に、実行してもよい。他の例では、システム管理者または他のユーザが、プロセス600を実行させることができる。一例として、プロセスは、図3のスマートコントラクト期間DS218内の各エントリを調べることができる。
602では、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクト期間DS218から記録を読み出すことができる。
604では、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクト期間DS218から満了時間306の値を判定する。
606では、スマートコントラクト・ライフサイクル・マネージャは、現時点と満了時間304の判定値と比較することによってスマートコントラクトが期限切れになっているかどうかを判定する。スマートコントラクトが満了時間を過ぎた場合、プロセスは608に進み、そうでない場合、プロセス600は602に戻って、スマートコントラクト期間DS218内の次の記録を処理し、またはすべての記録が処理されると、プロセス600は終了することができる。
608では、スマートコントラクトライフサイクルマネージャは、選択された記録のスマートコントラクト期間DS内の保管期間308の値を判定する。
610では、スマートコントラクト・ライフサイクル・マネージャは、現在の日付と保管期間308の判定値とを比較することによって、スマートコントラクトが保管期間308の終わりに達したかどうかを判定する。保管期間308の終わりに達した場合、プロセスは620に進む。保管期間308の終わりに達していない場合、プロセスは612に進む。
612では、保管期間の終わりにまだ達していないがスマートコントラクトの満了時間に達した場合、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクト期間DS218から選択された記録のID302に対応するスマートコントラクトを取得する。例えば、スマートコントラクトの有効期間が満了時間を過ぎた場合、スマートコントラクトは、有効なトランザクション結果としてブロックチェーンにそれ以上のトランザクション結果を書き込むことはできない。したがって、スマートコントラクトの状態は、シミュレーションモードに変更される。
614では、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクトの状態がシミュレーションモードに変更されたことを示すために、スマートコントラクトにシミュレーションインジケータを設定する。シミュレーションモードでは、ユーザは、スマートコントラクトを使用してトランザクションをシミュレートすることによってブロックチェーンから情報を抽出することができるが、ブロックチェーンは変更されない。
616では、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクトコンフィギュレータに構成要求を行う種類として「シミュレート」を設定する。
618では、スマートコントラクト・ライフサイクル・マネージャは、(例えば、図5の502で上述したように)スマートコントラクトコンフィギュレータ120にスマートコントラクト構成の要求を送信する。スマートコントラクトコンフィギュレータは、図5に関して上述したように、要求を受信して、スマートコントラクト期間DS218を更新することができる。その場合、プロセス600は、スマートコントラクト期間DS218内の次の記録を処理するために602に戻ることができ、またはすべての記録が処理された場合、プロセス600を終了することができる。
620では、610でスマートコントラクト・ライフサイクル・マネージャにより保管期間が終了したと判定された場合、スマートコントラクト・ライフサイクル・マネージャは、選択された記録に対して図3の列302から判定された対応するスマートコントラクトIDを有するスマートコントラクトを取得する。保管期間が終了すると、スマートコントラクトはもはやブロックチェーン内のトランザクションデータを読み取ることができなくなり、スマートコントラクトは解除することができる。
622では、スマートコントラクト・ライフサイクル・マネージャは、スマートコントラクトコンフィギュレータに構成要求を行う構成要求の種類として「解除」を設定する。
624では、スマートコントラクト・ライフサイクル・マネージャは、(例えば、図5の502で上述したように)スマートコントラクトコンフィギュレータ120にスマートコントラクト構成の要求を送信する。スマートコントラクトコンフィギュレータは、上記のように要求を受け取り、スマートコントラクトを停止する。その場合、プロセス600は、スマートコントラクト期間DS218内の次の記録を処理するために602に戻ることができ、またはすべての記録が処理された場合、プロセス600を終了することができる。
図7は、スマートコントラクトがいくつかの実装態様に従って無効なトランザクション結果を破棄するよう構成されるスマートコントラクトを実行するための例示的なプロセス700を示す流れ図である。一例として、例えば、図1に関して上述したスマートコントラクト106は、クライアントコンピューティングデバイス108からなどのスマートコントラクト要求126を受信することができ、要求を受信したことに応答してトランザクションを実行することができる。例えば、SC要求126は、そのスマートコントラクトを呼び出して、ブロックチェーンからデータを検索し、検索されたデータをスマートコントラクト応答メッセージ130のトランザクション結果として返すトランザクションを実行する照会機能とすることができる。スマートコントラクトは、SC要求126に応答して、スマートコントラクト応答メッセージ130をクライアントコンピューティングデバイス108に返すことができる。本明細書の例では、スマートコントラクトに「トランザクションを実行」させることは、スマートコントラクト106の1つまたは複数の機能を呼び出すことを意味することができる。呼び出された機能は、ブロックチェーン上のデータを読み書きする論理を含むことができる。
いくつかの例では、プロセス700は、部分的にはノードプログラム114によって、および部分的にはスマートコントラクト106自体によって、実行することができる。例えば、ノードプログラム114は、コンセンサスノード102上の複数のスマートコントラクトおよび対応するブロックチェーンを管理することができる。ノードプログラム114は、クライアントコンピューティングデバイス、外部コンピューティングデバイス、および他のコンセンサスノード102からの通信を受信し、応答することができる。さらに、ノードプログラムは、受信された通信がどのスマートコントラクトに適用されるかを判定することができ、スマートコントラクトID、クライアントコンピューティングデバイスID、ユーザID、または受信した通信に関連する他の識別子に基づいて通信のターゲットである特定のスマートコントラクトを呼び出すことができる。
702では、コンセンサスノードは、例えば、クライアントコンピューティングデバイスから、スマートコントラクト要求を受信することができ、受信した要求を、要求に対応する特定のスマートコントラクトに提供し、スマートコントラクトを呼び出し、要求に基づいてトランザクションを実行することができる。
704では、コンセンサスノードは、スマートコントラクトが解除されたかどうかを判定することができる。例えば、コンセンサスノードは、スマートコントラクト期間データ構造218をチェックして、受信した要求に対応するスマートコントラクトが停止されているか、または解除されているかどうかを判定することができる。
706では、スマートコントラクトが解除される場合、コンセンサスノードは、スマートコントラクトが利用できないことを示す応答メッセージをコンピューティングデバイスに送信することができる。例えば、応答メッセージは、スマートコントラクトの状態が停止していること、および/または要求されたトランザクションを実行しようとする際にエラーがあったことを示すことができる。
708では、スマートコントラクトはスマートコントラクト要求に応答してトランザクションを実行する。トランザクションの実行中、スマートコントラクトは、ブロックチェーン上のデータの少なくとも一部を読み取ることができる。
710では、スマートコントラクト106は、スマートコントラクトのシミュレーションインジケータをチェックする。例えば、各スマートコントラクトは、スマートコントラクトがシミュレーションモードにあるかどうかを示すためにオンまたはオフにすることができる関連するフラグ(例えば、設定可能なビットなど)または他の種類のインジケータを有することができる。したがって、シミュレーションインジケータが「設定」されている場合、スマートコントラクトがシミュレーションモードにあることを示す。
712では、スマートコントラクト106は、シミュレーションインジケータがシミュレーションモードに設定されているかどうかを判定する。シミュレーションインジケータが設定されている場合、プロセスは724に進み、トランザクションの結果はブロックチェーンに格納されない。他方、シミュレーションインジケータが設定されていない場合、プロセスは714に進み、トランザクションの結果は、(コンセンサスに達した後)ブロックチェーンに書き写すことができる。
714では、スマートコントラクト106は、コンセンサスシステム内の他のコンセンサスノード102によりコンセンサス動作を実行するか、または実行させる。様々な既知のコンセンサスプログラムのいずれかを使用して、トランザクション結果のコンセンサスを判定することができる。一例として、一次コンセンサスノードをシステム内で指定して、コンセンサスノード102の一部または全部がトランザクション結果のコンセンサスに達したかどうかを判定することができる。その場合、一次ノードは、他のコンセンサスノード102にコンセンサスに達したことか、またはコンセンサス達しなかったことについて通知することができる。多くの他の変形が、本明細書の開示の利益を有する当業者には明らかであろう。
716では、スマートコントラクトはコンセンサスプログラムから応答を受け取り、コンセンサスに達したかどうかを判定する。コンセンサスに達した場合、プロセスは718に進み、トランザクション結果を元帳(例えば、ブロックチェーン内の新しいブロック)に書き写す。他方で、コンセンサスに達していない場合、プロセスは722に進む。コンセンサスを受け取っていないトランザクションは無効であるので、図7の実装態様では、トランザクション結果を元帳に書き写すことはスキップされる。
718では、コンセンサスに達すると、スマートコントラクト106は、例えば、少なくともトランザクションの結果をブロックチェーンの新しいブロックに書き込むことによって、トランザクション情報を元帳に書き写す。これは、コンセンサスシステムの各コンセンサスノード上で行うことができ、その結果、同じスマートコントラクトのすべてのブロックチェーンが、すべてのコンセンサスノードで同じになる。
720では、スマートコントラクト106は、トランザクションが良好に完了したことを示すスマートコントラクトメッセージを作成することができる。一例として、スマートコントラクトメッセージは、図4Aに関して図示および説明したように、スマートコントラクトのID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。例えば、上述のように、種類は「応答を呼び出す」と設定することができ、状態は「成功」と設定される。この例では、スマートコントラクト106は、スマートコントラクトがシミュレーションモードではないスマートコントラクトの下でトランザクションが良好に実行された場合にのみトランザクション情報を元帳に書き写し(例えば、スマートコントラクトが展開されているか、または既存のスマートコントラクトがアップグレードされているなど)、実行結果についてコンセンサスに達する。
722では、716でコンセンサスに達していない場合、スマートコントラクト106は、エラーを示すスマートコントラクトメッセージを作成する。図4Bを参照して図示および説明したように、SCメッセージは、スマートコントラクトID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。この状況では、種類は「応答を呼び出す」と設定され、状態はエラーを示すことができる。
724では、シミュレーションインジケータが712で設定されたと判定された場合、スマートコントラクト106は、シミュレーションを示すスマートコントラクトメッセージを作成することができる。スマートコントラクトメッセージは、図4Cに示すように、スマートコントラクトID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。この場合、種類は「応答をシミュレート」と設定することができ、状態は「成功」と設定することができる。
726では、スマートコントラクトは返されるか、さもなければコンセンサスノードに、スマートコントラクト要求を送信したクライアントコンピューティングデバイスまたは他のコンピューティングデバイスへの応答としてスマートコントラクトメッセージを返させることができる。
図8は、いくつかの実装態様に従って有効および無効なトランザクション結果の両方を格納するよう構成されるスマートコントラクトを実行するための例示的なプロセスを示す流れ図である。一例として、例えば、図1に関して上述したスマートコントラクト106は、クライアントコンピューティングデバイス108からなどのスマートコントラクト要求126を受信することができ、要求を受信したことに応答してトランザクションを実行することができる。スマートコントラクトは、スマートコントラクト要求126に応答して、スマートコントラクトメッセージ130をクライアントコンピューティングデバイス108に返すことができる。本明細書の例では、スマートコントラクトに「トランザクションを実行」させることは、スマートコントラクト106の1つまたは複数の機能を呼び出すことを意味することができる。呼び出された機能は、ブロックチェーン上のデータを読み書きする論理を含むことができる。図8の例では、トランザクションが有効であるか無効であるかにかかわらず、すべてのトランザクションがブロックチェーンに格納される。一例として、無効なトランザクションのためにブロックチェーンに追加されたブロックは、無効であるとマークすることができる。
いくつかの例では、プロセス800は、部分的にはノードプログラム114によって、および部分的にはスマートコントラクト106自体によって、実行することができる。例えば、ノードプログラム114は、コンセンサスノード102上の複数のスマートコントラクトおよび対応するブロックチェーンを管理することができる。ノードプログラム114は、クライアントコンピューティングデバイス、外部コンピューティングデバイス、および他のコンセンサスノード102からの通信を受信し、応答することができる。さらに、ノードプログラムは、受信された通信がどのスマートコントラクトに適用されるかを判定することができ、スマートコントラクトID、クライアントコンピューティングデバイスID、ユーザID、または受信した通信に関連する他の識別子に基づいて通信のターゲットである特定のスマートコントラクトを呼び出すことができる。
802では、コンセンサスノードは、例えば、クライアントコンピューティングデバイスから、スマートコントラクト要求を受信することができ、受信した要求を、要求に対応する特定のスマートコントラクトに書き写すか、または提供し、スマートコントラクトを呼び出し、要求に基づいてトランザクションを実行することができる。図7のブロック704および706をここでも実行することができる。
804では、スマートコントラクトはスマートコントラクト要求に応答してトランザクションを実行する。トランザクションの実行中、スマートコントラクトは、ブロックチェーン上のデータの少なくとも一部を読み取ることができる。
806では、スマートコントラクトは、スマートコントラクトのシミュレーションインジケータを読み取る。例えば、各スマートコントラクトは、スマートコントラクトがシミュレーションモードにあるかどうかを示すためにオンまたはオフにすることができる関連するフラグ(例えば、ビットなど)を有することができる。
808では、スマートコントラクトは、シミュレーションインジケータがシミュレーションに設定されているかどうかを判定する。シミュレーションインジケータが設定されている場合、プロセスは810に進み、トランザクションの結果をクライアントコンピューティングデバイスに返す。この例では、トランザクションの結果はまた、ブロックチェーン内の新しいブロックに無効なトランザクションとして追加される。例えば、スマートコントラクトはシミュレーションモードで動作しており、したがって、スマートコントラクトの満了時間がすでに経過しているので、トランザクションの結果はデータにアクセスするためにのみ使用される。したがって、トランザクション結果が元帳、すなわち、ブロックチェーン上で有効になるのを防ぐために、無効なトランザクションを示すためにトランザクション結果に無効フラグが設定される。したがって、新しいブロックがブロックチェーンに追加されても、そのブロックは無効とマークされる可能性がある。他方、シミュレーションインジケータが設定されていない場合、プロセスは814に進む。
810では、シミュレーションインジケータが設定されている場合、スマートコントラクトは、トランザクションシミュレーションの結果をスマートコントラクトメッセージとしてクライアントコンピューティングデバイスに返す。スマートコントラクトは、スマートコントラクトメッセージをシミュレーションの指示と共に返す。例えば、図4Cを参照して図示および説明したように、メッセージは、スマートコントラクトID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。例えば、種類は、上述のように、「応答をシミュレート」と設定される。
812では、スマートコントラクトは、トランザクション結果に無効フラグを設定する。前述のように、スマートコントラクトはシミュレーションモードで動作しており、したがって、スマートコントラクトの満了時間がすでに経過しているので、トランザクションの結果はデータにアクセスするためにのみ使用される。したがって、無効なトランザクションを示すために、トランザクション結果に無効フラグが設定される。したがって、新しいブロックがブロックチェーンに追加されても、そのブロックは無効とマークされる可能性がある。
814では、スマートコントラクトは、コンセンサスプログラムに、他のコンセンサスノード102とのコンセンサス動作を実行させて、トランザクション結果にコンセンサスがあるかどうかを判定する。様々な既知のコンセンサスプログラムのいずれかを使用して、トランザクション結果のコンセンサスを判定することができる。一例として、一次コンセンサスノードをシステム内で指定して、コンセンサスノード102の一部または全部がトランザクション結果のコンセンサスに達したかどうかを判定することができる。その場合、一次ノードは、他のコンセンサスノード102にコンセンサスに達したことか、またはコンセンサス達しなかったことについて通知することができる。多くの他の変形が、本明細書の開示の利益を有する当業者には明らかであろう。
816では、スマートコントラクトはコンセンサスプログラム116から応答を受け取り、コンセンサスに達したかどうかを判定する。コンセンサスに達した場合、プロセスは822に進む。他方、コンセンサスに達していない場合、プロセスは818に進む。
818では、コンセンサスに達しなかった場合、スマートコントラクトは、トランザクション結果に無効フラグを設定する。コンセンサスを得られないトランザクション結果は無効であるため、トランザクション情報をブロックチェーンに書き写す前に無効フラグが設定される。さらに、シミュレーションインジケータが設定されている場合、トランザクション結果には、無効フラグが上記812ですでに設定されている。
820では、スマートコントラクトは、エラーを示すスマートコントラクトメッセージを作成する。例えば、図4Bを参照して図示および説明したように、メッセージは、スマートコントラクトID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。例えば、種類は「応答を呼び出す」と設定することができ、状態は「エラー」と設定することができる。
他方、822において、シミュレーションインジケータが設定されず、トランザクション結果についてコンセンサスに達すると、スマートコントラクトは、成功を示すスマートコントラクトメッセージを作成する。例えば、図4Aを参照して図示および説明したように、メッセージは、スマートコントラクトID、種類、状態、メッセージ、ペイロード、およびタイムスタンプを含むことができる。例えば、種類は「応答を呼び出す」と設定することができ、状態は「成功」と設定することができる。
824では、スマートコントラクト106は、例えば、少なくともトランザクションの結果をブロックチェーンの新しいブロックに書き込むことによって、トランザクション情報を元帳に書き写す。これは、コンセンサスシステムの各コンセンサスノード上で行うことができ、その結果、同じスマートコントラクトのすべてのブロックチェーンが、すべてのコンセンサスノードで同じになる。前述のように、トランザクション結果に無効フラグが関連付けられている場合、新しいブロックは無効とマークされる可能性がある。
826では、スマートコントラクトは、820または822のいずれかで作成されたスマートコントラクトメッセージを返す。
本明細書に記載される例示的なプロセスは、説明のために提供されるプロセスの単なる例である。多くの他の変形が、本明細書の開示の観点から当業者には明らかであろう。さらに、本明細書の開示は、プロセスを実行するための適切なフレームワーク、アーキテクチャ、および環境のいくつかの例を述べているが、本明細書の実装態様は、図示されて説明される特定の例に限定されない。さらに、本開示は、説明され、図面に示されるような、様々な例示的な実装態様を提供する。しかしながら、本開示は、本明細書で説明および図示された実装態様に限定されず、当業者に既知であるように、他の実装態様に拡張することができる。
本明細書で説明される様々な命令、プロセス、および技術は、コンピュータ可読媒体に格納されて本明細書のプロセッサによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な状態と考えることができる。一般に、プログラムモジュールは、特定のタスクを実行するため、または特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造、実行可能コードなどを含む。これらのプログラムモジュールなどは、ネイティブコードとして実行することができ、または仮想マシンもしくは他のジャストインタイムコンパイル実行環境などでダウンロードして実行することができる。典型的には、プログラムモジュールの機能は、様々な実装態様において所望されるように組み合わせるか、または分散させることができる。これらのモジュールおよび技術の実装態様は、コンピュータ記憶媒体に格納してもよく、または何らかの形態の通信媒体を介して送信してもよい。したがって、本明細書のインデックス構成は、物理ハードウェア上に実装することができ、仮想実装で使用することができ、物理または仮想マシン上の全体重複除去システムの一部として使用することができ、ならびに/もしくは他の重複除去実装態様(例えば、SAN)のための構成要素として、または大規模メモリインデックスなどのいくつかの非重複除去環境内にあるものとすることができる。
発明の主題は、構造的特徴および/または方法論的動作に特有の言語で記載されているが、添付の特許請求の範囲に定義された発明の主題は必ずしも記載された特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
100 システム
102 コンセンサスノード
104 ネットワーク
106 スマートコントラクト
108 クライアント・コンピューティング・デバイス
110 外部システム・コンピューティング・デバイス
112 ブロックチェーン
114 ノードプログラム
116 コンセンサスプログラム
118 スマートコントラクト・ライフサイクル・マネージャ
119 ユーザ
120 スマートコントラクトコンフィギュレータ
122 クライアントプログラム
124 デジタル署名
126 スマートコントラクト要求
128 外部データ
130 スマートコントラクト(SC)メッセージ
132 スマートコントラクト実行結果
202 プロセッサ
204 通信インターフェース
206 コンピュータ可読媒体
208 入出力(I/O)デバイス
210 ローカルストレージ
212 メモリ
214 オペレーティングシステム(OS)
218 スマートコントラクト期間データ構造(DS)
222 トランザクション情報
304 状態
306 満了時間
308 保管期間
1001 スマートコントラクトID
1002 スマートコントラクトID
1003 スマートコントラクトID

Claims (19)

  1. 第1のコンピューティングノードを備えるシステムであって、
    前記第1のコンピューティングノードは、複数のブロックチェーンを管理するコンセンサスシステムに参加するために、少なくとも1つの第2のコンピューティングノードと通信可能であり、
    前記第1のコンピューティングノードは、
    複数のスマートコントラクトのうち、前記複数のブロックチェーンの第1のブロックチェーンと関連付けられる第1のスマートコントラクトを実行するための要求を、コンピューティングデバイスから受信する操作と、
    前記第1のブロックチェーンに格納されるトランザクション情報の少なくとも一部をトランザクションの結果として読み出す処理を含む、トランザクションを実行させるために、前記受信した要求に基づいて前記第1のスマートコントラクトを呼び出す操作と、
    前記第1のスマートコントラクトに、前記第1のスマートコントラクトの満了時間に達したことを示すシミュレーションインジケータが設定されているかかを判定する操作と、
    前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止し、かつ、前記コンピューティングデバイスに前記トランザクション結果を含む応答メッセージを送信する操作と、
    を実行するための実行可能命令によって構成される、少なくとも1つのプロセッサを含むことを特徴とするシステム。
  2. 請求項1に記載のシステムであって、
    有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止する操作は、
    前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、前記トランザクションの結果に、無効であることを示すフラグを関連付ける操作と、
    前記トランザクション結果および前記フラグを前記第1のブロックチェーンの新規ブロックに格納する操作と、
    を含むことを特徴とするシステム。
  3. 請求項2に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、
    前記少なくとも1つの第2のコンピューティングノードの前記トランザクション結果に関するコンセンサスを求める操作と、
    コンセンサスに達していない場合、前記コンピューティングデバイスに、エラーまたは無効なトランザクションの少なくともいずれかを示す情報を含む応答メッセージを送信する操作と、
    含むことを特徴とするシステム。
  4. 請求項1に記載のシステムであって、
    有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止する操作は、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、前記第1のブロックチェーンの新規ブロックへの前記トランザクションの結果の保存を控える操作を含むことを特徴とするシステム。
  5. 請求項1に記載のシステムであって、
    前記第1のブロックチェーン、前記満了時間に達する前に前記第1のスマートコントラクトによって実行され複数のトランザクションの結果を保持することを特徴とするシステム。
  6. 請求項5に記載のシステムであって、
    前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合に送信される応答メッセージは、前記第1のブロックチェーンから読み出された、前記満了時間に達する前に前記第1のスマートコントラクトによって実行され少なくとも1つのトランザクションの結果を含み、さらに、前記応答メッセージの種別がシミュレーションであることを示す情報を含むことを特徴とするシステム。
  7. 請求項1に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、
    前記第1のスマートコントラクトを実行するための要求を受信する前に、前記第1のスマートコントラクトの前記満了時間と現在時間とを比較する操作と、
    前記比較の結果に基づいて、前記第1のスマートコントラクトの前記満了時間に達しているか否かを判定する操作と、
    前記第1のスマートコントラクトの前記満了時間に達していると判定された場合、前記第1のスマートコントラクトに前記シミュレーションインジケータを設定する操作と、
    を含むことを特徴とするシステム。
  8. 請求項1に記載のシステムであって、
    前記第1のコンピューティングノードは、前記複数のスマートコントラクトの状態を管理するためのエントリを格納するスマートコントラクト情報を保持し、
    前記少なくとも1つのプロセッサによって実行される操作は、
    前記第1のスマートコントラクトの保管期間が終了したか否かを判定する操作と、
    前記第1のスマートコントラクトの保管期間が終了したと判定された場合、前記第1のスマートコントラクトが停止または解除されたことを示すように、前記スマートコントラクト情報にて管理される前記第1のスマートコントラクトのエントリを更新する操作と、
    を含むことを特徴とするシステム。
  9. 請求項8に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、
    前記第1のスマートコントラクトを実行するための要求を受信した場合、前記スマートコントラクト情報を参照して、前記第1のスマートコントラクトが停止または解除されているか否かを判定する操作と、
    前記第1のスマートコントラクトが停止または解除されていると判定された場合、前記コンピューティングデバイスに、前記第1のスマートコントラクトが利用できないことを示す情報を含む応答メッセージを送信する操作と、
    を含むことを特徴とするシステム。
  10. 請求項1に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていないと判定された場合、前記トランザクションの結果に基づいて前記少なくとも1つの第2のコンピューティングノードにコンセンサス動作を実行させる操作を含むことを特徴とするシステム。
  11. 請求項10に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、
    前記少なくとも1つの第2の計算機ノードによる前記コンセンサス動作の結果、コンセンサスに達した場合、前記トランザクションの結果を、前記第1のブロックチェーンの新規ブロックに格納する操作と、
    前記コンピューティングデバイスに、前記トランザクションの結果および成功を示す情報を含む応答メッセージを送信する操作と、
    を含むことを特徴とするシステム。
  12. 請求項10に記載のシステムであって、
    前記少なくとも1つのプロセッサによって実行される操作は、前記少なくとも1つの第2の計算機ノードによる前記コンセンサス動作の結果、コンセンサスに達していない場合、前記コンピューティングデバイスに、エラーを示す情報を含む応答メッセージを送信する操作を含むことを特徴とするシステム。
  13. 複数のブロックチェーンを管理するコンセンサスシステムに参加するために、少なくとも1つの第2のコンピューティングノードと通信可能に接続される第1のコンピューティングノードが実行するスマートコントラクトのライフサイクルの管理方法であって、
    前記第1のコンピューティングノードが、複数のスマートコントラクトのうち、複数のブロックチェーンの第1のブロックチェーンと関連付けられる第1のスマートコントラクトを実行するための要求を、コンピューティングデバイスから受信する第1のステップと、
    前記第1のコンピューティングノードが、前記第1のブロックチェーンに格納されるトランザクション情報の少なくとも一部をトランザクションの結果として読み出す処理を含む、トランザクションを実行させるために、前記受信した要求に基づいて前記第1のスマートコントラクトを呼び出す第2のステップと、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトに、前記第1のスマートコントラクトの満了時間に達していることを示すシミュレーションインジケータが設定されているか否かを判定する第3のステップと、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止し、かつ、前記トランザクションの結果を含む応答メッセージを前記コンピューティングデバイスに送信する第4のステップと、
    を含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  14. 請求項13に記載のスマートコントラクトのライフサイクルの管理方法であって、
    前記第4のステップは、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、前記トランザクションの結果に、無効であることを示すフラグを関連付けるステップと、
    前記第1のコンピューティングノードが、前記トランザクションの結果および前記フラグを、前記第1のブロックチェーンの新規ブロックに格納するステップと、
    を含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  15. 請求項13に記載のスマートコントラクトのライフサイクルの管理方法であって、
    前記第4のステップは、前記第1のコンピューティングノードが、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、前記トランザクションの結果を、前記第1のブロックチェーンの新規ブロックに格納することを控えるステップを含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  16. 請求項13に記載のスマートコントラクトのライフサイクルの管理方法であって、
    前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合に送信される応答メッセージは、前記第1のブロックチェーンから読み出された、前記満了時間に達する前に前記第1のスマートコントラクトによって実行された少なくとも1つのトランザクションの結果を含み、さらに、前記応答メッセージの種類がシミュレーションであることを示す情報を含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  17. 請求項13に記載のスマートコントラクトのライフサイクルの管理方法であって、
    前記第1のコンピューティングノードは、前記複数のスマートコントラクトの状態を管理するためのエントリを格納するスマートコントラクト情報を保持し、
    前記スマートコントラクトのライフサイクルの管理方法は、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトの保管期間が終了したか否かを判定するステップと、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトの保管期間が終了したと判定された場合、前記第1のスマートコントラクトが停止または解除されたことを示すように、前記スマートコントラクト情報にて管理される前記第1のスマートコントラクトのエントリを更新するステップと、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトを実行するための要求を受信した場合、前記スマートコントラクト情報を参照して、前記第1のスマートコントラクトが停止または解除されているか否かを判定するステップと、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトが停止または解除されていると判定された場合、前記コンピューティングデバイスに、前記第1のスマートコントラクトが利用できないことを示す情報を含む応答メッセージを送信するステップと、
    を含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  18. 請求項13に記載のスマートコントラクトのライフサイクルの管理方法であって、
    前記第1のコンピューティングノードが、前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていない場合、前記トランザクションの結果に基づいて少なくとも1つの第2のコンピューティングノードにコンセンサス動作を実行させるステップを含むことを特徴とするスマートコントラクトのライフサイクルの管理方法。
  19. 複数のブロックチェーンを管理するコンセンサスシステムに参加するために、少なくとも1つの第2のコンピューティングノードと通信可能に接続される第1のコンピューティングノードが有する少なくとも1つのプロセッサに実行される命令を格納する非一時的コンピュータ可読媒体であって、
    複数のスマートコントラクトのうち、複数のブロックチェーンの第1のブロックチェーンに関連付けられる第1のスマートコントラクトを実行するための要求を、コンピューティングデバイスから受信する手順と、
    前記第1のブロックチェーンに格納されるトランザクション情報の少なくとも一部をトランザクションの結果として読み出す処理を含む、トランザクションを実行させるために、前記受信した要求に基づいて前記第1のスマートコントラクトを呼び出す手順と、
    前記第1のスマートコントラクトに、前記第1のスマートコントラクトの満了時間に達したことを示すシミュレーションインジケータが設定されているか否かを判定する手順と、
    前記第1のスマートコントラクトに前記シミュレーションインジケータが設定されていると判定された場合、有効な結果として、前記第1のブロックチェーンへの前記トランザクションの結果の書き込みを抑止し、かつ、前記コンピューティングデバイスに前記トランザクションの結果を含む応答メッセージを送信する手順と、
    を前記少なくとも1つのプロセッサに実行させることを特徴とする非一時的コンピュータ可読媒体。
JP2018115418A 2017-06-19 2018-06-18 システム、スマートコントラクトのライフサイクルの管理方法、及び非一時的コンピュータ可読媒体 Active JP6638024B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/626,236 2017-06-19
US15/626,236 US11055703B2 (en) 2017-06-19 2017-06-19 Smart contract lifecycle management

Publications (2)

Publication Number Publication Date
JP2019008791A JP2019008791A (ja) 2019-01-17
JP6638024B2 true JP6638024B2 (ja) 2020-01-29

Family

ID=64658182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018115418A Active JP6638024B2 (ja) 2017-06-19 2018-06-18 システム、スマートコントラクトのライフサイクルの管理方法、及び非一時的コンピュータ可読媒体

Country Status (2)

Country Link
US (1) US11055703B2 (ja)
JP (1) JP6638024B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022240136A1 (ko) * 2021-05-10 2022-11-17 주식회사 싸이퍼롬 스마트 계약을 이용한 신뢰실행환경의 데이터 처리 방법

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
US11037082B2 (en) * 2017-08-02 2021-06-15 Intuit, Inc. Workflow management via block chains
US11494402B1 (en) 2017-09-13 2022-11-08 Inveniam Capital Partners, Inc. Apparatus and methods for producing data structures having internal self-references suitable for immutably representing and verifying data
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method
US11050781B2 (en) 2017-10-11 2021-06-29 Microsoft Technology Licensing, Llc Secure application monitoring
US20200250778A1 (en) * 2017-10-23 2020-08-06 Erich Lawson Spangenberg System and Method for Managing Patent Risk
US10701054B2 (en) 2018-01-31 2020-06-30 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment
US11257073B2 (en) 2018-01-31 2022-02-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment
EP3522088B1 (en) * 2018-02-05 2022-03-16 Nokia Technologies Oy Securing blockchain access through a gateway
US20200394718A1 (en) * 2018-02-08 2020-12-17 2Bc Innovations, Llc Utilizing a portfolio of blockchain-encoded rived longevity-contingent instruments
WO2019180701A1 (en) * 2018-03-18 2019-09-26 Valid Network Ltd A method and system for detecting and preventing issues in smart contracts based on historical behavior analysis
US10826987B2 (en) * 2018-04-06 2020-11-03 Datalogic Ip Tech S.R.L. Systems and methods for consensus-based data security for networked devices
EP3794766A1 (en) * 2018-05-14 2021-03-24 Nchain Holdings Limited Computer-implemented systems and methods for using a blockchain to perform an atomic swap
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US10783164B2 (en) 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US11449837B2 (en) * 2018-05-30 2022-09-20 Launch Tech Co., Ltd. Maintenance equipment management method, system and data management server
US11556874B2 (en) * 2018-06-11 2023-01-17 International Business Machines Corporation Block creation based on transaction cost and size
CN109118359B (zh) * 2018-06-13 2020-08-25 阿里巴巴集团控股有限公司 一种基于区块链的可用资源配额的预兑换方法及装置
CN113537984A (zh) 2018-06-26 2021-10-22 创新先进技术有限公司 基于区块链的内容验证方法及装置、电子设备
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11295296B2 (en) 2018-08-06 2022-04-05 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11240000B2 (en) * 2018-08-07 2022-02-01 International Business Machines Corporation Preservation of uniqueness and integrity of a digital asset
US11487741B2 (en) * 2018-08-07 2022-11-01 International Business Machines Corporation Preservation of uniqueness and integrity of a digital asset
US11308073B2 (en) * 2018-08-08 2022-04-19 International Business Machines Corporation Database node functional testing
US10671315B2 (en) 2018-08-17 2020-06-02 Bank Of America Corporation Blockchain architecture for selective data restore and migration
US11842322B2 (en) * 2018-08-22 2023-12-12 Equinix, Inc. Smart contract interpreter
US10936552B2 (en) 2018-09-06 2021-03-02 International Business Machines Corporation Performing bilateral negotiations on a blockchain
US11966917B2 (en) * 2018-09-12 2024-04-23 Bitclave Pte. Ltd. Systems and methods for providing personal rewards in a trustless ecosystem
CN109345388B (zh) * 2018-09-20 2020-09-08 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
US11663197B2 (en) * 2018-10-31 2023-05-30 International Business Machines Corporation Convolutional and ephemeral datachains with conditional period
US11288280B2 (en) 2018-10-31 2022-03-29 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain
US11068470B2 (en) * 2018-11-09 2021-07-20 Innoplexus Ag System and method for interoperability of blockchains
US10671515B1 (en) * 2018-11-30 2020-06-02 Bank Of America Corporation Recording and playback of electronic event sequence in a distributed ledger system
CN110060111A (zh) 2018-12-12 2019-07-26 阿里巴巴集团控股有限公司 基于区块链的发票访问方法和装置、电子设备
US10839411B2 (en) * 2018-12-21 2020-11-17 Noodle Technology Inc. Validation in a decentralized network
CN110046900B (zh) * 2018-12-27 2024-04-05 创新先进技术有限公司 基于区块链的发票作废方法和装置、电子设备
CN111382119B (zh) * 2018-12-29 2023-08-22 华为技术有限公司 区块数据归档方法及相关设备
CN109872159B (zh) * 2019-01-07 2021-04-06 必可嘉(武汉)科技有限公司 一种区块链共识方法及架构
KR102142688B1 (ko) * 2019-01-08 2020-08-07 주식회사 에치에프알 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치
WO2020145591A1 (ko) * 2019-01-08 2020-07-16 주식회사 에치에프알 자연 언어 기반 블록 체인 스마트 계약 생성방법 및 그를 위한 장치
KR102258222B1 (ko) * 2019-01-21 2021-05-31 박근철 블록체인을 기반으로 한 상품 판매 방법 및 이러한 방법을 수행하는 장치
US11824864B2 (en) 2019-01-31 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing a declarative and metadata driven blockchain platform using distributed ledger technology (DLT)
US11875400B2 (en) 2019-01-31 2024-01-16 Salesforce, Inc. Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT)
US11811769B2 (en) 2019-01-31 2023-11-07 Salesforce, Inc. Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger
US11876910B2 (en) 2019-01-31 2024-01-16 Salesforce, Inc. Systems, methods, and apparatuses for implementing a multi tenant blockchain platform for managing Einstein platform decisions using distributed ledger technology (DLT)
US11488176B2 (en) 2019-01-31 2022-11-01 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing certificates of authenticity of digital twins transacted onto a blockchain using distributed ledger technology (DLT)
US11783024B2 (en) 2019-01-31 2023-10-10 Salesforce, Inc. Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration
US11803537B2 (en) 2019-01-31 2023-10-31 Salesforce, Inc. Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT)
US11971874B2 (en) 2019-01-31 2024-04-30 Salesforce, Inc. Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (DLT)
US11886421B2 (en) 2019-01-31 2024-01-30 Salesforce, Inc. Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT)
US11899817B2 (en) 2019-01-31 2024-02-13 Salesforce, Inc. Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information
US11244313B2 (en) 2019-01-31 2022-02-08 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing declarative smart actions for coins and assets transacted onto a blockchain using distributed ledger technology (DLT)
CN109902015A (zh) * 2019-03-01 2019-06-18 北京大学 一种智能合约仿真测试方法、装置、系统及存储介质
ES2850923T3 (es) * 2019-03-04 2021-09-01 Advanced New Technologies Co Ltd Métodos y dispositivos para procesar certificados en el sistema de cadena de bloques
EP3613203B1 (en) * 2019-03-04 2023-06-07 Advanced New Technologies Co., Ltd. Methods and devices for performing off-chain testing on smart contract
CN109871279B (zh) * 2019-03-11 2021-10-01 京东方科技集团股份有限公司 共识任务协调方法及装置、区块链系统、存储介质
CN110033244B (zh) * 2019-03-15 2021-10-22 创新先进技术有限公司 基于区块链的智能合约执行方法及装置和电子设备
CN110870288B (zh) 2019-03-18 2022-05-27 创新先进技术有限公司 共识系统停机时间恢复
US10938750B2 (en) 2019-03-18 2021-03-02 Advanced New Technologies Co., Ltd. Consensus system downtime recovery
PL3580913T3 (pl) 2019-03-18 2021-06-28 Advanced New Technologies Co., Ltd. Przywracanie systemu konsensusu po przestoju
JP6811339B2 (ja) 2019-03-27 2021-01-13 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
CN110914851B (zh) 2019-03-27 2024-02-06 创新先进技术有限公司 提高区块链网络与外部数据源之间的通信的完整性
EP3715981A1 (de) * 2019-03-27 2020-09-30 Siemens Aktiengesellschaft Verfahren und steuersystem zum steuern einer ausführung von transaktionen
CN110999255B (zh) 2019-03-29 2021-12-21 创新先进技术有限公司 检索区块链网络的访问数据的方法及装置
CN110009362B (zh) * 2019-04-02 2021-07-06 北京众享比特科技有限公司 区块链智能合约修改方法、装置和计算机可读存储介质
CN110018840B (zh) * 2019-04-11 2021-12-03 深圳市迅雷网络技术有限公司 一种智能合约升级方法、装置、区块链节点设备及介质
US11062308B2 (en) 2019-04-23 2021-07-13 Advanced New Technologies Co., Ltd. Service execution result obtaining method and system based on blockchain
CN110175915B (zh) * 2019-04-23 2021-04-06 创新先进技术有限公司 一种基于区块链的业务执行结果获取方法及系统
US11038771B2 (en) * 2019-04-26 2021-06-15 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT)
CN110046896B (zh) * 2019-04-26 2022-03-01 腾讯科技(深圳)有限公司 一种区块处理方法和节点以及系统
CN110135803B (zh) * 2019-04-29 2023-12-08 深圳市元征科技股份有限公司 一种事项管理方法及区块链节点设备
US11880349B2 (en) 2019-04-30 2024-01-23 Salesforce, Inc. System or method to query or search a metadata driven distributed ledger or blockchain
US11995647B2 (en) 2019-04-30 2024-05-28 Salesforce, Inc. System and method of providing interoperable distributed and decentralized ledgers using consensus on consensus and delegated consensus
US11315150B2 (en) 2019-05-08 2022-04-26 Data Vault Holdings, Inc. Portfolio driven targeted advertising network, system, and method
US11360946B2 (en) 2019-05-17 2022-06-14 International Business Machines Corporation Tracking data transfers
CN113240519A (zh) * 2019-05-30 2021-08-10 创新先进技术有限公司 基于区块链的智能合约管理方法及装置、电子设备
US11151621B2 (en) * 2019-06-25 2021-10-19 Verizon Patent And Licensing Inc. System and method for carrier settlement using blockchain
WO2019170175A2 (en) * 2019-06-28 2019-09-12 Alibaba Group Holding Limited System and method for executing different types of blockchain contracts
JP7354620B2 (ja) * 2019-06-28 2023-10-03 株式会社リコー サービスシステム、情報登録方法
CN110377608A (zh) * 2019-07-24 2019-10-25 四块科技(深圳)有限公司 一种基于区块链的信息管理方法、装置和可读存储介质
JPWO2021020408A1 (ja) * 2019-08-01 2021-02-04
JP7422155B2 (ja) * 2019-08-01 2024-01-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、サーバ、及び、プログラム
CN110427385B (zh) * 2019-08-02 2022-06-10 中国工商银行股份有限公司 区块链数据更新方法、相关节点及区块链
SG11202003877VA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for blockchain-based notification
CN111226199B (zh) 2019-08-27 2022-02-18 创新先进技术有限公司 用于基于区块链的通知的系统和方法
EP3692487B1 (en) 2019-08-27 2022-08-24 Advanced New Technologies Co., Ltd. System and method for registering subscribable sub-states in blockchain
CN111133428B (zh) 2019-08-27 2023-07-04 创新先进技术有限公司 在区块链中注册可订阅状态的系统和方法
CN110659907B (zh) * 2019-09-24 2021-11-12 北京海益同展信息科技有限公司 用于执行智能合约的方法和装置
CN113157635B (zh) * 2019-09-25 2024-01-05 支付宝(杭州)信息技术有限公司 在fpga上实现合约调用的方法及装置
US11488099B2 (en) 2019-10-18 2022-11-01 International Business Machines Corporation Supply-chain simulation
SG11202010851WA (en) 2019-11-19 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd System and method for consensus management
CN111176791B (zh) * 2019-12-31 2023-09-29 杭州趣链科技有限公司 一种基于多虚拟机区块链平台跨虚拟机调用方法
US11960454B2 (en) * 2020-01-03 2024-04-16 Conéctate Soluciones Y Aplicaciones Sl Method of a universal registration and identification of legal procedures
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
US11824970B2 (en) 2020-01-20 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules
US11144335B2 (en) 2020-01-30 2021-10-12 Salesforce.Com, Inc. System or method to display blockchain information with centralized information in a tenant interface on a multi-tenant platform
US11611560B2 (en) 2020-01-31 2023-03-21 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform
CN111339201B (zh) * 2020-02-28 2023-04-25 中国工商银行股份有限公司 基于区块链的测评方法及系统
JP6808109B1 (ja) * 2020-03-04 2021-01-06 三菱電機株式会社 管理装置、管理方法、及び、管理プログラム
CN111367621A (zh) * 2020-03-06 2020-07-03 深圳市网心科技有限公司 智能合约定时处理方法、区块链节点及存储介质
CN111522876B (zh) * 2020-04-07 2024-02-20 金蝶软件(中国)有限公司 区块链共识方法、装置和计算机设备、及区块链节点
JP7348878B2 (ja) * 2020-04-22 2023-09-21 株式会社日立製作所 分散台帳管理方法、分散台帳システム、およびノード
CN111522882B (zh) * 2020-04-27 2023-06-30 远光软件股份有限公司 一种基于区块链的内模管理系统及方法
CN111831745B (zh) * 2020-06-05 2023-04-18 广东科学技术职业学院 定时智能合约的调度方法及装置
CN111526165B (zh) * 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 联盟链中的共识方法和系统
CN111815455B (zh) * 2020-09-04 2021-02-26 支付宝(杭州)信息技术有限公司 一种交易执行方法、系统及装置
JP6858919B2 (ja) * 2020-12-04 2021-04-14 アリババ グループ ホウルディング リミテッド ブロックチェーンシステムにおいて証明書を処理するための方法及び装置
KR20220106435A (ko) * 2021-01-22 2022-07-29 주식회사 피아몬드 가상 데스크탑 인프라 서비스 제공에 따른 사용자 정보 수집 방법 및 시스템
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
CN113032001B (zh) * 2021-03-26 2022-02-08 中山大学 一种智能合约分类方法及装置
CN112866421B (zh) * 2021-03-30 2023-02-24 中国工商银行股份有限公司 基于分布式缓存以及nsq的智能合约运行方法及装置
CN113222766B (zh) * 2021-05-13 2023-02-07 杭州趣链科技有限公司 金融产品的信息监管方法、装置、计算机设备及介质
US20220374342A1 (en) * 2021-05-24 2022-11-24 Infor (Us), Llc Techniques for decoupled management of software test execution planning and corresponding software test execution runs
CN113420133B (zh) * 2021-06-18 2023-07-25 腾讯科技(深圳)有限公司 一种会话处理方法、装置、设备及存储介质
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
WO2023287969A1 (en) * 2021-07-14 2023-01-19 Strong Force TX Portfolio 2018, LLC Systems and methods with integrated gaming engines and smart contracts
US11924222B2 (en) 2022-01-13 2024-03-05 Bank Of America Corporation Intelligent real time dynamic smart contract generation for secure processing of internet of things (IoT) device based events
CN114826667B (zh) * 2022-03-22 2024-05-28 浪潮卓数大数据产业发展有限公司 一种基于区块链的数据共享方法、装置、设备及介质
CN114693450A (zh) * 2022-03-30 2022-07-01 蚂蚁区块链科技(上海)有限公司 基于智能合约的计算、更新、读取方法及装置、电子设备
CN116523171B (zh) * 2023-07-03 2023-08-29 成都智慧企业发展研究院有限公司 一种基于全生命周期管理的数据资产管理方法及系统
CN117478716B (zh) * 2023-12-27 2024-04-05 珠海格力电器股份有限公司 设备的通信方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680830B1 (en) 2005-05-31 2010-03-16 Symantec Operating Corporation System and method for policy-based data lifecycle management
US20150348017A1 (en) * 2014-06-03 2015-12-03 Jonathan Allmen Method for integrating cryptocurrency transfer on a social network interface
JP6721166B2 (ja) * 2014-10-14 2020-07-08 ミド ホールディングス リミテッド 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
US10108812B2 (en) * 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
EP3411824B1 (en) * 2016-02-04 2019-10-30 Nasdaq Technology AB Systems and methods for storing and sharing transactional data using distributed computer systems
US10063572B2 (en) * 2016-03-28 2018-08-28 Accenture Global Solutions Limited Antivirus signature distribution with distributed ledger
US10447478B2 (en) * 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US10713731B2 (en) * 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
US11651359B2 (en) * 2016-10-05 2023-05-16 The Toronto-Dominion Bank Distributed electronic ledger with metadata
US10552381B2 (en) * 2016-12-16 2020-02-04 International Business Machines Corporation Shared document editing in the blockchain
US11107048B2 (en) * 2017-04-17 2021-08-31 International Business Machines Corporation Providing out-of-band verification for blockchain transactions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022240136A1 (ko) * 2021-05-10 2022-11-17 주식회사 싸이퍼롬 스마트 계약을 이용한 신뢰실행환경의 데이터 처리 방법

Also Published As

Publication number Publication date
JP2019008791A (ja) 2019-01-17
US20180365686A1 (en) 2018-12-20
US11055703B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
JP6638024B2 (ja) システム、スマートコントラクトのライフサイクルの管理方法、及び非一時的コンピュータ可読媒体
JP6653358B2 (ja) 複数のシステムからのデータのブロックチェーンロギング
JP6775086B2 (ja) ブロックチェーン監視及び管理
US11070360B2 (en) Parallel transaction validation and block generation in a blockchain
EP3776208B1 (en) Runtime self-correction for blockchain ledgers
US10523526B2 (en) System and method for managing services and licenses using a blockchain network
KR102026225B1 (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
US9984140B1 (en) Lease based leader election system
US8615588B2 (en) Accelerate copying of virtual machine images
US9639589B1 (en) Chained replication techniques for large-scale data streams
EP3526691B1 (en) File synchronization in computing systems
US10331697B2 (en) Synchronization of data between systems
US20140095734A1 (en) System and method for resolving synchronization conflicts
US20210089422A1 (en) System and method for serverless computing based on blockchain
CN107710215A (zh) 在测试设施中的移动计算装置安全的方法和设备
CN101501652A (zh) 检查点及一致性标记符
US20120284231A1 (en) Distributed, asynchronous and fault-tolerant storage system
US11070563B2 (en) Trace-based transaction validation and commitment
US9104320B2 (en) Data integrity protection in storage volumes
KR20190110082A (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
US10127270B1 (en) Transaction processing using a key-value store
JP2022521412A (ja) 分散システムにおける非同期ストレージ管理
JP7421443B2 (ja) データ移行方法、データ移行システム、およびノード
CN112106327B (zh) 异构处理节点的自优化网络中的资源管理和资源分配方法
KR102256361B1 (ko) 데이터의 접근 제어를 위한 네트워크 장치 및 방법, 그리고 이를 이용한 데이터 접근 제어 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190729

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191223

R150 Certificate of patent or registration of utility model

Ref document number: 6638024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150