(57)【要約】      （修正有）【課題】ブロックチェーンを用いたトランザクションに関連付けられた動作の実行の監査及び確認する方法及びシステムを提供する。【解決手段】監査可能で不変なデータをブロックチェーンに提示する方法であって、ブロックチェーンを受信するステップと、データファイルを受信するステップと、１以上の変数の少なくとも１つを修正するステップと、新たなハッシュ値を生成するステップと、新たなトランザクション値を生成するステップと、生成された新たなトランザクション値をデジタルに署名するステップと、署名された新たなトランザクション値を電子的に送信するステップと、を含む。【選択図】図４
2022003547.tif 000002
【特許請求の範囲】
【請求項１】
監査可能で不変なデータをブロックチェーンへ提示する方法であって、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するス
テップであって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なく
とも含み、各トランザクション値は少なくともトランザクションハッシュを含む、ステッ
プと、
前記処理サーバの前記受信装置によって、前記ブロックチェーン内のブロックに含まれ
た特定のトランザクションハッシュに関連付けられたデータファイルを受信するステップ
であって、前記データファイルは１以上の変数を含む、ステップと、
前記処理サーバのデータ修正モジュールによって、前記データファイルに含まれる前記
１以上の変数の少なくとも１つを修正するステップと、
前記処理サーバのハッシュ化モジュールによって、１以上のハッシュ化アルゴリズムを
前記修正されたデータファイルに適用することによって、新たなハッシュ値を生成するス
テップと、
前記処理サーバの生成モジュールによって、少なくとも前記生成された新たなハッシュ
値と前記特定のトランザクションハッシュとに基づいて、新たなトランザクション値を生
成するステップと、
前記処理サーバの署名モジュールによって、前記生成された新たなトランザクション値
をデジタルに署名するステップと、
前記処理サーバの送信装置によって、前記署名された新たなトランザクション値を電子
的に送信するステップと、を含む方法。
【請求項２】
請求項１に記載の方法において、前記新たなトランザクション値は更に、前記ブロック
チェーンに関連付けられた実行可能スクリプトに関連付けられた参照識別子に基づく、方
法。
【請求項３】
請求項２に記載の方法において、前記実行可能スクリプトは、前記修正されたデータフ
ァイルを実行することと、決定論的応答を出力することとを実行するよう構成される、方
法。
【請求項４】
請求項１に記載の方法において、前記新たなトランザクション値を生成することは、前
記処理サーバの前記ハッシュ化モジュールによって、少なくとも前記生成された新たなハ
ッシュ値と前記特定のトランザクションハッシュとをハッシュ化することを含む、方法。
【請求項５】
請求項１に記載の方法において、前記処理サーバのデータベースに、キーと値との複数
の対（key-value pairs）を格納することであって、前記キーと値との複数の対は、少な
くとも、前記特定のトランザクションハッシュをキーとして含み前記受信されたデータフ
ァイルを値として含む第１のものを含む、ことと、
前記処理サーバの問い合わせモジュールによって、前記データベース上でクエリを実行
して、前記生成された新たなハッシュ値をキーとして含み前記修正されたデータファイル
を値として含む新たなキーと値との対を挿入することとを更に含む、方法。
【請求項６】
ブロックチェーンへ提示された決定論的(deterministic)データを監査及び検証する方
法であって、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するス
テップであって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なく
とも含み、各ブロックヘッダは少なくともタイムスタンプを含み、各トランザクション値
は少なくともトランザクションハッシュを含む、ステップと、
前記処理サーバの問い合わせモジュールによって前記ブロックチェーン上で第１のクエ
リを実行して、第１のトランザクション値を識別するステップであって、前記第１のトラ
ンザクション値は実行可能スクリプトに関連付けられる、ステップと、
前記処理サーバのプロセッサによって、複数の所定の入力値を用いて、前記実行可能ス
クリプトを実行して、少なくとも１つの出力変数を受信するステップと、
前記処理サーバのハッシュ化モジュールによって、前記複数の所定の入力値と前記少な
くとも１つの出力変数とに基づいて、ハッシュ値を生成するステップと、
前記処理サーバの生成モジュールによって、少なくとも前記生成されたハッシュ値と前
記第１のトランザクション値に含まれた前記トランザクションハッシュとに基づいて、新
たなトランザクション値を生成するステップと、
前記処理サーバの検証モジュールによって、前記ブロックチェーン内のブロックに含ま
れた第２のトランザクション値を検証するステップであって、前記第２のトランザクショ
ン値は前記生成された新たなトランザクション値に対応する、ステップと、
を含む方法。
【請求項７】
請求項６に記載の方法において、前記第２のトランザクション値を検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２の
クエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値は前記
生成された新たなトランザクション値と等しいことを検証することと、を含む方法。
【請求項８】
請求項６に記載の方法において、前記第２のトランザクション値を検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２の
クエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記含まれたトランザクションハッシ
ュをデジタルに署名するために使用されるデジタル署名を検証することと、を含む方法。
【請求項９】
請求項８に記載の方法において、
前記処理サーバのメモリに公開鍵を格納するステップを更に含み、前記デジタル署名の
検証は前記格納された公開鍵を用いる、方法。
【請求項１０】
請求項６に記載の方法において、前記新たなトランザクション値を生成することは、前
記処理サーバの前記ハッシュ化モジュールによって、少なくとも生成されたハッシュ値と
前記第１のトランザクション値に含まれた前記トランザクションハッシュとをハッシュ化
することを含む、方法。
【請求項１１】
監査可能で不変なデータをブロックチェーンへ提示するシステムであって、
処理サーバの受信装置であって、
複数のブロックを含むブロックチェーンであって、各ブロックはブロックヘッダと１以
上のトランザクション値とを少なくとも含み、各トランザクション値は少なくともトラン
ザクションハッシュを含む、ブロックチェーンと、
前記ブロックチェーン内のブロックに含まれた特定のトランザクションハッシュに関連
付けられたデータファイルであって、前記データファイルは１以上の変数を含む、データ
ファイルと
を受信するよう構成された受信装置と、
前記データファイルに含まれる前記１以上の変数の少なくとも１つを修正するよう構成
された、前記処理サーバのデータ修正モジュールと、
１以上のハッシュ化アルゴリズムを前記修正されたデータファイルに適用することによ
って、新たなハッシュ値を生成するよう構成された、前記処理サーバのハッシュ化モジュ
ールと、
少なくとも前記生成された新たなハッシュ値と前記特定のトランザクションハッシュと
に基づいて、新たなトランザクション値を生成するよう構成された、前記処理サーバの生
成モジュールと、
前記生成された新たなトランザクション値をデジタルに署名するよう構成された、前記
処理サーバの署名モジュールと、
前記署名された新たなトランザクション値を電子的に送信するよう構成された、前記処
理サーバの送信装置と、
を含むシステム。
【請求項１２】
請求項１１に記載のシステムにおいて、前記新たなトランザクション値は更に、前記ブ
ロックチェーンに関連付けられた実行可能スクリプトに関連付けられた参照識別子に基づ
く、システム。
【請求項１３】
請求項１２に記載のシステムにおいて、前記実行可能スクリプトは、前記修正されたデ
ータファイルを実行することと、決定論的応答を出力することとを実行するよう構成され
る、システム。
【請求項１４】
請求項１１に記載のシステムにおいて、前記新たなトランザクション値を生成すること
は、前記処理サーバの前記ハッシュ化モジュールによって、少なくとも前記生成された新
たなハッシュ値と前記特定のトランザクションハッシュとをハッシュ化することを含む、
システム。
【請求項１５】
請求項１１に記載のシステムにおいて、
キーと値との複数の対（key-value pairs）を格納するよう構成された、前記処理サー
バのデータベースであって、前記キーと値との複数の対は、少なくとも、前記特定のトラ
ンザクションハッシュをキーとして含み前記受信されたデータファイルを値として含む第
１のものを含む、データベースと、
前記データベース上でクエリを実行して、前記生成された新たなハッシュ値をキーとし
て含み前記修正されたデータファイルを値として含む新たなキーと値との対を挿入するよ
う構成される、前記処理サーバの問い合わせモジュールと、を更に含むシステム。
【請求項１６】
ブロックチェーンへ提示された決定論的(deterministic)データを監査及び検証するシ
ステムであって、
複数のブロックを含むブロックチェーンを受信するよう構成された、処理サーバの受信
装置であって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なくと
も含み、各ブロックヘッダは少なくともタイムスタンプを含み、各トランザクション値は
少なくともトランザクションハッシュを含む、受信装置と、
前記ブロックチェーン上で第１のクエリを実行して、第１のトランザクション値を識別
するよう構成された、前記処理サーバの問い合わせモジュールであって、前記第１のトラ
ンザクション値は実行可能スクリプトに関連付けられる、問い合わせモジュールと、
複数の所定の入力値を用いて、前記実行可能スクリプトを実行して、少なくとも１つの
出力変数を受信するよう構成された、前記処理サーバのプロセッサと、
前記複数の所定の入力値と前記少なくとも１つの出力変数とに基づいて、ハッシュ値を
生成するよう構成された、前記処理サーバのハッシュ化モジュールと、
少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記
トランザクションハッシュとに基づいて、新たなトランザクション値を生成するよう構成
された、前記処理サーバの生成モジュールと、
前記ブロックチェーン内のブロックに含まれた第２のトランザクション値を検証するよ
う構成された、前記処理サーバの検証モジュールであって、前記第２のトランザクション
値は前記生成された新たなトランザクション値に対応する、検証モジュールと、
を含むシステム。
【請求項１７】
請求項１６に記載のシステムにおいて、前記第２のトランザクション値を検証すること
は、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２の
クエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値は前記
生成された新たなトランザクション値と等しいことを検証することと、を含むシステム。
【請求項１８】
請求項１６に記載のシステムにおいて、前記第２のトランザクション値を検証すること
は、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２の
クエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記含まれたトランザクションハッシ
ュをデジタルに署名するために使用されるデジタル署名を検証することと、を含むシステ
ム。
【請求項１９】
請求項１８に記載のシステムにおいて、
公開鍵を格納するよう構成された、前記処理サーバのメモリであって、前記デジタル署
名の検証は、前記格納された公開鍵を用いる、メモリを更に含む、システム。
【請求項２０】
請求項１６に記載のシステムにおいて、前記新たなトランザクション値を生成すること
は、前記処理サーバの前記ハッシュ化モジュールによって、少なくとも生成されたハッシ
ュ値と前記第１のトランザクション値に含まれた前記トランザクションハッシュとをハッ
シュ化することを含む、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、米国特許出願第15/392,108号（2016年12月28日出願）の優先権を主張する。上
記出願の開示全体は参照によってここに取り込まれる。
【技術分野】
【０００２】
本開示は、入力値を含むブロックチェーンへ不変のデータを提示することに関連する。
スマートコントラクトへの入力の結果は決定論的(deterministic)であり、関連付けられ
たトランザクションの実行の確認及び監査を可能にする。
【背景技術】
【０００３】
技術が進歩して一層洗練されるにつれて、事業体、個人及び他のエンティティはしばし
ば、自身がどのようにビジネスを行って他人と理解し合うかの方法を模索する。コンピュ
ーティング技術が劇的に展望を変えた１つの要素は、２つのエンティティの間でトランザ
クションを実行することである。トランザクションは任意の種類の理由（双方向の支払、
商品又は役務の購入、データ交換、財産の取得、契約の考慮等）で、２つのエンティティ
の間で生じる。多くの場合、コンピューティング技術はプラットフォームを提供してよい
。ここでは、エンティティはトランザクション及びそれに関連付けられたデータを証明又
は検証してよいし、それに関連する通信を実行してよい。例えば、コンピューティング装
置を介した送金は、物理的な配送よりもかなり迅速に実行されうる。
【０００４】
しかし、コンピューティング装置及び電子的な通信は時として損なわれ、エンティティ
及びその財産を危険にさらす。そのような通信を安全にするために多くの方法（例えば安
全な通信チャネル及びプロトコル、並びに、データメッセージの暗号化）が開発されてき
た。類似的に、データ格納を安全に行うための方法が開発されてきた。そのような方法の
１つは、ブロックチェーンを使用することである。ここでは、チェーンは分散されており
、そこに格納されるデータは不変である。これによって、特定の時刻でのデータの信頼で
きる証明書（例えば特定の契約条件の合意）が提供される。
【０００５】
しかし、ブロックチェーンは合意やトランザクションの計画又は開始に関連する他のデ
ータを格納するには有用であるものの、ブロックチェーンは現在、そのようなトランザク
ションの実行を確認し監査する能力を欠いている。すなわち、この目的でどのようにブロ
ックチェーンを用いるかについての技術的課題がある。したがって、ブロックチェーンを
用いたトランザクションに関連付けられた動作の実行の監査及び確認を提供する技術的解
決手段が必要とされている。
【発明の概要】
【０００６】
本開示は、監査可能で不変のデータをブロックチェーンへ提示することと、その監査及
び検証とについてのシステム及び方法の開示を提供する。スマートコントラクトへの入力
は、ブロックチェーンに格納される。スマートコントラクトの出力は、スマートコントラ
クトの種類と関連付けられた入力とに基づいて、決定論的である。結果として、スマート
コントラクトに関連する実行を検証したいエンティティは、実行を監査及び検証するため
に使用する予期される出力を生成可能であってよい。更に、そのような実行に関連付けら
れたデータをブロックチェーンに提示することによって、更なる実行は監査及び検証され
てよい。これによって、２以上のエンティティの間のトランザクションの全体的な実行に
対する正確な捕捉と監査と確認とが可能である。
【０００７】
監査可能で不変なデータをブロックチェーンへ提示する方法は、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するス
テップであって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なく
とも含み、各トランザクション値は少なくともトランザクションハッシュを含む、ステッ
プと、
前記処理サーバの前記受信装置によって、前記ブロックチェーン内のブロックに含まれ
た特定のトランザクションハッシュに関連付けられたデータファイルを受信するステップ
であって、前記データファイルは１以上の変数を含む、ステップと、
前記処理サーバのデータ修正モジュールによって、前記データファイルに含まれる前記
１以上の変数の少なくとも１つを修正するステップと、
前記処理サーバのハッシュ化モジュールによって、１以上のハッシュ化アルゴリズムを
前記修正されたデータファイルに適用することによって、新たなハッシュ値を生成するス
テップと、
前記処理サーバの生成モジュールによって少なくとも前記生成された新たなハッシュ値
と前記特定のトランザクションハッシュとに基づいて、新たなトランザクション値を生成
するステップと、
前記処理サーバの署名モジュールによって、前記生成された新たなトランザクション値
をデジタルに署名するステップと、
前記処理サーバの送信装置によって、前記署名された新たなトランザクション値を電子
的に送信するステップと、を含む。
【０００８】
ブロックチェーンへ提示された決定論的(deterministic)データを監査及び検証する方
法は、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するス
テップであって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なく
とも含み、各ブロックヘッダは少なくともタイムスタンプを含み、各トランザクション値
は少なくともトランザクションハッシュを含む、ステップと、
前記処理サーバの問い合わせモジュールによって前記ブロックチェーン上で第１のクエ
リを実行して、第１のトランザクション値を識別するステップであって、前記第１のトラ
ンザクション値は実行可能スクリプトに関連付けられる、ステップと、
前記処理サーバのプロセッサによって、複数の所定の入力値を用いて、前記実行可能ス
クリプトを実行して、少なくとも１つの出力変数を受信するステップと、
前記処理サーバのハッシュ化モジュールによって、前記複数の所定の入力値と前記少な
くとも１つの出力変数とに基づいて、ハッシュ値を生成するステップと、
前記処理サーバの生成モジュールによって、少なくとも前記生成されたハッシュ値と前
記第１のトランザクション値に含まれた前記トランザクションハッシュとに基づいて、新
たなトランザクション値を生成するステップと、
前記処理サーバの検証モジュールによって、前記ブロックチェーン内のブロックに含ま
れた第２のトランザクション値を検証するステップであって、前記第２のトランザクショ
ン値は前記生成された新たなトランザクション値に対応する、ステップと、
を含む。
【０００９】
監査可能で不変なデータをブロックチェーンへ提示するシステムは、
処理サーバの受信装置であって、
複数のブロックを含むブロックチェーンであって、各ブロックはブロックヘッダと１以
上のトランザクション値とを少なくとも含み、各トランザクション値は少なくともトラン
ザクションハッシュを含む、ブロックチェーンと、
前記ブロックチェーン内のブロックに含まれた特定のトランザクションハッシュに関連
付けられたデータファイルであって、前記データファイルは１以上の変数を含む、データ
ファイルと
を受信するよう構成された受信装置と、
前記データファイルに含まれる前記１以上の変数の少なくとも１つを修正するよう構成
された、前記処理サーバのデータ修正モジュールと、
１以上のハッシュ化アルゴリズムを前記修正されたデータファイルに適用することによ
って、新たなハッシュ値を生成するよう構成された、前記処理サーバのハッシュ化モジュ
ールと、
少なくとも前記生成された新たなハッシュ値と前記特定のトランザクションハッシュと
に基づいて、新たなトランザクション値を生成するよう構成された、前記処理サーバの生
成モジュールと、
前記生成された新たなトランザクション値をデジタルに署名するよう構成された、前記
処理サーバの署名モジュールと、
前記署名された新たなトランザクション値を電子的に送信するよう構成された、前記処
理サーバの送信装置と、
を含む。
【００１０】
ブロックチェーンへ提示された決定論的(deterministic)データを監査及び検証するシ
ステムは、
複数のブロックを含むブロックチェーンを受信するよう構成された、処理サーバの受信
装置であって、各ブロックはブロックヘッダと１以上のトランザクション値とを少なくと
も含み、各ブロックヘッダは少なくともタイムスタンプを含み、各トランザクション値は
少なくともトランザクションハッシュを含む、受信装置と、
前記ブロックチェーン上で第１のクエリを実行して、第１のトランザクション値を識別
するよう構成された、前記処理サーバの問い合わせモジュールであって、前記第１のトラ
ンザクション値は実行可能スクリプトに関連付けられる、問い合わせモジュールと、
複数の所定の入力値を用いて、前記実行可能スクリプトを実行して、少なくとも１つの
出力変数を受信するよう構成された、前記処理サーバのプロセッサと、
前記複数の所定の入力値と前記少なくとも１つの出力変数とに基づいて、ハッシュ値を
生成するよう構成された、前記処理サーバのハッシュ化モジュールと、
少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記
トランザクションハッシュとに基づいて、新たなトランザクション値を生成するよう構成
された、前記処理サーバの生成モジュールと、
前記ブロックチェーン内のブロックに含まれた第２のトランザクション値を検証するよ
う構成された、前記処理サーバの検証モジュールであって、前記第２のトランザクション
値は前記生成された新たなトランザクション値に対応する、検証モジュールと、
を含む。
【図面の簡単な説明】
【００１１】
本開示の範囲は、添付の図面と共に解釈されると、例示的な実施形態についての下記の
詳細な記載から最も良く理解される。図面には次の図が含まれる。
【００１２】
【図１】図１は、本開示の実施形態による、トランザクションに関連する不変のデータをブロックチェーンに提示することと、その監査及び検証とについての高いレベルのシステム構造を示す機能ブロック図である。
【図２】図２は、図１のシステムの処理サーバを示す機能ブロック図である。そのシステムは、例示的実施形態による、スマートコントラクトへの不変な入力を用いて、ブロックチェーンにおけるトランザクションデータを提示、監査、及び検証するものである。
【図３】図３は、例示的実施形態による図１のシステムにおいて、ブロックチェーンへのデータ提示と、それに関連付けられたスマートコントラクトに関連する実行の監査及び検証とについての処理を示すフローチャートである。
【図４】図４は、例示的実施形態による、監査可能で不変なデータをブロックチェーンへ提示する例示的方法を示すフローチャートである。
【図５】図５は、例示的実施形態による、ブロックチェーンへ提示される決定論的データの監査及び検証のための例示的方法を示すフローチャートである。
【図６】図６は、例示的実施形態による、コンピュータシステム構造を示す機能ブロック図である。
【００１３】
本開示の更なる応用分野は、下記の詳細な説明から自明である。例示的実施形態の詳細
な説明は、例示目的のみを意図しており、本開示の範囲を必要的に制限することを意図し
ない。
【発明を実施するための形態】
【００１４】
用語解説
ブロックチェーン：ブロックチェーンを基礎とした通貨の全てのトランザクションの公
共台帳（public  ledger）である。１以上のコンピュータ装置は、ブロックチェーンネッ
トワークを含んでよく、これはブロックチェーンにおけるブロックの一部としてトランザ
クションを処理及び記録するよう構成されてよい。一旦ブロックが完成すると、当該ブロ
ックはブロックチェーンへ追加され、したがってトランザクション記録が更新される。多
くの実施形態では、ブロックチェーンは時系列順のトランザクションの台帳であってよい
し、ブロックチェーンネットワークによる使用に適した他の順番で提示されてもよい。い
くつかの実施形態では、ブロックチェーンで記録されたトランザクションは、宛先アドレ
スと通貨金額とを含んでよい。これによりブロックチェーンは、どれほどの通貨が特定の
アドレスへ帰属するかを記録する。いくつかの実施形態では、トランザクションは金融的
であってもそうでなくてもよいし、追加情報又は異なる情報（例えばソースアドレス、タ
イムスタンプ等）を含んでよい。いくつかの実施形態では、ブロックチェーンは追加的に
又は代替的に、ほぼ任意の種別のデータ（これは改ざん又は改訂に対して強化された継続
的に増加するデータレコードの一覧を維持する分散データベースに配置されるもの又は配
置される必要のあるものである）をトランザクションの形態として含んでよい。あるいは
ブロックチェーンは、プルーフオブワーク及び／又はそれに関連付けられた任意の他の適
切な検証技術によってブロックチェーンネットワークによって確認及び有効化されてよい
。いくつかの実施形態では、所定のトランザクションについてのデータは更に、トランザ
クションデータに付加されたトランザクションの直接的な一部ではない追加のデータを含
んでよい。いくつかの実施形態では、そのようなデータをブロックチェーンに含めること
は、トランザクションを構成してよい。そのような実施形態では、ブロックチェーンは特
敵のデジタル通貨、仮想通貨、不換通貨又は他の種別の通貨に直接的に関連付けられなく
てよい。
【００１５】
スマートコントラクト：トランザクションについての交渉又は実行を支援、検証又は実
施するコンピュータプロトコルである。スマートコントラクトはコンピューティング装置
の実行可能スクリプト又は他の種別として整形されてよい。このため、スマートコントラ
クトが適切なプロセッサによって実行されると、１以上の所定の動作が実行される。多く
の場合、スマートコントラクトは（例えば、スマートコントラクトの条件の肯定的実行又
は否定的実行（例えば違反）に関連付けられた動作を実行するよう構成されることによっ
て、）従来の契約の条件を手本としてよい。例えばスマートコントラクトは部品の購入に
ついての取引に関連付けられてよい。このときスマートコントラクトは(i)購入者が部品
を受領する場合に供給者への支払を開始すること、又は、(ii)供給者が所定の日付までに
部品を供給しないときに購入者に通知すること、を実行するよう構成される。
【００１６】
不変なスマートコントラクト入力についての、監査及び検証システム
図１は、スマートコントラクトへの不変の入力をブロックチェーンに格納するシステム
１００と、それに関連付けられた実行を、スマートコントラクトの決定論的出力に基づい
て監査及び検証することとを示す。
【００１７】
システム１００は処理サーバ１０２を含んでよい。下記で詳述される処理サーバ１０２
は、ブロックチェーンへの提示のためのデータの生成に関連する、本開示の動作（及びそ
の監査及び検証）を実行するよう特別に構成されてよく、これらの機能を実行するようプ
ログラムされると、それを特定用途コンピュータとする。処理サーバ１０２は、エンティ
ティと他のエンティティとの間の電子的トランザクションに参加するよう構成されたエン
ティティのためのコンピューティングシステム又はコンピューティングシステムの一部で
あってよい。例えば処理サーバ１０２は、電子的トランザクションに参加する第２のエン
ティティのための第三者システム１０４と電子的通信を交換してよい。本開示のように、
処理サーバ１０２と第三者システム１０４とによって実行される機能の各々はまた、対応
するコンピューティング装置によって実行されてよい。
【００１８】
システム１００はまた、ブロックチェーンネットワーク１０６を含んでよい。これはブ
ロックチェーンに関連付けられてよく、それに対して本開示のデータが提示されてよい。
ブロックチェーンネットワーク１０６は複数のブロックチェーンノード１０８（例えば図
１に記載のブロックチェーンノード１０８ａ及び１０８ｂ）を含んでよい。明確性のため
に２つだけが例示されるが、より多くの数、数十、数百、数千又はそれ以上の数が用いら
れてよいことが考慮されてよい。ブロックチェーンノード１０８は、当業者にとって自明
な方法及びシステムを用いて、トランザクションへの追加のために新たなブロックを生成
及び検証するよう構成されてよい。いくつかの実施形態では、処理サーバ１０２及び／又
は第三者システム１０４は、ブロックチェーンネットワーク１０６のブロックチェーンノ
ード１０８として動作するよう構成されてよい。例えば処理サーバ１０２は、本開示の機
能に加えて、新たなブロックを生成し、ブロックを検証し、新たな検証済みブロックをブ
ロックチェーンに追加するよう構成されてよい。
【００１９】
処理サーバ１０２に関連付けられたエンティティ（「第１のエンティティ」とも称され
る）は、提案された電子的トランザクションに関し、第三者システム１０４に関連付けら
れたエンティティ（「第２のエンティティ」とも称される）と通信してよい。いくつかの
実施形態では、追加のエンティティがトランザクションに関わってよい。そのような実施
では、追加のエンティティは第三者システム１０４に関連付けられてよい。ここでは、そ
れによって実行される機能は、本開示の第三者システム１０４によって実行される機能と
同一であってよい。提案された電子的トランザクションは任意のトランザクションであっ
てよい。このとき、関わったエンティティの少なくとも１つは、動作（この実行は、他の
エンティティによって検証されてよい）を実行するよう期待される。電子的トランザクシ
ョンは例えば、商品又は役務の購入、データ交換、実行契約等を含んでよい。例えば、一
例では、トランザクションはサービス契約であってよい。このとき第１のエンティティは
、オフィスの修復につき、1000ドルの頭金の支払に同意してよい。第２のエンティティは
、所定の時刻までにオフィスを修理することに同意してよい。仕事が完了すると、第１の
エンティティは9000ドルを支払ってよい。
【００２０】
第１のエンティティ及び第２のエンティティは、トランザクションに関連付けられた条
件に同意してよい。これは「入力」として本開示で称されてよい。例えば上記の例では、
入力は1000ドルの頭金と、頭金の支払期限と、修復の期限と、9000ドルの最終支払と、最
終支払の期限とを含んでよい。処理サーバ１０２及び／又は第三者システム１０４とは、
同意された入力を、トランザクションのトランザクション値（これは関連付けられたブロ
ックチェーンに追加される）として、ブロックチェーンノード１０８に電子的に送信する
よう構成されてよい。トランザクション値は、下記で詳述されるように、トランザクショ
ン入力を示すハッシュ値であってよい。結果として、同意された入力はブロックチェーン
に格納され、ブロックチェーンの種類によって不変である。このとき、ブロックチェーン
のブロックのヘッダに格納されたハッシュ値は、そこに格納されたデータの不変性を確実
にしてよい。いくつかの実施形態では、ブロックチェーンは、入力と入力の同意との両方
に関連付けられた不変のデータを格納するために一方又は双方のエンティティによって使
用されてよい。例えば第１のエンティティ及び／又は第２のエンティティは受付フレーム
を使用してよい。これはトランザクションハッシュに含まれて、条件の受付を示す。受付
フレームについての追加情報は、米国特許出願第14/938,213号にて発見可能である。これ
の名称は、「Method and System for Validation of Hashed Data via Acceptance Frame
s」（発明者：Steven C. Davis）であり、その開示全体を参照によりここに取り込む。
【００２１】
第１及び第２のエンティティの間のトランザクションについてのトランザクション値は
、入力の各々を含んでよいし、いくつかの実施形態では、入力を示す単一のトランザクシ
ョンハッシュを含んでよい。例えばトランザクションハッシュは、１以上のハッシュアル
ゴリズムを入力に適用することによって（例えば入力を所定の方法で組み合わせる（例え
ば各入力を分割装置を用いて単一の文字列に組み合わせることや、入力をデータファイル
に格納ること等）ことによって、又は、入力のマークル木を生成して、マークル木のルー
トを用いることによって）生成されてよい。ハッシュ値が生成される実施形態では、処理
サーバ１０２はキーと値（バリュー）との対をキーバリューデータベースに格納されるよ
う構成されてよい（下記の通り）。ここでは、ハッシュ値はキーと値との対であってよく
、対応する値は、キーの生成に使用される入力である。このような実施形態では、第三者
システム１０４は、同一のハッシュ化アルゴリズムと自身のキーとバリューとの対のため
のデータ整形とを用いてトランザクションハッシュを生成してよい。これはしたがって、
ブロックチェーンに提示されるトランザクションハッシュが、同意された入力につき性格
であることを検証する。
【００２２】
一旦トランザクションがブロックチェーンに提示されると、関わったエンティティは、
トランザクションにつき任意の実行が施行されたときにブロックチェーンを更新してよい
。例示的実施形態では、第１のエンティティと第２のエンティティとの間のトランザクシ
ョンの実行に関連する動作を実行するためにスマートコントラクトが使用されてよい。例
えばスマートコントラクトはブロックチェーントランザクションについての更新を生成す
るよう構成されてよいし、エンティティ（これの実行は、動作が完了した次である）にメ
ッセージを送信してよいし、トランザクションを無効にして、非実行のための任意の動作
等を開始してよい。例えば上記の例では、第１のエンティティが支払期限までに1000ドル
の頭金を支払わないとき（例えば期限後に、ブロックチェーンが支払を示すように更新さ
れなかった場合）、スマートコントラクトは不払いについて第２のエンティティに通知し
て、支払が1000ドルに達しなかったときは第１のエンティティによってなされた任意の支
払を返金してよい。
【００２３】
そのような実施形態では、トランザクション値はスマートコントラクト又はそれへの参
照子を含んでよい。あるいはスマートコントラクト又は関連付けられた参照子は、トラン
ザクションハッシュ（これは時としてトランザクション値を含む）の生成に使用されてよ
い。参照子は例えば、スマートコントラクト自体のハッシュ値（これは例えば、スマート
コントラクトのハッシュ化によって生成されてよいし、スマートコントラクトを値として
含むキーとバリューとの対においてキーとして生成されてよい）であってよい。いくつか
の実施形態では、１つのスマートコントラクトは複数の異なるトランザクションに使用さ
れてよい。このとき各トランザクション値は関連付けられた参照子を含み又は組み入れて
よい。そのような実施形態では、スマートコントラクトは入力値としてトランザクション
入力を用いて実行されてよく、プログラムされた機能を適宜実行してよい。例えばスマー
トコントラクトは複数の役務トランザクションにつき使用されてよい。このとき上記の例
では、スマートコントラクトは1000ドルを受領し、頭金の支払期限を入力地として受領し
てよい。このとき、スマートコントラクトの実行は、特定の支払期限までに、特定された
1000ドルの頭金の支払があったかを（例えば処理サーバ１０２又はブロックチェーンノー
ド１０８によって）確認する。
【００２４】
第１のエンティティ（又は例えばトランザクションに基づいて次に実行する任意の関連
エンティティ）は、トランザクションの一部として、要求された動作を実行してよい。例
えば上記の例では、第１のエンティティは、頭金の支払期限より前に1000ドルを払ってよ
い。処理サーバ１０２は、動作の実行に続いて、トランザクションについての新たなトラ
ンザクション値を生成してよい。新たなトランザクションは、実行に基づき、トランザク
ションに対する修正済み入力を含んでよい。例えば入力は、頭金の証明として役立つ追加
の入力（例えばトランザクションの確認番号、トランザクションの受領書、等）を含んで
よい。これはまた、スマートコントラクトによって提供されてよい。例えばスマートコン
トラクトは、適切な方法を用いて支払を検証してよく、トランザクション値に含めるため
の参照番号（又は、例えば、適用可能なら、そこに含まれるトランザクションハッシュ）
を出力してよい。
【００２５】
一旦トランザクション値が生成されると、処理サーバ１０２は、適切な方法を用いて、
新たなトランザクション値をデジタルに署名してよい。例えば処理サーバ１０２は、キー
ペアの秘密鍵を保持してよい。これは、適切な署名アルゴリズムを用いて新たなトランザ
クション値をデジタルに署名するときに称されてよい。これは、第三者システム１０４に
知られてよい。そのような実施形態では、第三者システム１０４は、キーペアから対応す
る公開鍵のコピー（複製）の提供を受けてよい。処理サーバ１０２は、デジタルに署名さ
れた新たなトランザクション値をブロックチェーンノード１０８に、ブロックチェーンへ
の提示のために、電子的に送信してよい。
【００２６】
更新済みトランザクションがブロックチェーンに合うと、第三者システム１０４はトラ
ンザクション値を検索して、処理サーバ１０２がトランザクションの一部としてその動作
を実行したことを検証するよう構成されてよい。トランザクション値がデジタルに署名さ
れる実施形態では、検証は、例えば処理サーバ１０２から第三者システム１０４に供給さ
れた公開鍵を用いた、デジタル署名の検証を含んでよい。検証はまた、トランザクション
値が予期される値であることの検証を含んでよい。
【００２７】
例示的実施形態では、スマートコントラクトは決定論的契約であってよい。このため、
動作実行に応じた、スマートコントラクトからの出力は、動作実行に先立って判定されて
よい。例えば上記の例では、第１のエンティティが、特定の支払期限までに1000ドルを払
うか、違反するかが判定される。そのような実施形態では、本開示の入力は、「決定論的
入力」として称されてよい。このため、スマートコントラクトからの出力は、適宜判定さ
れてよい。これらの実施形態では、第三者システム１０４はトランザクションについての
決定論的入力と第１のエンティティによって実行される予期される動作とを知っているこ
とに基づいて、推測された新たなトランザクション値を生成するよう構成されてよい。例
えば上記の実施形態では、もし1000ドルの頭金が支払期限までに支払われるなら、第三者
システム１０４は、決定論的な入力（これは元のトランザクション値で用いられる）を与
えられたスマートコントラクトからの出力を用いて、推測された新たなトランザクション
値を生成してよい。
【００２８】
第三者システム１０４は予測された新たなトランザクション値を用いて、予期され推測
されたトランザクション値と、トランザクション値から検索されたトランザクション値と
を比較することによって、第１のエンティティの実行を検証及び監査してよい。したがっ
て、トランザクションに関わるエンティティは、トランザクション内の他の１以上のエン
ティティが、要求された自身の機能を実行していることを検証するよう構成されてよい。
ブロックチェーンを使用してトランザクション値を格納することはまた、実行される動作
の証明が不変であることを確実にし、トランザクションに関わるエンティティの一部での
共謀又は詐欺を防止し、また、監査可能で容易にアクセス可能な、完全なトランザクショ
ン実行記録として役立つ。標準的な実施形態では、ブロックチェーンに追加される各ブロ
ックはタイムスタンプを付与されるので、トランザクション値はトランザクションの条件
と、実行される任意の動作とを反映し、そのような動作が実行されたら、実行を監査する
のに適切な十分なデータを提供する。
【００２９】
いくつかの実施形態では、処理サーバ１０２はトランザクション入力の生成及び／又は
格納のテンプレートを用いるよう構成されてよい。テンプレートは、特定のスマートコン
トラクトの使用のために必要なデータフィールドを特定するために用いられてよく、正確
な処理及びデータ一貫性を確実にする。例えば上記の例では、テンプレートは提供される
必要のある基準（例えば３つの支払期限と、２つの支払金額）と、どのようにそのデータ
が整形される必要があるかと、トランザクションの入力に関する他のデータとを特定して
よい。いくつかの実施形態では、テンプレートは、トランザクション値として役立つ（あ
るいは、トランザクションについてのトランザクション値を生成するようハッシュ化され
る）データファイルを生成するよう用いられてよい。他の実施形態では、テンプレートは
、トランザクション値によって参照されてよいし、トランザクション値において参照され
てよい。例えばテンプレートは、それに関連付けられた参照識別子（例えばテンプレート
のハッシュ値、キーと値との対におけるキー（テンプレートは値を含む）等）を有してよ
い。これは、トランザクション値（これは例えばトランザクション入力である、又は、ト
ランザクションハッシュの生成において使用される）に含まれてよい。
【００３０】
第１のエンティティ、第２のエンティティ、及び、トランザクションに関わった任意の
他のエンティティは、トランザクションに規定された動作を実行し続けてよい。このとき
、ブロックチェーンは各エンティティによって適宜更新され、トランザクション値はそれ
ぞれのエンティティによってデジタルに署名される。ブロックチェーンを継続的に更新す
ることは、トランザクションの実行が方法の各ステップで監査可能であることを確実にす
る。このときブロックチェーンの不変性は、実行の監査及び検証が正確であり且つ詐欺か
ら保護されるということを提供する。決定論的入力を有するスマートコントラクトの使用
は、詐欺が実行され得ないことと、動作の結果が予期されて一層早くより正確な検証とな
ることと、いずれのエンティティもトランザクション履歴を改ざんできず任意の詐欺的動
作を庇うことができないこととを確実にする。結果として、本開示の方法及びシステムは
、従来のシステムよりも良い正確性、効率性及び信頼性を提供する技術的解決手段を提供
する。
【００３１】
処理サーバ
図２は、システム１００の処理サーバ１０２の実施形態を示す。当業者にとって、図２
に示す処理サーバ１０２の実施形態が、例示目的のみで提供されることと、本開示の機能
を実行するのに適した、処理サーバ１０２の全ての可能な構成を徹底的に示したものでな
いことは自明である。例えば図６に示され下記で一層詳細に説明されるコンピュータシス
テム６００が、処理サーバ１０２の適切な構成であってよい。いくつかの実施形態では、
図１に記載された本開示のシステム１００内の第三者システム１０４は、図２に記載され
た本開示の処理サーバ１０２の構成要素を用いて実装されてよい。
【００３２】
処理サーバ１０２は受信装置２０２を含んでよい。受信装置２０２は１以上のネットワ
ークプロトコルを介して１以上のネットワーク上でデータを受信するよう構成されてよい
。いくつかの実施形態では、受信装置２０２は第三者システム１０４ブロックチェーンネ
ットワーク１０６とブロックチェーンノード１０８と他のシステム及びエンティティから
、１以上の通信手段（例えば近距離通信、Bluetooth、インターネット、ローカルエリア
ネットワーク等）を介してデータを受信するよう構成されてよい。いくつかの実施形態で
は、受信装置２０２は複数の装置（例えば、異なるネットワーク上でデータを受信する異
なる受信装置（例えばローカルエリアネットワークでデータを受信する第１の受信装置と
、インターネット上でデータを受信する第２の受信装置））を含んでよい。受信装置２０
２は送信される電子的なデータ信号を受信してよい。このとき、受信装置２０２によるデ
ータ信号の受信によって、データはデータ信号上に重ねられ、復号、解析（パース）、読
取り、又は取得されてよい。いくつかの実施形態では、受信装置２０２は、受信されたデ
ータ信号を解析して、そこに重ねられたデータを取得するための解析モジュールを含んで
よい。例えば受信装置２０２は、受信されたデータ信号を受信し、処理装置によって実行
される機能のための利用可能な入力へと変換して本開示の方法及びシステムを実行するよ
う構成される解析プログラムを含んでよい。
【００３３】
いくつかの実施形態では、受信装置２０２は、ブロックチェーンネットワーク１０６及
び／又はブロックチェーンノード１０８によって電子的に送信されたデータ信号（これは
ブロックチェーンデータに重畳され又はエンコードされてよい）ブロックチェーンは複数
のブロックを含み、当該複数のブロックの各々は少なくともヘッダと１以上のトランザク
ション値とを含む。ブロックヘッダは少なくともタイムスタンプと、ブロックチェーン内
の以前のブロックへの参照子とを含んでよい。いくつかの実施形態では、参照子は先行す
るブロックのブロックヘッダのハッシュであってよい。いくつかの実施形態では、ブロッ
クヘッダはまた、ブロックに含まれたトランザクション値につき生成されたマークル木の
マークルルートを含んでよい。本開示の方法及びシステムでは、１以上のトランザクショ
ン値の各々は、トランザクションハッシュを含んでよい。これは、関連トランザクション
についての少なくとも入力のハッシュであってよい。受信装置２０２はまた、第三者シス
テム１０４によって電子的に送信されたデータ信号（これは例えば決定論的入力又はそれ
に関連付けられたデータに重畳され又はエンコードされる）（例えばテンプレート参照子
、スマートコントラクト参照子、又は実行データ等）を受信するよう構成されてよい。
【００３４】
処理サーバ１０２はまた通信モジュール２０４を含んでよい。通信モジュール２０４は
、本開示の機能を実行する際に使用するために、モジュール、エンジン、データベース、
メモリ、及び処理サーバ１０２の他の構成要素の間でデータを転送するよう構成されてよ
い。通信モジュール２０４は１以上の通信種別を含んでよく、コンピューティング装置内
での通信のために様々な通信方法を使用してよい。例えば通信モジュール２０４はバス、
接続ピンコネクタ、ケーブル等を含んでよい。いくつかの実施形態では、通信モジュール
２０４はまた、処理サーバ１０２の内部構成要素と処理サーバ１０２の外部構成要素（例
えば外部で接続されたデータベース、表示装置、入力装置等）との間で通信するよう構成
されてよい。処理サーバ１０２はまた、処理装置を含んでよい。処理装置は本開示の処理
サーバ１０２の機能（例えばスマートコントラクトを実行するよう構成されたプロセッサ
）を、関連付けられた実行可能スクリプトの実行によって、実行するよう構成されてよい
。このことは、当業者にとって自明である。いくつかの実施形態では、処理装置は、処理
装置の１以上の機能を実行するよう特別に構成された複数のエンジン及び／又はモジュー
ル（例えば問い合わせモジュール２０８、ハッシュ化モジュール２１０、生成モジュール
２１２、データ修正モジュール２１４、署名モジュール２１６、検証モジュール２１８等
）を含んでよい。本開示のように、「モジュール」との用語は、入力を受信し、当該入力
を使用して１以上の処理を実行し、且つ出力を提供するよう特別にプログラムされたソフ
トウェア又はハードウェアであってよい。様々なモジュールによって実行される入力、出
力及び処理は、本開示に基づいて、当業者にとって自明である。
【００３５】
処理サーバ１０２はまた、メモリ２０６を含んでよい。メモリ２０６は、本開示の機能
を実行するときに処理サーバ１０２が使用するためのデータ（例えば公開鍵、秘密鍵、対
称鍵等）を格納するよう構成されてよい。メモリ２０６は、データ整形方法及びスキーマ
を用いてデータを格納するよう構成されてよく、また、任意の適切な種類のメモリ（例え
ば読み取り専用メモリ、ランダムアクセスメモリ等）であってよい。メモリ２０６は例え
ば暗号鍵及びアルゴリズム、通信プロトコル及び基準、データ整形基準及びプロトコル、
モジュール用プログラムコード及び処理装置のアプリケーションプログラム、並びに、本
開示の機能を実行する際に処理サーバ１０２によって使用される適切な他のデータを含ん
でよい。このことは、本開示を読む当業者にとって自明である。いくつかの実施形態では
、メモリ２０６は、構造照会言語を使用するリレーショナルデータベースを含んでよく、
記憶された構造化データセットを記憶、識別、修正、更新、アクセス等してよい。
【００３６】
メモリ２０６はブロックチェーン（これは例えば、上記のように、ブロックチェーンネ
ットワーク１０６から受信されてよい）を格納するよう構成されてよい。メモリ２０６は
また、キーと値とデータベースを格納するよう構成されてよい。これは複数のキーと値と
の対を含んでよい。そのような実施形態では、キーと値との対は対（このときハッシュ値
はキーとして使用され、ハッシュ値を生成するために使用されるデータは対応する値であ
る）を含んでよい。これは、決定論的入力とデータテンプレートとスマートコントラクト
と本開示の機能を実行する際に使用される他のデータとを格納するために使用されてよい
。メモリ２０６はまた、キーの対の秘密鍵と公開鍵とを格納するよう構成されてよい。こ
れは、トランザクション値をデジタルに署名することと、デジタル署名の検証とにおいて
使用するために構成されてよい。
【００３７】
処理サーバ１０２はまた問い合わせモジュール２０８を含んでよい。問い合わせモジュ
ール２０８はデータベース上のクエリを実行して情報に関連する他の動作を識別且つ実行
するよう構成されてよい。問い合わせモジュール２０８は１以上のデータ値又はクエリ列
を受信してよく、それに基づいて、示されたデータベース（例えばメモリ２０６）上でク
エリ列を実行して、そこに格納された情報を識別、修正、挿入、更新等してよい。問い合
わせモジュール２０８は、識別された情報を、必要に応じて処理サーバ１０２の適切なエ
ンジン又はモジュールへ出力してよい。問い合わせモジュール２０８は例えば、メモリ２
０６上でクエリを実行してよく、トランザクション値をデジタルに署名する際にしようす
る秘密鍵を識別し、ブロックチェーンを用いて追跡される新たなトランザクションにつき
新たなキーと値との対を追加し、トランザクションの実行の検証において使用するために
実行用のスマートコントラクトを識別等してよい。
【００３８】
処理サーバ１０２はまたハッシュ化モジュール２１０を含んでよい。ハッシュ化モジュ
ール２１０は、ハッシュ値の生成のために、処理サーバ１０２についてのデータをハッシ
ュ化するよう構成されてよい。ハッシュ化モジュール２１０は、入力値としてハッシュ化
されたデータを受信してよいし、１以上のハッシュ化アルゴリズムをそこへ適用すること
によってハッシュ値を生成してよいし、処理サーバ１０２の他のモジュール又はエンジン
へ、結果的に生成されたハッシュ値を出力してよい。いくつかの実施形態では、入力は、
１以上の暗号化アルゴリズム又はその標示を含んでよい。他の実施形態では、ハッシュ化
モジュール２１０は、使用されるハッシュ化アルゴリズムを（例えばメモリ２０６におい
て）識別するよう構成されてよい。ハッシュ化モジュール２１０は例えば、トランザクシ
ョン値のハッシュ値とテンプレートとスマートコントラクトと他のデータとを、１以上の
ハッシュ化アルゴリズムをそれに適用することによって、生成するよう構成されてよい。
いくつかの実施形態では、生成されたハッシュ値はブロックチェーンへの格納のために使
用されてよく、メモリ２０６に格納されたキーと値との対におけるキーとして役立つ。生
成されたハッシュ値はブロックチェーンデータに基づいた実行の検証のために使用されて
もよい。
【００３９】
処理サーバ１０２はまた生成モジュール２１２を含んでよい。生成モジュール２１２は
、本開示の処理サーバ１０２の機能を実行するのに適切なデータを生成するよう構成され
てよい。生成モジュール２１２は入力値として命令（これはデータを生成するために使用
される）を受信してよいし、処理サーバ１０２の１以上のエンジン又はモジュールへ出力
される生成済みデータを受信してよい。いくつかの実施形態では、生成モジュール２１２
に入力される命令は、そこで使用されるデータによって付随されてよい。例えば生成モジ
ュール２１２は、例えば決定論的入力に基づいて、トランザクションについてのトランザ
クション値を生成するよう構成されてよい。いくつかの実施形態では、トランザクション
値はまた、実行データに基づいて生成されてよい。いくつかの実施形態では、生成モジュ
ール２１２はトランザクション値のデジタル署名において使用するために、キーの対を生
成するよう構成されてよい。いくつかの実施形態では、生成モジュール２１２はデータフ
ァイルを生成するよう構成されてよい。これは例えば、所定の形式（テンプレートにおい
て詳細になる）を用いて、決定論的入力を含んでよいし、ブロックチェーンに格納される
トランザクション値として使用するためにハッシュ化されてよい。
【００４０】
処理サーバ１０２はまたデータ修正モジュール２１４を含んでよい。データ修正モジュ
ール２１４は、本開示の処理サーバ１０２の機能を実行するのにしようするデータ及び／
又はデータファイルを修正するよう構成されてよい。データ修正モジュール２１４は入力
値として命令（これは処理サーバ１０２に格納されるデータを修正するために又は処理サ
ーバ１０２によって受信されるデータを修正するために称されてよい）を受信してよいし
、処理サーバ１０２の１以上のエンジン又はモジュールへ出力される修正済みデータを受
信してよい。例えばデータ修正モジュール２１４はデータファイルを修正する（例えば決
定論的入力を格納する）よう構成されてよく、（例えば入力を受信、入力を追加、入力値
を変更すること等によって）１以上の入力を変更し、トランザクションの実行を反映し、
又は、トランザクションの実行を推測する。
【００４１】
処理サーバ１０２はまた署名モジュール２１６を含んでよい。署名モジュール２１６は
、本開示の処理サーバ１０２の機能の一部として、データをデジタルに署名するよう構成
されてよい。署名モジュール２１６は、入力として、デジタルに署名されるデータを受信
してよいし、データをデジタルに署名してよいし、デジタルに署名されたデータ又は少な
くともデジタル署名を、処理サーバ１０２の他のモジュール又はエンジンに出力してよい
。署名モジュール２１６は、公開鍵と１以上の署名アルゴリズムとを用いて、データをデ
ジタルに署名するよう構成されてよい。いくつかの実施形態では、署名モジュール２１６
への入力は、秘密鍵及び／又は署名アルゴリズム（これはデジタル署名を生成するときに
使用される）を含んでよい。他の実施形態では、署名モジュール２１６は秘密鍵と署名ア
ルゴリズムとを（例えばメモリ２０６において、問い合わせモジュール２０８へ提出され
る命令によって）識別するよう構成されてよい。一例では、署名モジュール２１６は、例
えば関連付けられたエンティティによる実行に続いて、トランザクション値（これはトラ
ンザクションの決定論的入力によって生成される）をデジタルに署名するよう構成されて
よい。
【００４２】
処理サーバ１０２はまた検証モジュール２１８を含んでよい。検証モジュール２１８は
、処理サーバ１０２についてのデータを検証するよう構成されてよい。検証モジュール２
１８は、入力として、検証されるデータを受信してよいし、データを検証してよいし、検
証結果（例えば肯定的検証又は否定的検証を示す）を、処理サーバ１０２の他のモジュー
ル又はエンジンに出力してよい。例えば検証モジュール２１８は公開鍵（これは例えばメ
モリ２０６に格納されそこから読み取られる）を用いて、トランザクション値（ブロック
チェーンのブロックから読み取られる）でのデジタル署名を検証するよう構成されてよい
し、（例えば推測されたトランザクション値（これは生成モジュール２１２によって生成
される）とブロックチェーンから読み取られたトランザクション値とを比較することによ
って、）トランザクション値を検証するよう構成されてよい。
【００４３】
処理サーバ１０２はまた、送信装置２２０を含んでよい。送信装置２２０は１以上のネ
ットワークプロトコルを介して１以上のネットワーク上でデータを送信するよう構成され
てよい。いくつかの実施形態では、送信装置２２０は第三者システム１０４、ブロックチ
ェーンネットワーク１０６、ブロックチェーンノード１０８、及び他のエンティティへ、
１以上の通信手段（例えば近距離通信、Bluetooth、無線周波数、インターネット、ロー
カルエリアネットワーク等）を介してデータを送信するよう構成されてよい。いくつかの
実施形態では、送信装置２２０は複数装置（例えば、異なるネットワーク上でデータを送
信するための異なる送信装置（例えばローカルエリアネットワーク上でデータを送信する
第１の送信装置と、インターネット上でデータを送信する第２の送信装置））を含んでよ
い。送信装置２２０は、重畳されたデータであって受信コンピューティング装置によって
解析されるデータを有するデータ信号を電子的に送信してよい。いくつかの実施形態では
、送信装置２２０は、データを重畳しエンコードし、又はデータを送信に適したデータ信
号へ整形する１以上のモジュールを含んでよい。
【００４４】
送信装置２２０は、ブロックチェーンネットワーク１０６に関連付けられたブロックチ
ェーンノード１０８にデータ信号（これはブロックチェーンへの提示のために、トランザ
クション値に重畳され又はエンコードされてよい）を電子的に送信するよう構成されてよ
い。いくつかの実施形態では、例えば決定論的入力とスマートコントラクト参照子とテン
プレート参照子と公開鍵と本開示の機能を実行する際に使用するために交換される他のデ
ータとの交換のために、送信装置２２０は第三者システム１０４へデータ信号を電子的に
送信してよい。
【００４５】
不変で監査可能なデータをブロックチェーンに提示する処理
図３はシステム１００内のブロックチェーンへトランザクション実行に関連するデータ
を提示する処理を示す。ここではデータは不変であり、また、第三者システム１０４及び
他のエンティティによって独立して検証可能である。
【００４６】
ステップ３０２にて処理サーバ１０２は（例えばそれに関連付けられた第１のエンティ
ティを介して）、第２のエンティティと（例えばそれに関連付けられた第三者システム１
０４を介して）、トランザクションについての条件に同意してよい。トランザクションの
条件は、トランザクションについての決定論的入力として使用されてよい。例えば上記の
例では、条件は、頭金の金額と、全額支払の金額と、頭金の支払期限と、購入される役務
の支払期限と、全額支払の支払期限とを含んでよい。一実施形態では、トランザクション
条件の各々は決定論的であってよい。ステップ３０４にて第三者システム１０４は（例え
ば受信装置２０２を介して）、同意されたトランザクション条件を受信してよい。いくつ
かの実施形態では、トランザクション条件はブロックチェーンを介して（例えば受付フレ
ームの使用を通して）受信されてよい。
【００４７】
ステップ３０６にて第三者システム１０４は（例えばハッシュ化モジュール２１０及び
／又は生成モジュール２１２を介して）、少なくとも決定論的入力に基づいて、トランザ
クションについてのトランザクション値を生成してよい。例えば一例では、決定論的入力
の各々を含むデータファイルが生成されてよい。これは、トランザクション値を生成する
ようハッシュ化されてよい。いくつかの実施形態では、トランザクション値はまた、スマ
ートコントラクト及び／又はテンプレートへの参照子を含んでよい（あるいは参照子に基
づいてよい）。ステップ３０８にて第三者システム１０４は、検証されるブロックチェー
ンに提示されるブロックに含めるために、トランザクション値を（例えば送信装置２２０
を介して）ブロックチェーンノード１０８（これはブロックチェーンネットワーク１０６
に関連付けられる）へ電子的に送信してよい。
【００４８】
ステップ３１０にて、処理サーバ１０２の受信装置２０２は、トランザクション値を含
むブロックチェーン内の新規追加ブロックの受信により、トランザクション値を検索して
よい。ステップ３１２にて処理サーバ１０２は（例えばそれに関連付けられた第１のエン
ティティを介して）、トランザクション内で次の動作を実行してよい。上記の例では、次
の動作は、支払期限より前に1000ドルの頭金を支払うことであってよい。動作実行の一部
としてステップ３１４では処理サーバ１０２のプロセッサはトランザクションに関連付け
られたスマートコントラクト（これは例えば決定論的入力に含まれる参照子によって識別
される）を実行してよい。いくつかの実施形態では、スマートコントラクトは、動作実行
が充足されると、ブロックチェーンネットワーク１０６によって自動的に実行されてよい
（例えばスマートコントラクトは第２のエンティティへの1000ドルの支払を検出してよい
）。スマートコントラクトの実行の一部として、トランザクションについての決定論的入
力は、例えばフラグ変更によって、参照子の補足によって、又は、支払についての確認番
号の補足等によって、修正されてよい。
【００４９】
ステップ３１６では、処理サーバ１０２のハッシュ化モジュール２１０は、１以上のハ
ッシュ化アルゴリズムを、トランザクションについての更新済み決定論的入力に適用する
ことによって、トランザクションについての新たなトランザクション値を生成してよい。
いくつかの実施形態では、新たなトランザクション値の生成はまた、第１のエンティティ
に関連付けられた（及び、例えば、処理サーバ１０２のメモリ２０６に格納された）秘密
鍵と適切なアルゴリズムとの使用による、（処理サーバ１０２の署名モジュール２１６に
よる）トランザクション値のデジタル署名を含んでよい。ステップ３１８にて処理サーバ
１０２の送信装置２２０は、検証されブロックチェーンに提示されるブロックに含めるた
めに、新たに生成されたトランザクション値を、ブロックチェーンネットワーク１０６に
関連付けられたブロックチェーンノード１０８へ電子的に送信してよい。
【００５０】
ステップ３２０では、第三者システム１０４はトランザクションについての第１のエン
ティティによる次の動作の実行についての予期される出力を、例えば関連付けられたスマ
ートコントラクト（例えばそのプロセッサ）の実行によって、決定論的入力と第１のエン
ティティによる動作の推測とを用いて、判定してよい。いくつかの実施形態においてステ
ップ３２０の実行は、ステップ３１４での処理サーバ１０２により実行されるような、決
定論的入力に対する修正を含んでよい。ステップ３２２にて第三者システム１０４は（例
えばハッシュ化モジュール２１０及び／又は生成モジュール２１２を介して）、次の動作
の実行についての予期される出力に基づいて、トランザクションについての予期されるト
ランザクション値を生成してよい。
【００５１】
ステップ３２４にて第三者システム１０４は（例えば受信装置２０２を介して）、ブロ
ックチェーンに提示された新たなトランザクション値を検索してよい。いくつかの実施形
態においてステップ３２０及び３２２は、ステップ３２４の後に、又はステップ３２４と
並行して実行されてよい。ステップ３２６にて第三者システム１０４は（例えば検証モジ
ュール２１８を介して）、新たなトランザクションを、それを予期されるトランザクショ
ン値と比較することによって、検証してよい。トランザクション値がデジタルに署名され
る実施形態では、検証はまた、デジタル署名の検証を含んでよい。これは、第１のエンテ
ィティに関連付けられた公開鍵を用いて検証されてよい。トランザクション値の検証はし
たがって、トランザクションの次の動作が実行されたことを確実にしてよい。このときブ
ロックチェーンのトランザクション値は、動作の不変の証明であり、監査において使用す
るのに適している。
【００５２】
監査可能で不変なデータをブロックチェーンへ提示する例示的方法
図４は監査可能で不変なデータであってトランザクション実行に関連するデータをブロ
ックチェーンへ提示する方法４００を示す。
【００５３】
ステップ４０２にて複数のブロックを含むブロックチェーンは、処理サーバ（例えば処
理サーバ１０２）の受信装置（例えば受信装置２０２）によって受信されてよい。各ブロ
ックは、少なくとも、ブロックヘッダと１以上のトランザクション値とを含む。各トラン
ザクション値は少なくともトランザクションハッシュを含む。ステップ４０４にて、ブロ
ックチェーン内のブロックに含まれた特定のトランザクションに関連付けられたデータフ
ァイルは、処理サーバの受信装置によって受信されてよい。このときデータファイルは１
以上の変数を含む。
【００５４】
ステップ４０６にてデータファイルに含まれる１以上の変数のうち少なくとも１つは、
処理サーバのデータ修正モジュール（例えばデータ修正モジュール２１４）によって修正
されてよい。ステップ４０８にて、新たなハッシュ値は、処理サーバのハッシュ化モジュ
ール（例えばハッシュ化モジュール２１０）によって、１以上のハッシュ化アルゴリズム
を修正済みデータファイルに適用することによって、生成されてよい。
【００５５】
ステップ４１０にて新たなトランザクションは、処理サーバの生成モジュール（例えば
生成モジュール２１２）によって、生成済みの新たなハッシュ値と特定のトランザクショ
ンハッシュとに基づいて、生成されてよい。ステップ４１２にて、生成された新たなトラ
ンザクション値は、処理サーバの署名モジュール（例えば署名モジュール２１６）によっ
てデジタルに署名されてよい。ステップ４１４にて、署名済みの新たなトランザクション
値は、処理サーバの送信装置（例えば送信装置２２０）によって電子的に送信されてよい
。
【００５６】
一実施形態では、新たなトランザクション値は更に、ブロックチェーンに関連付けられ
た実行可能スクリプトに関連付けられた参照識別子に基づいてよい。更なる実施形態では
、実行可能スクリプトは、修正済みデータファイルを実行して、決定論的応答を出力する
よう構成されてよい。いくつかの実施形態では、新たなトランザクション値を生成するこ
とは、処理サーバのハッシュ化モジュールによって、少なくとも生成済みの新たなハッシ
ュ値と特定のトランザクションハッシュとをハッシュ化することを含んでよい。一実施形
態では、方法４００は、処理サーバのデータベース（例えばメモリ２０６）にキーと値と
の複数の対を格納することを含んでよい。キーと値との複数の対は、特定のトランザクシ
ョンハッシュをキーとして含み受信されたデータファイルを値として含む第１のものを少
なくとも含む。方法４００は、処理サーバの問い合わせモジュール（例えば問い合わせモ
ジュール２０８）によって、データベース上でクエリを実行して、生成された新たなハッ
シュ値をキーとして含み修正されたデータファイルを値として含む新たなキーと値との対
を挿入することを含んでよい。
【００５７】
ブロックチェーンへ提示された決定論的データを監査及び検証する例示的方法
図５は、ブロックチェーンへ提示されたデータを、決定論的入力に基づいて監査及び検
証する方法５００を示す。
【００５８】
ステップ５０２にて複数のブロックを含むブロックチェーンは、処理サーバ（例えば処
理サーバ１０２）の受信装置（例えば受信装置２０２）によって受信されてよい。各ブロ
ックは、少なくとも、ブロックヘッダと１以上のトランザクション値とを含む。各ブロッ
クヘッダは少なくともタイムスタンプを含み、各トランザクション値は少なくともトラン
ザクションハッシュを含む。ステップ５０４にて第１のクエリは、処理サーバの問い合わ
せモジュール（例えば問い合わせモジュール２０８）によってブロックチェーン上で実行
されてよく、第１のトランザクション値を識別してよい。第１のトランザクション値は実
行可能スクリプトに関連付けられる。
【００５９】
ステップ５０６にて実行可能スクリプトは処理サーバのプロセッサによって、複数の所
定の入力値を用いて、実行されてよく、少なくとも１つの出力変数を受信する。ステップ
５０８にて、ハッシュ値は、処理サーバのハッシュ化モジュール（例えばハッシュ化モジ
ュール２１０）によって、少なくとも複数の所定の入力値と少なくとも１つの出力変数と
に基づいて、生成されてよい。
【００６０】
ステップ５１０にて新たなトランザクション値は、処理サーバの生成モジュール（例え
ば生成モジュール２１２）によって、少なくとも生成済みのハッシュ値と第１のトランザ
クションに含まれるトランザクションハッシュとに基づいて、生成されてよい。ステップ
５１２にてブロックチェーン内のブロックに含まれる第２のトランザクション値は、処理
サーバの検証モジュール（例えば検証モジュール２１８）によって検証されてよい。この
とき第２のトランザクション値は生成済みの新たなトランザクション値に対応する。
【００６１】
一実施形態では、第２のトランザクションを検証することは、処理サーバの問い合わせ
モジュールによって、ブロックチェーン上で第２のクエリを実行して第２のトランザクシ
ョン値を識別することと、処理サーバの検証モジュールによって、第２のトランザクショ
ン値が生成済みの新たなトランザクション値に等しいことを検証することとを含んでよい
。いくつかの実施形態では、新たなトランザクション値を生成することは、処理サーバの
ハッシュ化モジュールによって、少なくとも生成済みの新たなハッシュ値と第１のトラン
ザクション値に含まれたトランザクションハッシュとをハッシュ化することを含む。
【００６２】
一実施形態では、第２のトランザクション値を検証することは、処理サーバの問い合わ
せモジュールによって、ブロックチェーン上で第２のクエリを実行して第２のトランザク
ション値を識別することと、処理サーバの検証モジュールによって、含まれたトランザク
ションハッシュをデジタルに署名するために使用されるデジタル署名を検証することとを
含んでよい。更なる実施形態では、方法５００は更に、処理サーバのメモリ（例えばメモ
リ２０６）に公開鍵を格納することを含む。デジタル署名の検証は、格納済みの公開鍵を
用いる。
【００６３】
コンピュータシステムアーキテクチャ
図６は、コンピュータシステム６００を示す。そこには、本開示の実施形態又はその一
部が、コンピュータ読取り可能なコードとして実装されてよい。例えば図１の処理サーバ
１０２は、ハードウェア、ソフトウェア、ファームウェア、格納された命令を有する非一
時的なコンピュータ読取り可能な媒体、又はこれらの組合せを用いてシステム６００内に
実装されてよく、１以上のコンピュータシステム又は他の処理システムにおいて実装され
てよい。ハードウェア、ソフトウェア及びこれらの任意の組合せは、図３乃至５の方法を
実装するために使用されるモジュール及びコンポーネントを実現してよい。
【００６４】
プログラマブルロジックが使用される場合、そのようなロジックは、実行可能なソフト
ウェアコードで構成された商業的に利用可能な処理プラットフォーム上で実行され、特定
用途装置又は特別目的装置となっててよい（例えばプログラマブルロジックアレイ、特定
用途向け集積回路等）。当業者は、開示された事項についての実施形態が、様々なコンピ
ュータシステム構成で実行可能であることを理解する。当該システム構成は、マルチコア
のマルチプロセッサシステムと、ミニコンピュータと、メインフレームコンピュータと、
分散された機能でリンクされ又はクラスタ化されたコンピュータと、任意の装置へ仮想的
に実装可能な汎用（pervasive）又はミニチュアのコンピュータとを含む。例えば少なく
とも１つのプロセッサ装置及びメモリが、上記実施形態を実装するために使用されてよい
。
【００６５】
本開示のプロセッサユニット又は装置は、単一のプロセッサ、複数のプロセッサ、又は
これらの組合せであってよい。プロセッサ装置は、１以上のプロセッサ「コア」を有して
よい。本開示の「コンピュータプログラム媒体」、「非一時的なコンピュータ読取り可能
な媒体」及び「コンピュータ使用可能な媒体」との用語は、概して、有形の媒体（例えば
取外し可能なストレージユニット６１８、取外し可能なストレージユニット６２２及びハ
ードディスクドライブ６１２にインストールされたハードディスク等）を指すために使用
される。
【００６６】
本開示の様々な実施形態は、この例示的なコンピュータシステム６００に関して記述さ
れる。本開示を読んだ後、当業者にとって、他のコンピュータシステム及び／又はコンピ
ュータアーキテクチャを用いて本開示をどのように実装するかは自明である。動作はシー
ケンシャルな処理として開示されるが、いくつかの動作は実際には、並行して、同時に及
び／又は分散環境で、実行されてよい。このとき、プログラムコードは、単一プロセッサ
の又はマルチプロセッサのマシンによってアクセスするために、ローカルに又はリモート
に格納された状態である。更に、いくつかの実施形態では、動作の順番は、開示される事
項の趣旨を逸脱することなく再配置可能である。
【００６７】
プロセッサ装置６０４は、本開示の機能を実行するよう特別に構成された特定用途又は
汎用プロセッサ装置であってよい。プロセッサ装置６０４は、通信インフラストラクチャ
６０６（例えばバス、メッセージキュー、ネットワーク、マルチコアメッセージパススキ
ーム等）へ接続されてよい。ネットワークは、本開示の機能を実行するのに適した任意の
ネットワークであってよく、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネッ
トワーク（ＷＡＮ）、無線ネットワーク（例えばＷｉｆｉ）、モバイル通信ネットワーク
、衛星ネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数
（ＲＦ）又はこれらの任意の組合せを含んでよい。他の適切なネットワークタイプ及び構
成は、当業者にとって自明である。コンピュータシステム６００はまた、メインメモリ６
０８（例えばランダムアクセスメモリ、読み取り専用メモリ等）を含んでよく、また、補
助記憶装置６１０を含んでよい。補助記憶装置６１０は、ハードディスクドライブ６１２
と取外し可能なストレージドライブ６１４（例えばフロッピーディスクドライブ、磁気テ
ープドライブ、光ディスクドライブ、フラッシュメモリ等）とを含んでよい。
【００６８】
取外し可能なストレージドライブ６１４は、周知の方法で、取外し可能なストレージユ
ニット６１８から読み取りを行ってもよいし、そこへ書き込みを行ってもよい。取外し可
能なストレージユニット６１８は、取外し可能なストレージドライブ６１４によって読み
取られ又は書き込まれることができる、取外し可能なストレージ媒体を含んでよい。例え
ばもし取外し可能なストレージドライブ６１４がフロッピーディスクドライブ又はユニバ
ーサルシリアルバスポートであれば、取外し可能なストレージユニット６１８はそれぞれ
、フロッピーディスク又はポータブルフラッシュドライブであってよい。一実施形態では
、取外し可能なストレージユニット６１８は非一時的な読取り可能記録媒体であってよい
。
【００６９】
いくつかの実施形態では、補助記憶装置６１０は代替手段を含み、コンピュータプログ
ラム又は他の命令がコンピュータシステム６００（例えば取外し可能なストレージユニッ
ト６２２及びインタフェース６２０）にロードされることを可能にしてよい。そのような
手段の例は、（例えばビデオゲームシステムで見られる）プログラムカートリッジ及びカ
ートリッジインタフェース、取外し可能なメモリチップ（例えばＥＥＰＲＯＭ、ＰＲＯＭ
等）、関連ソケット、他の取外し可能なストレージユニット６２２及びインタフェース６
２０を含んでよい。このことは当業者にとって自明である。
【００７０】
コンピュータシステム６００に（例えばメインメモリ６０８に及び／又は補助記憶装置
６１０に）格納されたデータは、任意のタイプの適切なコンピュータ読取り可能な媒体（
例えば光ストレージ（コンパクトディスク、デジタル多目的ディスク、Blu-rayディスク
等）又は磁気テープストレージ（例えばハードディスクドライブ））上に格納されてよい
。データは任意のタイプの適切なデータベース構成（例えばリレーショナルデータベース
、構造化照会言語（ＳＱＬ）データベース、分散データベース、オブジェクトデータベー
ス等）で構成されてよい。適切な構成及びストレージタイプは、当業者にとって自明であ
る。
【００７１】
コンピュータシステム６００はまた、通信インタフェース６２４を含んでよい。通信イ
ンタフェース６２４は、ソフトウェア及びデータが、コンピュータシステム６００と外部
装置との間で送信されることを可能にしてよい。例示的な通信インタフェース６２４は、
モデム、ネットワークインタフェース（例えばイーサネットカード）、通信ポート、ＰＣ
ＭＣＩＡスロット及びカード等を含んでよい。通信インタフェース６２４を介して転送さ
れるソフトウェア及びデータは信号形式であってよい。当該信号形式は、電子の、電磁気
の、光の、又は当業者にとって自明な他の信号のものであってよい。信号は、通信パス６
２６を介して伝わる。当該通信パス６２６は信号を伝送するよう構成され、電線、ケーブ
ル、光ファイバ、電話線、携帯電話リンク、無線周波数リンク等を用いて実装されてよい
。
【００７２】
コンピュータシステム６００は表示インタフェース６０２を更に含んでよい。表示イン
タフェース６０２は、データが、コンピュータシステム６００と外部ディスプレイ６３０
との間で転送されることを可能にするよう構成されてよい。例示的な表示インタフェース
６０２は、高精細度マルチメディアインタフェース（ＨＤＭＩ）、デジタルビジュアルイ
ンタフェース（ＤＶＩ）、ビデオグラフィックスアレイ（ＶＧＡ）等を含んでよい。ディ
スプレイ６３０は任意の適切なタイプのディスプレイであってよく、コンピュータシステ
ム６００の表示インタフェース６０２を介して転送されるデータを表示する。ディスプレ
イ６３０は、ブラウン管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、発光ダ
イオード（ＬＥＤ）ディスプレイ、静電容量方式タッチディスプレイ、薄膜トランジスタ
（ＴＦＴ）ディスプレイ等を含む。
【００７３】
コンピュータプログラム媒体及びコンピュータ使用可能な媒体は、メモリ（例えばメイ
ンメモリ６０８及び補助記憶装置６１０）を指してよく、半導体メモリ（ＤＲＡＭ等）で
あってよい。これらのコンピュータプログラム製品は、コンピュータシステム６００へソ
フトウェアを提供するための手段であってよい。コンピュータプログラム（例えばコンピ
ュータ制御ロジック）は、メインメモリ６０８及び／又は補助記憶装置６１０に格納され
てよい。コンピュータプログラムはまた、通信インタフェース６２４を介して受信されて
よい。そのようなコンピュータプログラムは、実行されると、コンピュータシステム６０
０が本開示の方法を実行することを可能にしてよい。特に、コンピュータプログラムは、
実行されると、プロセッサ装置６０４が図３乃至５に示される本開示の方法を実行するこ
とを可能にしてよい。したがって、そのようなコンピュータプログラムはコンピュータシ
ステム６００のコントローラを示す。本開示はソフトウェアを使用して実装される。当該
ソフトウェアは、取外し可能なストレージドライブ６１４、インタフェース６２０、及び
ハードディスクドライブ６１２又は通信インタフェース６２４を用いて、コンピュータプ
ログラム製品に格納されてコンピュータシステム６００へロードされてよい。
【００７４】
プロセッサ装置６０４は、コンピュータシステム６００の機能を実行するよう構成され
る１以上のモジュール又はエンジンを含んでよい。各モジュール又はエンジンは、ハード
ウェアを用いて実装されてよく、いくつかの実施形態ではソフトウェア（例えばこれは、
メインメモリ６０８又は補助記憶装置６１０に格納されるプログラムコード又はプログラ
ムに対応する）を用いてよい。そのような実施形態では、プログラムコードは、コンピュ
ータシステム８００のハードウェアによる実行前に、プロセッサ装置６０４によって（例
えばモジュール又はエンジンをコンパイルすることによって）コンパイルされてよい。例
えばプログラムコードは、低レベルの言語へと解釈されるプログラミング言語で記述され
たソースコード（例えばアセンブリ言語又は機械コード）であってよい。これは、プロセ
ッサ装置６０４及び／又はコンピュータシステム６００の任意の追加のハードウェア構成
要素によって実行するためのものである。コンパイル処理は、語彙解析と、前処理と、解
析と、意味解析と、文法指向の翻訳と、コード生成と、コード最適化と、コンピュータシ
ステム６００の制御のためにプログラムコードを低レベルの言語へ解釈して本開示の機能
を実行するのに適した任意の他の技術との使用を含んでよい。そのような処理によってコ
ンピュータシステム６００が、上記の機能を実行するために一意にプログラムされた特別
構成コンピュータシステム６００になることは当業者にとって自明である。
【００７５】
本開示に一貫する技術は、とりわけ、ブロックチェーン上の監査可能で不変のデータを
提示及び検証するシステム及び方法を提供する。本開示のシステム及び方法の様々な例示
的実施形態が上述されるが、それらは限定目的でなく例示目的のみで示されることを理解
されたい。それは徹底したものでなく、本開示を、開示された形態そのものへ限定しない
。上記の教示に照らして修正例及び変形例が可能である。広がり又は範囲を逸脱すること
無く、本開示の実装から修正例及び変形例が得られてよい。
【図１】
2022003547.tif 000003
【図２】
2022003547.tif 000004
【図３】
2022003547.tif 000005
【図４】
2022003547.tif 000006
【図５】
2022003547.tif 000007
【図６】
2022003547.tif 000008
【手続補正書】
【提出日】令和3年10月15日(2021.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
監査可能で不変なデータをブロックチェーンへ提示する方法であって、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するステップであって、各ブロックは１以上のトランザクション値を含み、各トランザクション値は少なくともトランザクションハッシュを含む、ステップと、
前記処理サーバの前記受信装置によって、１以上の決定論的トランザクション入力を受信するステップであって、前記１以上の決定論的トランザクション入力の各々は、対応する前記決定論的トランザクション入力を決定論的に充足する１以上の所定の条件に関連付けられる、ステップと、
前記処理サーバのデータ修正モジュールによって、前記１以上の決定論的トランザクション入力の少なくとも１つの前記１以上の所定の条件の１つが充足されるか否かに基づいて、前記１以上の決定論的トランザクション入力のうち対応する前記少なくとも１つを修正するステップと、
前記処理サーバのハッシュ化モジュールによって、１以上のハッシュ化アルゴリズムを前記１以上の決定論的トランザクション入力の前記修正された少なくとも１つに適用することによって、新たなハッシュ値を生成するステップと、
前記処理サーバの生成モジュールによって、少なくとも前記生成された新たなハッシュ値と前記ブロックチェーンに関連付けられた実行可能スクリプトに関連付けられた参照識別子とに基づいて、新たなトランザクション値を生成するステップであって、前記新たなトランザクション値は、前記１以上の決定論的トランザクション入力のうち前記修正された少なくとも１つに基づいており、前記実行可能スクリプトの実行は、前記１以上の決定論的トランザクション入力のうち前記少なくとも１つの前記１以上の所定の条件のうち前記１つが充足されるか否かを検証するための決定論的応答を出力する、ステップと、
前記処理サーバの署名モジュールによって、前記生成された新たなトランザクション値をデジタルに署名するステップと、
前記処理サーバの送信装置によって、前記署名された新たなトランザクション値を電子的に送信するステップと、
を含む方法。
【請求項２】
請求項１に記載の方法において、前記参照識別子は、前記実行可能スクリプトのハッシュである、方法。
【請求項３】
請求項１に記載の方法において、前記実行可能スクリプトはスマートコントラクトである、方法。
【請求項４】
請求項１に記載の方法において、前記実行可能スクリプトの前記実行は、前記１以上の所定の条件の前記１つが充足されないことを検証する、方法。
【請求項５】
請求項４に記載の方法において、前記１以上の所定の条件の前記１つの不充足に応答して、前記実行可能スクリプトの前記実行は、前記１以上の所定の条件の前記不充足の標示を生成する、方法。
【請求項６】
請求項５に記載の方法において、前記１以上の所定の条件の前記不充足の前記標示は、不払い又は返金の標示を含む、方法。
【請求項７】
ブロックチェーンへ提示された決定論的データを監査及び検証する方法であって、
処理サーバの受信装置によって、複数のブロックを含むブロックチェーンを受信するステップであって、各ブロックは１以上のトランザクション値を含み、各トランザクション値は少なくともトランザクションハッシュを含む、ステップと、
前記処理サーバの問い合わせモジュールによって前記ブロックチェーン上で第１のクエリを実行して、第１のトランザクション値を識別するステップであって、前記第１のクエリを実行して前記第１のトランザクション値を識別するときに、前記第１のトランザクション値は実行可能スクリプトに関連付けられる、ステップと、
前記処理サーバのプロセッサによって、前記第１のトランザクション値に関連付けられた１以上の決定論的トランザクション入力を決定論的に充足するための複数の所定の入力条件を用いて、前記実行可能スクリプトを実行して、少なくとも１つの決定論的応答を受信するステップと、
前記処理サーバのハッシュ化モジュールによって、前記複数の所定の入力条件と前記少なくとも１つの決定論的応答とに少なくとも基づいてハッシュ値を生成するステップと、
前記処理サーバの生成モジュールによって、少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記トランザクションハッシュとに基づいて、新たなトランザクション値を生成するステップと、
前記処理サーバの検証モジュールによって、前記ブロックチェーン内のブロックに含まれた第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証するステップであって、前記第２のトランザクション値は、１以上の関連付けられた所定の入力条件が充足されるか否かに基づいて修正された、前記１以上の決定論的トランザクション入力のうち少なくとも修正された１つに基づく、ステップと、
を含み、
前記新たなトランザクション値は、前記処理サーバの前記ハッシュ化モジュールによって、少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記トランザクションハッシュとをハッシュ化することによって生成される、方法。
【請求項８】
請求項７に記載の方法において、前記第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２のクエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値が前記生成された新たなトランザクション値に等しいことを検証することと、
を含む方法。
【請求項９】
請求項７に記載の方法において、前記第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２のクエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値が前記生成された新たなトランザクション値と異なることを検証することと、
を含む方法。
【請求項１０】
請求項７に記載の方法において、前記実行可能スクリプトはスマートコントラクトである、方法。
【請求項１１】
監査可能で不変なデータをブロックチェーンへ提示するシステムであって、
処理サーバの受信装置であって、
複数のブロックを含むブロックチェーンであって、各ブロックは１以上のトランザクション値を含み、各トランザクション値は少なくともトランザクションハッシュを含む、ブロックチェーンと、
１以上の決定論的トランザクション入力であって、前記１以上の決定論的トランザクション入力の各々は、対応する前記決定論的トランザクション入力を決定論的に充足するための１以上の所定の条件に関連付けられる、１以上の決定論的トランザクション入力と
を受信するよう構成された受信装置と、
前記１以上の決定論的トランザクション入力の少なくとも１つの前記１以上の所定の条件の１つが充足されるか否かに基づいて、前記１以上の決定論的トランザクション入力のうち前記対応する少なくとも１つを修正するよう構成された、前記処理サーバのデータ修正モジュールと、
１以上のハッシュ化アルゴリズムを前記１以上の決定論的トランザクション入力の前記修正された少なくとも１つに適用することによって、新たなハッシュ値を生成するよう構成された、前記処理サーバのハッシュ化モジュールと、
少なくとも前記生成された新たなハッシュ値と前記ブロックチェーンに関連付けられた実行可能スクリプトに関連付けられた参照識別子とに基づいて、新たなトランザクション値を生成するよう構成された、前記処理サーバの生成モジュールであって、前記新たなトランザクション値は、前記１以上の決定論的トランザクション入力のうち前記修正された少なくとも１つに基づいており、前記実行可能スクリプトの実行は、前記１以上の決定論的トランザクション入力のうち前記少なくとも１つの前記１以上の所定の条件のうち前記１つが充足されるか否かを検証するための決定論的応答を出力する、生成モジュールと、
前記生成された新たなトランザクション値をデジタルに署名するよう構成された、前記処理サーバの署名モジュールと、
前記署名された新たなトランザクション値を電子的に送信するよう構成された、前記処理サーバの送信装置と、
を含むシステム。
【請求項１２】
請求項１１に記載のシステムにおいて、前記参照識別子は、前記実行可能スクリプトのハッシュである、システム。
【請求項１３】
請求項１１に記載のシステムにおいて、前記実行可能スクリプトはスマートコントラクトである、システム。
【請求項１４】
請求項１１に記載のシステムにおいて、前記実行可能スクリプトの前記実行は、前記１以上の所定の条件の前記１つが充足されないことを検証する、システム。
【請求項１５】
請求項１４に記載のシステムにおいて、前記１以上の所定の条件の前記１つの不充足に応答して、前記実行可能スクリプトの前記実行は、前記１以上の所定の条件の前記不充足の標示を生成するよう構成される、システム。
【請求項１６】
請求項１５に記載のシステムにおいて、前記１以上の所定の条件の前記不充足の前記標示は、不払い又は返金の標示を含む、方法。
【請求項１７】
ブロックチェーンへ提示された決定論的データを監査及び検証するシステムであって、
複数のブロックを含むブロックチェーンを受信するよう構成された、処理サーバの受信装置であって、各ブロックは１以上のトランザクション値を含み、各トランザクション値は少なくともトランザクションハッシュを含む、受信装置と、
前記ブロックチェーン上で第１のクエリを実行して、第１のトランザクション値を識別するよう構成された、前記処理サーバの問い合わせモジュールであって、前記第１のクエリを実行して前記第１のトランザクション値を識別するときに、前記第１のトランザクション値は実行可能スクリプトに関連付けられる、問い合わせモジュールと、
前記第１のトランザクション値に関連付けられた１以上の決定論的トランザクション入力を決定論的に充足するための複数の所定の入力条件を用いて、前記実行可能スクリプトを実行して、少なくとも１つの決定論的応答を受信するよう構成された、前記処理サーバのプロセッサと、
前記複数の所定の入力条件と前記少なくとも１つの決定論的応答とに少なくとも基づいてハッシュ値を生成するよう構成された、前記処理サーバのハッシュ化モジュールと、
少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記トランザクションハッシュとに基づいて、新たなトランザクション値を生成するよう構成された、前記処理サーバの生成モジュールと、
前記ブロックチェーン内のブロックに含まれた第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証するよう構成された、前記処理サーバの検証モジュールであって、前記第２のトランザクション値は、１以上の関連付けられた所定の入力条件が充足されるか否かに基づいて修正された、前記１以上の決定論的トランザクション入力のうち少なくとも修正された１つに基づく、検証モジュールと、
を含み、
前記新たなトランザクション値は、前記処理サーバの前記ハッシュ化モジュールによって、少なくとも前記生成されたハッシュ値と前記第１のトランザクション値に含まれた前記トランザクションハッシュとをハッシュ化することによって生成される、システム。
【請求項１８】
請求項１７に記載のシステムにおいて、前記第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２のクエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値が前記生成された新たなトランザクション値に等しいことを検証することと、
を含むシステム。
【請求項１９】
請求項１７に記載のシステムにおいて、前記第２のトランザクション値が前記生成された新たなトランザクション値と一致するか否かを検証することは、
前記処理サーバの前記問い合わせモジュールによって前記ブロックチェーン上で第２のクエリを実行して、前記第２のトランザクション値を識別することと、
前記処理サーバの前記検証モジュールによって、前記第２のトランザクション値が前記生成された新たなトランザクション値と異なることを検証することと、
を含むシステム。
【請求項２０】
請求項１７に記載のシステムにおいて、前記実行可能スクリプトはスマートコントラクトである、システム。
【外国語明細書】
2022003547000001.pdf