(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102313
(43)【公開日】2024-07-30
(54)【発明の名称】ブロックチェーン上の交換を実施するためのトークン化方法及びシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240723BHJP
H04L 9/08 20060101ALI20240723BHJP
【FI】
H04L9/32 200B
H04L9/08 C
H04L9/08 E
H04L9/32 200E
H04L9/32 200Z
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024077733
(22)【出願日】2024-05-13
(62)【分割の表示】P 2022067983の分割
【原出願日】2017-02-14
(31)【優先権主張番号】1603117.1
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1603123.9
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1603114.8
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1603125.4
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1604225.1
(32)【優先日】2016-03-11
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1605571.7
(32)【優先日】2016-04-01
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1606630.0
(32)【優先日】2016-04-15
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1607249.8
(32)【優先日】2016-04-26
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1619301.3
(32)【優先日】2016-11-15
(33)【優先権主張国・地域又は機関】GB
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】サヴァナ,ステファヌ
(57)【要約】 (修正有)
【課題】ブロックチェーントランザクションにデータを埋め込むブロックチェーン実装制御方法及び記憶媒体を提供する。
【解決手段】方法は、データの公開鍵-秘密鍵暗号対を導出するステップと、前記公開鍵-秘密鍵暗号対を用いて前記データの署名を導出するステップと、前記データを符号化して、前記データの符号化メタデータを生成するステップと、を含む。符号化メタデータは、トランザクションの中でブロックチェーンへ送信される。署名が受信され、少なくとも1人のユーザからのスクリプトは、埋め込みデータへのアクセスを可能にする。スクリプトは署名者の公開鍵を含む。メタデータは、データのハッシュと、該データの位置が特定できるように、該データへのポインタと、を含む。前記ハッシュは、前記データの格納されているルックアップテーブルの中の1次キーとして使用される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ブロックチェーントランザクションにデータを埋め込むブロックチェーン実装制御方法であって、
デジタルアセットの公開鍵-秘密鍵の暗号ペアを導出するステップと、
前記公開鍵-秘密鍵の暗号ペアを使用して前記データの署名を導出するステップと、
データを成文化して、前記デジタルアセットの成文化メタデータを生成するステップと、
を含む方法。
【請求項2】
前記デジタルアセットはトークン化されている、請求項1に記載の方法。
【請求項3】
以下:
少なくとも第1エンティティマスタ秘密鍵と生成器値に基づいて第1エンティティ第2秘密鍵を決定するステップと、
少なくとも第2エンティティマスタ秘密鍵と前記生成器値に基づいて第2エンティティ第2秘密鍵を決定するステップと、
第1エンティティにおいて、前記第1エンティティ第2秘密鍵と第2エンティティ第2公開鍵に基づいて共通シークレット(CS)を決定し、第2エンティティにおいて、前記第2エンティティ第2秘密鍵と第1エンティティ第2公開鍵に基づいて前記共通シークレット(CS)を決定するステップと、
により既存の暗号鍵ペアから暗号鍵の一方又は両方の鍵を導出するステップ、を含み、
前記第1エンティティ第2公開鍵と前記第2エンティティ第2公開鍵は、各々少なくとも前記第1/第2エンティティマスタ鍵と前記生成器値に基づいている、請求項1に記載の方法。
【請求項4】
前記方法は、前記成文化メタデータをブロックチェーンに送信するステップを更に含む請求項1又は2に記載の方法。
【請求項5】
前記方法は、埋め込まれたデータへのアクセスを可能にするために、少なくとも1人のユーザから署名及びスクリプトを受信するステップを更に含む請求項1~4のいずれかに記載の方法。
【請求項6】
前記少なくとも1人のユーザは人間のユーザである、請求項5に記載の方法。
【請求項7】
前記少なくとも1人のユーザはコンピュータにより実施されるリソース又はエージェントである、請求項5に記載の方法。
【請求項8】
前記スクリプトは、署名者の公開鍵を含む、請求項5に記載の方法。
【請求項9】
前記成文化メタデータは前記データのハッシュを含む、請求項1~8のいずれかに記載の方法。
【請求項10】
前記成文化メタデータは前記データへのポインタを含む、請求項1~9のいずれかに記載の方法。
【請求項11】
前記ハッシュは、前記データが格納されるルックアップテーブルにおいて1次キーとして使用される、請求項9に記載の方法。
【請求項12】
第1ノード(C)において、前記第1ノード(C)及び第2ノード(S)に共通の共通シークレット(CS)を決定することにより、暗号鍵ペアの一方又は両方の鍵を生成又は導出するステップであって、
前記第1ノード(C)は、第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)を有する第1非対称暗号ペアに関連付けられ、前記第2ノード(S)は、第2ノードマスタ秘密鍵(V1S)及び第2ノードマスタ公開鍵(P1S)を有する第2非対称暗号ペアに関連付けられ、該ステップは、
少なくとも前記第1ノードマスタ秘密鍵(V1C)及び決定性鍵(DK)に基づいて第1ノード第2秘密鍵(V2C)を決定するステップと、
少なくとも第2ノードマスタ公開鍵(P1S)及び前記決定性鍵(DK)に基づいて第2ノード第2公開鍵(P2S)を決定するステップと、
前記第1ノード第2秘密鍵(V2C)及び前記第2ノード第2公開鍵(P2S)に基づいて前記共通シークレット(CS)を決定するステップと、
を含むステップを含み、
前記第2ノード(S)は、第1ノード第2公開鍵(P2C)及び第2ノード第2秘密鍵(V2S)に基づく同一の前記共通シークレット(S)を有し、
前記第1ノード第2公開鍵(P2C)は、少なくとも前記第1ノードマスタ公開鍵(P1C)及び前記決定性鍵(DK)に基づき、
前記第2ノード第2秘密鍵(V2S)は、少なくとも前記第2ノードマスタ秘密鍵(V1S)と前記決定性鍵(DK)に基づく、請求項1~11のいずれかに記載の方法。
【請求項13】
前記決定性鍵(DK)は、メッセージ(M)に基づく、請求項12に記載の方法。
【請求項14】
前記メッセージは、ランダム、擬似ランダム又はユーザ定義である、請求項13に記載の方法。
【請求項15】
前記メッセージは、Unix時間及びナンスに基づく、請求項13又は14に記載の方法。
【請求項16】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、プロセッサを、請求項1~15のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、コンピュータにより実装されるネットワークを介するエンティティ又は資産の交換及びその制御のためのトークン化方法及び対応するシステムに関する。本発明は、ネットワーク上の交換及び転送のためのセキュリティメカニズムに関する。特に、本発明は、取引の転送に関する。本発明は、限定ではないが、借金のない融資処理と共に使用することに適する。本発明は、ピアツーピア分散ネットワークと関連して使用されて良い。本発明は、(限定ではないが)ビットコインブロックチェーンを含むブロックチェーンに関連する技術であり得る。
【0002】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【背景技術】
【0003】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタル資産の制御の転送を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及び処理のために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散処理、等)を利用できる。
【0006】
現在の研究の一分野は、「スマートコントラクト(smart contracts)」の実装のためのブロックチェーンの使用である。これらは、機械可読取引又は合意の条件の実行を自動化するために設計されたコンピュータプログラムである。自然言語で記述され得る従来の取引と異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含み、該結果に依存して動作を実行させることのできる、機械実行可能プログラムである。
【0007】
ブロックチェーンに関連する関心の他の分野は、ブロックチェーンを介する現実世界のエンティティを表し転送するための「トークン」(又は「カラードコイン」)の使用である。潜在的に機密な又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現できる。したがって、トークンは、現実世界のアイテムをブロックチェーンから参照できるようにする識別子として機能する。
【0008】
本発明は、異なるパーティ間の融資を可能にするブロックチェーンに基づくメカニズム及び基板に、種々の技術的概念を組み込む。これは、借金の存在無しに達成可能である。融資は、金融サービス市場になくてはならない部分であり、前渡し金の後の支払を交換条件として、借り手が貸し手から資金を受けることを可能にする。銀行のような金融機関を介する伝統的な融資は、近年、一般により高い個人的報酬のために、個人がプール金を借り手に貸すピアツーピア(P2P)融資を通じて拡張されているが、前渡し金を失うリスクが増大する。
【0009】
多数のP2Pプールが存在し、それら自身の特注の取引所が、P2P融資処理(例えば、Zopa、Fundingサークル)に参加するためにそれらのアプリケーションへの個人登録を要求する。これらの貸し付けは、伝統的な銀行ネットワーク及びそれらの操業する領域内の技術基盤により裏打ちされず、それにより実行されない。したがって、P2P融資のための現在のシステムは、本来、制限的であり複雑である。
【0010】
代替ソリューションを提供することは有利である。このソリューションの利点は、例えば、洗練された融資処理が実行可能でありながら、ローカルな特注取引所の必要を除去することであり得る。ブロックチェーンの知られている利点(例えば、その耐タンパ性、トランザクションの永久的記録)は、都合良く利用され得る。このソリューションは、全く新しいアーキテクチャ及び技術プラットフォームを提供し得る。このような改良されたソリューションが考案されている。
【発明の概要】
【0011】
したがって、本発明によると、添付の請求の範囲に定められるような方法及びシステムが提供される。
【0012】
したがって、本発明によると、ブロックチェーンにより(つまり、それを使用して)行われる処理の実行を制御する方法及び対応するシステムが提供される。ブロックチェーンは、ビットコインブロックチェーンであって良く、又はそうでなくて良い。処理は融資処理であって良い。本発明は、また、デジタル資産又はアイテムの転送に拡張されたセキュリティを提供する、トークン化及び暗号技術を導入し得る。
【0013】
本発明は、ブロックチェーンにより実施される方法を提供し得る。本発明は、データを埋め込むメカニズムを提供し得る。データは、ブロックチェーントランザクション(Tx)に埋め込まれて良い。追加又は代替で、本発明は、資産又はアイテムの制御、交換、及び/又は転送のための方法を含み得る。これはデジタル資産であって良い。追加又は代替で、本発明はトークン化方法を提供し得る。資産及び/又は取引はトークン化されて良い。
【0014】
方法は、
データのアイテム又は部分の公開鍵-秘密鍵暗号対を導出するステップと、
前記公開鍵-秘密鍵暗号対を用いて前記データの署名を導出するステップと、
前記データを成文化して(codifying)、前記データの成文化(codified)メタデータを生成するステップと、を含み得る。
【0015】
前記データは、資産又はエンティティに関連して良く、又は前記資産に関連付けられた(スマート)取引に関連して良い。前記スマートコントラクトは、ブロックチェーンと別個であって良いコンピュータに基づくリソースに格納されて良い。
【0016】
本発明は、資産又は資産の表現に関して、ブロックチェーンを介して行われる転送を制御するよう構成されて良い。資産又は表現は、1又は複数の秘密暗号鍵を含み又はそれに関連付けられて良く、各秘密鍵は資産の所有者/制御部に関連付けられる。秘密鍵は、暗号鍵ペアの部分であって良い。秘密鍵のうちの1又は複数は、実質的に「資産の公開鍵を生成する」と題される章で後述される技術に従い生成されて良い。1又は複数の鍵は、共通シークレットを用いて生成されて良い。それは、マスタ暗号鍵から生成されるサブキーであって良い。
【0017】
本発明は、資産のアドレス及び/又は暗号鍵の割り当て又は生成を有して良い。本発明は、資産の所有者又は制御部、又は資産に関連付けられた何らかの他のエンティティのアドレス及び/又は暗号鍵の割り当て及び/又は生成も有して良い。資産及び/又は制御部のアドレス/鍵は、「資産の公開鍵を生成する」と題された章で後述する決定サブキー処理を用いて生成される。1又は複数の実施形態では、アドレスは、ブロックチェーンアドレスであって良い。望ましくは、これは、マスタアドレス(キー)から導出されるサブアドレスとして生成される。マスタキーは、資産の制御部/所有者に属し又はそれに関連付けられて良い。サブキー生成技術の使用は、暗号により施行されるセキュアな方法で、資産と所有者との間の直接相互作用を可能にし得る。本発明は、また、場合によっては階層化方法で、同じブロックチェーントランザクションの中の複数の(スマート)コントラクトをネスト又は構造化する能力を可能にし得る。複数のコントラクトの各々は、個々の計算リソースにより制御される。
【0018】
本発明は、第1及び第2エンティティに共通のシークレットを決定する技術を含み得る。エンティティは、ノード又は資産として参照されて良い。第1又は第2エンティティは資産であって良く、他方のエンティティは制御部又は資産に関連付けられた他のエンティティであって良い。本発明は、実質的に、「資産の公開鍵を生成する」と題された章で後述する方法を有して良い。本方法は、以下のステップを含み得る:
・少なくとも1つの第1エンティティマスタ秘密鍵及び生成器値に基づき、第1エンティティ第2秘密鍵を決定するステップと、
・少なくとも1つの第2エンティティマスタ秘密鍵及び生成器値に基づき、第2エンティティ第2秘密鍵を決定するステップと、
・第1エンティティ第2秘密鍵及び第2エンティティ第2公開鍵に基づき、第1エンティティにおいて共通シークレット(CS)を決定し、第2エンティティ第2秘密鍵及び第1エンティティ第2公開鍵に基づき、第2エンティティにおいて共通シークレット(CS)を決定するステップと、を含み、
・第1エンティティ第2公開鍵及び第2エンティティ第2公開鍵は、それぞれ、第1/第2エンティティマスタキー及び生成器値に基づく。
【0019】
本方法は、成文化メタデータをブロックチェーンへ送信するステップを更に含んで良い。成文化メタデータは、取引を参照し又はそれへのアクセスを提供するよう構成されて良い。これは、従来知られているスマートコントラクトであって良い。メタデータは、実質的に「成文化方式」と題された章で後述する成文化方式に従い符号化されて良い。これは、以下に関連する3つのパラメータ又はデータアイテムを含んで良い:
1)取引の下で利用可能な株の量、
2)あるパーティから別のパーティへ転送されるべき転送単位又は価値アイテムの量、これらは暗号通貨の単位であって良い、
3)転送単位の量について値を計算するための因子。
【0020】
前記方法は、
埋め込みデータへのアクセスを可能にするために、少なくとも1人のユーザから署名及びスクリプトを受信するステップ、を更に含んで良い。スクリプトは署名者の公開鍵を含んで良い。用語「ユーザ」は、人間のユーザ又はコンピュータにより実装されるリソース又はエージェントを表し得る。
【0021】
メタデータは、データのハッシュを含んで良い。メタデータは、データへのポインタ又は他の参照を含んで良い。これは、データが参照される及び/又はアクセスされることを可能にし得る。したがって、データは「オフブロック」に、つまりブロックチェーン内ではなく、格納されて良い。
【0022】
前記ハッシュは、前記データの格納されているルックアップテーブルの中の1次キーとして使用されて良い。これは、DHTであって良い。
【0023】
本発明は、また、ブロックチェーンにより実施されるシステムを含み得る。当該システムは、データの公開鍵-秘密鍵暗号対を導出し、前記公開鍵-秘密鍵暗号対を用いて前記データの署名を導出し、前記データを成文化して、前記データの成文化メタデータを生成する、よう動作して良い。
【0024】
前記システムは、上述の方法の任意の実施形態を実施するよう構成されて良い。
【0025】
前記システムは、ブロックチェーンへ成文化メタデータを送信するよう動作して良い。
【0026】
前記方法は、埋め込みデータへのアクセスを可能にするために、少なくとも1人のユーザから署名及びスクリプトを受信するよう動作して良い。スクリプトは署名者の公開鍵を含んで良い。
【0027】
前記システムは、データのハッシュを生成し、該ハッシュをメタデータの部分として格納するよう動作して良い。
【0028】
前記システムは、データへのポインタ又は他の参照を生成するよう動作して良い。前記システムは、前記データの格納されているルックアップテーブルの中の1次キーとして前記ハッシュを格納するよう動作して良い。
【0029】
追加又は代替で、本発明の1又は複数の実施形態は、1又は複数の暗号鍵の生成のための方法を含み得る。当該方法は、実質的に、「資産の公開鍵を生成する」と題された章で後述され得る。当該方法は、
-第1ノード(C)において、前記第1ノード(C)及び第2ノード(S)に共通である共通シークレット(CS)を決定するステップであって、前記第1ノード(C)は第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)を有する第1非対称暗号対に関連付けられ、前記第2ノード(S)は第2ノードマスタ秘密鍵(V1S)及び第2ノードマスタ公開鍵(P1S)を有する第2非対称暗号対に関連付けられる、ステップを含み、
前記方法は、
-少なくとも前記第1ノードマスタ秘密鍵(V1C)及び決定キー(DK)に基づき、第1ノード第2秘密鍵(V2C)を決定するステップと、
-少なくとも前記第2ノードマスタ公開鍵(P1S)及び前記決定キー(DK)に基づき、第2ノード第2公開鍵(P2S)を決定するステップと、
-前記第1ノード第2秘密鍵(V2C)及び前記第2ノード第2公開鍵(P2S)に基づき、前記共通シークレット(CS)を決定するステップと、を含み、
-前記第2ノード(S)は、第1ノード第2公開鍵(P2C)及び第2ノード第2秘密鍵(V2S)に基づく同じ共通シークレット(S)を有し、
-前記第1ノード第2公開鍵(P2C)は、少なくとも前記第1ノードマスタ公開鍵(P1C)及び前記決定キー(DK)に基づき、
-前記第2ノード第2秘密鍵(V2S)は、少なくとも前記第2ノードマスタ秘密鍵(V1S)及び前記決定キー(DK)に基づく。
【0030】
決定キー(DK)は、メッセージ(M)に基づいて良い。前記方法は、
-前記メッセージ(M)及び前記第1ノード第2秘密鍵(V2C)に基づき第1署名メッセージ(SM1)を生成するステップと、
-前記通信ネットワークを介して、前記第1署名メッセージ(SM1)を前記第2ノード(S)へ送信するステップと、を更に含んで良く、
前記第1署名メッセージ(SM1)は、前記第1ノード(C)を認証するために、第1ノード第2公開鍵(P2C)により検証可能である。
【0031】
望ましくは、前記方法は、
-前記通信ネットワークを介して、前記第2ノード(S)から第2署名メッセージ(SM2)を受信するステップと、
-前記第2ノード第2公開鍵(P2S)により前記第2署名メッセージ(SM2)を検証するステップと、
-前記第2署名メッセージ(SM2)の検証の結果に基づき、前記第2ノードを認証するステップと、を含んで良く、
前記第2署名メッセージ(SM2)は、前記メッセージ(M)又は第2メッセージ(M2)、及び前記第2ノード第2秘密鍵(V2S)に基づき生成される。
【0032】
望ましくは、前記方法は、
-メッセージ(M)を生成するステップと、
-通信ネットワークを介して、前記メッセージ(M)を前記第2ノード(S)へ送信するステップと、を含んで良い。
【0033】
望ましくは、前記方法は、
-前記通信ネットワークを介して、前記メッセージ(M)を前記第2ノード(S)から受信するステップ、を含んで良い。
【0034】
望ましくは、前記方法は、
-前記通信ネットワークを介して、前記メッセージ(M)を他のノードから受信するステップ、を含んで良い。
【0035】
望ましくは、前記方法は、
-前記メッセージ(M)をデータストア、及び/又は第1ノード(C)に関連付けられた入力インタフェースから受信するステップ、を含んで良い。
【0036】
望ましくは、第1ノードマスタ公開鍵(P1C)及び第2ノードマスタ公開鍵(P1S)は、それぞれの第1ノードマスタ秘密鍵(V1C)及び第2ノードマスタ秘密鍵(V1S)及び生成器(G)の楕円曲線点乗算に基づいて良い。
【0037】
望ましくは、前記方法は、
-前記通信ネットワークを介して、前記第2ノードマスタ公開鍵(P1S)を受信するステップと、
-前記第1ノード(C)に関連付けられたデータストアに、前記第2ノードマスタ公開鍵(P1S)を格納するステップと、を含んで良い。
【0038】
望ましくは、前記方法は、
-第1ノード(C)において、前記第1ノードマスタ秘密鍵(V1C)及び前記第1ノードマスタ公開鍵(P1C)を生成するステップと、
-前記通信ネットワークを介して、前記前記第1ノードマスタ公開鍵(P1C)を前記第2ノード(S)及び/又は他のノードへ送信するステップと、
-前記第1ノード(C)に関連付けられた第1データストアに、前記第1ノードマスタ秘密鍵(V1C)を格納するステップと、を含んで良い。
【0039】
望ましくは、前記方法は、
-前記通信ネットワークを介して、前記第2ノードへ、共通シークレット(CS)を決定する方法のために、共通生成器(G)と共に共通楕円曲線暗号(ECC)システムを使用することを示す通知を送信するステップと、を含んで良く、
-前記第1ノードマスタ秘密鍵(V1C)及び前記第1ノードマスタ公開鍵(P1C)を生成する前記ステップは、
-前記共通ECCシステムにおいて指定される許容範囲内のランダム整数に基づき、前記第1ノードマスタ秘密鍵(V1C)を生成するステップと、
-次式:P1C=V1C×G従い、前記第1ノードマスタ秘密鍵(V1C)及び前記共通生成器(G)の楕円曲線点乗算に基づき、前記第1ノードマスタ公開鍵(P1C)を決定するステップと、
を含む。
【0040】
望ましくは、前記方法は、
-前記メッセージ(M)のハッシュを決定することに基づき、前記決定キー(DK)を決定するステップ、を含んで良く、
第1ノード第2秘密鍵(V2C)を決定する前記ステップは、次式:V2C=V1C+DKに従い、前記第1ノードマスタ秘密鍵(V1C)及び前記決定キー(DK)のスカラ和に基づき、
第2ノード第2公開鍵(P2S)を決定する前記ステップは、次式:P2S=P1S+DK×Gに従い、前記決定キー(DK)及び前記共通生成器(G)の楕円曲線点乗算に前記第2ノードマスタ公開鍵(P1S)を楕円曲線点加算することに基づく。
【0041】
望ましくは、決定キー(DK)は、前の決定キーのハッシュを決定することに基づいて良い。
【0042】
第1非対称暗号ペア及び第2非対称暗号ペアは、それぞれ、前の第1非対称暗号ペア及び前の第2非対称暗号ペアの関数に基づいて良い。
【0043】
ある実施形態又は態様に関連して上述した任意の特徴は、任意の他の実施形態又は態様に関連して使用されて良い。
【0044】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。
【図面の簡単な説明】
【0045】
本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【
図1】複数のコンピューティング装置を含むP2Pネットワークを示す。
【
図2A】システムに関与するパーティの相対位置を示す。
【
図4】トランザクションとしてコリンによる投資の申し出を示す。
【
図5】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【
図6】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【
図7】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【
図8】コリン、ボブ、メアリ、フランクによる投資への応札を示す。
【
図9-1】コリンへの調達される資金の発行、及び投資家に発行された単位の発行を詳述するトランザクションを示す。
【
図9-2】コリンへの調達される資金の発行、及び投資家に発行された単位の発行を詳述するトランザクションを示す。
【
図10】コリンによる投資に対する報酬の生成を示す。
【
図11】コリン、ボブ、メアリ、フランクに対する報酬の生成を示す。
【
図12】資産についてシステムにより生成されるメタデータを示す。
【
図13】ジェーンによるボブからの購入を特徴付けるトランザクションを示す。
【
図14】ボブからジェーンへ所有権を発行するトランザクションを示す。
【
図15】ジェーンの資産に対する報酬が、生成された資産により返されることを可能にするトランザクションを示す。
【
図16】資産に対して生成された第2投資に関する資産メタデータを示す。
【
図17】家を含む不動産の設立に関する資産メタデータを示す。
【
図18】ブロックチェーン上で財産を生成するトランザクションを示す。
【
図19】第1家屋がアリスに発表されるトランザクションを示す。
【
図20】アリスが第1家屋から賃貸収入を生成するトランザクションを示す。
【
図21】報酬が投資に対して支払われることを可能にするトランザクションを示す。
【
図22】アリスが彼女の投資の一部を売ることを可能にするトランザクションを示す。
【
図23】賃貸収入が投資に対して生成されることを可能にするトランザクションを示す。
【発明を実施するための形態】
【0046】
本発明の1又は複数の実施形態は、財産又は他の資産の最終所有者が該資産に対する資金を借りられるようにし得る。これは、投資家への報酬が利子の支払を通じて決定されることを要求しない方法で、達成でき、無利子形式の融資に準拠させる。
【0047】
資産をトークン化することにより、資産の所有権を資産の使用から分離することが可能である。したがって、所有者(又は「制御部」)及び彼らの資産は、本発明の範囲内において、2つの別個のエンティティになる。結果として、所有者は、より強力且つ柔軟な方法で資産を使用し、制御し、管理できる。例えば、彼らは、他のパーティに資産を下請けに出すことができる。
【0048】
これを達成するために、本発明は、所有者からの資産の別個のアドレスの使用を含んで良い。これは、実質的に、「資産の公開鍵を生成する」と題された章で後述する決定サブキー処理を用いて生成できる。1又は複数の実施形態では、アドレスは、ブロックチェーンアドレスである。望ましくは、これは、マスタアドレス(キー)から導出されるサブアドレスとして生成される。マスタキーは、資産の制御部/所有者に属し又はそれに関連付けられて良い。
【0049】
更に、取引構造を実装するスマートコントラクトが生成される。スマートコントラクトは、他者が資産の中で投資に応札することを可能にする。
【0050】
追加スマートコントラクトも、財産/資産に対して登録され、ブロックチェーン上に記録され得る。例えば、誰かが、財産を自身で賃貸する、財産に関連する特定サービス又は財産への金融投資の実現を提供する。
【0051】
財産への投資家は、次に、報酬を受け取り、又は、財産の維持に関連するコストを支払うことができる。
【0052】
本発明は、資産の最終所有者(又は、取引の条項がどのように構造化されるかである場合に、取引の大多数の現在所有者)に以下を可能にする。
・必要な場合には彼らの所有権が隠されるように、したがって、ネットワークユーザに匿名が提供されるように、かれらの資産をブロックチェーン上に提示する。
・資産の彼らの株(share、持分)の全部又は一部を、別の投資家へ売り、転送し又は交換する。
・最終所有者への参照を伴わず、公開市場により設定された価格で、投資家間で資産の取引を可能にする。
・資産所有権が、現在投資家に支払可能な報酬を生成することを可能にする。
・資産が、その費用を現在投資家から取り戻すことを可能にする。
・投資を買い戻す(元の投資取引自体の条項を前提として)。
・現存の合計単位数を増大することを通じて(権利発行と類似する)、又は資産に対する追加投資を生成することにより、資産に対する追加投資を調達する。
【0053】
以下の利益は、本発明によるシステムにより実現され得る。
【0054】
有限資金を有する投資家が、固定単位型投資信託又は不動産投資信託会社(Real Estate Investment Trust:REIT)の必要を打ち消す方法で、財産に投資できる。これは、財産の所有者がスマートコントラクトの中で、どんな応札が受付可能であるかを規定するからである。したがって、投資がそれらに対するものであるかどうかを決定することは、投資家次第である。取引の特性に依存して、より小さな投資家が、従来の投資方法を用いては容易に利用できなかった投資にアクセスすることが可能になる。
・高利方式で投資することを妨げる道徳上又は宗教的信念を有する投資家は、全ての報酬がスマートコントラクトの前に公表されるので、そうすることができる。したがって、どんな金融報酬があるかが前もって100%透過である。
【0055】
実施形態を実装するために使用できるシステムは、
図1に示すようなP2Pネットワークを含んで良い。
図1は、P2Pネットワークを形成するために構成される複数のコンピュータを示す。
【0056】
ブロックチェーンは、「ノード」又は「ピア」として知られる相互接続されたコンピューティング装置の間でワーク又はタスクを共有する分散型アーキテクチャを有するP2Pネットワークである。このようなネットワークは、どの個別コンピュータも「責任がある」として指定されない分散型である。近年、合意に基づくビットコインブロックチェーン及びビットコインに発想を得た変形の実装のためにP2Pネットワークが使用されている。
【0057】
<用語>
以下の用語は、本願明細書で使用され、以下の意味に従い解釈される。
【表1】
【0058】
図2Aには、記載されるシステムの使用において、これらの個々のものの相対的な位置付けが示される。
【0059】
本発明は、財産の購入の文脈で記載されるが、これは限定を意図せず、本発明が種々の目的又は用途のために有利に使用でき、種々の技術的利点を提供することが理解されるべきである。
【0060】
<シナリオ1-財産購入>
図3~8は、コリンという名の買い手が原価1000BTCの財産を購入する処理を示す。
【0061】
図3は、コリンが財産の購入を設定できるようにするトランザクションを示す。これは、招待が開始されることを可能にするシードトランザクションとして動作する。
【0062】
コリンは、他の投資家と共に、単位信託協定を用いて、原価1000BTCの財産を購入したいと望む。コリンは、適切にプログラムされたコンピューティング(クライアント)装置を用いてトランザクションメタデータを生成する。
【0063】
トランザクションは、トランザクションメタデータが財産の詳細事項を記述し、所有者に又は彼の所有する持分に言及しない方法で、構成される。
【0064】
トランザクションメタデータは、買い手が購入原価の最大51%まで出資することを設定し、それにより、支配持分を保有するが、投資家から追加の49%を調達する。この投資の報酬では、投資家の各々は、現在の市場価格にリンクされた6ヶ月毎の「賃貸」収入を得る。トランザクションメタデータは、
図4に示すトランザクションとしてブロックチェーンに公開される。
【0065】
システムは、以下を詳細に記述するスマートコントラクトを生成する。
・投資ポットの合計サイズ(1000BTC)
・単位数(100)、及びこれらの単位の「額面」価格(10BTC)
・投資が無制限である事実(例えば、終了日が定められない)
・(コリンが財産を売ることをカバーするために)投資家に返される単位の「額面」価格により、任意の時点でトリガされ得る中断条項がある
・6ヶ月毎の、報酬及び計算ルールの、報酬条件
合計4人の投資家が、必要額1000BTCの投資を売り出す。これらの投資家のうちの1人がコリンである(彼が基礎となる資産を制御し続けることを保証する大多数の出資額を提示する事実上の所有者である)。他の投資家は、必要額1000BTCの投資のうち230BTCを提示するボブ、必要額1000BTCの投資のうち90BTCを提示するメアリ、必要額1000BTCの投資のうち170BTCを提示するフランク、である。単位数は、コリン(51単位)、ボブ(23単位)、メアリ(9単位)、フランク(17単位)に比例して、システムにより割り当てられる。コリン、ボブ、メアリ、フランクからの入札を示すトランザクションは、
図5~8に示される。
【0066】
図9に示すように、資産は、トランザクションID ASSET-S1-T3の中で、調達された資金をコリンに発行する。ASSET-S1-T3は、
図5~8に示されるトランザクションの各々をインプットとして受信し、ASSET-S1-T3のアウトプットの中で、単位がコリン、ボブ、メアリ、及びフランクに発行される。
【0067】
つまり、トランザクションASSET-S1-T3は、同じトランザクションの中で2つの機能を実行する。それは、先ず、調達された資金を集約してコリンに渡し、同時に投資家コリン、ボブ、メアリ、及びフランクに資産のうちの単位を発行する。
【0068】
コリンがASSET-S1-T3からの彼のアウトプットをアンロックするために、彼は、以下のRedeemスクリプトのハッシュに署名しなければならない:
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Colin PubK-Asset OP_6 OP_CHECKMULTISIG
ボブがASSET-S1-T3からの彼のアウトプットをアンロックするために、彼は、以下のRedeemスクリプトのハッシュに署名しなければならない:
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Bob PubK-Asset OP_6 OP_CHECKMULTISIG
メアリがASSET-S1-T3からの彼女のアウトプットをアンロックするために、彼女は、以下のRedeemスクリプトのハッシュに署名しなければならない:
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Mary PubK-Asset OP_6 OP_CHECKMULTISIG
フランクがASSET-S1-T3からの彼のアウトプットをアンロックするために、彼は、以下のRedeemスクリプトのハッシュに署名しなければならない:
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Frank PubK-Asset OP_6 OP_CHECKMULTISIG
【0069】
周期的に、資産は、持分報酬毎に計算され、次に個々の所有権をカバーするために拡大される基礎となる投資について報酬を生成する。現在の所有権位置は、資産により直接維持される、又は資産により生成された基礎発行トランザクション(ASSET-S1-T3)からブロックチェーン上の資産トランザクションをスキャンすることにより得られる。本シナリオでは、
図10に示すように、コリン(資産の所有者)はトランザクションID colin-S1-T3を用いて投資家に返すべき資金を提供すると仮定する。このトランザクションは、
図11に示されるように、報酬を生成するために、トランザクションASSET-S1-T3へのインプット(アウトプットインデックスIDX-00を有するCOLIN-S1-T3)として使用される。これは事実である必要はない。実際には、これらの資金の源は何であっても良いが、報酬を計算し支払うことが資産の責任であることが重要である。
【0070】
コリンは、Redeemスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【0071】
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Colin OP_5 OP_CHECKMULTISIG
ボブは、Redeemスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【0072】
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Bob OP_5 OP_CHECKMULTISIG
メアリは、Redeemスクリプトのハッシュに署名することにより、彼女の報酬を使用できる。
【0073】
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Mary OP_5 OP_CHECKMULTISIG
フランクは、Redeemスクリプトのハッシュに署名することにより、彼の報酬を使用できる。
【0074】
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Frank OP_5 OP_CHECKMULTISIG
【0075】
<シナリオ2-単位の売り>
本例では、ボブは、シナリオ1で彼が取得した単位のうちの10を得ることを決定し、単位当たり12BTCの価格を交渉する。表は、これを、彼自身とジェーンとの間の双方向トランザクションとして示す。
【0076】
この状況では、2人の投資家の間にトランザクションが存在し、結果として以下を生じる。
【表2】
【0077】
これは、保有状態を以下のようにする(ジェーンが市場価格を支払うと仮定する)。
【表3】
【0078】
システムは、アセットがボブの売りたい単位を取引することを可能にする、アセットのメタデータを生成する。メタデータは
図12に示される。
【0079】
次に、ジェーンがボブの売りたい単位を購入することを可能にする購入トランザクションが生成される。本トランザクション(トランザクションID JANE-S2-T1)は
図13に示される。
【0080】
本トランザクションからのアウトプットを使用するために、ボブはRedeemスクリプトのハッシュに署名する必要がある。
【0081】
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Bob PubK-Asset OP_6 OP_CHECKMULTISIG
これは、基礎となる資産自体を代表して管理されるアカウントではなく、ボブにより制御されるアカウントに支払われる点で、シナリオ1に詳述した元の投資と異なることに留意する。
【0082】
ジェーンからボブへの単位の転送を詳述するトランザクションは、トランザクションID BOB-S2-T1により
図14に示される。第1アウトプットを使用するために、以下のRedeemスクリプトのハッシュは、署名される必要がある。
【0083】
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Jane PubK-Asset OP_6 OP_CHECKMULTISIG
第2アウトプットを使用するために、以下のRedeemスクリプトのハッシュは、署名される必要がある。
【0084】
OP_2 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Bob PubK-Asset OP_6 OP_CHECKMULTISIG
【0085】
資産は、周期的に、持分報酬毎に計算され、次に個々の所有権をカバーするために拡大される基礎となる投資について報酬を生成する。現在の所有権位置は、資産により直接維持される、又は資産により生成された基礎発行トランザクション(トランザクションID ASSET-S1-T3)からブロックチェーン上の資産トランザクションをスキャンすることにより得られる。本シナリオでは、コリン(資産の所有者)は、投資家に返すべき資金を提供する。これは、事実である必要はない。実際には、これらの資金の源は何であっても良いが、報酬を計算し支払うことが資産の責任であることが重要である。
【0086】
資産による報酬の生成は、トランザクションID ASSET-S2-T1により
図15において説明されるトランザクションにおいて示される。トランザクションID COLIN-S2-T1は、5人の投資家の各々への報酬の形式で5個のアウトプットを生成するトランザクションID ASSET-S2-T1へのインプットとして使用される。
【0087】
第1アウトプットからの報酬を使用するために、コリンは以下のRedeemスクリプトの署名ハッシュを提供する必要がある。
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Colin OP_5 OP_CHECKMULTISIG
【0088】
第2アウトプットからの報酬を使用するために、ボブは以下のRedeemスクリプトの署名ハッシュを提供する必要がある。
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Bob OP_5 OP_CHECKMULTISIG
【0089】
第3アウトプットからの報酬を使用するために、メアリは以下のRedeemスクリプトの署名ハッシュを提供する必要がある。
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Mary OP_5 OP_CHECKMULTISIG
【0090】
第4アウトプットからの報酬を使用するために、フランクは以下のRedeemスクリプトの署名ハッシュを提供する必要がある。
OP_1 AssetMetaDataA AssetMetadataB InvestmentMetadataA InvestmentMetadataB PubK-Frank OP_5 OP_CHECKMULTISIG
【0091】
第5アウトプットからの報酬を使用するために、ジェーンは以下のRedeemスクリプトの署名ハッシュを提供する必要がある。
OP_1AssetMetaDataAAssetMetadataBInvestmentMetadataAInvestmentMetadataBPubK-JaneOP_5OP_CHECKMULTISIG
【0092】
つまり、システムは、資産がブロックチェーントランザクションを用いて報酬を自動生成することを可能にする。
【0093】
<シナリオ3-家の修繕>
システムは、既存資産に対する2次投資の生成を可能にする。この状況では、所有者は、資産に適用されるべきエネルギ効率の良い改修を手配することを共同で決定する。これに資金供給する2つの方法がある。
・追加単位が提供され、既存投資家を彼らの保有に比例して第一に優先順位付けする(これは、伝統的な権利発行が運営する方法である)。
・投資家にエネルギ節約の割合が返される新規投資が生成される(資産のエネルギコストに対して50%の節約が毎年支払われる)。
【0094】
同じ資産に対する2投資を必要とするのは2番目の選択肢である。同様に1番目の選択肢を実施して良いが、実際には、追加単位による元の投資の再発行が同じ目的を達成するより効率的な方法である。
【0095】
トランザクションフローの観点から、シナリオ3は、新規投資特性を定めるために、異なる投資メタデータによるシナリオ1の連続繰り返しである。
【0096】
システムは、資産投資メタデータを生成する。資産投資メタデータは
図16に示される。結果として生じるトランザクションは、
図3~11に示されるトランザクションと同じであるが、明らかに
図16により示される投資メタデータを有する。
【0097】
<シナリオ4-全ライフサイクル>
シナリオは、1000BTCの値段の付けられた家屋に対して490BTCを調達したいと望んだコリンにより開始される。第1投資家であるボブは、230BTCを投資したいと望む。第2投資家であるメアリは、90BTCを投資したいと望む。第3投資家であるフランクは、170BTCを投資したいと望む。資産は、それぞれ10BTCの名目価値を有する100個の持分を発行する必要がある。
【0098】
Blockchain Law Associates Ltdという名の会社が、BLA Registrar Ltd(又は略してBLAR)という子会社を設立している。BLARは、権利証書登録のための新しいオンラインのブロックチェーンに基づくサービスを提供しており、彼らの処理及び文書が彼らの管轄内の全ての関連法及び規制に従うことを保証する。更に、彼らは、権利証書の格納及び管理を代行することを、公的な州立株式登録機関により認可されている。
【0099】
これを実施するために、Blockchain Law Associates Ltdは、BLARのために新しいサブキーを生成する。サブキー生成は、実質的に、「資産の公開鍵を生成する」と題された章で後述する方法に従い実行されて良い。
【0100】
NewTech Developers Ltd(NTDL)は、新住宅団地を建築し、全ての権利証書をBLARのレジストリに格納するためにBLARと契約する。団地内の各戸について、BLARは、
(i)上述のようなスマートコントラクトの成文化方式に従い、DHTに格納された取引の形式で、権利証書を生成する。
(ii)P2SH(pay-to-script-hash)に、ビットコイントランザクションとして権利証書を表すトークンを発行する。ここで、ロックスクリプトは、取引メタデータ(DHT位置、及びルックアップハッシュ)、並びにBLAR及びNTDLの両者の公開鍵を含む。
【0101】
ここで、団地にある各財産は、トランザクションBLAR-S4-T1に示される、ブロックチェーン上で該財産を表すUTXOを有する。
【0102】
BLAR-S4-T1は、団地上の各財産について取引を生成する初期トランザクションである。本例では、4個の財産しか存在しないが、これは説明のためであること、及び本願明細書の記載が任意の数の財産を有する団地に適用可能であることが理解される。
【0103】
資産により使用されるメタデータフィールドは、
図17に示される。
図17では、住宅団地の資産投資メタデータが示される。
【0104】
図18には、団地上の各財産について取引を生成する初期トランザクションが示される。留意すべきことに、本例では、メタデータの基礎構造は4個の財産の各々について同じであるが、4個の財産の各々は異なるメタデータを有する。
【0105】
BLAR-S4-T1は、5個のアウトプット、つまり財産の各々について1つと、マイナーの料金と、を生成する。
【0106】
第1アウトプットが使用されるために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House1MetadataA House1MetadataB PubK-NTDL PubK-BLAR OP_4 OP_CHECKMULTISIG
【0107】
第2アウトプットが使用されるために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House2MetadataA House2MetadataB PubK-NTDL PubK-BLAR OP_4 OP_CHECKMULTISIG
【0108】
第3アウトプットが使用されるために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House3MetadataA House3MetadataB PubK-NTDL PubK-BLAR OP_4 OP_CHECKMULTISIG
【0109】
第4アウトプットが使用されるために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House4MetadataA House4MetadataB PubK-NTDL PubK-BLAR OP_4 OP_CHECKMULTISIG
【0110】
システムは、次に、トランザクションのロックスクリプトの未ハッシュバージョン(つまり、公開鍵及びメタデータブロックを示す)によりDHT(取引とは別個のフィールド)を更新するよう動作する。登録機関として、BLARは、内部データベース内に維持される、彼らの顧客(現在はNTDL)に対するKYC情報を維持する必要もある。
【0111】
アリスは、NTDLから新築住宅を買い、トークンを彼女の公称公開鍵へ及び別のP2SHトランザクションの中のBLARの公開鍵へ転送することにより、この交換の部分として、権利証書がアリスに再登録される。取引(及び、ルックアップハッシュ)は、不変のままである。しかしながら、BLARは、ここでも、ロックスクリプト(ここでは、NTDLの物ではなく、アリスの公開鍵を示す)の未ハッシュバージョンによりDHT上の「所有権」フィールドを更新する。BLARは、アリスの詳細事項により、任意の内部KYCデータベースも更新する。ここで、NTDLによる財産の所有権を表すUTXOは、アリスにより制御される新しいUTXOに換算される。これは、
図19のトランザクションNTDL-S4-T1において示される。
【0112】
システムは、次に、第1住宅(トランザクションアウトプット参照BLAR-S4-T1、つまり
図18に示されるトランザクションからの第1アウトプット)がアリスの所有権へと放出されるのを可能にする更なるトランザクションを生成するよう動作する。本例の目的のために、購入トランザクション自体は、フィアット通貨で発生し、示されない。しかしながら、財産権を発行するトランザクションは、
図19に示される。
【0113】
財産権利がアリスに発行されるために、アリスは、以下のRedeemスクリプトの署名されたハッシュを提供しなければならない。
OP_2 House1MetadataA House1MetadataB PubK-Alice PubK-BLAR OP_4 OP_CHECKMULTISIG
【0114】
システムは、アリスが住宅の賃貸収入に対して保証されたサービスプロバイダSPを用いて投資商品を生成することを可能にする。住宅の所有権は、別のパーティに転送されない。住宅の初期割り当ては、アリス自身に戻される。
【0115】
システムは、システムを用いてアリスにより生成された投資商品に関してトランザクションを生成する。トランザクションは
図20に示される。
【0116】
アリスは住宅で暮らすが、彼女は、共有部屋を貸し出すことにより幾らかの賃料も得る。彼女は、また、幾らかの資本を調達したいと望むので、彼女は、投資家への報酬が受け取った賃借料に比例する、この賃貸収入に対して保証された投資を生成することを決定する。
【0117】
彼女のサービスプロバイダ(SP)は、限定された可分取引を発行し、住宅により生成された収入の中に100個の持分を有する。取引は、比例に基づく賃貸料収入及び維持費を含む全ての条項及び条件を指定し、第三者預託サービスが投資を実現するために契約される。
【0118】
投資が最初に生成されると、100個全部の持分が発行され、以後の投資資金引き揚げ(onward divestment)のためにアリスに戻される。この投資に関連付けられたロックスクリプトは、住宅に関連付けられたメタデータ、投資に関連付けられたメタデータ、及びサービスプロバイダの公開鍵及びアリスのための公開鍵を含む。
【0119】
ここで、アリスによる投資の所有権を表すUTXOが生成される。これは、
図20に示すトランザクションSP-S4-T1において示される。
【0120】
初期資産割り当てをアリスに戻すために、アリスは、以下のRedeemスクリプトの署名されたハッシュを提供しなければならない。
OP_2 House1MetadataA House1MetadataB InvestMetadata1 InvestMetadata2 PubK-Alice PubK-SP OP_6 OP_CHECKMULTISIG
【0121】
商品は報酬を生成し、システムは、報酬がアリスに払い出されることを可能にするトランザクションを生成する。トランザクションは
図21に示される。
【0122】
図21に示されるトランザクション(ID SP-S4-T2)は、2つのアウトプットを有する。第1アウトプットは、アリスの公開鍵のハッシュを要求する。第2アウトプットは、SPの公開鍵のハッシュを要求する。
【0123】
関連付けられた自動エージェントは、上述のエージェント確立と題された章で詳述された取引及び手順に従いSPにより設定されて良い。一方で、アリスは投資の唯一の所有者なので、彼女(彼女の公称公開鍵)は、残りの賃料の唯一の受取人であり、契約上の維持費支払の支払人でもある。トランザクションSP-S4-T2は、アリスへのこの返金のために第1収入分配を示し、2000サトシ/持分を想定している。
【0124】
後に、アリスは、P2P交換サービスを用いて49個の持分を提供し、
図22に示すトランザクションにおいて、29個の持分をボブに、20個の持分をイブに売るよう管理する。自動エージェントが既に設定されているので、収入/費用支払の変化は、投資トークンの転送にのみ基づき、透過的に生じる。
【0125】
ここで、発行UTXOは、3個のアウトプットにより使用される。1つはアリスに、1つはボブの公開鍵によりRedeemスクリプトに、1つはイブの公開鍵によりRedeemスクリプトに、戻される。これは、トランザクションALICE-S4-T1において示される。
【0126】
投資報酬の新たな分割を示す第2投資報酬トランザクション(SP-S4-T3)も示される。
【0127】
図22に詳述されるトランザクションは、4個のアウトプットを有する。アリスが第1アウトプットを使用するために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House1MetadataA House1MetadataB InvestMetadata1 InvestMetadata2 PubK-Alice PubK-SP OP_6 OP_CHECKMULTISIG
【0128】
ボブが第2アウトプットを使用するために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House1MetadataA House1MetadataB InvestMetadata1 InvestMetadata2 PubK-Bob PubK-SP OP_6 OP_CHECKMULTISIG
【0129】
イブが第3アウトプットを使用するために、システムは、以下のRedeemスクリプトの署名されたハッシュを必要とする。
OP_2 House1MetadataA House1MetadataB InvestMetadata1 InvestMetadata2 PubK-Eve PubK-SP OP_6 OP_CHECKMULTISIG
【0130】
第4アウトプットは、トランザクションからアリスへ戻されるおつり(change)を使用する。
【0131】
システムは、報酬がSPによりアリス、ボブ、及びイブに支払われることを可能にするトランザクションを生成するよう動作する。このようなトランザクションは
図23に示される。
【0132】
まとめると、システムは、資産及び投資が文書化及び処理の両方の観点で別個のままであることを可能にする。これは、資産自体(住宅)及び投資商品を表す別個のトークンが存在することを意味する。また、別個に管理される別個のDHTも存在する。レジストリDHTは、BLARにより管理され、一方で、投資DHT(及びその参加者である自動エージェント)はアリスのSPにより管理される。
【0133】
システムは、取引が、ブロックチェーントランザクション内のメタデータを用いて、取引を種々の方法でフォーマット化可能にする成文化方式を用いて、参照されることを可能にするよう構成できる。このような適切な成文化方式がここに記載される。
【0134】
<成文化方式>
取引を参照するために使用されるメタデータは、様々な方法でフォーマット化できる。しかしながら、適切な成文化方式がここに記載される。
【0135】
取引の定める権利が取引の保持者又は所有者に贈与される場合、取引は転送可能である。非転送可能取引の一例は、参加者が指名される取引である。つまり、権利が、取引の保持者ではなく特定の指名されたエンティティに贈与される。転送可能取引だけが、この成文化方式で議論される。
【0136】
トークンは、取引により贈与される権利を詳述する又は定める特定取引を表す。本発明に従い、トークンは、ビットコイントランザクションの形式の取引の表現である。
【0137】
この成文化方法は、3つのパラメータ又はデータアイテムを有するメタデータを使用する。このデータは、以下を示し得る:
i)取引の下で利用可能な株(share、持分)の量
(これは、本願明細書で「NumShares」と呼ばれることがある)、
ii)送り手から少なくとも1つの受け手へ転送されるべき転送単位の量(これは、「ShareVal」と呼ばれることがある)、
iii)転送単位の量の値を計算するための因子(これは、「ペギングレート(pegging rate)」と呼ばれることがある)。
【0138】
この成文化方式の利点は、上述の3つのパラメータだけを用いて、ブロックチェーン上のトークンとして取引をカプセル化又は表現するために使用できることである。実際に、取引は、これらの3つのデータアイテムのうちの最小限を用いて指定できる。この成文化方式は任意の種類の転送可能取引のために使用可能なので、共通アルゴリズムが考案され適用され得る。これらのメタデータアイテムの更なる詳細は、以下に提供される。
【0139】
<資産の公開鍵を生成する>
システムは、以下に記載するサブキー生成の方法を用いて資産の公開鍵を生成して良い。
【0140】
図2Bは、通信ネットワーク5を介して第2ノード7と通信する第1ノード3を含むシステム1を示す。第1ノード3は関連する第1処理装置23を有し、及び第2ノード5は関連する第2処理装置27を有する。第1及び第2ノード3、7は、コンピュータ、電話機、タブレットコンピュータ、モバイル通信装置、コンピュータサーバ、等のような電子装置を含んで良い。一例では、第1ノード3はクライアント(ユーザ)装置であって良く、第2ノード7はサーバであって良い。サーバは、デジタルウォレットプロバイダのサーバであって良い。
【0141】
第1ノード3は、第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)を有する第1非対称暗号対に関連付けられる。第2ノード7は、第2ノードマスタ秘密鍵(V1S)及び第2ノードマスタ公開鍵(P1S)を有する第2非対称暗号対に関連付けられる。言い換えると、第1及び第2ノードは、それぞれ、個々の公開-秘密鍵対を保有する。
【0142】
個々の第1及び第2ノード3、7の第1及び第2非対称暗号対は、ウォレットの登録のような登録処理中に生成されて良い。各ノードの公開鍵は、通信ネットワーク5に渡るように、公に共有されて良い。
【0143】
第1ノード3及び第2ノード7の両者において共通シークレット(common secret:SC)を決定するために、ノード3、7は、通信ネットワーク5を介して秘密鍵を通信することなく、それぞれ方法300、400のステップを実行する。
【0144】
第1ノード3により実行される方法300は、少なくとも第1ノードマスタ秘密鍵(V1C)及び生成器値(Generator Value:GV)に基づき、第1ノード第2秘密鍵(V2C)を決定するステップ330を含む。生成器値は、第1ノードと第2ノードとの間で共有されるメッセージ(M)に基づいて良い。これは、以下に詳述するように、通信ネットワーク5を介してメッセージを共有するステップを含んで良い。方法300は、少なくとも第2ノードマスタ公開鍵(P1S)及び生成器値(Generator Value:GV)に基づき、第2ノード第2公開鍵(P2S)を決定するステップ370を更に含む。方法300は、第1ノード第2秘密鍵(V2C)及び第2ノード第2公開鍵(P2S)に基づき、共通シークレット(common secret:CS)を決定するステップ380を含む。
【0145】
重要なことに、同じ共通シークレット(CS)が、方法400により第2ノード7においても決定できる。方法400は、第1ノードマスタ公開鍵(P1C)及び生成器値(Generator Value:GV)に基づき、第1ノード第2公開鍵(P2C)を決定するステップ430を含む。方法400は、第2ノードマスタ秘密鍵(V1S)及び生成器値(Generator Value:GV)に基づき、第2ノード第2秘密鍵(V2S)を決定するステップ470を更に含む。方法400は、第2ノード第2秘密鍵(V2S)及び第1ノード第2公開鍵(P2C)に基づき、共通シークレット(common secret:CS)を決定するステップ480を含む。
【0146】
通信ネットワーク5は、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラネットワーク、無線通信ネットワーク、インターネット、等を含んで良い。これらのネットワークでは、データは電気線、光ファイバ、又は無線のような通信媒体を介して送信されて良く、盗聴者11による様な盗聴を受けやすい場合がある。方法300、400は、通信ネットワーク5を介して共通シークレットを送信することなく、第1ノード3及び第2ノード7が共通シークレットを両方とも独立して決定できるようにする。
【0147】
したがって、1つの利点は、安全でない可能性のある通信ネットワーク5を介して秘密鍵を送信する必要がなく、共通シークレット(CS)が安全に且つ各ノードにより独立して決定できることである。また、共通シークレットは、秘密鍵として(又は秘密鍵の基礎として)使用されて良い。
【0148】
方法300、400は、追加ステップを含んで良い。
図2Fを参照する。方法300は、第1ノード3において、メッセージ(M)及び第1ノード第2秘密鍵(V
2C)に基づき、署名メッセージ(SM1)を生成するステップを含んで良い。方法300は、第1署名メッセージ(SM1)を通信ネットワークを介して第2ノード7へ送信するステップ360を更に含む。一方、第2ノード7は、第1署名メッセージ(SM1)を受信するステップ440を実行して良い。方法400は、第1署名メッセージ(SM2)を第1ノード第2公開鍵(P2C)により検証するステップ450、及び第1署名メッセージ(SM1)を検証するステップの結果に基づき第1ノード3を認証するステップ460を更に含む。有利なことに、これは、第2ノード7が、(第1署名メッセージが生成された場所である)意図された第1ノードが第1ノード3であることを認証することを可能にする。これは、第1ノード3だけが、第1ノードマスタ秘密鍵(V
1C)へのアクセスを有する、したがって、第1ノード3だけが、第1署名メッセージ(SM1)を生成するための第1ノード第2秘密鍵(V
2C)を決定できるという仮定に基づく。理解されるべきことに、同様に、第2署名メッセージ(SM2)は、第2ノード7において生成され、第1ノード3へ送信され得る。したがって、ピアツーピアシナリオにおけるように、第1ノード3は、第2ノード7を認証できる。
【0149】
第1ノードと第2ノードの間のメッセージ(M)の共有は、様々な方法で達成されて良い。一例では、メッセージは、第1ノード3において生成されて良く、次に通信ネットワーク5を介して第2ノード7へ送信される。代替として、メッセージは、第2ノード7において生成されて良く、次に通信ネットワーク5を介して第1ノード3へ送信される。幾つかの例では、メッセージ(M)は公開されて良く、したがってセキュアでないネットワーク5を介して送信されて良い。1又は複数のメッセージ(M)は、データストア13、17、19に格納されて良い。当業者は、メッセージの共有が様々な方法で達成できることを理解する。
【0150】
有利なことに、共通シークレット(CS)の再生成を可能にするレコードは、そのレコード自体が秘密に格納され又はセキュアに送信される必要がなく、保持され得る。
【0151】
<登録の方法100、200>
登録の方法100、200の一例は、
図2Dを参照して記載される。
図2Dでは、方法100は第1ノード3により実行され、方法200は第2ノード7により実行される。これは、それぞれ第1ノード3及び第2ノード7のために第1及び第2非対称暗号対を確立するステップを含む。
【0152】
非対称暗号対は、公開鍵暗号化で使用されるような、関連付けられた秘密鍵及び公開鍵を含む。本例では、非対称暗号対は、楕円曲線暗号システム(Elliptic Curve Cryptography:ECC)及び楕円曲線演算の特性を用いて生成される。
【0153】
方法100、200では、これは、共通ECCシステムに合意している110、210、且つ基点(G)を用いる、第1ノード及び第2ノードを含む(注:基点は、共通生成器として参照され得るが、用語「基点」は、生成器値GVとの混同を避けるために使用される)。一例では、共通ECCシステムは、ビットコインにより使用されるECCシステムであるsecp256K1に基づいて良い。基点(G)は、選択され、ランダムに生成され、又は割り当てられて良い。
【0154】
ここで第1ノード3について考えると、方法100は、共通ECCシステム及び基点(G)を解決するステップ110を含む。これは、第2ノード7又は第3ノード9から、共通ECCシステム及び基点を受信するステップを含んで良い。代替として、ユーザインタフェース15は、第1ノード3に関連付けられる。これにより、ユーザは、共通ECCシステム及び/又は基点(G)を選択的に提供できる。更に別の代替案では、共通ECCシステム及び/又は基点(G)の一方又は両方が、第1ノード3によりランダムに選択されて良い。第1ノード3は、通信ネットワーク5を介して、基点(G)と共に共通ECCシステムを使用することを示す通知を、第2ノード7へ送信して良い。また、第2ノード7は、共通ECCシステム及び基点(G)の使用に対する肯定応答を示す通知を送信することにより、解決して良い210。
【0155】
方法100は、第1ノード3が、第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)を有する第1非対称暗号対を生成するステップ120を更に含む。これは、共通ECCシステムの中で指定された許容範囲の中のランダム整数に少なくとも部分的に基づき、第1マスタ秘密鍵(V1C)を生成するステップを含む。これは、次式に従い第1ノードマスタ秘密鍵(V1C)及び基点(G)の楕円曲線点乗算に基づき、第1ノードマスタ公開鍵(P1C)を決定するステップを更に含む。
P1C=V1C×G (式1)
したがって、第1非対称暗号対は、以下を含む:
V1C:第1ノードにより秘密に保持される第1ノードマスタ秘密鍵。
P1C:公に知らされる第1ノードマスタ公開鍵。
【0156】
第1ノード3は、第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)を、第1ノード3に関連付けられた第1データストア13に格納して良い。セキュリティのために、第1ノードマスタ秘密鍵(V1C)は、鍵が秘密のままであることを保証するために、第1データストア13のセキュアな部分に格納されて良い。
【0157】
方法100は、
図2Dに示すように、第1ノードマスタ公開鍵(P
1C)を通信ネットワーク5を介して第2ノード7へ送信するステップ130を更に含む。第2ノード7は、第1ノードマスタ公開鍵(P
1C)を受信すると220、第1ノードマスタ公開鍵(P
1C)を第2ノード7に関連付けられた第2データストア17に格納して良い230。
【0158】
第1ノード3と同様に、第2ノード7の方法200は、第2ノードマスタ秘密鍵(V1S)及び第2ノードマスタ公開鍵(P1S)を有する第2非対称暗号対を生成するステップ240を含む。第2ノードマスタ秘密鍵(V1S)も、許容範囲内のランダム整数である。また、第2ノードマスタ公開鍵(P1S)は、次式により決定される。
P1S=V1S×G (式2)
したがって、第2非対称暗号対は、以下を含む:
V1S:第2ノードにより秘密に保持される第2ノードマスタ秘密鍵。
P1S:公に知らされる第2ノードマスタ公開鍵。
【0159】
第2ノード7は、第2非対称暗号対を第2データストア17に格納して良い。方法200は、第2ノードマスタ公開鍵(P1S)を第1ノード3へ送信するステップ250を更に含む。また、第1ノード3は、第2ノードマスタ公開鍵(P1S)を受信し140、格納して良い150。
【0160】
理解されるべきことに、幾つかの代案では、それぞれの公開マスタ鍵は、受信され、(信頼できる第三者のような)第3ノード9に関連付けられた第3データストア19に格納されて良い。これは、認証機関のような、公開ディレクトリとして動作する第三者を含んで良い。したがって、幾つかの例では、第1ノードマスタ公開鍵(P1C)は、共通シークレット(CS)が要求されるときだけ、第2ノード7により要求され受信されて良い(逆も同様である)。
【0161】
登録ステップは、初期設定として1度生じるだけで良い。
【0162】
<セッション開始及び第1ノード3による共通シークレットの決定>
共通シークレット(CS)を決定する一例は、
図2Eを参照してここに記載される。共通シークレット(CS)は、第1ノード3と第2ノード7との間の特定のセッション、時間、トランザクション、又は他の目的のために使用されて良く、同じ共通シークレット(CS)を使用することが望ましい又はセキュアでなくて良い。したがって、共通シークレット(CS)は、異なるセッション、時間、トランザクション、等の間で変更されて良い。
【0163】
以下は、上述したセキュアな送信技術の説明のために提供される。
【0164】
[メッセージ(M)を生成する310]
本例では、第1ノード3により実行される方法300は、メッセージ(M)を生成するステップ310を含む。メッセージ(M)は、ランダム、疑似ランダム、又はユーザ定義であって良い。一例では、メッセージ(M)は、Unix時間又はノンス(及び任意の値)に基づく。例えば、メッセージ(M)は次のように与えられ得る。
メッセージ(M)=Unix時間+ノンス (式3)
幾つかの例では、メッセージ(M)は任意である。しかしながら、理解されるべきことに、メッセージ(M)は、幾つかのアプリケーションで有用であり得る(Unix時間、等のような)選択的値を有して良い。
【0165】
方法300は、メッセージ(M)を通信ネットワーク5を介して第2ノード7へ送信するステップ315を含む。メッセージ(M)は秘密鍵についての情報を含まないので、メッセージ(M)は、セキュアでないネットワークを介して送信されて良い。
【0166】
[生成器値(GV)を決定する320]
方法300は、メッセージ(M)に基づき生成器値(Generator Value:GV)を決定するステップ320を更に含む。本例では、これは、メッセージの暗号ハッシュを決定するステップを含む。暗号ハッシュアルゴリズムの一例は、256ビット発生器値(GV)を生成するためにSHA-256を含む。つまり、
GV=SHA-256(M) (式4)
【0167】
理解されるべきことに、他のハッシュアルゴリズムが使用されて良い。これは、セキュアなハッシュアルゴリズム(Secure Hash Algorithm:SHA)ファミリの中の他のハッシュアルゴリズムを含んで良い。幾つかの特定の例は、SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256を含むSHA-3サブセットの中のインスタンスを含む。他のハッシュアルゴリズムは、RIPEMD(RACE Integrity Primitives Evaluation Message Digest)ファミリの中のアルゴリズムを含んで良い。特定の例は、RIPEMD-160を含んで良い。他のハッシュ関数は、Zemor-Tillichハッシュ関数及びナップサック・ハッシュ関数に基づくファミリを含んで良い。
【0168】
[第1ノード第2秘密鍵を決定する330]
方法300は、次に、第2ノードマスタ秘密鍵(V1C)及び生成器値(GV)に基づき、第1ノード第2秘密鍵(V2C)を決定するステップ330を含む。これは、次式に従い第1ノードマスタ秘密鍵(V1C)及び生成器値(GV)のスカラ加算に基づき得る。
V2C=V1C+GV (式5)
したがって、第1ノード第2秘密鍵(V2C)は、ランダム値ではないが、代わりに第1ノードマスタ秘密鍵から確定的に導出される。暗号対の中の対応する公開鍵、つまり第1ノード第2公開鍵(P2C)は、以下の関係を有する。
P2C=V2C×G (式6)
式5から式6にV2Cを代入すると、次式を得る。
P2C=(V1C+GV)×G (式7)
ここで、「+」演算子は楕円曲線点加算を表す。楕円曲線暗号代数は、分配的であり、式7は次式のように表すことができる。
P2C=V1C×G+GV×G (式8)
最後に、(式1)は(式7)に代入され、次式を得る。
P2C=P1C+GV×G (式9.1)
P2C=P1C+SHA-256(M)×G (式9.2)
したがって、対応する第1ノード第2公開鍵(P2C)は、第1ノードマスタ公開鍵(P1C)及びメッセージ(M)の導出可能な所与の知識であり得る。方法400に関して以下に更に詳述するように、第2ノード7は、第1ノード第2公開鍵(P2C)を独立に決定するために、このような知識を有して良い。
【0169】
[メッセージ及び第1ノード第2秘密鍵に基づき、第1署名メッセージ(SM1)を生成する350]
方法300は、メッセージ(M)及び決定した第1ノード第2秘密鍵(V2C)に基づき、第1署名メッセージ(SM1)を生成するステップ350を更に含む。署名メッセージを生成するステップは、メッセージ(M)にデジタル方式で署名するために、デジタル署名アルゴリズムを適用するステップを含む。一例では、これは、第1署名メッセージ(SM1)を得るために、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm:ECDSA)の中でメッセージに第1ノード第2秘密鍵(V2C)を適用するステップを含む。ECDSAの例は、secp256k1、secp256r1、secp384r1、se3cp521r1を有するECCシステムに基づくものを含む。
【0170】
第1署名メッセージ(SM1)は、第2ノード7において対応する第1ノード第2公開鍵(P2C)により検証できる。第1署名メッセージ(SM1)のこの検証は、第1ノード3を認証するために第2ノード7により使用されて良い。これは、方法400において以下に議論される。
【0171】
[第2ノード第2公開鍵を決定する370]’
第1ノード3は、次に、第2ノード第2公開鍵(P2S)を決定して良い370。上述のように、第2ノード第2公開鍵(P2S)は、少なくとも第2ノードマスタ公開鍵(P1S)及び生成器値(GV)に基づいて良い。本例では、公開鍵は、基点(G)との楕円曲線点乗算により秘密鍵として決定されるので370’、第2ノード第2公開鍵(P2S)は、式6と同様に次のように表すことができる。
P2S=V2S×G (式10.1)
P2S=P1S+GV×G (式10.2)
【0172】
式10.2の数学的証明は、第1ノード第2公開鍵(P2C)について式9.1を導出するために上述したものと同じである。理解されるべきことに、第1ノード3は、第2ノード7と独立に第2ノード第2公開鍵を決定できる370。
【0173】
[第1ノード3において共通シークレットを決定する380]
第1ノード3は、次に、第1ノード第2秘密鍵(V2C)及び決定した第2ノード第2公開鍵(P2S)に基づき、共通シークレット(CS)を決定して良い380。共通シークレット(CS)は、第1ノード3により次式により決定されて良い。
S=V2C×P2S (式11)
<第2ノード7において実行される方法400>
第2ノード7において実行される対応する方法400が、ここで説明される。理解されるべきことに、これらのステップのうちの幾つかは、第1ノード3により実行された上述のステップと同様である。
【0174】
方法400は、メッセージ(M)を通信ネットワーク5を介して第1ノード3から受信するステップ410を含む。これは、ステップ315において第1ノード3により送信されたメッセージ(M)を含んで良い。第2ノード7は、次に、メッセージ(M)に基づき生成器値(GV)を決定する420。第2ノード7により生成器値(GV)を決定するステップ420は、上述の第1ノードにより実行されるステップ320と同様である。本例では、第2ノード7は、第1ノード3と独立の、この決定するステップ420を実行する。
【0175】
次のステップは、第1ノードマスタ公開鍵(P1C)及び生成器値(GV)に基づき、第1ノード第2公開鍵(P2C)を決定するステップ430を含む。本例では、公開鍵は、基点(G)との楕円曲線点乗算により秘密鍵として決定されるので430’、第1ノード第2公開鍵(P2C)は、式9と同様に次のように表すことができる。
P2C=V2C×G (式12.1)
P2C=P1C+GV×G (式12.2)
式12.1及び12.2の数学的証明は、式10.1及び10.2について上述したものと同じである。
【0176】
[第2ノード7が第1ノード3を認証する]
方法400は、未確認第1ノード3が第1ノード3であることを認証するために、第2ノード7により実行されるステップを含んで良い。上述のように、これは、第1ノード3から第1署名メッセージ(SM1)を受信するステップ440を含む。第2ノード7は、次に、ステップ430で決定された第1ノード第2公開鍵(P2C)により第1署名メッセージ(SM1)の署名を検証して良い450。
【0177】
デジタル署名の検証は、上述の楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm:ECDSA)に従い行われて良い。重要なことに、第1ノード第2秘密鍵(V2C)により署名された第1署名メッセージ(SM1)は、V2C及びP2Cが暗号対を形成するので、対応する第1ノード第2公開鍵(P2C)によってのみ正しく検証されるべきである。これらの鍵は、第1ノード3の登録で生成された第1ノードマスタ秘密鍵(V1C)及び第1ノードマスタ公開鍵(P1C)において確定するので、第1署名メッセージ(SM1)の検証は、第1署名メッセージ(SM1)を送信する未確認第1ノードが登録中と同じ第1ノード3であることを認証する基礎として使用できる。したがって、第2ノード7は、第1署名メッセージを検証するステップ(450)の結果に基づき、第1ノード3を認証するステップ(460)を更に実行して良い。
【0178】
[第2ノード7が共通シークレットを決定する]
方法400は、第2ノード7が、第2ノードマスタ秘密鍵(V1S)及び生成器値(GV)に基づき、第2ノード第2秘密鍵(V2S)を決定するステップ470を更に含んで良い。第1ノード3により実行されるステップ330と同様に、第2ノード第2秘密鍵(V2S)は、次式に従い、第2ノードマスタ秘密鍵(V1S)及び生成器値(GV)のスカラ加算に基づき得る。
V2S=V1S+GV (式13.1)
V2S=V1S+SHA-256(M) (式13.2)
第2ノード7は、次に、第1ノード3と独立して、次式に基づき、第2ノード第2秘密鍵(V2S)及び第1ノード第2公開鍵(P2C)に基づき、共通シークレット(CS)を決定して良い480。
S=V2S×P2C (式14)
【0179】
[第1ノード3及び第2ノード7により決定された共通シークレット(CS)の証明]
第1ノード3により決定された共通シークレット(CS)は、第2ノード7において決定された共通シークレット(CS)と同じである。式11及び式14が同じ共通シークレット(CS)を提供することの数学的証明が、ここで記載される。
【0180】
第1ノード3により決定された共通シークレット(CS)を考えると、次のように式10.1は式11に代入できる。
S=V2C×P2S (式11)
S=V2C×(V2S×G)
S=(V2C×V2S)×G (式15)
第2ノード7により決定された共通シークレット(CS)を考えると、次のように式12.1は式14に代入できる。
S=V2S×P2C (式14)
S=V2S×(V2C×G)
S=(V2S×V2C)×G (式16)
ECC代数学は可換性なので、次の通り式15及び式16は等価である。
S=(V2C×V2S)×G=(V2S×V2C)×G (式17)
【0181】
[共通シークレット(CS)及び秘密鍵]
共通シークレット(CS)は、ここで、第1ノード3と第2ノード7との間のセキュアな通信のために、対称鍵アルゴリズムにおいて、秘密鍵として又は秘密鍵の基礎として、使用できる。
【0182】
共通シークレット(CS)は、楕円曲線点(xS,yS)の形式であって良い。これは、ノード3、7により合意された標準的な公に知られた演算を用いて、標準的な鍵フォーマットに変換されて良い。例えば、xS値は、AES256暗号鍵として使用され得る256ビットの整数であって良い。これは、更に、160ビットの長さの鍵を必要とする任意のアプリケーションのために、RIPEMD160を用いて160ビットの整数に変換され得る。
【0183】
共通シークレット(CS)は、必要に応じて決定されて良い。重要なことに、共通シークレット(CS)はメッセージ(M)に基づき再決定できるので、第1ノード3は共通シークレット(CS)を格納する必要がない。幾つかの例では、使用されるメッセージ(M)は、マスタ秘密鍵のために要求されるのと同レベルのセキュリティを有しないデータストア13、17、19(又は他のデータストア)に格納されて良い。幾つかの例では、メッセージ(M)は公に利用可能であって良い。
【0184】
しかしながら、幾つかのアプリケーションに依存して、共通シークレット(CS)が第1ノードマスタ秘密鍵(V1C)と同じくらいセキュアに保たれるならば、共通シークレット(CS)は、第1ノードに関連付けられた第1データストア(X)に格納され得る。
【0185】
有利なことに、この技術は、単一のマスタキー暗号対に基づき、複数のセキュアな秘密鍵に対応し得る複数の共通シークレットを決定するために使用できる。
【0186】
<生成器値(鍵)の階層構造>
例えば、一連の連続する生成器値(GV)が決定されて良い。ここで、各連続GVは、前の生成器値(GV)に基づき決定されて良い。例えば、連続する専用鍵を生成するためにステップ310~370、410~470を繰り返す代わりに、ノード間の事前合意により、生成器値の階層構造を確立するために、前に使用された生成器値(GV)が両方のパーティにより繰り返し再ハッシュされ得る。実際に、メッセージ(M)のハッシュに基づく生成器値は、次世代生成器値(GV’)のための次世代メッセージ(M’)になり得る。これを行うことは、計算されるべき共通シークレットの連続生成を可能にし、更なるプロトコルにより確立される送信、特に共通シークレットを生成する毎に複数のメッセージの送信の必要がない。次世代共通シークレット(CS’)は、以下のように計算できる。
【0187】
先ず、第1ノード3及び第2ノード7の両者が、次世代生成器値(GV’)を独立して決定する。これは、ステップ320及び420と同様であるが、次式により適応される。
M’=SHA-256(M) (式18)
GV’=SHA-256(M’) (式19.1)
GV’=SHA-256(SHA-256(M)) (式19.2)
【0188】
第1ノード3は、次に、次世代の第2ノード第2公開鍵(P2S’)及び第1ノード第2秘密鍵(V2C’)を上述のステップ370及び330と同様であるが次式により適応され、決定して良い。
P2S’=P1S+GV’×G (式20.1)
V2C’=V1C+GV’ (式20.2)
【0189】
第2ノード7は、次に、次世代の第1ノード第2公開鍵(P2C’)及び第2ノード第2秘密鍵(V2S’)を上述のステップ430及び470と同様であるが次式により適応され、決定して良い。
P2C’=P1C+GV’×G (式21.1)
V2S’=V1S+GV’ (式21.2)
【0190】
第1ノード3及び第2ノード7は、次に、それぞれ、次世代共通シークレット(CS’)を決定して良い。特に、第1ノード3は、次式により次世代共通シークレット(CS’)を決定する。
CS’=V2C’×P2S’ (式22)
【0191】
第2ノード7は、次式により次世代共通シークレット(CS’)を決定する。
CS’=V2S’×P2C’ (式23)
【0192】
更なる世代(CS’’、CS’’’、等)は、チェーン階層構造を生成するために同じ方法で計算できる。この技術は、第1ノード3及び第2ノード7の両者が元のメッセージ(M)又は最初に計算された生成器値(GV)、及びそれがどのノードに関連するか、を見失わないことを要求する。これは公に知られた情報なので、この情報の保有に関してセキュリティ問題は存在しない。したがって、この情報は、(ハッシュ値を公開鍵にリンクする)「ハッシュテーブル」に保持され、(例えばTorrentを用いて)ネットワーク5に渡り自由に配布されて良い。更に、階層構造内の任意の個々の共通シークレット(CS)が今までに解決されていない場合、これは、秘密鍵V1C、V1Sがセキュアなままであるならば、階層構造の中の任意の他の共通シークレットのセキュリティに影響しない。
【0193】
<鍵の木構造>
上述のようなチェーン(線形)階層構造と同様に、木構造の形式の階層構造が生成できる。木構造によると、認証鍵、暗号鍵、署名鍵、支払鍵、等のような異なる目的の様々な鍵が決定されて良い。それにより、これらの鍵は、全て単一のセキュアに維持されるマスタキーにリンクされる。これは、種々の異なる鍵を有する木構造901を示す
図12に図示される。これらの各々は、別のパーティと共有されるシークレットを生成するために使用できる。枝分かれする木は、幾つかの方法で達成でき、それらのうちの3つが以下に記載される。
【0194】
(i)マスタキー・スポーニング
チェーン階層構造では、乗算した再ハッシュしたメッセージを元のマスタキーに加算することにより、各々の新しい「リンク」(公開/秘密鍵ペア)が生成される。例えば(明確性のため、第1ノード3の秘密鍵のみを示す)、
V2C=V1C+SHA-256(M) (式24)
V2C’=V1C+SHA-256(SHA-256(M)) (式25)
V2C’’=V1C+SHA-256(SHA-256(SHA-256(M))) (式26)
等である。
【0195】
枝を生成するために、任意の鍵がサブマスタキーとして使用できる。例えば、V
2C’は、正規のマスタキーに対して行われるように、ハッシュを加算することにより、サブマスタキー(V
3C)として使用できる。
V
3C=V
2C’+SHA-256(M) (式27)
サブマスタキー(V
3C)は、それ自体が、次世代鍵(V
3C’)を有して良い。例えば次式の通りである。
V
3C’=V
2C’+SHA-256(SHA-256(M)) (式28)
これは、
図13に示すマスタキー・スポーニング(spawning)方法を用いて、木構造903を提供する。
【0196】
(ii)論理的関連付け
この方法では、木の中の全てのノード(公開/秘密鍵ペア)は、チェーンとして(又は任意の他の方法で)生成され、木の中のノード間の論理的関係は、ポインタを用いて木の中の各ノードが木の中の自身の親ノードに単純に関連付けられるテーブルにより維持される。したがって、ポインタは、セッションの共通シークレットキー(CS)を決定するために、関連する公開/秘密鍵ペアを決定するために使用できる。
【0197】
(iii)メッセージ多様性
新しい公開/秘密鍵ペアは、チェーン又は木の任意のポイントに新しいメッセージを導入することにより、生成できる。メッセージ自体は、任意であって良く、又は何らかの意味若しくは関数を伝達して良い(例えば、それは、「現実の」銀行口座番号に関連して良い、等である)。新しい公開/秘密鍵ペアを形成するためのこのような新しいメッセージがセキュアに保持されることが望ましい場合がある。
【0198】
<エージェントの実装の例>
本発明は、取引処理の自動化された態様を実行するために、計算リソース又はエージェント(「オラクル(oracle)」として参照される場合が多い)を利用できる。適切なエージェントの一例が以下に提供されるが、他の実装が使用されて良い。
【0199】
エージェントは、チューリング(Turing)機械の実装において非消去可能テープとしてブロックチェーンを使用して、ブロックチェーンと連携して動作して良い。このエージェントは、ブロックチェーンネットワークと並列に実行し、(ループ)処理の実行を監督し及び扱う。ループ処理は、例えば装置又はシステムの処理又は制御の自動化のような所与のタスクを実行するよう設計される。この並列リソースは、ブロックチェーンの状態を監視し、トランザクションをブロックチェーンに書き込ませることができる。ある意味で、これは、ブロックチェーンをチューリング機械の非消去可能テープとして利用し、以下の定義及び特徴を有する。
1.ブロックチェーンは、チューリング機械のテープとして作用する。ブロックチェーンの中の各トランザクションは、テープ上のセルを表す。このセルは、有限なアルファベットからの記号を含み得る。
2.テープヘッドは、ブロックチェーン上に既に書き込まれているブロックから情報を読み出すことができる。
3.テープヘッドは、多くのトランザクションを含む新しいブロックを、ブロックチェーンの終わりに書き込むことができる。しかしながら、それらは、既に存在するブロックに書き込むことができない、このように、ブロックチェーンテープは非消去可能である。
4.各トランザクションのマルチシグネチャのP2SH(pay-to-script-hash)トランザクションの部分として格納され得る。
【0200】
エージェントに重要な機能は、ブロックチェーンの現在状態を監視する自動エンティティとして作用することである。これは更に、任意のオフブロックソースから、信号又は入力を受信できる。ブロックチェーン状態及び/又は受信した入力に依存して、エージェントは特定動作を実行して良い。エージェントは、どの動作が実行されるべきかを決定する。これらは、「現実世界」(つまり、オフブロック)の中の作用、及び/又(新しいトランザクションを生成する及びブロードキャストするような)はブロックチェーンに対する作用を含んで良く又は含まなくて良い。エージェントが取る作用は、ブロックチェーン状態によりトリガされて良い。エージェントは、更に、ビットコインネットワークにブロードキャストされるべき次のトランザクションセットについて決定し、後にブロックチェーンに書き込んで良い。
【0201】
エージェントの作用は、並列に且つ同時にブロックチェーン(例えば、ビットコイン)ネットワークに対して実行する。ある意味で、これは、ブロックチェーン(例えば、ビットコイン)スクリプトの機能を格納する。この連続監視は、結合されたエージェント及びブロックチェーンシステムチューリング完全(Turing Complete)を作成する「ループ」制御フロー構成を実施する。
【0202】
チューリング機械は、以下の2つのスタックを含む。
・データスタック:これは、上述のようにブロックチェーンにより表される。
・制御スタック:これは、エージェント機能により表される。これは、繰り返し制御フロー機能に関連する情報を格納する。
【0203】
制御スタックのデータスタックからの分離は、無限ループがビットコイン中核で生じることを防ぎ、サービス拒否攻撃を軽減するという利点を提供する。
【0204】
エージェントは、任意の種類のループ構成(例えば、FOR-NEXT、REPEAT UNTIL、等)によりループ可能なサブルーチンを管理し及び実行する。本願明細書に記載の説明のための実施形態は、「繰り返し(repeat)」構成の一例を用いる処理を含む。ユーザは、インデックス(i)及び限界(J)を指定して良い。これらはそれぞれ、現在の反復番号(標準的に0から開始してカウントされる)、及び繰り返しループの合計反復数、を表す。
【0205】
各反復について、
1.インデックスが1だけ増大する。終了条件については、インデックスが限界に達すると、反復は停止する。
2.「if condition then action([条件]ならば[動作]する)」(ICTA)文を含むコードブロックが実行される。動作は、ブロックチェーン上の又は外の任意の動作であって良い。
3.このサブルーチンの暗号ハッシュが計算される。これは、トランザクションの部分としてブロックチェーンに格納できる。ハッシュは各コードにユニークなので、どのコードが使用されているかの検証を可能にする。
【0206】
ループ本体は、コードブロックを含む。各コードブロックは、「if condition then action([条件]ならば[動作]する)」(ICTA)文を含む。これは、以下に一致するトランザクションについて、ブロックチェーンの現在状態を監視する。
・開始又はトリガ条件(例えば、特定日に達したとき)、
・繰り返し条件(つまり、前の反復に関連付けられたメタデータ又はハッシュ)、
・停止条件(つまり、ループの最後の反復)。
【0207】
ICTA文は、エージェントが、ブロックチェーンの現在状態に基づき、次のトランザクションについて決定することを可能にする。次のトランザクションを生成することは、トランザクションをビットコインネットワークにブロードキャストすること、及び新しいトランザクションをブロックチェーンに書き込むことを含む。これは、この反復が実行されたことの記録として作用する。トランザクションがブロックチェーンに書き込まれると、マネジャは、続いて、前の反復が実行されブロックチェーンに書き込まれたことを知り、次の反復を実行するだろう。後者は、インデックス(i)がコードブロックの中で指定された限度(J)に達するとき、繰り返しループが存在するまで継続する。
【0208】
各トランザクションは、再利用可能な方法で、ブロックチェーンに保存される。ビットコイン実装では、トランザクションの中の各署名は、SIGHASHフラグを付加される。このフラグは、異なる値を取ることができる。これらの値の各々は、この署名の所有者の関与無しに、トランザクションの他の部分が変更され得るか否かを示す。再利用可能トランザクションは、トランザクションインプットのうちの1つの中にSIGHASHフラグ「SigHash_AnyoneCanPay」を有する。これは、誰もがトランザクションのインプットに貢献することを許容する。このパラメータは、エージェントのICTA関数が、複数回、異なるインプットで、実行され且つ繰り返されることを可能にする。この関数の使用は、例えば再利用トランザクションの複製により、認可パーティに制限できる。
【0209】
ICTAコードブロックの「If condition」部分は、任意の種類の条件を監視できる。これは、他のプログラミング言語(例えば、C、C++、Jave)と同様であり、ブロックチェーンに格納された情報に限定されない。例えば、これは、日付及び時間(つまり、特定の日時に達したとき)を監視し、又は天気(つまり、気温が10℃より低く且つ雨が降っているとき)を監視し、取引又は信用の条件(つまり、企業Aが企業Bを買うとき)を監視し得る。
【0210】
ICTAコードブロックの「Then action」部分は、多数の動作を実行できる。本発明は、取り得る動作の数又は種類に関して限定されない。動作は、ブロックチェーン上のトランザクションに限定されないが、動作に関連するメタデータを含むトランザクションは、ブロックチェーンに書き込まれて良い。
【0211】
メタデータは、任意の形式であり得る。しかしながら、一実施形態では、メタデータは、動作に関連するより多くのデータ又は指示を含むファイルへのハイパーリンクを格納して良い。メタデータは、動作に関連するより多くのデータ又は指示を含むハッシュテーブルへのハイパーリンク、及びハッシュテーブルに対する検索キーとして作用する動作のハッシュの両方を格納して良い。
【0212】
エージェントの制御スタックは、各ユーザの必要に特化した多数の方法で実装できる。例えば、制御スタックの繰り返しループは、任意のチューリング完全言語に基づき得る。言語の1つの可能な選択は、Forth型スタックに基づく言語である。この言語を使用する利点は、制御スタックを、既知であり且つ広く使用されているビットコインスクリプトとプログラミング型において一貫性を保つことである。
【0213】
<ビットコインスクリプトの交互形式スタック(Alternate Stack)をデータ記憶空間として使用する>
ビットコインスクリプトは、コマンド、更に呼び出されるオペコード、を含む。これらは、ユーザが、データを「alt stack」として知られる交互形式スタックに移動させることを可能にする。
【0214】
オペコードは、次の通りである。
・OP_TOALTSTACK。これは、データを主スタックの最上部からalt stackの最上部に移動させる。
・OP_FROMALTSTACK。これは、データをalt stackの最上部から主スタックの最上部に移動させる。
【0215】
これは、計算機にデータを格納させる「記憶(memory)」機能と同様に、中間計算ステップからのデータをalt stackに格納させる。一実施形態では、alt stackは、小さな計算タスクを解決するようビットコインスクリプトを構成するために、及び結果を計算に返すために、使用される。
【0216】
<エージェントを管理するためにコードレジスタを使用する>
エージェントは、また、自身の所有し且つ実行する全てのコードのレジストリを管理する。このレジストリは、特定キーを特定値にマッピングするルックアップテーブル又は辞書のように構造化される。キー及び値ペアは、それぞれ、コードブロックのハッシュ(H1)及びコードが格納された場所のIPv6アドレスにより表される。キーH1を用いてコードブロックを読み出すために、ルックアップテーブルが使用されて、関連する値(これは、コードの格納されている場所である)を読み出し、及びそれに応じてソースコードを読み出す。コードレジストリの実装は変化し得る。
【0217】
<エージェントのコードのトランザクションメタデータ、及びループの再スポーニング>
特定の反復でエージェントのループを再スポーニングするために必要な情報は、ブロックチェーンに記録されたトランザクションの中にメタデータとして格納される。
【0218】
このように、ブロックチェーン上のトランザクションは、エージェント上で実行されているループの所与の反復に関する情報を格納し、又はそれへのアクセスを提供する。この情報は、ループに関連付けられた任意の変数の値、例えばインデックスi、及び任意の他の必要な情報、例えばコードブロック内で使用されるパラメータの値又は更に要求される情報がアクセス可能な場所の位置関連データ、を含み得る。
【0219】
メタデータ自体は、トランザクションの中のマルチシグネチャのP2SH(pay-to-script-hash)スクリプトの部分として格納される。トランザクションと共に記録されたメタデータは、コードが過去にどのように実行されたかのオーディットトレイルを記録する能力も与える。
【0220】
エージェントが各反復で繰り返しループコードブロックを再スポーニングできる幾つかの方法が存在する。コードブロックは、エージェント自体にハードコードされて良く、又は秘密に若しくは公に利用可能なファイルに格納でき、又は、秘密若しくは公開ハッシュテーブルファイル上のエントリとして格納され得る、又はこれらの組み合わせである。コードブロックは、ハードコードされた変数に固定され、又は固定であるが、移植可能なパラメータを含み得る。パラメータは、任意のデータフォーマットの単一値であって良く、又は小さなコードチャンクであって良く、又はそれらの組み合わせであって良い。パラメータは、トランザクション(例えば、ビットコイントランザクション)の中のメタデータから、又は内部データベース又は秘密/公開ファイル又はハッシュテーブル又はこれらの任意の組み合わせのような外部ソースから、直接に該パラメータを読み出すことにより移植され得る。パラメータ値の外部ソースへのポインタは、トランザクションの中のメタデータに格納されて良い。
【0221】
以下のステップは、エージェントがi番目の反復で繰り返しループコードブロックをどのように再スポーニングできるかの一例を提供する。本例では、コードレジストリは、ハッシュテーブルである。これにより、ハッシュ値がテーブルの検索キーとして作用し、トランザクション上のメタデータに格納される。
1.エージェントは、コードレジストリ内のエントリに一致するコードブロックのハッシュを含むトランザクションについて、ブロックチェーンを監視する。
2.エージェントは、対応するハッシュ(H1)を含むトランザクションを見付ける。
3.エージェントは、「メタデータ-CodeHash」を読み出し、H1を得るためにCodeHashフィールドを得て、H1を用いてコード(C1)を読み出す。RIPEMD-160(SHA256(C1))がH1に等しい場合、コードは変化しておらず、安全に次のステップに進める。
4.エージェントは、インデックスIを格納する「メタデータ-CodeHash」を読み出し、i番目の反復でコードを再スポーニングする。言い換えると、ループが、適切な反復で「リロード」される。
5.メタデータの発生元を検証するために、ユーザの署名がP2SHコマンドに含まれる。
6.これらのデータがループのこの反復のために必要な場合、エージェントは、「メタデータ-OutputHash」及び「メタデータ-OutputPointer」を読み出し、前のステップのアウトプットを検索する。
【0222】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する(comprising又はcomprises)」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する(comprises)」は「含む(includes)又は構成される(consists of)」を意味し、「有する(comprising)」は「含む(including)又は構成される(including of)」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、1つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組み合わせが有利に用いることが出来ないことを示すものではない。
【符号の説明】
【0223】
3 第1ノード
5 ネットワーク
7 第2ノード
9 第3ノード
11 盗聴者
【外国語明細書】