(57)【要約】  本発明によると、ブロックチェーンにより行われる処理の実行を制御する方法及び対応するシステムが提供される。ブロックチェーンは、ビットコインブロックチェーンであって良く、又はそうでなくて良い。処理は融資処理であって良い。有利なことに、本発明は、財産又は他の資産の最終所有者が、該資産に対して資金を借りることを可能にし、どのようにこれが達成できるかを、投資家への報酬が利子の支払を通じて決定される必要無しに、設計する。これは、それを無利子の融資に準拠させる。本発明は、ブロックチェーントランザクション（Ｔｘ）にデータを埋め込む、ブロックチェーンにより実施される方法（及び対応するシステム）を提供する。当該方法は、データの公開鍵−秘密鍵暗号対を導出するステップと、前記公開鍵−秘密鍵暗号対を用いて前記データの署名を導出するステップと、前記データを符号化して、前記データの符号化メタデータを生成するステップと、を含む。符号化メタデータは、トランザクションの中でブロックチェーンへ送信される。署名が受信され、少なくとも１人のユーザからのスクリプトは、埋め込みデータへのアクセスを可能にする。スクリプトは署名者の公開鍵を含む。メタデータは、データのハッシュと、該データの位置が特定できるように、該データへのポインタと、を含む。前記ハッシュは、前記データの格納されているルックアップテーブルの中の１次キーとして使用される。
2019513312.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンにより実装される制御方法であって、前記方法は、
データのアイテム又は部分の公開鍵−秘密鍵暗号対を導出するステップと、
前記公開鍵−秘密鍵暗号対を用いて前記データの署名を導出するステップと、
前記データを符号化して、前記データの符号化メタデータを生成するステップと、
を含む方法。
【請求項２】
少なくとも第１エンティティマスタ秘密鍵と生成器値とに基づき、第１エンティティ第２秘密鍵を決定し、
少なくとも第２エンティティマスタ秘密鍵と前記生成器値とに基づき、第２エンティティ第２秘密鍵を決定し、
前記第１エンティティ第２秘密鍵と前記第２エンティティ第２公開鍵とに基づき、前記第１エンティティにおいて共通シークレット（ＣＳ）を決定し、前記第２エンティティ第２秘密鍵と第１エンティティ第２公開鍵とに基づき、前記第２エンティティにおいて前記共通シークレット（ＣＳ）を決定する、
ことにより、既存暗号鍵対から前記暗号鍵のうちの一方又は両方の鍵を導出するステップ、を含み、
前記第１エンティティ第２公開鍵及び前記第２エンティティ第２公開鍵は、それぞれ、少なくとも前記第１／第２エンティティマスタ鍵及び前記生成器値に基づく、請求項１に記載の方法。
【請求項３】
前記方法は、
前記符号化メタデータを前記ブロックチェーンへ送信するステップ、を更に含む請求項１又は２に記載の方法。
【請求項４】
前記方法は、
埋め込みデータへのアクセスを可能にするために、少なくとも１人のユーザから署名及びスクリプトを受信するステップ、を更に含む請求項１乃至３のいずれか一項に記載の方法。
【請求項５】
前記スクリプトは、署名者の公開鍵を含む、請求項４に記載の方法。
【請求項６】
前記メタデータは前記データのハッシュを含む、請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記メタデータは前記データのポインタを含む、請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
前記ハッシュは、前記データの格納されているルックアップテーブルの中の１次キーとして使用される、請求項４に記載の方法。
【請求項９】
第１ノード（Ｃ）において、前記第１ノード（Ｃ）及び第２ノード（Ｓ）に共通である共通シークレット（ＣＳ）を決定することにより、暗号鍵対のうちの一方又は両方の鍵を生成又は導出するステップであって、前記第１ノード（Ｃ）は第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を有する第１非対称暗号対に関連付けられ、前記第２ノード（Ｓ）は第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）を有する第２非対称暗号対に関連付けられる、ステップ、を含み、
前記ステップは、
−少なくとも前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び決定キー（ＤＫ）に基づき、第１ノード第２秘密鍵（Ｖ２Ｃ）を決定するステップと、
−少なくとも前記第２ノードマスタ公開鍵（Ｐ１Ｓ）及び前記決定キー（ＤＫ）に基づき、第２ノード第２公開鍵（Ｐ２Ｓ）を決定するステップと、
−前記第１ノード第２秘密鍵（Ｖ２Ｃ）及び前記第２ノード第２公開鍵（Ｐ２Ｓ）に基づき、前記共通シークレット（ＣＳ）を決定するステップと、
を含み、
−前記第２ノード（Ｓ）は、第１ノード第２公開鍵（Ｐ２Ｃ）及び第２ノード第２秘密鍵（Ｖ２Ｓ）に基づく同じ共通シークレット（Ｓ）を有し、
−前記第１ノード第２公開鍵（Ｐ２Ｃ）は、少なくとも前記第１ノードマスタ公開鍵（Ｐ１Ｃ）及び前記決定キー（ＤＫ）に基づき、
−前記第２ノード第２秘密鍵（Ｖ２Ｓ）は、少なくとも前記第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び前記決定キー（ＤＫ）に基づく、請求項１乃至８のいずれか一項に記載の方法。
【請求項１０】
前記決定キー（ＤＫ）は、メッセージ（Ｍ）に基づく、請求項９に記載の方法。
【請求項１１】
ブロックチェーンにより実装される制御システムであって、
データのアイテム又は部分の公開鍵−秘密鍵暗号鍵対を導出し、
前記公開鍵−秘密鍵暗号対を用いて前記データの署名を導出し、
前記データを符号化して、前記データの符号化メタデータを生成する、
よう動作するシステム。
【請求項１２】
前記システムは、
前記符号化メタデータを前記ブロックチェーンへ送信するよう更に動作する請求項１０に記載のシステム。
【請求項１３】
前記システムは、
埋め込みデータへのアクセスを可能にするために、少なくとも１人のユーザから署名及びスクリプトを受信するよう更に動作する請求項１１又は１２に記載のシステム。
【請求項１４】
前記スクリプトは、署名者の公開鍵を含む、請求項１３に記載のシステム。
【請求項１５】
前記システムは、
前記データのハッシュを生成し、前記メタデータの部分として該ハッシュを格納するよう更に動作する請求項１１乃至１４のいずれか一項に記載のシステム。
【請求項１６】
前記システムは、
前記データへのポインタを生成するよう更に動作する請求項１１乃至１５のいずれか一項に記載のシステム。
【請求項１７】
前記システムは、
前記データの格納されているルックアップテーブルの中の１次キーとして前記ハッシュを格納するよう更に動作する請求項１５に記載のシステム。
【請求項１８】
前記システムは、第１ノード（Ｃ）において、前記第１ノード（Ｃ）及び第２ノード（Ｓ）に共通である共通シークレット（ＣＳ）を決定するよう構成され、前記第１ノード（Ｃ）は第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を有する第１非対称暗号対に関連付けられ、前記第２ノード（Ｓ）は第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）を有する第２非対称暗号対に関連付けられ、
−少なくとも前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び決定キー（ＤＫ）に基づき、第１ノード第２秘密鍵（Ｖ２Ｃ）を決定し、
−少なくとも前記第２ノードマスタ公開鍵（Ｐ１Ｓ）及び前記決定キー（ＤＫ）に基づき、第２ノード第２公開鍵（Ｐ２Ｓ）を決定し、
−前記第１ノード第２秘密鍵（Ｖ２Ｃ）及び前記第２ノード第２公開鍵（Ｐ２Ｓ）に基づき、前記共通シークレット（ＣＳ）を決定する、
ことにより、前記共通シークレット（ＣＳ）を決定し、
−前記第２ノード（Ｓ）は、第１ノード第２公開鍵（Ｐ２Ｃ）及び第２ノード第２秘密鍵（Ｖ２Ｓ）に基づく同じ共通シークレット（Ｓ）を有し、
−前記第１ノード第２公開鍵（Ｐ２Ｃ）は、少なくとも前記第１ノードマスタ公開鍵（Ｐ１Ｃ）及び前記決定キー（ＤＫ）に基づき、
−前記第２ノード第２秘密鍵（Ｖ２Ｓ）は、少なくとも前記第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び前記決定キー（ＤＫ）に基づく、請求項１１乃至１７のいずれか一項に記載のシステム。
【請求項１９】
前記決定キー（ＤＫ）は、メッセージ（Ｍ）に基づく、請求項１８に記載のシステム。
【請求項２０】
前記システムは、
少なくとも第１エンティティマスタ秘密鍵と生成器値とに基づき、第１エンティティ第２秘密鍵を決定し、
少なくとも第２エンティティマスタ秘密鍵と前記生成器値とに基づき、第２エンティティ第２秘密鍵を決定し、
前記第１エンティティ第２秘密鍵と前記第２エンティティ第２公開鍵とに基づき、前記第１エンティティにおいて共通シークレット（ＣＳ）を決定し、前記第２エンティティ第２秘密鍵と第１エンティティ第２公開鍵とに基づき、前記第２エンティティにおいて前記共通シークレット（ＣＳ）を決定する、
ことにより、既存暗号鍵対から前記暗号鍵対のうちの一方又は両方の鍵を導出するよう構成され、
前記第１エンティティ第２公開鍵及び前記第２エンティティ第２公開鍵は、それぞれ、少なくとも前記第１／第２エンティティマスタ鍵及び前記生成器値に基づく、請求項１１乃至１９のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、コンピュータにより実装されるネットワークを介するエンティティ又は資産の交換及びその制御のためのトークン化方法及び対応するシステムに関する。本発明は、ネットワーク上の交換及び転送のためのセキュリティメカニズムに関する。特に、本発明は、取引の転送に関する。本発明は、限定ではないが、借金のない融資処理と共に使用することに適する。本発明は、ピアツーピア分散ネットワークと関連して使用されて良い。本発明は、（限定ではないが）ビットコインブロックチェーンを含むブロックチェーンに関連する技術であり得る。
【０００２】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【背景技術】
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタル資産の制御の転送を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード（マイナー）は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション（ＵＴＸＯ）に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信した第１ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ｉｉ）マイナーにより構築された新しいブロックに追加し、ｉｉｉ）マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【０００５】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及び処理のために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点（例えば、永久的、イベントの耐タンパレコード、分散処理、等）を利用できる。
【０００６】
現在の研究の一分野は、「スマートコントラクト（smart  contracts）」の実装のためのブロックチェーンの使用である。これらは、機械可読取引又は合意の条件の実行を自動化するために設計されたコンピュータプログラムである。自然言語で記述され得る従来の取引と異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含み、該結果に依存して動作を実行させることのできる、機械実行可能プログラムである。
【０００７】
ブロックチェーンに関連する関心の他の分野は、ブロックチェーンを介する現実世界のエンティティを表し転送するための「トークン」（又は「カラードコイン」）の使用である。潜在的に機密な又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現できる。したがって、トークンは、現実世界のアイテムをブロックチェーンから参照できるようにする識別子として機能する。
【０００８】
本発明は、異なるパーティ間の融資を可能にするブロックチェーンに基づくメカニズム及び基板に、種々の技術的概念を組み込む。これは、借金の存在無しに達成可能である。融資は、金融サービス市場になくてはならない部分であり、前渡し金の後の支払を交換条件として、借り手が貸し手から資金を受けることを可能にする。銀行のような金融機関を介する伝統的な融資は、近年、一般により高い個人的報酬のために、個人がプール金を借り手に貸すピアツーピア（Ｐ２Ｐ）融資を通じて拡張されているが、前渡し金を失うリスクが増大する。
【０００９】
多数のＰ２Ｐプールが存在し、それら自身の特注の取引所が、Ｐ２Ｐ融資処理（例えば、Ｚｏｐａ、Ｆｕｎｄｉｎｇサークル）に参加するためにそれらのアプリケーションへの個人登録を要求する。これらの貸し付けは、伝統的な銀行ネットワーク及びそれらの操業する領域内の技術基盤により裏打ちされず、それにより実行されない。したがって、Ｐ２Ｐ融資のための現在のシステムは、本来、制限的であり複雑である。
【００１０】
代替ソリューションを提供することは有利である。このソリューションの利点は、例えば、洗練された融資処理が実行可能でありながら、ローカルな特注取引所の必要を除去することであり得る。ブロックチェーンの知られている利点（例えば、その耐タンパ性、トランザクションの永久的記録）は、都合良く利用され得る。このソリューションは、全く新しいアーキテクチャ及び技術プラットフォームを提供し得る。このような改良されたソリューションが考案されている。
【発明の概要】
【００１１】
したがって、本発明によると、添付の請求の範囲に定められるような方法及びシステムが提供される。
【００１２】
したがって、本発明によると、ブロックチェーンにより（つまり、それを使用して）行われる処理の実行を制御する方法及び対応するシステムが提供される。ブロックチェーンは、ビットコインブロックチェーンであって良く、又はそうでなくて良い。処理は融資処理であって良い。本発明は、また、デジタル資産又はアイテムの転送に拡張されたセキュリティを提供する、トークン化及び暗号技術を導入し得る。
【００１３】
本発明は、ブロックチェーンにより実施される方法を提供し得る。本発明は、データを埋め込むメカニズムを提供し得る。データは、ブロックチェーントランザクション（Ｔｘ）に埋め込まれて良い。追加又は代替で、本発明は、資産又はアイテムの制御、交換、及び／又は転送のための方法を含み得る。これはデジタル資産であって良い。追加又は代替で、本発明はトークン化方法を提供し得る。資産及び／又は取引はトークン化されて良い。
【００１４】
方法は、
データのアイテム又は部分の公開鍵−秘密鍵暗号対を導出するステップと、
前記公開鍵−秘密鍵暗号対を用いて前記データの署名を導出するステップと、
前記データを符号化して、前記データの符号化メタデータを生成するステップと、を含み得る。
【００１５】
前記データは、資産又はエンティティに関連して良く、又は前記資産に関連付けられた（スマート）取引に関連して良い。前記スマートコントラクトは、ブロックチェーンと別個であって良いコンピュータに基づくリソースに格納されて良い。
【００１６】
本発明は、資産又は資産の表現に関して、ブロックチェーンを介して行われる転送を制御するよう構成されて良い。資産又は表現は、１又は複数の秘密暗号鍵を含み又はそれに関連付けられて良く、各秘密鍵は資産の所有者／制御部に関連付けられる。秘密鍵は、暗号鍵ペアの部分であって良い。秘密鍵のうちの１又は複数は、実質的に「資産の公開鍵を生成する」と題される章で後述される技術に従い生成されて良い。１又は複数の鍵は、共通シークレットを用いて生成されて良い。それは、マスタ暗号鍵から生成されるサブキーであって良い。
【００１７】
本発明は、資産のアドレス及び／又は暗号鍵の割り当て又は生成を有して良い。本発明は、資産の所有者又は制御部、又は資産に関連付けられた何らかの他のエンティティのアドレス及び／又は暗号鍵の割り当て及び／又は生成も有して良い。資産及び／又は制御部のアドレス／鍵は、「資産の公開鍵を生成する」と題された章で後述する決定サブキー処理を用いて生成される。１又は複数の実施形態では、アドレスは、ブロックチェーンアドレスであって良い。望ましくは、これは、マスタアドレス（キー）から導出されるサブアドレスとして生成される。マスタキーは、資産の制御部／所有者に属し又はそれに関連付けられて良い。サブキー生成技術の使用は、暗号により施行されるセキュアな方法で、資産と所有者との間の直接相互作用を可能にし得る。本発明は、また、場合によっては階層化方法で、同じブロックチェーントランザクションの中の複数の（スマート）コントラクトをネスト又は構造化する能力を可能にし得る。複数のコントラクトの各々は、個々の計算リソースにより制御される。
【００１８】
本発明は、第１及び第２エンティティに共通のシークレットを決定する技術を含み得る。エンティティは、ノード又は資産として参照されて良い。第１又は第２エンティティは資産であって良く、他方のエンティティは制御部又は資産に関連付けられた他のエンティティであって良い。本発明は、実質的に、「資産の公開鍵を生成する」と題された章で後述する方法を有して良い。本方法は、以下のステップを含み得る：
・少なくとも１つの第１エンティティマスタ秘密鍵及び生成器値に基づき、第１エンティティ第２秘密鍵を決定するステップと、
・少なくとも１つの第２エンティティマスタ秘密鍵及び生成器値に基づき、第２エンティティ第２秘密鍵を決定するステップと、
・第１エンティティ第２秘密鍵及び第２エンティティ第２公開鍵に基づき、第１エンティティにおいて共通シークレット（ＣＳ）を決定し、第２エンティティ第２秘密鍵及び第１エンティティ第２公開鍵に基づき、第２エンティティにおいて共通シークレット（ＣＳ）を決定するステップと、を含み、
・第１エンティティ第２公開鍵及び第２エンティティ第２公開鍵は、それぞれ、第１／第２エンティティマスタキー及び生成器値に基づく。
【００１９】
本方法は、符号化メタデータをブロックチェーンへ送信するステップを更に含んで良い。符号化メタデータは、取引を参照し又はそれへのアクセスを提供するよう構成されて良い。これは、従来知られているスマートコントラクトであって良い。メタデータは、実質的に「符号化方式」と題された章で後述する符号化方式に従い符号化されて良い。これは、以下に関連する３つのパラメータ又はデータアイテムを含んで良い：
１）取引の下で利用可能な株の量、
２）あるパーティから別のパーティへ転送されるべき転送単位又は価値アイテムの量、これらは暗号通貨の単位であって良い、
３）転送単位の量について値を計算するための因子。
【００２０】
前記方法は、
埋め込みデータへのアクセスを可能にするために、少なくとも１人のユーザから署名及びスクリプトを受信するステップ、を更に含んで良い。スクリプトは署名者の公開鍵を含んで良い。用語「ユーザ」は、人間のユーザ又はコンピュータにより実装されるリソース又はエージェントを表し得る。
【００２１】
メタデータは、データのハッシュを含んで良い。メタデータは、データへのポインタ又は他の参照を含んで良い。これは、データが参照される及び／又はアクセスされることを可能にし得る。したがって、データは「オフブロック」に、つまりブロックチェーン内ではなく、格納されて良い。
【００２２】
前記ハッシュは、前記データの格納されているルックアップテーブルの中の１次キーとして使用されて良い。これは、ＤＨＴであって良い。
【００２３】
本発明は、また、ブロックチェーンにより実施されるシステムを含み得る。当該システムは、データの公開鍵−秘密鍵暗号対を導出し、前記公開鍵−秘密鍵暗号対を用いて前記データの署名を導出し、前記データを符号化して、前記データの符号化メタデータを生成する、よう動作して良い。
【００２４】
前記システムは、上述の方法の任意の実施形態を実施するよう構成されて良い。
【００２５】
前記システムは、ブロックチェーンへ符号化メタデータを送信するよう動作して良い。
【００２６】
前記方法は、埋め込みデータへのアクセスを可能にするために、少なくとも１人のユーザから署名及びスクリプトを受信するよう動作して良い。スクリプトは署名者の公開鍵を含んで良い。
【００２７】
前記システムは、データのハッシュを生成し、該ハッシュをメタデータの部分として格納するよう動作して良い。
【００２８】
前記システムは、データへのポインタ又は他の参照を生成するよう動作して良い。前記システムは、前記データの格納されているルックアップテーブルの中の１次キーとして前記ハッシュを格納するよう動作して良い。
【００２９】
追加又は代替で、本発明の１又は複数の実施形態は、１又は複数の暗号鍵の生成のための方法を含み得る。当該方法は、実質的に、「資産の公開鍵を生成する」と題された章で後述され得る。当該方法は、
−第１ノード（Ｃ）において、前記第１ノード（Ｃ）及び第２ノード（Ｓ）に共通である共通シークレット（ＣＳ）を決定するステップであって、前記第１ノード（Ｃ）は第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を有する第１非対称暗号対に関連付けられ、前記第２ノード（Ｓ）は第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）を有する第２非対称暗号対に関連付けられる、ステップを含み、
前記方法は、
−少なくとも前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び決定キー（ＤＫ）に基づき、第１ノード第２秘密鍵（Ｖ２Ｃ）を決定するステップと、
−少なくとも前記第２ノードマスタ公開鍵（Ｐ１Ｓ）及び前記決定キー（ＤＫ）に基づき、第２ノード第２公開鍵（Ｐ２Ｓ）を決定するステップと、
−前記第１ノード第２秘密鍵（Ｖ２Ｃ）及び前記第２ノード第２公開鍵（Ｐ２Ｓ）に基づき、前記共通シークレット（ＣＳ）を決定するステップと、を含み、
−前記第２ノード（Ｓ）は、第１ノード第２公開鍵（Ｐ２Ｃ）及び第２ノード第２秘密鍵（Ｖ２Ｓ）に基づく同じ共通シークレット（Ｓ）を有し、
−前記第１ノード第２公開鍵（Ｐ２Ｃ）は、少なくとも前記第１ノードマスタ公開鍵（Ｐ１Ｃ）及び前記決定キー（ＤＫ）に基づき、
−前記第２ノード第２秘密鍵（Ｖ２Ｓ）は、少なくとも前記第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び前記決定キー（ＤＫ）に基づく。
【００３０】
決定キー（ＤＫ）は、メッセージ（Ｍ）に基づいて良い。前記方法は、
−前記メッセージ（Ｍ）及び前記第１ノード第２秘密鍵（Ｖ２Ｃ）に基づき第１署名メッセージ（ＳＭ１）を生成するステップと、
−前記通信ネットワークを介して、前記第１署名メッセージ（ＳＭ１）を前記第２ノード（Ｓ）へ送信するステップと、を更に含んで良く、
前記第１署名メッセージ（ＳＭ１）は、前記第１ノード（Ｃ）を認証するために、第１ノード第２公開鍵（Ｐ２Ｃ）により検証可能である。
【００３１】
望ましくは、前記方法は、
−前記通信ネットワークを介して、前記第２ノード（Ｓ）から第２署名メッセージ（ＳＭ２）を受信するステップと、
−前記第２ノード第２公開鍵（Ｐ２Ｓ）により前記第２署名メッセージ（ＳＭ２）を検証するステップと、
−前記第２署名メッセージ（ＳＭ２）の検証の結果に基づき、前記第２ノードを認証するステップと、を含んで良く、
前記第２署名メッセージ（ＳＭ２）は、前記メッセージ（Ｍ）又は第２メッセージ（Ｍ２）、及び前記第２ノード第２秘密鍵（Ｖ２Ｓ）に基づき生成される。
【００３２】
望ましくは、前記方法は、
−メッセージ（Ｍ）を生成するステップと、
−通信ネットワークを介して、前記メッセージ（Ｍ）を前記第２ノード（Ｓ）へ送信するステップと、を含んで良い。
【００３３】
望ましくは、前記方法は、
−前記通信ネットワークを介して、前記メッセージ（Ｍ）を前記第２ノード（Ｓ）から受信するステップ、を含んで良い。
【００３４】
望ましくは、前記方法は、
−前記通信ネットワークを介して、前記メッセージ（Ｍ）を他のノードから受信するステップ、を含んで良い。
【００３５】
望ましくは、前記方法は、
−前記メッセージ（Ｍ）をデータストア、及び/又は第１ノード（Ｃ）に関連付けられた入力インタフェースから受信するステップ、を含んで良い。
【００３６】
望ましくは、第１ノードマスタ公開鍵（Ｐ１Ｃ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）は、それぞれの第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び生成器（Ｇ）の楕円曲線点乗算に基づいて良い。
【００３７】
望ましくは、前記方法は、
−前記通信ネットワークを介して、前記第２ノードマスタ公開鍵（Ｐ１Ｓ）を受信するステップと、
−前記第１ノード（Ｃ）に関連付けられたデータストアに、前記第２ノードマスタ公開鍵（Ｐ１Ｓ）を格納するステップと、を含んで良い。
【００３８】
望ましくは、前記方法は、
−第１ノード（Ｃ）において、前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び前記第１ノードマスタ公開鍵（Ｐ１Ｃ）を生成するステップと、
−前記通信ネットワークを介して、前記前記第１ノードマスタ公開鍵（Ｐ１Ｃ）を前記第２ノード（Ｓ）及び／又は他のノードへ送信するステップと、
−前記第１ノード（Ｃ）に関連付けられた第１データストアに、前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）を格納するステップと、を含んで良い。
【００３９】
望ましくは、前記方法は、
−前記通信ネットワークを介して、前記第２ノードへ、共通シークレット（ＣＳ）を決定する方法のために、共通生成器（Ｇ）と共に共通楕円曲線暗号（ＥＣＣ）システムを使用することを示す通知を送信するステップと、を含んで良く、
−前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び前記第１ノードマスタ公開鍵（Ｐ１Ｃ）を生成する前記ステップは、
−前記共通ＥＣＣシステムにおいて指定される許容範囲内のランダム整数に基づき、前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）を生成するステップと、
−次式：Ｐ１Ｃ＝Ｖ１Ｃ×Ｇ従い、前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び前記共通生成器（Ｇ）の楕円曲線点乗算に基づき、前記第１ノードマスタ公開鍵（Ｐ１Ｃ）を決定するステップと、
を含む。
【００４０】
望ましくは、前記方法は、
−前記メッセージ（Ｍ）のハッシュを決定することに基づき、前記決定キー（ＤＫ）を決定するステップ、を含んで良く、
第１ノード第２秘密鍵（Ｖ２Ｃ）を決定する前記ステップは、次式：Ｖ２Ｃ＝Ｖ１Ｃ＋ＤＫに従い、前記第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び前記決定キー（ＤＫ）のスカラ和に基づき、
第２ノード第２公開鍵（Ｐ２Ｓ）を決定する前記ステップは、次式：Ｐ２Ｓ＝Ｐ１Ｓ＋ＤＫ×Ｇに従い、前記決定キー（ＤＫ）及び前記共通生成器（Ｇ）の楕円曲線点乗算に前記第２ノードマスタ公開鍵（Ｐ１Ｓ）を楕円曲線点加算することに基づく。
【００４１】
望ましくは、決定キー（ＤＫ）は、前の決定キーのハッシュを決定することに基づいて良い。
【００４２】
第１非対称暗号ペア及び第２非対称暗号ペアは、それぞれ、前の第１非対称暗号ペア及び前の第２非対称暗号ペアの関数に基づいて良い。
【００４３】
ある実施形態又は態様に関連して上述した任意の特徴は、任意の他の実施形態又は態様に関連して使用されて良い。
【００４４】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。
【図面の簡単な説明】
【００４５】
本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図１】複数のコンピューティング装置を含むＰ２Ｐネットワークを示す。
【図２Ａ】システムに関与するパーティの相対位置を示す。
【図２Ｂ】資産の公開鍵の生成を示す。
【図２Ｃ】資産の公開鍵の生成を示す。
【図２Ｄ】資産の公開鍵の生成を示す。
【図２Ｅ】資産の公開鍵の生成を示す。
【図２Ｆ】資産の公開鍵の生成を示す。
【図３】シナリオ１の設定トランザクションを示す。
【図４】トランザクションとしてコリンによる投資の申し出を示す。
【図５】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【図６】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【図７】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【図８】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【図９−１】コリンへの調達される資金の発行、及び投資家に発行された単位の発行を詳述するトランザクションを示す。
【図９−２】コリンへの調達される資金の発行、及び投資家に発行された単位の発行を詳述するトランザクションを示す。
【図１０】コリンによる投資に対する報酬の生成を示す。
【図１１】コリン、ボブ、メアリ、フランクに対する報酬の生成を示す。
【図１２】資産についてシステムにより生成されるメタデータを示す。
【図１３】ジェーンによるボブからの購入を特徴付けるトランザクションを示す。
【図１４】ボブからジェーンへ所有権を発行するトランザクションを示す。
【図１５】ジェーンの資産に対する報酬が、生成された資産により返されることを可能にするトランザクションを示す。
【図１６】資産に対して生成された第２投資に関する資産メタデータを示す。
【図１７】家を含む不動産の設立に関する資産メタデータを示す。
【図１８】ブロックチェーン上で財産を生成するトランザクションを示す。
【図１９】第１家屋がアリスに発表されるトランザクションを示す。
【図２０】アリスが第１家屋から賃貸収入を生成するトランザクションを示す。
【図２１】報酬が投資に対して支払われることを可能にするトランザクションを示す。
【図２２】アリスが彼女の投資の一部を売ることを可能にするトランザクションを示す。
【図２３】賃貸収入が投資に対して生成されることを可能にするトランザクションを示す。
【発明を実施するための形態】
【００４６】
本発明の１又は複数の実施形態は、財産又は他の資産の最終所有者が該資産に対する資金を借りられるようにし得る。これは、投資家への報酬が利子の支払いを通じて決定されることを要求しない方法で、達成でき、無利子形式の融資に準拠させる。
【００４７】
資産をトークン化することにより、資産の所有権を資産の使用から分離することが可能である。したがって、所有者（又は「制御部」）及び彼らの資産は、本発明の範囲内において、２つの別個のエンティティになる。結果として、所有者は、より強力且つ柔軟な方法で資産を使用し、制御し、管理できる。例えば、彼らは、他のパーティに資産を下請けに出すことができる。
【００４８】
これを達成するために、本発明は、所有者からの資産の別個のアドレスの使用を含んで良い。これは、実質的に、「資産の公開鍵を生成する」と題された章で後述する決定サブキー処理を用いて生成できる。１又は複数の実施形態では、アドレスは、ブロックチェーンアドレスである。望ましくは、これは、マスタアドレス（キー）から導出されるサブアドレスとして生成される。マスタキーは、資産の制御部／所有者に属し又はそれに関連付けられて良い。
【００４９】
さらに、取引構造を実装するスマートコントラクトが生成される。スマートコントラクトは、他者が資産の中で投資に応札することを可能にする。
【００５０】
追加スマートコントラクトも、財産／資産に対して登録され、ブロックチェーン上に記録され得る。例えば、誰かが、財産を自身で賃貸する、財産に関連する特定サービス又は財産への金融投資の実現を提供する。
【００５１】
財産への投資家は、次に、報酬を受け取り、又は、財産の維持に関連するコストを支払うことができる。
【００５２】
本発明は、資産の最終所有者（又は、取引の条項がどのように構造化されるかである場合に、取引の大多数の現在所有者）に以下を可能にする。
・必要な場合には彼らの所有権が隠されるように、したがって、ネットワークユーザに匿名が提供されるように、かれらの資産をブロックチェーン上に提示する。
・資産の彼らの株（share、持分）の全部又は一部を、別の投資家へ売り、転送し又は交換する。
・最終所有者への参照を伴わず、公開市場により設定された価格で、投資家間で資産の取引を可能にする。
・資産所有権が、現在投資家に支払可能な報酬を生成することを可能にする。
・資産が、その費用を現在投資家から取り戻すことを可能にする。
・投資を買い戻す（元の投資取引自体の条項を前提として）。
・現存の合計単位数を増大することを通じて（権利発行と類似する）、又は資産に対する追加投資を生成することにより、資産に対する追加投資を調達する。
【００５３】
以下の利益は、本発明によるシステムにより実現され得る。
【００５４】
有限資金を有する投資家が、固定単位型投資信託又は不動産投資信託会社（Real  Estate  Investment  Trust：ＲＥＩＴ）の必要を打ち消す方法で、財産に投資できる。これは、財産の所有者がスマートコントラクトの中で、どんな応札が受付可能であるかを規定するからである。したがって、投資がそれらに対するものであるかどうかを決定することは、投資家次第である。取引の特性に依存して、より小さな投資家が、従来の投資方法を用いては容易に利用できなかった投資にアクセスすることが可能になる。
・高利方式で投資することを妨げる道徳上又は宗教的信念を有する投資家は、全ての報酬がスマートコントラクトの前に公表されるので、そうすることができる。したがって、どんな金融報酬があるかが前もって１００％透過である。
【００５５】
実施形態を実装するために使用できるシステムは、図１に示すようなＰ２Ｐネットワークを含んで良い。図１は、Ｐ２Ｐネットワークを形成するために構成される複数のコンピュータを示す。
【００５６】
ブロックチェーンは、「ノード」又は「ピア」として知られる相互接続されたコンピューティング装置の間でワーク又はタスクを共有する分散型アーキテクチャを有するＰ２Ｐネットワークである。このようなネットワークは、どの個別コンピュータも「責任がある」として指定されない分散型である。近年、合意に基づくビットコインブロックチェーン及びビットコインに発想を得た変形の実装のためにＰ２Ｐネットワークが使用されている。
【００５７】
＜用語＞
以下の用語は、本願明細書で使用され、以下の意味に従い解釈される。
【表１】
2019513312.tif 000003
【００５８】
図２Ａには、記載されるシステムの使用において、これらの個々のものの相対的な位置付けが示される。
【００５９】
本発明は、財産の購入の文脈で記載されるが、これは限定を意図せず、本発明が種々の目的又は用途のために有利に使用でき、種々の技術的利点を提供することが理解されるべきである。
【００６０】
＜シナリオ１−財産購入＞
図３〜８は、コリンという名の買い手が原価１０００ＢＴＣの財産を購入する処理を示す。
【００６１】
図３は、コリンが財産の購入を設定できるようにするトランザクションを示す。これは、招待が開始されることを可能にするシードトランザクションとして動作する。
【００６２】
コリンは、他の投資家と共に、単位信託協定を用いて、原価１０００ＢＴＣの財産を購入したいと望む。コリンは、適切にプログラムされたコンピューティング（クライアント）装置を用いてトランザクションメタデータを生成する。
【００６３】
トランザクションは、トランザクションメタデータが財産の詳細事項を記述し、所有者に又は彼の所有する持分に言及しない方法で、構成される。
【００６４】
トランザクションメタデータは、買い手が購入原価の最大５１％まで出資することを設定し、それにより、支配持分を保有するが、投資家から追加の４９％を調達する。この投資の報酬では、投資家の各々は、現在の市場価格にリンクされた６ヶ月毎の「賃貸」収入を得る。トランザクションメタデータは、図４に示すトランザクションとしてブロックチェーンに公開される。
【００６５】
システムは、以下を詳細に記述するスマートコントラクトを生成する。
・投資ポットの合計サイズ（１０００ＢＴＣ）
・単位数（１００）、及びこれらの単位の「額面」価格（１０ＢＴＣ）
・投資が無制限である事実（例えば、終了日が定められない）
・（コリンが財産を売ることをカバーするために）投資家に返される単位の「額面」価格により、任意の時点でトリガされ得る中断条項がある
・６ヶ月毎の、報酬及び計算ルールの、報酬条件
合計４人の投資家が、必要額１０００ＢＴＣの投資を売り出す。これらの投資家のうちの１人がコリンである（彼が基礎となる資産を制御し続けることを保証する大多数の出資額を提示する事実上の所有者である）。他の投資家は、必要額１０００ＢＴＣの投資のうち２３０ＢＴＣを提示するボブ、必要額１０００ＢＴＣの投資のうち９０ＢＴＣを提示するメアリ、必要額１０００ＢＴＣの投資のうち１７０ＢＴＣを提示するフランク、である。単位数は、コリン（５１単位）、ボブ（２３単位）、メアリ（９単位）、フランク（１７単位）に比例して、システムにより割り当てられる。コリン、ボブ、メアリ、フランクからの入札を示すトランザクションは、図５〜８に示される。
【００６６】
図９に示すように、資産は、トランザクションＩＤ  ＡＳＳＥＴ−Ｓ１−Ｔ３の中で、調達された資金をコリンに発行する。ＡＳＳＥＴ−Ｓ１−Ｔ３は、図５〜８に示されるトランザクションの各々をインプットとして受信し、ＡＳＳＥＴ−Ｓ１−Ｔ３のアウトプットの中で、単位がコリン、ボブ、メアリ、及びフランクに発行される。
【００６７】
つまり、トランザクションＡＳＳＥＴ−Ｓ１−Ｔ３は、同じトランザクションの中で２つの機能を実行する。それは、先ず、調達された資金を集約してコリンに渡し、同時に投資家コリン、ボブ、メアリ、及びフランクに資産のうちの単位を発行する。
【００６８】
コリンがＡＳＳＥＴ−Ｓ１−Ｔ３からの彼のアウトプットをアンロックするために、彼は、以下のＲｅｄｅｅｍスクリプトのハッシュに署名しなければならない：
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Colin  PubK−Asset  OP_６  OP_CHECKMULTISIG
ボブがＡＳＳＥＴ−Ｓ１−Ｔ３からの彼のアウトプットをアンロックするために、彼は、以下のＲｅｄｅｅｍスクリプトのハッシュに署名しなければならない：
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Bob  PubK−Asset  OP_６  OP_CHECKMULTISIG
メアリがＡＳＳＥＴ−Ｓ１−Ｔ３からの彼女のアウトプットをアンロックするために、彼女は、以下のＲｅｄｅｅｍスクリプトのハッシュに署名しなければならない：
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Mary  PubK−Asset  OP_６  OP_CHECKMULTISIG
フランクがＡＳＳＥＴ−Ｓ１−Ｔ３からの彼のアウトプットをアンロックするために、彼は、以下のＲｅｄｅｅｍスクリプトのハッシュに署名しなければならない：
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Frank  PubK−Asset  OP_６  OP_CHECKMULTISIG
【００６９】
周期的に、資産は、持分報酬毎に計算され、次に個々の所有権をカバーするために拡大される基礎となる投資について報酬を生成する。現在の所有権位置は、資産により直接維持される、又は資産により生成された基礎発行トランザクション（ＡＳＳＥＴ−Ｓ１−Ｔ３）からブロックチェーン上の資産トランザクションをスキャンすることにより得られる。本シナリオでは、図１０に示すように、コリン（資産の所有者）はトランザクションＩＤ  ｃｏｌｉｎ−Ｓ１−Ｔ３を用いて投資家に返すべき資金を提供すると仮定する。このトランザクションは、図１１に示されるように、報酬を生成するために、トランザクションＡＳＳＥＴ−Ｓ１−Ｔ３へのインプット（アウトプットインデックスＩＤＸ−００を有するＣＯＬＩＮ−Ｓ１−Ｔ３）として使用される。これは事実である必要はない。実際には、これらの資金の源は何であっても良いが、報酬を計算し支払うことが資産の責任であることが重要である。
【００７０】
コリンは、Ｒｅｄｅｅｍスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【００７１】
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Colin  OP_５  OP_CHECKMULTISIG
ボブは、Ｒｅｄｅｅｍスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【００７２】
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Bob  OP_５  OP_CHECKMULTISIG
メアリは、Ｒｅｄｅｅｍスクリプトのハッシュに署名することにより、彼女の報酬を使用できる。
【００７３】
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Mary  OP_５  OP_CHECKMULTISIG
フランクは、Ｒｅｄｅｅｍスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【００７４】
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Frank  OP_５  OP_CHECKMULTISIG
【００７５】
＜シナリオ２−単位の売り＞
本例では、ボブは、シナリオ１で彼が取得した単位のうちの１０を得ることを決定し、単位当たり１２ＢＴＣの価格を交渉する。表は、これを、彼自身とジェーンとの間の双方向トランザクションとして示す。
【００７６】
この状況では、２人の投資家の間にトランザクションが存在し、結果として以下を生じる。
【表２】
2019513312.tif 000004
【００７７】
これは、保有状態を以下のようにする（ジェーンが市場価格を支払うと仮定する）。
【表３】
2019513312.tif 000005
【００７８】
システムは、アセットがボブの売りたい単位を取引することを可能にする、アセットのメタデータを生成する。メタデータは図１２に示される。
【００７９】
次に、ジェーンがボブの売りたい単位を購入することを可能にする購入トランザクションが生成される。本トランザクション（トランザクションＩＤ  ＪＡＮＥ−Ｓ２−Ｔ１）は図１３に示される。
【００８０】
本トランザクションからのアウトプットを使用するために、ボブはＲｅｄｅｅｍスクリプトのハッシュに署名する必要がある。
【００８１】
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Bob  PubK−Asset  OP_６  OP_CHECKMULTISIG
これは、基礎となる資産自体を代表して管理されるアカウントではなく、ボブにより制御されるアカウントに支払われる点で、シナリオ１に詳述した元の投資と異なることに留意する。
【００８２】
ジェーンからボブへの単位の転送を詳述するトランザクションは、トランザクションＩＤ  ＢＯＢ−Ｓ２−Ｔ１により図１４に示される。第１アウトプットを使用するために、以下のＲｅｄｅｅｍスクリプトのハッシュは、署名される必要がある。
【００８３】
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Jane  PubK−Asset  OP_６  OP_CHECKMULTISIG
第２アウトプットを使用するために、以下のＲｅｄｅｅｍスクリプトのハッシュは、署名される必要がある。
【００８４】
OP_２  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Bob  PubK−Asset  OP_６  OP_CHECKMULTISIG
【００８５】
資産は、周期的に、持分報酬毎に計算され、次に個々の所有権をカバーするために拡大される基礎となる投資について報酬を生成する。現在の所有権位置は、資産により直接維持される、又は資産により生成された基礎発行トランザクション（トランザクションＩＤ  ＡＳＳＥＴ−Ｓ１−Ｔ３）からブロックチェーン上の資産トランザクションをスキャンすることにより得られる。本シナリオでは、コリン（資産の所有者）は、投資家に返すべき資金を提供する。これは、事実である必要はない。実際には、これらの資金の源は何であっても良いが、報酬を計算し支払うことが資産の責任であることが重要である。
【００８６】
資産による報酬の生成は、トランザクションＩＤ  ＡＳＳＥＴ−Ｓ２−Ｔ１により図１５において説明されるトランザクションにおいて示される。トランザクションＩＤ  ＣＯＬＩＮ−Ｓ２−Ｔ１は、５人の投資家の各々への報酬の形式で５個のアウトプットを生成するトランザクションＩＤ  ＡＳＳＥＴ−Ｓ２−Ｔ１へのインプットとして使用される。
【００８７】
第１アウトプットからの報酬を使用するために、コリンは以下のＲｅｄｅｅｍスクリプトの署名ハッシュを提供する必要がある。
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Colin  OP_５  OP_CHECKMULTISIG
【００８８】
第２アウトプットからの報酬を使用するために、ボブは以下のＲｅｄｅｅｍスクリプトの署名ハッシュを提供する必要がある。
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Bob  OP_５  OP_CHECKMULTISIG
【００８９】
第３アウトプットからの報酬を使用するために、メアリは以下のＲｅｄｅｅｍスクリプトの署名ハッシュを提供する必要がある。
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Mary  OP_５  OP_CHECKMULTISIG
【００９０】
第４アウトプットからの報酬を使用するために、フランクは以下のＲｅｄｅｅｍスクリプトの署名ハッシュを提供する必要がある。
OP_１  AssetMetaDataA  AssetMetadataB  InvestmentMetadataA  InvestmentMetadataB  PubK−Frank  OP_５  OP_CHECKMULTISIG
【００９１】
第５アウトプットからの報酬を使用するために、ジェーンは以下のＲｅｄｅｅｍスクリプトの署名ハッシュを提供する必要がある。
OP_１AssetMetaDataAAssetMetadataBInvestmentMetadataAInvestmentMetadataBPubK−JaneOP_５OP_CHECKMULTISIG
【００９２】
つまり、システムは、資産がブロックチェーントランザクションを用いて報酬を自動生成することを可能にする。
【００９３】
＜シナリオ３−家の修繕＞
システムは、既存資産に対する２次投資の生成を可能にする。この状況では、所有者は、資産に適用されるべきエネルギ効率の良い改修を手配することを共同で決定する。これに資金供給する２つの方法がある。
・追加単位が提供され、既存投資家を彼らの保有に比例して第一に優先順位付けする（これは、伝統的な権利発行が運営する方法である）。
・投資家にエネルギ節約の割合が返される新規投資が生成される（資産のエネルギコストに対して５０％の節約が毎年支払われる）。
【００９４】
同じ資産に対する２投資を必要とするのは２番目の選択肢である。同様に１番目の選択肢を実施して良いが、実際には、追加単位による元の投資の再発行が同じ目的を達成するより効率的な方法である。
【００９５】
トランザクションフローの観点から、シナリオ３は、新規投資特性を定めるために、異なる投資メタデータによるシナリオ１の連続繰り返しである。
【００９６】
システムは、資産投資メタデータを生成する。資産投資メタデータは図１６に示される。結果として生じるトランザクションは、図３〜１１に示されるトランザクションと同じであるが、明らかに図１６により示される投資メタデータを有する。
【００９７】
＜シナリオ４−全ライフサイクル＞
シナリオは、１０００ＢＴＣの値段の付けられた家屋に対して４９０ＢＴＣを調達したいと望んだコリンにより開始される。第１投資家であるボブは、２３０ＢＴＣを投資したいと望む。第２投資家であるメアリは、９０ＢＴＣを投資したいと望む。第３投資家であるフランクは、１７０ＢＴＣを投資したいと望む。資産は、それぞれ１０ＢＴＣの名目価値を有する１００個の持分を発行する必要がある。
【００９８】
Blockchain  Law  Associates  Ltdという名の会社が、BLA  Registrar  Ltd（又は略してＢＬＡＲ）という子会社を設立している。ＢＬＡＲは、権利証書登録のための新しいオンラインのブロックチェーンに基づくサービスを提供しており、彼らの処理及び文書が彼らの管轄内の全ての関連法及び規制に従うことを保証する。さらに、彼らは、権利証書の格納及び管理を代行することを、公的な州立株式登録機関により認可されている。
【００９９】
これを実施するために、Blockchain  Law  Associates  Ltdは、ＢＬＡＲのために新しいサブキーを生成する。サブキー生成は、実質的に、「資産の公開鍵を生成する」と題された章で後述する方法に従い実行されて良い。
【０１００】
NewTech  Developers  Ltd（ＮＴＤＬ）は、新住宅団地を建築し、全ての権利証書をＢＬＡＲのレジストリに格納するためにＢＬＡＲと契約する。団地内の各戸について、ＢＬＡＲは、
（ｉ）上述のようなスマートコントラクトのコード化方式に従い、ＤＨＴに格納された取引の形式で、権利証書を生成する。
（ｉｉ）Ｐ２ＳＨ（pay−to−script−hash）に、ビットコイントランザクションとして権利証書を表すトークンを発行する。ここで、ロックスクリプトは、取引メタデータ（ＤＨＴ位置、及びルックアップハッシュ）、並びにＢＬＡＲ及びＮＴＤＬの両者の公開鍵を含む。
【０１０１】
ここで、団地にある各財産は、トランザクションＢＬＡＲ−Ｓ４−Ｔ１に示される、ブロックチェーン上で該財産を表すＵＴＸＯを有する。
【０１０２】
ＢＬＡＲ−Ｓ４−Ｔ１は、団地上の各財産について取引を生成する初期トランザクションである。本例では、４個の財産しか存在しないが、これは説明のためであること、及び本願明細書の記載が任意の数の財産を有する団地に適用可能であることが理解される。
【０１０３】
資産により使用されるメタデータフィールドは、図１７に示される。図１７では、住宅団地の資産投資メタデータが示される。
【０１０４】
図１８には、団地上の各財産について取引を生成する初期トランザクションが示される。留意すべきことに、本例では、メタデータの基礎構造は４個の財産の各々について同じであるが、４個の財産の各々は異なるメタデータを有する。
【０１０５】
ＢＬＡＲ−Ｓ４−Ｔ１は、５個のアウトプット、つまり財産の各々について１つと、マイナーの料金と、を生成する。
【０１０６】
第１アウトプットが使用されるために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House１MetadataA  House１MetadataB  PubK−NTDL  PubK−BLAR  OP_４  OP_CHECKMULTISIG
【０１０７】
第２アウトプットが使用されるために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House２MetadataA  House２MetadataB  PubK−NTDL  PubK−BLAR  OP_４  OP_CHECKMULTISIG
【０１０８】
第３アウトプットが使用されるために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House３MetadataA  House３MetadataB  PubK−NTDL  PubK−BLAR  OP_４  OP_CHECKMULTISIG
【０１０９】
第４アウトプットが使用されるために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House４MetadataA  House４MetadataB  PubK−NTDL  PubK−BLAR  OP_４  OP_CHECKMULTISIG
【０１１０】
システムは、次に、トランザクションのロックスクリプトの未ハッシュバージョン（つまり、公開鍵及びメタデータブロックを示す）によりＤＨＴ（取引とは別個のフィールド）を更新するよう動作する。登録機関として、ＢＬＡＲは、内部データベース内に維持される、彼らの顧客（現在はＮＴＤＬ）に対するＫＹＣ情報を維持する必要もある。
【０１１１】
アリスは、ＮＴＤＬから新築住宅を買い、トークンを彼女の公称公開鍵へ及び別のＰ２ＳＨトランザクションの中のＢＬＡＲの公開鍵へ転送することにより、この交換の部分として、権利証書がアリスに再登録される。取引（及び、ルックアップハッシュ）は、不変のままである。しかしながら、ＢＬＡＲは、ここでも、ロックスクリプト（ここでは、ＮＴＤＬの物ではなく、アリスの公開鍵を示す）の未ハッシュバージョンによりＤＨＴ上の「所有権」フィールドを更新する。ＢＬＡＲは、アリスの詳細事項により、任意の内部ＫＹＣデータベースも更新する。ここで、ＮＴＤＬによる財産の所有権を表すＵＴＸＯは、アリスにより制御される新しいＵＴＸＯに換算される。これは、図１９のトランザクションＮＴＤＬ−Ｓ４−Ｔ１において示される。
【０１１２】
システムは、次に、第１住宅（トランザクションアウトプット参照ＢＬＡＲ−Ｓ４−Ｔ１、つまり図１８に示されるトランザクションからの第１アウトプット）がアリスの所有権へと放出されるのを可能にする更なるトランザクションを生成するよう動作する。本例の目的のために、購入トランザクション自体は、フィアット通貨で発生し、示されない。しかしながら、財産権を発行するトランザクションは、図１９に示される。
【０１１３】
財産権利がアリスに発行されるために、アリスは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを提供しなければならない。
OP_２  House１MetadataA  House１MetadataB  PubK−Alice  PubK−BLAR  OP_４  OP_CHECKMULTISIG
【０１１４】
システムは、アリスが住宅の賃貸収入に対して保証されたサービスプロバイダＳＰを用いて投資商品を生成することを可能にする。住宅の所有権は、別のパーティに転送されない。住宅の初期割り当ては、アリス自身に戻される。
【０１１５】
システムは、システムを用いてアリスにより生成された投資商品に関してトランザクションを生成する。トランザクションは図２０に示される。
【０１１６】
アリスは住宅で暮らすが、彼女は、共有部屋を貸し出すことにより幾らかの賃料も得る。彼女は、また、幾らかの資本を調達したいと望むので、彼女は、投資家への報酬が受け取った賃借料に比例する、この賃貸収入に対して保証された投資を生成することを決定する。
【０１１７】
彼女のサービスプロバイダ（ＳＰ）は、限定された可分取引を発行し、住宅により生成された収入の中に１００個の持分を有する。取引は、比例に基づく賃貸料収入及び維持費を含む全ての条項及び条件を指定し、第三者預託サービスが投資を実現するために契約される。
【０１１８】
投資が最初に生成されると、１００個全部の持分が発行され、以後の投資資金引き揚げ（onward  divestment）のためにアリスに戻される。この投資に関連付けられたロックスクリプトは、住宅に関連付けられたメタデータ、投資に関連付けられたメタデータ、及びサービスプロバイダの公開鍵及びアリスのための公開鍵を含む。
【０１１９】
ここで、アリスによる投資の所有権を表すＵＴＸＯが生成される。これは、図２０に示すトランザクションＳＰ−Ｓ４−Ｔ１において示される。
【０１２０】
初期資産割り当てをアリスに戻すために、アリスは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを提供しなければならない。
OP_２  House１MetadataA  House１MetadataB  InvestMetadata１  InvestMetadata２  PubK−Alice  PubK−SP  OP_６  OP_CHECKMULTISIG
【０１２１】
商品は報酬を生成し、システムは、報酬がアリスに払い出されることを可能にするトランザクションを生成する。トランザクションは図２１に示される。
【０１２２】
図２１に示されるトランザクション（ＩＤ  ＳＰ−Ｓ４−Ｔ２）は、２つのアウトプットを有する。第１アウトプットは、アリスの公開鍵のハッシュを要求する。第２アウトプットは、ＳＰの公開鍵のハッシュを要求する。
【０１２３】
関連付けられた自動エージェントは、上述のエージェント確立と題された章で詳述された取引及び手順に従いＳＰにより設定されて良い。一方で、アリスは投資の唯一の所有者なので、彼女（彼女の公称公開鍵）は、残りの賃料の唯一の受取人であり、契約上の維持費支払の支払人でもある。トランザクションＳＰ−Ｓ４−Ｔ２は、アリスへのこの返金のために第１収入分配を示し、２０００サトシ／持分を想定している。
【０１２４】
後に、アリスは、Ｐ２Ｐ交換サービスを用いて４９個の持分を提供し、図２２に示すトランザクションにおいて、２９個の持分をボブに、２０個の持分をイブに売るよう管理する。自動エージェントが既に設定されているので、収入／費用支払の変化は、投資トークンの転送にのみ基づき、透過的に生じる。
【０１２５】
ここで、発行ＵＴＸＯは、３個のアウトプットにより使用される。１つはアリスに、１つはボブの公開鍵によりＲｅｄｅｅｍスクリプトに、１つはイブの公開鍵によりＲｅｄｅｅｍスクリプトに、戻される。これは、トランザクションＡＬＩＣＥ−Ｓ４−Ｔ１において示される。
【０１２６】
投資報酬の新たな分割を示す第２投資報酬トランザクション（ＳＰ−Ｓ４−Ｔ３）も示される。
【０１２７】
図２２に詳述されるトランザクションは、４個のアウトプットを有する。アリスが第１アウトプットを使用するために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House１MetadataA  House１MetadataB  InvestMetadata１  InvestMetadata２  PubK−Alice  PubK−SP  OP_６  OP_CHECKMULTISIG
【０１２８】
ボブが第２アウトプットを使用するために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House１MetadataA  House１MetadataB  InvestMetadata１  InvestMetadata２  PubK−Bob  PubK−SP  OP_６  OP_CHECKMULTISIG
【０１２９】
イブが第３アウトプットを使用するために、システムは、以下のＲｅｄｅｅｍスクリプトの署名されたハッシュを必要とする。
OP_２  House１MetadataA  House１MetadataB  InvestMetadata１  InvestMetadata２  PubK−Eve  PubK−SP  OP_６  OP_CHECKMULTISIG
【０１３０】
第４アウトプットは、トランザクションからアリスへ戻されるおつり（change）を使用する。
【０１３１】
システムは、報酬がＳＰによりアリス、ボブ、及びイブに支払われることを可能にするトランザクションを生成するよう動作する。このようなトランザクションは図２３に示される。
【０１３２】
まとめると、システムは、資産及び投資が文書化及び処理の両方の観点で別個のままであることを可能にする。これは、資産自体（住宅）及び投資商品を表す別個のトークンが存在することを意味する。また、別個に管理される別個のＤＨＴも存在する。レジストリＤＨＴは、ＢＬＡＲにより管理され、一方で、投資ＤＨＴ（及びその参加者である自動エージェント）はアリスのＳＰにより管理される。
【０１３３】
システムは、取引が、ブロックチェーントランザクション内のメタデータを用いて、取引を種々の方法でフォーマット化可能にするコード化スキームを用いて、参照されることを可能にするよう構成できる。このような適切なコード化スキームがここに記載される。
【０１３４】
＜コード化スキーム＞
取引を参照するために使用されるメタデータは、様々な方法でフォーマット化できる。しかしながら、適切なコード化スキームがここに記載される。
【０１３５】
取引の定める権利が取引の保持者又は所有者に贈与される場合、取引は転送可能である。非転送可能取引の一例は、参加者が指名される取引である。つまり、権利が、取引の保持者ではなく特定の指名されたエンティティに贈与される。転送可能取引だけが、このコード化スキームで議論される。
【０１３６】
トークンは、取引により贈与される権利を詳述する又は定める特定取引を表す。本発明に従い、トークンは、ビットコイントランザクションの形式の取引の表現である。
【０１３７】
このコード化方法は、３つのパラメータ又はデータアイテムを有するメタデータを使用する。このデータは、以下を示し得る：
ｉ）取引の下で利用可能な株（share、持分）の量
（これは、本願明細書で「ＮｕｍＳｈａｒｅｓ」と呼ばれることがある）、
ｉｉ）送り手から少なくとも１つの受け手へ転送されるべき転送単位の量（これは、「ＳｈａｒｅＶａｌ」と呼ばれることがある）、
ｉｉｉ）転送単位の量の値を計算するための因子（これは、「ペギングレート（pegging  rate）」と呼ばれることがある）。
【０１３８】
このコード化スキームの利点は、上述の３つのパラメータだけを用いて、ブロックチェーン上のトークンとして取引をカプセル化又は表現するために使用できることである。実際に、取引は、これらの３つのデータアイテムのうちの最小限を用いて指定できる。このコード化スキームは任意の種類の転送可能取引のために使用可能なので、共通アルゴリズムが考案され適用され得る。これらのメタデータアイテムの更なる詳細は、以下に提供される。
【０１３９】
＜資産の公開鍵を生成する＞
システムは、以下に記載するサブキー生成の方法を用いて資産の公開鍵を生成して良い。
【０１４０】
図２Ｂは、通信ネットワーク５を介して第２ノード７と通信する第１ノード３を含むシステム１を示す。第１ノード３は関連する第１処理装置２３を有し、及び第２ノード５は関連する第２処理装置２７を有する。第１及び第２ノード３、７は、コンピュータ、電話機、タブレットコンピュータ、モバイル通信装置、コンピュータサーバ、等のような電子装置を含んで良い。一例では、第１ノード３はクライアント（ユーザ）装置であって良く、第２ノード７はサーバであって良い。サーバは、デジタルウォレットプロバイダのサーバであって良い。
【０１４１】
第１ノード３は、第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を有する第１非対称暗号対に関連付けられる。第２ノード７は、第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）を有する第２非対称暗号対に関連付けられる。言い換えると、第１及び第２ノードは、それぞれ、個々の公開−秘密鍵対を保有する。
【０１４２】
個々の第１及び第２ノード３、７の第１及び第２非対称暗号対は、ウォレットの登録のような登録処理中に生成されて良い。各ノードの公開鍵は、通信ネットワーク５に渡るように、公に共有されて良い。
【０１４３】
第１ノード３及び第２ノード７の両者において共通シークレット（common  secret：ＳＣ）を決定するために、ノード３、７は、通信ネットワーク５を介して秘密鍵を通信することなく、それぞれ方法３００、４００のステップを実行する。
【０１４４】
第１ノード３により実行される方法３００は、少なくとも第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び生成器値（Generator  Value：ＧＶ）に基づき、第１ノード第２秘密鍵（Ｖ２Ｃ）を決定するステップ３３０を含む。生成器値は、第１ノードと第２ノードとの間で共有されるメッセージ（Ｍ）に基づいて良い。これは、以下に詳述するように、通信ネットワーク５を介してメッセージを共有するステップを含んで良い。方法３００は、少なくとも第２ノードマスタ公開鍵（Ｐ１Ｓ）及び生成器値（Generator  Value：ＧＶ）に基づき、第２ノード第２公開鍵（Ｐ２Ｓ）を決定するステップ３７０を更に含む。方法３００は、第１ノード第２秘密鍵（Ｖ２Ｃ）及び第２ノード第２公開鍵（Ｐ２Ｓ）に基づき、共通シークレット（common  secret：ＣＳ）を決定するステップ３８０を含む。
【０１４５】
重要なことに、同じ共通シークレット（ＣＳ）が、方法４００により第２ノード７においても決定できる。方法４００は、第１ノードマスタ公開鍵（Ｐ１Ｃ）及び生成器値（Generator  Value：ＧＶ）に基づき、第１ノード第２公開鍵（Ｐ２Ｃ）を決定するステップ４３０を含む。方法４００は、第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び生成器値（Generator  Value：ＧＶ）に基づき、第２ノード第２秘密鍵（Ｖ２Ｓ）を決定するステップ４７０を更に含む。方法４００は、第２ノード第２秘密鍵（Ｖ２Ｓ）及び第１ノード第２公開鍵（Ｐ２Ｃ）に基づき、共通シークレット（common  secret：ＣＳ）を決定するステップ４８０を含む。
【０１４６】
通信ネットワーク５は、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラネットワーク、無線通信ネットワーク、インターネット、等を含んで良い。これらのネットワークでは、データは電気線、光ファイバ、又は無線のような通信媒体を介して送信されて良く、盗聴者１１による様な盗聴を受けやすい場合がある。方法３００、４００は、通信ネットワーク５を介して共通シークレットを送信することなく、第１ノード３及び第２ノード７が共通シークレットを両方とも独立して決定できるようにする。
【０１４７】
したがって、１つの利点は、安全でない可能性のある通信ネットワーク５を介して秘密鍵を送信する必要がなく、共通シークレット（ＣＳ）が安全に且つ各ノードにより独立して決定できることである。また、共通シークレットは、秘密鍵として（又は秘密鍵の基礎として）使用されて良い。
【０１４８】
方法３００、４００は、追加ステップを含んで良い。図２Ｆを参照する。方法３００は、第１ノード３において、メッセージ（Ｍ）及び第１ノード第２秘密鍵（Ｖ２Ｃ）に基づき、署名メッセージ（ＳＭ１）を生成するステップを含んで良い。方法３００は、第１署名メッセージ（ＳＭ１）を通信ネットワークを介して第２ノード７へ送信するステップ３６０を更に含む。一方、第２ノード７は、第１署名メッセージ（ＳＭ１）を受信するステップ４４０を実行して良い。方法４００は、第１署名メッセージ（ＳＭ２）を第１ノード第２公開鍵（Ｐ２Ｃ）により検証するステップ４５０、及び第１署名メッセージ（ＳＭ１）を検証するステップの結果に基づき第１ノード３を認証するステップ４６０を更に含む。有利なことに、これは、第２ノード７が、（第１署名メッセージが生成された場所である）意図された第１ノードが第１ノード３であることを認証することを可能にする。これは、第１ノード３だけが、第１ノードマスタ秘密鍵（Ｖ１Ｃ）へのアクセスを有する、したがって、第１ノード３だけが、第１署名メッセージ（ＳＭ１）を生成するための第１ノード第２秘密鍵（Ｖ２Ｃ）を決定できるという仮定に基づく。理解されるべきことに、同様に、第２署名メッセージ（ＳＭ２）は、第２ノード７において生成され、第１ノード３へ送信され得る。したがって、ピアツーピアシナリオにおけるように、第１ノード３は、第２ノード７を認証できる。
【０１４９】
第１ノードと第２ノードの間のメッセージ（Ｍ）の共有は、様々な方法で達成されて良い。一例では、メッセージは、第１ノード３において生成されて良く、次に通信ネットワーク５を介して第２ノード７へ送信される。代替として、メッセージは、第２ノード７において生成されて良く、次に通信ネットワーク５を介して第１ノード３へ送信される。幾つかの例では、メッセージ（Ｍ）は公開されて良く、したがってセキュアでないネットワーク５を介して送信されて良い。１又は複数のメッセージ（Ｍ）は、データストア１３、１７、１９に格納されて良い。当業者は、メッセージの共有が様々な方法で達成できることを理解する。
【０１５０】
有利なことに、共通シークレット（ＣＳ）の再生成を可能にするレコードは、そのレコード自体が秘密に格納され又はセキュアに送信される必要がなく、保持され得る。
【０１５１】
＜登録の方法１００、２００＞
登録の方法１００、２００の一例は、図２Ｄを参照して記載される。図２Ｄでは、方法１００は第１ノード３により実行され、方法２００は第２ノード７により実行される。これは、それぞれ第１ノード３及び第２ノード７のために第１及び第２非対称暗号対を確立するステップを含む。
【０１５２】
非対称暗号対は、公開鍵暗号化で使用されるような、関連付けられた秘密鍵及び公開鍵を含む。本例では、非対称暗号対は、楕円曲線暗号システム（Elliptic  Curve  Cryptography：ＥＣＣ）及び楕円曲線演算の特性を用いて生成される。
【０１５３】
方法１００、２００では、これは、共通ＥＣＣシステムに合意している１１０、２１０、且つ基点（Ｇ）を用いる、第１ノード及び第２ノードを含む（注：基点は、共通生成器として参照され得るが、用語「基点」は、生成器値ＧＶとの混同を避けるために使用される）。一例では、共通ＥＣＣシステムは、ビットコインにより使用されるＥＣＣシステムであるｓｅｃｐ２５６Ｋ１に基づいて良い。基点（Ｇ）は、選択され、ランダムに生成され、又は割り当てられて良い。
【０１５４】
ここで第１ノード３について考えると、方法１００は、共通ＥＣＣシステム及び基点（Ｇ）を解決するステップ１１０を含む。これは、第２ノード７又は第３ノード９から、共通ＥＣＣシステム及び基点を受信するステップを含んで良い。代替として、ユーザインタフェース１５は、第１ノード３に関連付けられる。これにより、ユーザは、共通ＥＣＣシステム及び／又は基点（Ｇ）を選択的に提供できる。更に別の代替案では、共通ＥＣＣシステム及び／又は基点（Ｇ）の一方又は両方が、第１ノード３によりランダムに選択されて良い。第１ノード３は、通信ネットワーク５を介して、基点（Ｇ）と共に共通ＥＣＣシステムを使用することを示す通知を、第２ノード７へ送信して良い。また、第２ノード７は、共通ＥＣＣシステム及び基点（Ｇ）の使用に対する肯定応答を示す通知を送信することにより、解決して良い２１０。
【０１５５】
方法１００は、第１ノード３が、第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を有する第１非対称暗号対を生成するステップ１２０を更に含む。これは、共通ＥＣＣシステムの中で指定された許容範囲の中のランダム整数に少なくとも部分的に基づき、第１マスタ秘密鍵（Ｖ１Ｃ）を生成するステップを含む。これは、次式に従い第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び基点（Ｇ）の楕円曲線点乗算に基づき、第１ノードマスタ公開鍵（Ｐ１Ｃ）を決定するステップを更に含む。
Ｐ１Ｃ＝Ｖ１Ｃ×Ｇ  （式１）
したがって、第１非対称暗号対は、以下を含む：
Ｖ１Ｃ：第１ノードにより秘密に保持される第１ノードマスタ秘密鍵。
Ｐ１Ｃ：公に知らされる第１ノードマスタ公開鍵。
【０１５６】
第１ノード３は、第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）を、第１ノード３に関連付けられた第１データストア１３に格納して良い。セキュリティのために、第１ノードマスタ秘密鍵（Ｖ１Ｃ）は、鍵が秘密のままであることを保証するために、第１データストア１３のセキュアな部分に格納されて良い。
【０１５７】
方法１００は、図２Ｄに示すように、第１ノードマスタ公開鍵（Ｐ１Ｃ）を通信ネットワーク５を介して第２ノード７へ送信するステップ１３０を更に含む。第２ノード７は、第１ノードマスタ公開鍵（Ｐ１Ｃ）を受信すると２２０、第１ノードマスタ公開鍵（Ｐ１Ｃ）を第２ノード７に関連付けられた第２データストア１７に格納して良い２３０。
【０１５８】
第１ノード３と同様に、第２ノード７の方法２００は、第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び第２ノードマスタ公開鍵（Ｐ１Ｓ）を有する第２非対称暗号対を生成するステップ２４０を含む。第２ノードマスタ秘密鍵（Ｖ１Ｓ）も、許容範囲内のランダム整数である。また、第２ノードマスタ公開鍵（Ｐ１Ｓ）は、次式により決定される。
Ｐ１Ｓ＝Ｖ１Ｓ×Ｇ  （式２）
したがって、第２非対称暗号対は、以下を含む：
Ｖ１Ｓ：第２ノードにより秘密に保持される第２ノードマスタ秘密鍵。
Ｐ１Ｓ：公に知らされる第２ノードマスタ公開鍵。
【０１５９】
第２ノード７は、第２非対称暗号対を第２データストア１７に格納して良い。方法２００は、第２ノードマスタ公開鍵（Ｐ１Ｓ）を第１ノード３へ送信するステップ２５０を更に含む。また、第１ノード３は、第２ノードマスタ公開鍵（Ｐ１Ｓ）を受信し１４０、格納して良い１５０。
【０１６０】
理解されるべきことに、幾つかの代案では、それぞれの公開マスタ鍵は、受信され、（信頼できる第三者のような）第３ノード９に関連付けられた第３データストア１９に格納されて良い。これは、認証機関のような、公開ディレクトリとして動作する第三者を含んで良い。したがって、幾つかの例では、第１ノードマスタ公開鍵（Ｐ１Ｃ）は、共通シークレット（ＣＳ）が要求されるときだけ、第２ノード７により要求され受信されて良い（逆も同様である）。
【０１６１】
登録ステップは、初期設定として１度生じるだけで良い。
【０１６２】
＜セッション開始及び第１ノード３による共通シークレットの決定＞
共通シークレット（ＣＳ）を決定する一例は、図２Ｅを参照してここに記載される。共通シークレット（ＣＳ）は、第１ノード３と第２ノード７との間の特定のセッション、時間、トランザクション、又は他の目的のために使用されて良く、同じ共通シークレット（ＣＳ）を使用することが望ましい又はセキュアでなくて良い。したがって、共通シークレット（ＣＳ）は、異なるセッション、時間、トランザクション、等の間で変更されて良い。
【０１６３】
以下は、上述したセキュアな送信技術の説明のために提供される。
【０１６４】
［メッセージ（Ｍ）を生成する３１０］
本例では、第１ノード３により実行される方法３００は、メッセージ（Ｍ）を生成するステップ３１０を含む。メッセージ（Ｍ）は、ランダム、疑似ランダム、又はユーザ定義であって良い。一例では、メッセージ（Ｍ）は、Ｕｎｉｘ時間又はノンス（及び任意の値）に基づく。例えば、メッセージ（Ｍ）は次のように与えられ得る。
メッセージ（Ｍ）＝Ｕｎｉｘ時間＋ノンス    （式３）
幾つかの例では、メッセージ（Ｍ）は任意である。しかしながら、理解されるべきことに、メッセージ（Ｍ）は、幾つかのアプリケーションで有用であり得る（Ｕｎｉｘ時間、等のような）選択的値を有して良い。
【０１６５】
方法３００は、メッセージ（Ｍ）を通信ネットワーク５を介して第２ノード７へ送信するステップ３１５を含む。メッセージ（Ｍ）は秘密鍵についての情報を含まないので、メッセージ（Ｍ）は、セキュアでないネットワークを介して送信されて良い。
【０１６６】
［生成器値（ＧＶ）を決定する３２０］
方法３００は、メッセージ（Ｍ）に基づき生成器値（Generator  Value：ＧＶ）を決定するステップ３２０を更に含む。本例では、これは、メッセージの暗号ハッシュを決定するステップを含む。暗号ハッシュアルゴリズムの一例は、２５６ビット発生器値（ＧＶ）を生成するためにＳＨＡ−２５６を含む。つまり、
ＧＶ＝ＳＨＡ−２５６（Ｍ）    （式４）
【０１６７】
理解されるべきことに、他のハッシュアルゴリズムが使用されて良い。これは、セキュアなハッシュアルゴリズム（Secure  Hash  Algorithm：ＳＨＡ）ファミリの中の他のハッシュアルゴリズムを含んで良い。幾つかの特定の例は、ＳＨＡ３−２２４、ＳＨＡ３−２５６、ＳＨＡ３−３８４、ＳＨＡ３−５１２、ＳＨＡＫＥ１２８、ＳＨＡＫＥ２５６を含むＳＨＡ−３サブセットの中のインスタンスを含む。他のハッシュアルゴリズムは、ＲＩＰＥＭＤ（RACE  Integrity  Primitives  Evaluation  Message  Digest）ファミリの中のアルゴリズムを含んで良い。特定の例は、ＲＩＰＥＭＤ−１６０を含んで良い。他のハッシュ関数は、Ｚｅｍｏｒ−Ｔｉｌｌｉｃｈハッシュ関数及びナップサック・ハッシュ関数に基づくファミリを含んで良い。
【０１６８】
［第１ノード第２秘密鍵を決定する３３０］
方法３００は、次に、第２ノードマスタ秘密鍵（Ｖ１Ｃ）及び生成器値（ＧＶ）に基づき、第１ノード第２秘密鍵（Ｖ２Ｃ）を決定するステップ３３０を含む。これは、次式に従い第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び生成器値（ＧＶ）のスカラ加算に基づき得る。
Ｖ２Ｃ＝Ｖ１Ｃ＋ＧＶ    （式５）
したがって、第１ノード第２秘密鍵（Ｖ２Ｃ）は、ランダム値ではないが、代わりに第１ノードマスタ秘密鍵から確定的に導出される。暗号対の中の対応する公開鍵、つまり第１ノード第２公開鍵（Ｐ２Ｃ）は、以下の関係を有する。
Ｐ２Ｃ＝Ｖ２Ｃ×Ｇ  （式６）
式５から式６にＶ２Ｃを代入すると、次式を得る。
Ｐ２Ｃ＝（Ｖ１Ｃ＋ＧＶ）×Ｇ    （式７）
ここで、「＋」演算子は楕円曲線点加算を表す。楕円曲線暗号代数は、分配的であり、式７は次式のように表すことができる。
Ｐ２Ｃ＝Ｖ１Ｃ×Ｇ＋ＧＶ×Ｇ    （式８）
最後に、（式１）は（式７）に代入され、次式を得る。
Ｐ２Ｃ＝Ｐ１Ｃ＋ＧＶ×Ｇ    （式９．１）
Ｐ２Ｃ＝Ｐ１Ｃ＋ＳＨＡ−２５６（Ｍ）×Ｇ    （式９．２）
したがって、対応する第１ノード第２公開鍵（Ｐ２Ｃ）は、第１ノードマスタ公開鍵（Ｐ１Ｃ）及びメッセージ（Ｍ）の導出可能な所与の知識であり得る。方法４００に関して以下に更に詳述するように、第２ノード７は、第１ノード第２公開鍵（Ｐ２Ｃ）を独立に決定するために、このような知識を有して良い。
【０１６９】
［メッセージ及び第１ノード第２秘密鍵に基づき、第１署名メッセージ（ＳＭ１）を生成する３５０］
方法３００は、メッセージ（Ｍ）及び決定した第１ノード第２秘密鍵（Ｖ２Ｃ）に基づき、第１署名メッセージ（ＳＭ１）を生成するステップ３５０を更に含む。署名メッセージを生成するステップは、メッセージ（Ｍ）にデジタル方式で署名するために、デジタル署名アルゴリズムを適用するステップを含む。一例では、これは、第１署名メッセージ（ＳＭ１）を得るために、楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm：ＥＣＤＳＡ）の中でメッセージに第１ノード第２秘密鍵（Ｖ２Ｃ）を適用するステップを含む。ＥＣＤＳＡの例は、ｓｅｃｐ２５６ｋ１、ｓｅｃｐ２５６ｒ１、ｓｅｃｐ３８４ｒ１、ｓｅ３ｃｐ５２１ｒ１を有するＥＣＣシステムに基づくものを含む。
【０１７０】
第１署名メッセージ（ＳＭ１）は、第２ノード７において対応する第１ノード第２公開鍵（Ｐ２Ｃ）により検証できる。第１署名メッセージ（ＳＭ１）のこの検証は、第１ノード３を認証するために第２ノード７により使用されて良い。これは、方法４００において以下に議論される。
【０１７１】
［第２ノード第２公開鍵を決定する３７０］’
第１ノード３は、次に、第２ノード第２公開鍵（Ｐ２Ｓ）を決定して良い３７０。上述のように、第２ノード第２公開鍵（Ｐ２Ｓ）は、少なくとも第２ノードマスタ公開鍵（Ｐ１Ｓ）及び生成器値（ＧＶ）に基づいて良い。本例では、公開鍵は、基点（Ｇ）との楕円曲線点乗算により秘密鍵として決定されるので３７０’、第２ノード第２公開鍵（Ｐ２Ｓ）は、式６と同様に次のように表すことができる。
Ｐ２Ｓ＝Ｖ２Ｓ×Ｇ  （式１０．１）
Ｐ２Ｓ＝Ｐ１Ｓ＋ＧＶ×Ｇ    （式１０．２）
【０１７２】
式１０．２の数学的証明は、第１ノード第２公開鍵（Ｐ２Ｃ）について式９．１を導出するために上述したものと同じである。理解されるべきことに、第１ノード３は、第２ノード７と独立に第２ノード第２公開鍵を決定できる３７０。
【０１７３】
［第１ノード３において共通シークレットを決定する３８０］
第１ノード３は、次に、第１ノード第２秘密鍵（Ｖ２Ｃ）及び決定した第２ノード第２公開鍵（Ｐ２Ｓ）に基づき、共通シークレット（ＣＳ）を決定して良い３８０。共通シークレット（ＣＳ）は、第１ノード３により次式により決定されて良い。
Ｓ＝Ｖ２Ｃ×Ｐ２Ｓ    （式１１）
＜第２ノード７において実行される方法４００＞
第２ノード７において実行される対応する方法４００が、ここで説明される。理解されるべきことに、これらのステップのうちの幾つかは、第１ノード３により実行された上述のステップと同様である。
【０１７４】
方法４００は、メッセージ（Ｍ）を通信ネットワーク５を介して第１ノード３から受信するステップ４１０を含む。これは、ステップ３１５において第１ノード３により送信されたメッセージ（Ｍ）を含んで良い。第２ノード７は、次に、メッセージ（Ｍ）に基づき生成器値（ＧＶ）を決定する４２０。第２ノード７により生成器値（ＧＶ）を決定するステップ４２０は、上述の第１ノードにより実行されるステップ３２０と同様である。本例では、第２ノード７は、第１ノード３と独立の、この決定するステップ４２０を実行する。
【０１７５】
次のステップは、第１ノードマスタ公開鍵（Ｐ１Ｃ）及び生成器値（ＧＶ）に基づき、第１ノード第２公開鍵（Ｐ２Ｃ）を決定するステップ４３０を含む。本例では、公開鍵は、基点（Ｇ）との楕円曲線点乗算により秘密鍵として決定されるので４３０’、第１ノード第２公開鍵（Ｐ２Ｃ）は、式９と同様に次のように表すことができる。
Ｐ２Ｃ＝Ｖ２Ｃ×Ｇ  （式１２．１）
Ｐ２Ｃ＝Ｐ１Ｃ＋ＧＶ×Ｇ    （式１２．２）
式１２．１及び１２．２の数学的証明は、式１０．１及び１０．２について上述したものと同じである。
【０１７６】
［第２ノード７が第１ノード３を認証する］
方法４００は、未確認第１ノード３が第１ノード３であることを認証するために、第２ノード７により実行されるステップを含んで良い。上述のように、これは、第１ノード３から第１署名メッセージ（ＳＭ１）を受信するステップ４４０を含む。第２ノード７は、次に、ステップ４３０で決定された第１ノード第２公開鍵（Ｐ２Ｃ）により第１署名メッセージ（ＳＭ１）の署名を検証して良い４５０。
【０１７７】
デジタル署名の検証は、上述の楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm：ＥＣＤＳＡ）に従い行われて良い。重要なことに、第１ノード第２秘密鍵（Ｖ２Ｃ）により署名された第１署名メッセージ（ＳＭ１）は、Ｖ２Ｃ及びＰ２Ｃが暗号対を形成するので、対応する第１ノード第２公開鍵（Ｐ２Ｃ）によってのみ正しく検証されるべきである。これらの鍵は、第１ノード３の登録で生成された第１ノードマスタ秘密鍵（Ｖ１Ｃ）及び第１ノードマスタ公開鍵（Ｐ１Ｃ）において確定するので、第１署名メッセージ（ＳＭ１）の検証は、第１署名メッセージ（ＳＭ１）を送信する未確認第１ノードが登録中と同じ第１ノード３であることを認証する基礎として使用できる。したがって、第２ノード７は、第１署名メッセージを検証するステップ（４５０）の結果に基づき、第１ノード３を認証するステップ（４６０）を更に実行して良い。
【０１７８】
［第２ノード７が共通シークレットを決定する］
方法４００は、第２ノード７が、第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び生成器値（ＧＶ）に基づき、第２ノード第２秘密鍵（Ｖ２Ｓ）を決定するステップ４７０を更に含んで良い。第１ノード３により実行されるステップ３３０と同様に、第２ノード第２秘密鍵（Ｖ２Ｓ）は、次式に従い、第２ノードマスタ秘密鍵（Ｖ１Ｓ）及び生成器値（ＧＶ）のスカラ加算に基づき得る。
Ｖ２Ｓ＝Ｖ１Ｓ＋ＧＶ    （式１３．１）
Ｖ２Ｓ＝Ｖ１Ｓ＋ＳＨＡ−２５６（Ｍ）    （式１３．２）
第２ノード７は、次に、第１ノード３と独立して、次式に基づき、第２ノード第２秘密鍵（Ｖ２Ｓ）及び第１ノード第２公開鍵（Ｐ２Ｃ）に基づき、共通シークレット（ＣＳ）を決定して良い４８０。
Ｓ＝Ｖ２Ｓ×Ｐ２Ｃ  （式１４）
【０１７９】
［第１ノード３及び第２ノード７により決定された共通シークレット（ＣＳ）の証明］
第１ノード３により決定された共通シークレット（ＣＳ）は、第２ノード７において決定された共通シークレット（ＣＳ）と同じである。式１１及び式１４が同じ共通シークレット（ＣＳ）を提供することの数学的証明が、ここで記載される。
【０１８０】
第１ノード３により決定された共通シークレット（ＣＳ）を考えると、次のように式１０．１は式１１に代入できる。
Ｓ＝Ｖ２Ｃ×Ｐ２Ｓ    （式１１）
Ｓ＝Ｖ２Ｃ×（Ｖ２Ｓ×Ｇ）
Ｓ＝（Ｖ２Ｃ×Ｖ２Ｓ）×Ｇ  （式１５）
第２ノード７により決定された共通シークレット（ＣＳ）を考えると、次のように式１２．１は式１４に代入できる。
Ｓ＝Ｖ２Ｓ×Ｐ２Ｃ  （式１４）
Ｓ＝Ｖ２Ｓ×（Ｖ２Ｃ×Ｇ）
Ｓ＝（Ｖ２Ｓ×Ｖ２Ｃ）×Ｇ  （式１６）
ＥＣＣ代数学は可換性なので、次の通り式１５及び式１６は等価である。
Ｓ＝（Ｖ２Ｃ×Ｖ２Ｓ）×Ｇ＝（Ｖ２Ｓ×Ｖ２Ｃ）×Ｇ    （式１７）
【０１８１】
［共通シークレット（ＣＳ）及び秘密鍵］
共通シークレット（ＣＳ）は、ここで、第１ノード３と第２ノード７との間のセキュアな通信のために、対称鍵アルゴリズムにおいて、秘密鍵として又は秘密鍵の基礎として、使用できる。
【０１８２】
共通シークレット（ＣＳ）は、楕円曲線点（ｘＳ，ｙＳ）の形式であって良い。これは、ノード３、７により合意された標準的な公に知られた演算を用いて、標準的な鍵フォーマットに変換されて良い。例えば、ｘＳ値は、ＡＥＳ２５６暗号鍵として使用され得る２５６ビットの整数であって良い。これは、更に、１６０ビットの長さの鍵を必要とする任意のアプリケーションのために、ＲＩＰＥＭＤ１６０を用いて１６０ビットの整数に変換され得る。
【０１８３】
共通シークレット（ＣＳ）は、必要に応じて決定されて良い。重要なことに、共通シークレット（ＣＳ）はメッセージ（Ｍ）に基づき再決定できるので、第１ノード３は共通シークレット（ＣＳ）を格納する必要がない。幾つかの例では、使用されるメッセージ（Ｍ）は、マスタ秘密鍵のために要求されるのと同レベルのセキュリティを有しないデータストア１３、１７、１９（又は他のデータストア）に格納されて良い。幾つかの例では、メッセージ（Ｍ）は公に利用可能であって良い。
【０１８４】
しかしながら、幾つかのアプリケーションに依存して、共通シークレット（ＣＳ）が第１ノードマスタ秘密鍵（Ｖ１Ｃ）と同じくらいセキュアに保たれるならば、共通シークレット（ＣＳ）は、第１ノードに関連付けられた第１データストア（Ｘ）に格納され得る。
【０１８５】
有利なことに、この技術は、単一のマスタキー暗号対に基づき、複数のセキュアな秘密鍵に対応し得る複数の共通シークレットを決定するために使用できる。
【０１８６】
＜生成器値（鍵）の階層構造＞
例えば、一連の連続する生成器値（ＧＶ）が決定されて良い。ここで、各連続ＧＶは、前の生成器値（ＧＶ）に基づき決定されて良い。例えば、連続する専用鍵を生成するためにステップ３１０〜３７０、４１０〜４７０を繰り返す代わりに、ノード間の事前合意により、生成器値の階層構造を確立するために、前に使用された生成器値（ＧＶ）が両方のパーティにより繰り返し再ハッシュされ得る。実際に、メッセージ（Ｍ）のハッシュに基づく生成器値は、次世代生成器値（ＧＶ’）のための次世代メッセージ（Ｍ’）になり得る。これを行うことは、計算されるべき共通シークレットの連続生成を可能にし、更なるプロトコルにより確立される送信、特に共通シークレットを生成する毎に複数のメッセージの送信の必要がない。次世代共通シークレット（ＣＳ’）は、以下のように計算できる。
【０１８７】
先ず、第１ノード３及び第２ノード７の両者が、次世代生成器値（ＧＶ’）を独立して決定する。これは、ステップ３２０及び４２０と同様であるが、次式により適応される。
Ｍ’＝ＳＨＡ−２５６（Ｍ）    （式１８）
ＧＶ’＝ＳＨＡ−２５６（Ｍ’）    （式１９．１）
ＧＶ’＝ＳＨＡ−２５６（ＳＨＡ−２５６（Ｍ））    （式１９．２）
【０１８８】
第１ノード３は、次に、次世代の第２ノード第２公開鍵（Ｐ２Ｓ’）及び第１ノード第２秘密鍵（Ｖ２Ｃ’）を上述のステップ３７０及び３３０と同様であるが次式により適応され、決定して良い。
Ｐ２Ｓ’＝Ｐ１Ｓ＋ＧＶ’×Ｇ    （式２０．１）
Ｖ２Ｃ’＝Ｖ１Ｃ＋ＧＶ’    （式２０．２）
【０１８９】
第２ノード７は、次に、次世代の第１ノード第２公開鍵（Ｐ２Ｃ’）及び第２ノード第２秘密鍵（Ｖ２Ｓ’）を上述のステップ４３０及び４７０と同様であるが次式により適応され、決定して良い。
Ｐ２Ｃ’＝Ｐ１Ｃ＋ＧＶ’×Ｇ    （式２１．１）
Ｖ２Ｓ’＝Ｖ１Ｓ＋ＧＶ’    （式２１．２）
【０１９０】
第１ノード３及び第２ノード７は、次に、それぞれ、次世代共通シークレット（ＣＳ’）を決定して良い。特に、第１ノード３は、次式により次世代共通シークレット（ＣＳ’）を決定する。
ＣＳ’＝Ｖ２Ｃ’×Ｐ２Ｓ’    （式２２）
【０１９１】
第２ノード７は、次式により次世代共通シークレット（ＣＳ’）を決定する。
ＣＳ’＝Ｖ２Ｓ’×Ｐ２Ｃ’    （式２３）
【０１９２】
更なる世代（ＣＳ’’、ＣＳ’’’、等）は、チェーン階層構造を生成するために同じ方法で計算できる。この技術は、第１ノード３及び第２ノード７の両者が元のメッセージ（Ｍ）又は最初に計算された生成器値（ＧＶ）、及びそれがどのノードに関連するか、を見失わないことを要求する。これは公に知られた情報なので、この情報の保有に関してセキュリティ問題は存在しない。したがって、この情報は、（ハッシュ値を公開鍵にリンクする）「ハッシュテーブル」に保持され、（例えばＴｏｒｒｅｎｔを用いて）ネットワーク５に渡り自由に配布されて良い。さらに、階層構造内の任意の個々の共通シークレット（ＣＳ）が今までに解決されていない場合、これは、秘密鍵Ｖ１Ｃ、Ｖ１Ｓがセキュアなままであるならば、階層構造の中の任意の他の共通シークレットのセキュリティに影響しない。
【０１９３】
＜鍵の木構造＞
上述のようなチェーン（線形）階層構造と同様に、木構造の形式の階層構造が生成できる。木構造によると、認証鍵、暗号鍵、署名鍵、支払鍵、等のような異なる目的の様々な鍵が決定されて良い。それにより、これらの鍵は、全て単一のセキュアに維持されるマスタキーにリンクされる。これは、種々の異なる鍵を有する木構造９０１を示す図１２に図示される。これらの各々は、別のパーティと共有されるシークレットを生成するために使用できる。枝分かれする木は、幾つかの方法で達成でき、それらのうちの３つが以下に記載される。
【０１９４】
（ｉ）マスタキー・スポーニング
チェーン階層構造では、乗算した再ハッシュしたメッセージを元のマスタキーに加算することにより、各々の新しい「リンク」（公開／秘密鍵ペア）が生成される。例えば（明確性のため、第１ノード３の秘密鍵のみを示す）、
Ｖ２Ｃ＝Ｖ１Ｃ＋ＳＨＡ−２５６（Ｍ）    （式２４）
Ｖ２Ｃ’＝Ｖ１Ｃ＋ＳＨＡ−２５６（ＳＨＡ−２５６（Ｍ））    （式２５）
Ｖ２Ｃ’’＝Ｖ１Ｃ＋ＳＨＡ−２５６（ＳＨＡ−２５６（ＳＨＡ−２５６（Ｍ）））    （式２６）
等である。
【０１９５】
枝を生成するために、任意の鍵がサブマスタキーとして使用できる。例えば、Ｖ２Ｃ’は、正規のマスタキーに対して行われるように、ハッシュを加算することにより、サブマスタキー（Ｖ３Ｃ）として使用できる。
Ｖ３Ｃ＝Ｖ２Ｃ’＋ＳＨＡ−２５６（Ｍ）    （式２７）
サブマスタキー（Ｖ３Ｃ）は、それ自体が、次世代鍵（Ｖ３Ｃ’）を有して良い。例えば次式の通りである。
Ｖ３Ｃ’＝Ｖ２Ｃ’＋ＳＨＡ−２５６（ＳＨＡ−２５６（Ｍ））    （式２８）
これは、図１３に示すマスタキー・スポーニング（spawning）方法を用いて、木構造９０３を提供する。
【０１９６】
（ｉｉ）論理的関連付け
この方法では、木の中の全てのノード（公開／秘密鍵ペア）は、チェーンとして（又は任意の他の方法で）生成され、木の中のノード間の論理的関係は、ポインタを用いて木の中の各ノードが木の中の自身の親ノードに単純に関連付けられるテーブルにより維持される。したがって、ポインタは、セッションの共通シークレットキー（ＣＳ）を決定するために、関連する公開／秘密鍵ペアを決定するために使用できる。
【０１９７】
（ｉｉｉ）メッセージ多様性
新しい公開／秘密鍵ペアは、チェーン又は木の任意のポイントに新しいメッセージを導入することにより、生成できる。メッセージ自体は、任意であって良く、又は何らかの意味若しくは関数を伝達して良い（例えば、それは、「現実の」銀行口座番号に関連して良い、等である）。新しい公開／秘密鍵ペアを形成するためのこのような新しいメッセージがセキュアに保持されることが望ましい場合がある。
【０１９８】
＜エージェントの実装の例＞
本発明は、取引処理の自動化された態様を実行するために、計算リソース又はエージェント（「オラクル（oracle）」として参照される場合が多い）を利用できる。適切なエージェントの一例が以下に提供されるが、他の実装が使用されて良い。
【０１９９】
エージェントは、チューリング（Turing）機械の実装において非消去可能テープとしてブロックチェーンを使用して、ブロックチェーンと連携して動作して良い。このエージェントは、ブロックチェーンネットワークと並列に実行し、（ループ）処理の実行を監督し及び扱う。ループ処理は、例えば装置又はシステムの処理又は制御の自動化のような所与のタスクを実行するよう設計される。この並列リソースは、ブロックチェーンの状態を監視し、トランザクションをブロックチェーンに書き込ませることができる。ある意味で、これは、ブロックチェーンをチューリング機械の非消去可能テープとして利用し、以下の定義及び特徴を有する。
１．ブロックチェーンは、チューリング機械のテープとして作用する。ブロックチェーンの中の各トランザクションは、テープ上のセルを表す。このセルは、有限なアルファベットからの記号を含み得る。
２．テープヘッドは、ブロックチェーン上に既に書き込まれているブロックから情報を読み出すことができる。
３．テープヘッドは、多くのトランザクションを含む新しいブロックを、ブロックチェーンの終わりに書き込むことができる。しかしながら、それらは、既に存在するブロックに書き込むことができない、このように、ブロックチェーンテープは非消去可能である。
４．各トランザクションのマルチシグネチャのＰ２ＳＨ（pay−to−script−hash）トランザクションの部分として格納され得る。
【０２００】
エージェントに重要な機能は、ブロックチェーンの現在状態を監視する自動エンティティとして作用することである。これは更に、任意のオフブロックソースから、信号又は入力を受信できる。ブロックチェーン状態及び／又は受信した入力に依存して、エージェントは特定動作を実行して良い。エージェントは、どの動作が実行されるべきかを決定する。これらは、「現実世界」（つまり、オフブロック）の中の作用、及び／又（新しいトランザクションを生成する及びブロードキャストするような）はブロックチェーンに対する作用を含んで良く又は含まなくて良い。エージェントが取る作用は、ブロックチェーン状態によりトリガされて良い。エージェントは、更に、ビットコインネットワークにブロードキャストされるべき次のトランザクションセットについて決定し、後にブロックチェーンに書き込んで良い。
【０２０１】
エージェントの作用は、並列に且つ同時にブロックチェーン（例えば、ビットコイン）ネットワークに対して実行する。ある意味で、これは、ブロックチェーン（例えば、ビットコイン）スクリプトの機能を格納する。この連続監視は、結合されたエージェント及びブロックチェーンシステムチューリング完全（Turing  Complete）を作成する「ループ」制御フロー構成を実施する。
【０２０２】
チューリング機械は、以下の２つのスタックを含む。
・データスタック：これは、上述のようにブロックチェーンにより表される。
・制御スタック：これは、エージェント機能により表される。これは、繰り返し制御フロー機能に関連する情報を格納する。
【０２０３】
制御スタックのデータスタックからの分離は、無限ループがビットコイン中核で生じることを防ぎ、サービス拒否攻撃を軽減するという利点を提供する。
【０２０４】
エージェントは、任意の種類のループ構成（例えば、ＦＯＲ−ＮＥＸＴ、ＲＥＰＥＡＴ  ＵＮＴＩＬ、等）によりループ可能なサブルーチンを管理し及び実行する。本願明細書に記載の説明のための実施形態は、「繰り返し（ｒｅｐｅａｔ）」構成の一例を用いる処理を含む。ユーザは、インデックス（ｉ）及び限界（Ｊ）を指定して良い。これらはそれぞれ、現在の反復番号（標準的に０から開始してカウントされる）、及び繰り返しループの合計反復数、を表す。
【０２０５】
各反復について、
１．インデックスが１だけ増大する。終了条件については、インデックスが限界に達すると、反復は停止する。
２．「if  condition  then  action（［条件］ならば［動作］する）」（ＩＣＴＡ）文を含むコードブロックが実行される。動作は、ブロックチェーン上の又は外の任意の動作であって良い。
３．このサブルーチンの暗号ハッシュが計算される。これは、トランザクションの部分としてブロックチェーンに格納できる。ハッシュは各コードにユニークなので、どのコードが使用されているかの検証を可能にする。
【０２０６】
ループ本体は、コードブロックを含む。各コードブロックは、「if  condition  then  action（［条件］ならば［動作］する）」（ＩＣＴＡ）文を含む。これは、以下に一致するトランザクションについて、ブロックチェーンの現在状態を監視する。
・開始又はトリガ条件（例えば、特定日に達したとき）、
・繰り返し条件（つまり、前の反復に関連付けられたメタデータ又はハッシュ）、
・停止条件（つまり、ループの最後の反復）。
【０２０７】
ＩＣＴＡ文は、エージェントが、ブロックチェーンの現在状態に基づき、次のトランザクションについて決定することを可能にする。次のトランザクションを生成することは、トランザクションをビットコインネットワークにブロードキャストすること、及び新しいトランザクションをブロックチェーンに書き込むことを含む。これは、この反復が実行されたことの記録として作用する。トランザクションがブロックチェーンに書き込まれると、マネジャは、続いて、前の反復が実行されブロックチェーンに書き込まれたことを知り、次の反復を実行するだろう。後者は、インデックス（ｉ）がコードブロックの中で指定された限度（Ｊ）に達するとき、繰り返しループが存在するまで継続する。
【０２０８】
各トランザクションは、再利用可能な方法で、ブロックチェーンに保存される。ビットコイン実装では、トランザクションの中の各署名は、ＳＩＧＨＡＳＨフラグを付加される。このフラグは、異なる値を取ることができる。これらの値の各々は、この署名の所有者の関与無しに、トランザクションの他の部分が変更され得るか否かを示す。再利用可能トランザクションは、トランザクションインプットのうちの１つの中にＳＩＧＨＡＳＨフラグ「ＳｉｇＨａｓｈ＿ＡｎｙｏｎｅＣａｎＰａｙ」を有する。これは、誰もがトランザクションのインプットに貢献することを許容する。このパラメータは、エージェントのＩＣＴＡ関数が、複数回、異なるインプットで、実行され且つ繰り返されることを可能にする。この関数の使用は、例えば再利用トランザクションの複製により、認可パーティに制限できる。
【０２０９】
ＩＣＴＡコードブロックの「If  condition」部分は、任意の種類の条件を監視できる。これは、他のプログラミング言語（例えば、Ｃ、Ｃ＋＋、Ｊａｖｅ）と同様であり、ブロックチェーンに格納された情報に限定されない。例えば、これは、日付及び時間（つまり、特定の日時に達したとき）を監視し、又は天気（つまり、気温が１０℃より低く且つ雨が降っているとき）を監視し、取引又は信用の条件（つまり、企業Ａが企業Ｂを買うとき）を監視し得る。
【０２１０】
ＩＣＴＡコードブロックの「Then  action」部分は、多数の動作を実行できる。本発明は、取り得る動作の数又は種類に関して限定されない。動作は、ブロックチェーン上のトランザクションに限定されないが、動作に関連するメタデータを含むトランザクションは、ブロックチェーンに書き込まれて良い。
【０２１１】
メタデータは、任意の形式であり得る。しかしながら、一実施形態では、メタデータは、動作に関連するより多くのデータ又は指示を含むファイルへのハイパーリンクを格納して良い。メタデータは、動作に関連するより多くのデータ又は指示を含むハッシュテーブルへのハイパーリンク、及びハッシュテーブルに対する検索キーとして作用する動作のハッシュの両方を格納して良い。
【０２１２】
エージェントの制御スタックは、各ユーザの必要に特化した多数の方法で実装できる。例えば、制御スタックの繰り返しループは、任意のチューリング完全言語に基づき得る。言語の１つの可能な選択は、Ｆｏｒｔｈ型スタックに基づく言語である。この言語を使用する利点は、制御スタックを、既知であり且つ広く使用されているビットコインスクリプトとプログラミング型において一貫性を保つことである。
【０２１３】
＜ビットコインスクリプトの交互形式スタック（Alternate  Stack）をデータ記憶空間として使用する＞
ビットコインスクリプトは、コマンド、更に呼び出されるオペコード、を含む。これらは、ユーザが、データを「ａｌｔ  ｓｔａｃｋ」として知られる交互形式スタックに移動させることを可能にする。
【０２１４】
オペコードは、次の通りである。
・ＯＰ＿ＴＯＡＬＴＳＴＡＣＫ。これは、データを主スタックの最上部からａｌｔ  ｓｔａｃｋの最上部に移動させる。
・ＯＰ＿ＦＲＯＭＡＬＴＳＴＡＣＫ。これは、データをａｌｔ  ｓｔａｃｋの最上部から主スタックの最上部に移動させる。
【０２１５】
これは、計算機にデータを格納させる「記憶（memory）」機能と同様に、中間計算ステップからのデータをａｌｔ  ｓｔａｃｋに格納させる。一実施形態では、ａｌｔ  ｓｔａｃｋは、小さな計算タスクを解決するようビットコインスクリプトを構成するために、及び結果を計算に返すために、使用される。
【０２１６】
＜エージェントを管理するためにコードレジスタを使用する＞
エージェントは、また、自身の所有し且つ実行する全てのコードのレジストリを管理する。このレジストリは、特定キーを特定値にマッピングするルックアップテーブル又は辞書のように構造化される。キー及び値ペアは、それぞれ、コードブロックのハッシュ（Ｈ１）及びコードが格納された場所のＩＰｖ６アドレスにより表される。キーＨ１を用いてコードブロックを読み出すために、ルックアップテーブルが使用されて、関連する値（これは、コードの格納されている場所である）を読み出し、及びそれに応じてソースコードを読み出す。コードレジストリの実装は変化し得る。
【０２１７】
＜エージェントのコードのトランザクションメタデータ、及びループの再スポーニング＞
特定の反復でエージェントのループを再スポーニングするために必要な情報は、ブロックチェーンに記録されたトランザクションの中にメタデータとして格納される。
【０２１８】
このように、ブロックチェーン上のトランザクションは、エージェント上で実行されているループの所与の反復に関する情報を格納し、又はそれへのアクセスを提供する。この情報は、ループに関連付けられた任意の変数の値、例えばインデックスｉ、及び任意の他の必要な情報、例えばコードブロック内で使用されるパラメータの値又は更に要求される情報がアクセス可能な場所の位置関連データ、を含み得る。
【０２１９】
メタデータ自体は、トランザクションの中のマルチシグネチャのＰ２ＳＨ（pay−to−script−hash）スクリプトの部分として格納される。トランザクションと共に記録されたメタデータは、コードが過去にどのように実行されたかのオーディットトレイルを記録する能力も与える。
【０２２０】
エージェントが各反復で繰り返しループコードブロックを再スポーニングできる幾つかの方法が存在する。コードブロックは、エージェント自体にハードコードされて良く、又は秘密に若しくは公に利用可能なファイルに格納でき、又は、秘密若しくは公開ハッシュテーブルファイル上のエントリとして格納され得る、又はこれらの組み合わせである。コードブロックは、ハードコードされた変数に固定され、又は固定であるが、移植可能なパラメータを含み得る。パラメータは、任意のデータフォーマットの単一値であって良く、又は小さなコードチャンクであって良く、又はそれらの組み合わせであって良い。パラメータは、トランザクション（例えば、ビットコイントランザクション）の中のメタデータから、又は内部データベース又は秘密／公開ファイル又はハッシュテーブル又はこれらの任意の組み合わせのような外部ソースから、直接に該パラメータを読み出すことにより移植され得る。パラメータ値の外部ソースへのポインタは、トランザクションの中のメタデータに格納されて良い。
【０２２１】
以下のステップは、エージェントがｉ番目の反復で繰り返しループコードブロックをどのように再スポーニングできるかの一例を提供する。本例では、コードレジストリは、ハッシュテーブルである。これにより、ハッシュ値がテーブルの検索キーとして作用し、トランザクション上のメタデータに格納される。
１．エージェントは、コードレジストリ内のエントリに一致するコードブロックのハッシュを含むトランザクションについて、ブロックチェーンを監視する。
２．エージェントは、対応するハッシュ（Ｈ１）を含むトランザクションを見付ける。
３．エージェントは、「メタデータ−ＣｏｄｅＨａｓｈ」を読み出し、Ｈ１を得るためにＣｏｄｅＨａｓｈフィールドを得て、Ｈ１を用いてコード（Ｃ１）を読み出す。ＲＩＰＥＭＤ−１６０（ＳＨＡ２５６（Ｃ１））がＨ１に等しい場合、コードは変化しておらず、安全に次のステップに進める。
４．エージェントは、インデックスＩを格納する「メタデータ−ＣｏｄｅＨａｓｈ」を読み出し、ｉ番目の反復でコードを再スポーニングする。言い換えると、ループが、適切な反復で「リロード」される。
５．メタデータの発生元を検証するために、ユーザの署名がＰ２ＳＨコマンドに含まれる。
６．これらのデータがループのこの反復のために必要な場合、エージェントは、「メタデータ−ＯｕｔｐｕｔＨａｓｈ」及び「メタデータ−ＯｕｔｐｕｔＰｏｉｎｔｅｒ」を読み出し、前のステップのアウトプットを検索する。
【０２２２】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する（comprising又はcomprises）」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する（comprises）」は「含む（includes）又は構成される（consists  of）」を意味し、「有する（comprising）」は「含む（including）又は構成される（including  of）」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、１つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【図１】
2019513312.tif 000006
【図２Ａ】
2019513312.tif 000007
【図２Ｂ】
2019513312.tif 000008
【図２Ｃ】
2019513312.tif 000009
【図２Ｄ】
2019513312.tif 000010
【図２Ｅ】
2019513312.tif 000011
【図２Ｆ】
2019513312.tif 000012
【図３】
2019513312.tif 000013
【図４】
2019513312.tif 000014
【図５】
2019513312.tif 000015
【図６】
2019513312.tif 000016
【図７】
2019513312.tif 000017
【図８】
2019513312.tif 000018
【図９−１】
2019513312.tif 000019
【図９−２】
2019513312.tif 000020
【図１０】
2019513312.tif 000021
【図１１】
2019513312.tif 000022
【図１２】
2019513312.tif 000023
【図１３】
2019513312.tif 000024
【図１４】
2019513312.tif 000025
【図１５】
2019513312.tif 000026
【図１６】
2019513312.tif 000027
【図１７】
2019513312.tif 000028
【図１８】
2019513312.tif 000029
【図１９】
2019513312.tif 000030
【図２０】
2019513312.tif 000031
【図２１】
2019513312.tif 000032
【図２２】
2019513312.tif 000033
【図２３】
2019513312.tif 000034
【国際調査報告】
2019513312.tif 000035
2019513312.tif 000036