(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003002
(43)【公開日】2024-01-11
(54)【発明の名称】公正な電子交換を実施するための仮想ブロックチェーンプロトコルの利用
(51)【国際特許分類】
H04L 9/14 20060101AFI20231228BHJP
H04L 9/32 20060101ALI20231228BHJP
G06F 21/60 20130101ALI20231228BHJP
【FI】
H04L9/14
H04L9/32 200B
G06F21/60 320
H04L9/32 200E
H04L9/32 200Z
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023178230
(22)【出願日】2023-10-16
(62)【分割の表示】P 2021533296の分割
【原出願日】2019-12-10
(31)【優先権主張番号】62/777,410
(32)【優先日】2018-12-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/778,482
(32)【優先日】2018-12-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520107685
【氏名又は名称】アルゴランド,インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100151987
【弁理士】
【氏名又は名称】谷口 信行
(72)【発明者】
【氏名】ミカリ シルヴィオ
(57)【要約】
【課題】公正な電子交換を実施するための仮想ブロックチェーンプロトコルの利用を提供する。
【解決手段】仮想ブロックチェーンプロトコルのための方法は、メッセージを送信者から受信者へ伝送するための公開鍵及びプライベート鍵を生成することを含む。送信者は、公開鍵及び受信者の暗号鍵を用いてメッセージを暗号化し、第1のデータペイロードを生成する。送信者は、送信者の暗号鍵を用いて第1のデータペイロードのハッシュ関数に署名し、第2のデータペイロードを生成する。送信者は第1のデータペイロード及び第2のデータペイロードを受信者へ伝送する。送信者は、受信者の暗号鍵を用いて署名された第2のデータペイロードの署名バージョンを受信する。送信者は、第2のデータペイロードの署名バージョンがブロックチェーンに投稿されたと決定する。送信者はプライベート鍵をブロックチェーンに投稿する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1のコンピュータデバイスによって、公開鍵及び対応するプライベート鍵を生成することであって、前記公開鍵が、メッセージを送信者から受信者へ伝送するためのものであり、前記第1のコンピュータデバイスが前記送信者に関連付けられている、生成することと、
前記第1のコンピュータデバイスによって、前記公開鍵及び前記受信者の暗号鍵を用いて前記メッセージを暗号化し、第1のデータペイロードを生成することであって、前記受信者の前記暗号鍵が前記受信者の識別を指示する、生成することと、
前記第1のコンピュータデバイスによって、前記送信者の暗号鍵を用いてデータパッケージに署名し、第2のデータペイロードを生成することであって、前記送信者の前記暗号鍵が前記送信者の識別を指示し、前記データパッケージが、前記送信者の前記識別、前記受信者の前記識別、前記公開鍵、及び前記第1のデータペイロードのハッシュ関数を含む、生成することと、
前記第1のコンピュータデバイスによって、前記第1のデータペイロード及び前記第2のデータペイロードを、前記受信者に関連付けられた第2のコンピュータデバイスへ伝送することと、
前記第1のコンピュータデバイスによって、前記第2のデータペイロードの署名バージョンを前記第2のコンピュータデバイスから受信することであって、前記第2のデータペイロードの前記署名バージョンが前記受信者の前記暗号鍵を用いて署名される、受信することと、
前記第1のコンピュータデバイスによって、前記第2のデータペイロードの前記署名バージョンがブロックチェーンに投稿されたと決定することと、
前記第2のデータペイロードの前記署名バージョンが前記ブロックチェーンに投稿されたと前記決定したことに応じて、前記第1のコンピュータデバイスによって、前記受信者によって前記メッセージを解読するために前記プライベート鍵を前記ブロックチェーンに投稿することと、
を含む、方法。
【請求項2】
前記データパッケージが、前記第1のコンピュータデバイスが前記第2のデータペイロードの前記署名バージョンを前記第2のコンピュータデバイスから受信するための期限を指示する、請求項1に記載の方法。
【請求項3】
前記データパッケージが、前記第2のコンピュータデバイスが前記第2のデータペイロードの前記署名バージョンを前記ブロックチェーンに投稿するための期限を指示し、前記第1のコンピュータデバイスが、前記第2のデータペイロードの前記署名バージョンが、より早い時間、前記期限に前記ブロックチェーンに投稿されたと決定したことに応じて、前記プライベート鍵を前記ブロックチェーンに投稿する、請求項1に記載の方法。
【請求項4】
前記ハッシュ関数が衝突耐性ハッシュ関数であり、前記第1のデータペイロードの第1のサイズが前記第2のデータペイロードの第2のサイズよりも大きい、請求項1に記載の方法。
【請求項5】
前記第2のデータペイロードが、前記第2のデータペイロードの前記署名バージョンが前記第2のコンピュータデバイスによって前記ブロックチェーンに投稿された後に前記第1のコンピュータデバイスが前記プライベート鍵を前記ブロックチェーンに投稿するための期限を指示する、請求項1に記載の方法。
【請求項6】
前記第1のデータペイロードが前記受信者の前記暗号鍵及び前記送信者の前記暗号鍵をさらに含む、請求項1に記載の方法。
【請求項7】
メッセージの受信者に関連付けられた第1のコンピュータデバイスによって、第1のデータペイロード及び第2のデータペイロードを、前記メッセージの送信者に関連付けられた第2のコンピュータデバイスから受信することであって、前記第1のデータペイロードが、前記メッセージを解読するためのプライベート鍵を除外し、前記第2のデータペイロードが、前記送信者の識別を指示する前記送信者の暗号鍵を用いてデータパッケージに署名することによって生成され、前記データパッケージが、前記送信者の前記識別、前記受信者の識別、前記メッセージを伝送するための公開鍵、及び前記第1のデータペイロードのハッシュ関数を含む、受信することと、
前記第1のコンピュータデバイスによって、前記第2のデータペイロードの署名バージョンを前記第2のコンピュータデバイスへ伝送することであって、前記第2のデータペイロードが、前記受信者の前記識別を指示する前記受信者の暗号鍵を用いて署名される、伝送することと、
前記第1のコンピュータデバイスによって、前記第1のコンピュータデバイスが前記プライベート鍵を前記第2のコンピュータデバイスから受信しなかったと決定することと、
前記プライベート鍵を前記受信しなかったと前記決定したことに応じて、前記第1のコンピュータデバイスによって、前記第2のデータペイロードの前記署名バージョンをブロックチェーンに投稿することであって、前記第2のデータペイロードの前記署名バージョンの前記投稿が、前記第1のコンピュータデバイスが前記プライベート鍵を前記第2のコンピュータデバイスから前記受信しなかったことを前記第2のコンピュータデバイスに指示する、投稿することと、
を含む、方法。
【請求項8】
前記第1のデータペイロードが、前記公開鍵及び前記受信者の前記暗号鍵を用いて前記メッセージを暗号化することによって生成される、請求項7に記載の方法。
【請求項9】
前記第1のデータペイロードの前記ハッシュ関数が衝突耐性ハッシュ関数であり、前記第1のデータペイロードの第1のサイズが前記第2のデータペイロードの第2のサイズよりも大きい、請求項7に記載の方法。
【請求項10】
前記第1のコンピュータデバイスによって、前記プライベート鍵が前記第2のコンピュータデバイスによって前記ブロックチェーンに投稿されたと決定することと、
前記第1のコンピュータデバイスによって、前記プライベート鍵を用いて前記第1のデータペイロードを解読し、前記メッセージを得ることと、
をさらに含む、請求項7に記載の方法。
【請求項11】
第1のコンピュータデバイスによって、公開鍵及びプライベート鍵を生成することであって、前記公開鍵が、メッセージを送信者から受信者へ伝送するためのものである、生成することと、
前記第1のコンピュータデバイスによって、前記公開鍵及び前記受信者の暗号鍵を用いて前記メッセージを暗号化し、第1のデータペイロードを生成することと、
前記第1のコンピュータデバイスによって、前記送信者の暗号鍵を用いて前記第1のデータペイロードのハッシュ関数に署名し、第2のデータペイロードを生成することと、
前記第1のコンピュータデバイスによって、前記第1のデータペイロード及び前記第2のデータペイロードを第2のコンピュータデバイスへ伝送することと、
前記第1のコンピュータデバイスによって、前記受信者の前記暗号鍵を用いて署名された前記第2のデータペイロードの署名バージョンを前記第2のコンピュータデバイスから受信することと、
前記第1のコンピュータデバイスによって、前記第2のデータペイロードの前記署名バージョンがブロックチェーンに投稿されたと決定することと、
前記第1のコンピュータデバイスによって、前記プライベート鍵を前記ブロックチェーンに投稿することと、
を含む、方法。
【請求項12】
前記データパッケージが、前記第1のコンピュータデバイスが前記第2のデータペイロードの前記署名バージョンを受信するための期限を指示する、請求項11に記載の方法。
【請求項13】
前記データパッケージが、前記第2のコンピュータデバイスが前記第2のデータペイロードの前記署名バージョンを前記ブロックチェーンに投稿するための期限を指示する、請求項11に記載の方法。
【請求項14】
前記ハッシュ関数が衝突耐性ハッシュ関数であり、前記第1のデータペイロードの第1のサイズが前記第2のデータペイロードの第2のサイズよりも大きい、請求項11に記載の方法。
【請求項15】
前記第2のデータペイロードが、前記第2のデータペイロードの前記署名バージョンが前記第2のコンピュータデバイスによって前記ブロックチェーンに投稿された後に前記第1のコンピュータデバイスが前記プライベート鍵を前記ブロックチェーンに投稿するための期限を指示する、請求項11に記載の方法。
【請求項16】
第1のコンピュータデバイスによって、第1のデータペイロード及び第2のデータペイロードを第2のコンピュータデバイスから受信することであって、前記第1のデータペイロードが送信者から受信者へのメッセージを含み、前記メッセージを解読するためのプライベート鍵を除外する、受信することと、
前記第1のコンピュータデバイスによって、前記第2のデータペイロードの署名バージョンを前記第2のコンピュータデバイスへ伝送することであって、前記第2のデータペイロードが、前記受信者の識別を指示する前記受信者の暗号鍵を用いて署名される、伝送することと、
前記第1のコンピュータデバイスによって、前記プライベート鍵を前記第2のコンピュータデバイスから受信しなかったと決定することと、
前記プライベート鍵を前記受信しなかったと前記決定したことに応じて、前記第1のコンピュータデバイスによって、前記第2のデータペイロードの前記署名バージョンをブロックチェーンに投稿することと、
を含む、方法。
【請求項17】
前記第1のデータペイロードが、前記第2のコンピュータデバイスによって生成された公開鍵、及び前記受信者の前記暗号鍵を用いて前記メッセージを暗号化することによって生成される、請求項16に記載の方法。
【請求項18】
前記第2のデータペイロードが、前記送信者の識別を指示する前記送信者の暗号鍵を用いてデータパッケージに署名することによって生成され、前記データパッケージが、前記送信者の前記識別、前記受信者の前記識別、前記公開鍵、及び前記第1のデータペイロードのハッシュ関数を含む、請求項16に記載の方法。
【請求項19】
前記第1のデータペイロードの前記ハッシュ関数が衝突耐性ハッシュ関数であり、前記第1のデータペイロードの第1のサイズが前記第2のデータペイロードの第2のサイズよりも大きい、請求項16に記載の方法。
【請求項20】
前記第1のコンピュータデバイスによって、前記プライベート鍵が前記ブロックチェーンに投稿されたと決定することと、
前記第1のコンピュータデバイスによって、前記プライベート鍵を用いて前記第1のデータペイロードを解読し、前記メッセージを得ることと、
をさらに含む、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年12月10日に出願された、米国仮特許出願第62/777,410号、及び2018年12月12日に出願された、米国仮特許出願第62/778,482号の利益を主張する。
【0002】
本明細書は、概して、公正な電子交換(FEE(fair electronic exchange))を実施するための仮想ブロックチェーンプロトコルの利用に関する。
【背景技術】
【0003】
公開台帳は、読み出し、拡張することができる、改ざん防止データシーケンスである。共有公開台帳は、現代社会が活動する仕方に大変革をもたらすことができる。- 支払い、資産移転、及び所有権譲渡などの - 従来の取引の安全性が、それらが行われる指図において確保され得る。- 暗号通貨及びスマートコントラクトなどの - 新たな取引が可能にされ得る。不正が低減され、仲介が解消され得、信用のための新たなパラダイムが導入され得る。
【0004】
しかし、従来の公開台帳はそれらの潜在性を達成していない。従来の公開台帳は、与えられた鍵によって行われた支払いを公表することを自由裁量によって拒否することができる単一のエンティティに全信用を置くことができ、サイバー攻撃に対して脆弱である。実際に、単一の中央機関が不正アクセスを受けると、システム全体もそうなる。いくつかの従来のシステムは、実行に費用がかかり、計算及び他の貴重なリソースを浪費し、能力を新たなエンティティの手中に集中させ(マイナー)、多大な曖昧さに悩まされ(フォーク)、長いレイテンシ及び小さいスループットを有する。他の従来の実装形態は、許可型であるか、若しくは悪意のあるユーザを罰する能力を前提とするか、又はその両方であり、並びに/或いはユーザの何らかのサブセットが適切な長さの時間にわたってサイバー攻撃の影響を受けないことを信用する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書における実施形態は、仮想ブロックチェーンプロトコルを実施するための方法、システム、及び装置に関する。第1のコンピュータデバイスは公開鍵及び対応するプライベート鍵を生成する。公開鍵は、メッセージを送信者から受信者へ伝送するためのものである。第1のコンピュータデバイスは送信者に関連付けられている。第1のコンピュータデバイスは、公開鍵及び受信者の暗号鍵を用いてメッセージを暗号化し、第1のデータペイロードを生成する。受信者の暗号鍵は受信者の識別を指示する。第1のコンピュータデバイスは、送信者の暗号鍵を用いてデータパッケージに署名し、第2のデータペイロードを生成する。送信者の暗号鍵は送信者の識別を指示する。データパッケージは、送信者の識別、受信者の識別、公開鍵、及び第1のデータペイロードのハッシュ関数を含む。
【0006】
第1のコンピュータデバイスは、第1のデータペイロード及び第2のデータペイロードを、受信者に関連付けられた第2のコンピュータデバイスへ伝送する。第1のコンピュータデバイスは、第2のデータペイロードの署名バージョンを第2のコンピュータデバイスから受信する。第2のデータペイロードの署名バージョンは、受信者の暗号鍵を用いて署名される。第1のコンピュータデバイスは、第2のデータペイロードの署名バージョンがブロックチェーンに投稿されたと決定する。第2のデータペイロードの署名バージョンがブロックチェーンに投稿されたと決定したことに応じて、第1のコンピュータデバイスは、受信者によって暗号メッセージを解読するためにプライベート鍵をブロックチェーンに投稿する。
【0007】
本明細書において開示される実施形態の利益及び利点は、他の技法と比べて低減された計算労力を含む。ブロックチェーンは背景にとどまっており、仮想ブロックチェーンプロトコルの実行においては、仮にあったとしても、ごくまれにしか利用されない。公正な電子交換(FEE)が仮想ブロックチェーンプロトコルを利用して実施されるときには、正直な当事者によって行われる商業的に公平な取引は、ブロックチェーンを利用することなく、プロトコルによって提供される。当事者は、当事者が別の当事者を犠牲にして取引の利益を得ようと試みない場合に、「正直」であると示される。他方で、第1の当事者が取引の利益を受け、その一方で、第2の当事者が受けない場合には、第2の当事者は、取引の商業的公平性を回復するためにブロックチェーンを呼び出すことができる。
【0008】
仮想ブロックチェーンプロトコルは、他の技法と比べてより効率的でより経済的な仕方で商業的に公平な交換を提供する。ブロックチェーンはごくまれに仮想ブロックチェーンプロトコルに介入する。両方の当事者が正直であるときには、取引はオフチェーンで行われる。ブロックチェーンは、商業的に不公平な取引が生じたときにのみ、取引の商業的公平性を回復するために利用される。不履行によって得られる利点が他の技法と比べて低減されるため、不履行は実際には促されない。当事者が、ブロックチェーンを迂回することによって双方向で取引きし、情報をブロック内に投稿するための取引手数料の支払いを回避し、新たなブロックが生成されるのを待つことを回避するおかげで、取引コストが他の技法と比べて低減される。
【0009】
配達証明付き電子メール又は電子署名付き契約書などの、暗号資産及び他の取引は、仮想ブロックチェーンプロトコルを利用して、他の技法と比べてより短い時間で作成することができ、取引はより速やかに完遂される。さらなる利益及び利点は取引のためのプライバシ及び機密性を含む。仮想ブロックチェーンプロトコルは、商業的に公平な取引を確実にするためにそれらが受ける規制制度に適合することができる。仮想ブロックチェーンプロトコルは、より複雑で計算コストが高いスマートコントラクトの必要性を低減することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、例示的な仮想ブロックチェーンプロトコルを示す。
【
図2】
図2は、仮想ブロックチェーンプロトコルのためのプロセスを示す。
【発明を実施するための形態】
【0011】
取引、例えば、配達証明付き電子メールの伝送、電子署名付き契約書に署名して引き渡すこと、又は暗号資産取引を安全にするために、時として、信頼できる第三者が利用される。しかし、このような信頼できる第三者は取引を減速させ、そのサービスのための報酬を要求し得るため、信頼できる第三者を要する取引は非効率的になるか、又は費用が高くなり得る。ブロックチェーンは、特定の状況において、低減されたコストで、信頼できる第三者の代わりに利用され得る。しかし、ブロックチェーンは処理時間及び金銭的制約に関するコストも発生させ得る。本明細書において開示される実施形態は、公正な電子交換(FEE)を実施するための仮想ブロックチェーンプロトコルを提供する。FEEは、配達証明付き電子メール、電子契約書への署名、及び他の実装形態を含む取引のセットを表す。
【0012】
仮想ブロックチェーンプロトコルは、ブロックチェーンの存在下で二者取引を安全に完了するために利用することができるものであり、これにより、当事者が両者とも正直であり、どちらの当事者も追加費用を負担しないときには、ブロックチェーンは利用されない。第1の当事者が正直でない場合には、第2の当事者が損害を被らないよう、ブロックチェーンが仮想ブロックチェーンプロトコルによって最小限に利用される。それゆえ、仮想ブロックチェーンプロトコルは、ブロックチェーンが背景で動作し、当事者が商業的に不公平な仕方で行動しない限り呼び出されないというプロトコルである。
【0013】
図1は、例示的な仮想ブロックチェーンプロトコルを示す。
図1の図は、送信者112、コンピュータデバイス104、受信者116、コンピュータデバイス108、及びブロックチェーン120を含む。送信者112は、配達証明付き電子メール又は暗号資産取引の伝送などの、取引を遂行するためのメッセージMを受信者116へ伝送したいと欲するエンティティである。例えば、送信者112は、暗号資産アカウント、企業、大学、又は個人等を表すことができる。コンピュータデバイス104は送信者112に通信可能に結合されており、スマートフォン、タブレット、ラップトップ、又は
図3を参照してより詳細に示され、説明される構成要素を用いて実施される別のコンピュータデバイスであることができる。受信者116は、メッセージMが意図されたエンティティである。例えば、受信者116は、暗号資産アカウント、企業、大学、又は個人等を表すことができる。コンピュータデバイス108は受信者116に通信可能に結合されており、スマートフォン、タブレット、ラップトップ、又は
図3を参照してより詳細に示され、説明される構成要素を用いて実施される別のコンピュータデバイスであることができる。
【0014】
コンピュータデバイス104、108は仮想ブロックチェーンプロトコルを用いてメッセージMを送信者112から受信者116へ伝送する。仮想ブロックチェーンプロトコルは、FEEを実施するために用いられるものなどの、双方向取引を可能にする。送信者112及び受信者116が両者とも正直な当事者であるときには、ブロックチェーン120は、実際には、取引を遂行するために利用されない。当事者は、当事者が別の当事者を犠牲にして取引の利益を得ようと試みない場合に、「正直」であると示される。例えば、送信者112が自動車所有権を有し、受信者が暗号資産アカウントの電子アドレスを有するシナリオを考える。どちらの当事者も最初は他方の資産を知らないが、それが資産にアクセスすることができると認識することになる。送信者112が「正直」である場合には、それは、自動車所有権を受信者へ伝送することを履行しないまま、暗号資産アカウントの電子アドレスを入手しようとすることはない。
【0015】
送信者112及び受信者116は各々、ブロックチェーン120を一度利用してそれら自身に関する情報を登録し得、その後、ブロックチェーン120を要することなく、他の正直な当事者と正直に対話することができる。登録された情報は、例えば、送信者112の公開暗号鍵A及び受信者116の公開暗号鍵Bを含むことができる。公開暗号鍵A、Bは、時として、公開鍵又は公開暗号化鍵とも称される。暗号鍵は、メッセージなどのデータにデジタル署名する、それを暗号化する、又はそれを解読するために用いられる公開鍵及び/又はプライベート(秘密)鍵であることができる。2つの当事者のうちの一方が正直でないとき、仮想ブロックチェーンプロトコルは、正直な当事者が損害を被らないよう、ブロックチェーン120上への情報の投稿を可能にすることによって問題を解決する。
【0016】
実施形態によっては、仮想ブロックチェーンプロトコルは、ブロックチェーン120のブロック(例えば、ブロック124、128)が特定の精度レベルをもって時間情報を組み込むことを可能にする。他の実施形態では、代替的に、仮想ブロックチェーンプロトコルは時間をブロック単位で測定する。例えば、情報Yをブロック124の出現から所与の量の時間以内にブロックチェーン120上に投稿することは、ブロック124に続く25個のブロックのうちの1つ、例えば、ブロック128においてYを投稿する結果をもたらす。
【0017】
コンピュータデバイス104は公開鍵P及び対応するプライベート鍵Sを生成する。公開鍵Pは、メッセージMを送信者112から受信者116へ伝送するためのものである。送信者112はそれ自身の一意の識別子A、例えば、公開暗号化鍵、公開署名鍵、又は公開暗号鍵を有する。送信者112はまた、それ自身の対応する秘密鍵又はプライベート解読鍵も有する。送信者112の公開暗号鍵Aは、送信者112が特定のシステム、例えば、配達証明付き電子メールシステムに参加したときに、ブロックチェーン120上に投稿され得る。同様に、受信者116は一意の識別子B、例えば、公開暗号鍵を有する。送信者112はメッセージMに署名し、SIGA(M)によって表される署名されたメッセージを生成することができる。送信者112はメッセージMを暗号化し、EA(M)によって表される暗号化されたメッセージを生成することができる。
【0018】
コンピュータデバイス104は、公開鍵P及び受信者116の暗号鍵Bを用いてメッセージMを暗号化し、第1のデータペイロードZ=EPB(A,B,M)を生成する。受信者116の暗号鍵Bは受信者116の識別を指示する。実際には、任意のユーザ、例えば、受信者116が送信者112の公開暗号鍵Aを用いてメッセージMを暗号化することができるが、送信者112のみが、送信者112がその対応するプライベート解読鍵を有する限り、EA(M)を解読することができる。本明細書において開示されるデジタル署名及び暗号化方法は頑強であり、CCA-2安全である。CCA-2セキュリティは、暗号化によるセキュリティのための暗号文識別不能性標準を指す。本明細書において開示されるデジタル署名及び暗号化方法は、プライベート解読鍵を明らかにすることなく、証明可能に解読可能である。さらに、本明細書において開示されるデジタル署名及び暗号化方法は、適応的選択文書攻撃に対して安全である。
【0019】
本明細書において開示される実施形態によって説明される暗号化は、1つを超える段階において実施される。例えば、第1の段階では、コンピュータデバイス104は公開鍵Pのみを用いてメッセージMを暗号化し、データペイロードEP(A,B,M)を生成することができる。第2の段階では、コンピュータデバイス104は公開鍵P及びワンタイム若しくは一時鍵Oを用いてメッセージMを暗号化し、データペイロードEPO(A,B,M)を生成することができる。一時鍵Oは、時として、短期鍵(ephemeral key)と称される。実施形態によっては、公開鍵Pを用いてメッセージMを暗号化することは、プライベート鍵Kを用いてプライベート鍵暗号システムにおいてMを暗号化し、Pを用いてプライベートKを暗号化することを含む。
【0020】
実施形態によっては、本明細書において開示されるデジタル署名及び暗号化方法は統合暗号化を実施する。例えば、Pは公開暗号化鍵を表し、Sは対応するプライベート解読鍵を表す。本例を続けると、Xは別の公開暗号化鍵を表し、SXはXの対応する秘密鍵を表す。コンピュータデバイス104は、P及びXから、「統合」公開暗号化鍵PXを計算することができ、その対応する統合秘密(プライベート)鍵はS及びSXを含む。統合公開暗号化鍵PXを用いたメッセージMの暗号化はZによって表される。ここで、Z=EPX(M)である。このように暗号化されたメッセージは、コンピュータデバイスがS及びSXの両方にアクセスすることができるときに解読され得る。Z=EPX(M)であり、PXが公開暗号化鍵を表し、SXが、対応する秘密解読鍵を表すとき、コンピュータデバイス108は(P,X,S,SX,Z)を統合的に解読し、メッセージMを得ることができる。データEPX(M)は、受信者116のみが秘密鍵S及びSXへのアクセスを有する限り、安全であり続ける。Z=EPX(M)であるが、別の鍵S’が、Pに対応する秘密解読鍵でないときには、このとき、(P,X,S’,SX,Z)を統合的に解読することによって得られるデータM’はMとは非常に異なることになり、SXを明らかにすることなく証明され得る。
【0021】
コンピュータデバイス104がメッセージMを送信者112から受信した後に、コンピュータデバイス104は、対応する公開及び秘密(プライベート)暗号化対(P、S)を生成し、P及び受信者116の公開暗号鍵Bを用いた統合暗号化を表す、データZ=EPB(A,B,M)を計算する。Zは第1のデータペイロードを表し、Aによって送信者112、及びBによって受信者116を識別する。実施形態によっては、それゆえ、第1のデータペイロードZは受信者の暗号鍵B及び送信者の暗号鍵Aを含む。第1のデータペイロードZはSを包含しない。それゆえ、第1のデータペイロードZは、第1のデータペイロードEPB(A,B,M)を解読し、メッセージMにアクセスするために受信者116によって必要とされるプライベート解読鍵Sを除外する。
【0022】
コンピュータデバイス104は、送信者112の暗号鍵Aを用いてデータパッケージ(A,B,P,t,H(Z))に署名し、第2のデータペイロードYを生成する。送信者112の暗号鍵Aは送信者112の識別を指示する。それゆえ、データパッケージは、送信者112の識別、受信者116の識別、公開鍵P、及び第1のデータペイロードZのハッシュ関数H(Z)を含む。実施形態によっては、tは、送信者112又は受信者116のどちらかが後続の機能を遂行するための期限を示す。例えば、tは、コンピュータデバイス104が第2のデータペイロードYの肯定応答を第2のコンピュータデバイス108から受信するための期限を指示することができる。他の実施形態では、tは、受信者116が取引の「公正さ」を回復することができなくなる将来の時点を指定する。
【0023】
交換又は取引は、それが商業的に公平であり、これにより、悪意のあるエンティティが悪意のないエンティティを犠牲にして利益を得ない場合に、「公正」であると示される。送信者112が自動車所有権を有し、受信者が暗号資産アカウントの電子アドレスを有する上述の例を続ける。どちらの当事者も最初は他方の資産を知らないが、それが資産にアクセスすることができると認識することになる。交換プロトコルでは、当事者がそれらの資産を電子的に交換すること、すなわち、送信者が暗号資産アカウントの電子アドレスを入手し、受信者116が自動車所有権を入手することが望まれる(しかし、保証はされない)。交換プロトコルは、(当事者の意志に反して交換を強制することなく)プロトコルが、送信者112が暗号資産アカウントの電子アドレスを入手した場合、及びその場合にのみ、受信者116が自動車所有権を入手することを提供する場合に、「公正」であると示される。プロトコルは2つの可能な商業的に公平な結果のみを有するべきである:(1)送信者112が暗号資産アカウントの電子アドレスを入手し、受信者116が自動車所有権を入手するか、又は(2)どちらの当事者も他方の資産を入手しない。
【0024】
図1に示される例を続けると、実施形態によっては、tは省略されるか、又は無限大などの大きな値に設定され得る。コンピュータデバイス104は、送信者112の暗号鍵Aを用いて第2のデータペイロードY=SIG
A(A,B,P,t,H(Z))を生成する。実施形態によっては、Hは衝突耐性ハッシュ関数である。したがって、H(C)=H(D))となるよう、2つの異なる文字列C及びDが見出され得る確率は極めて低い。ハッシュ関数H(Z)は、Zを符号化するために用いられ、これにより、第1のデータペイロードYの第1のサイズは第2のデータペイロードZの第2のサイズよりも大きい。
【0025】
コンピュータデバイス104はデータ132(第1のデータペイロードZ及び第2のデータペイロードY)を、受信者116に関連付けられコンピュータデバイス108へ伝送する。データYをコンピュータデバイス104から受信すると、実施形態によっては、コンピュータデバイス108は、必要とされる場合には、コンピュータデバイス108が取引の公正さを回復することができるよう、現在の時間が期限tよりも十分に早いかどうかを決定する。コンピュータデバイス108はデータYにデジタル署名し、データ136(SIGB(Y))を生成する。データ136は、コンピュータデバイス108がデータ132を受信したことをコンピュータデバイス104に指示するための受け取りとして用いられる。例えば、コンピュータデバイス104は第2のデータペイロードYの署名バージョンSIGB(Y)をコンピュータデバイス108から受信する。第2のデータペイロードYの署名バージョンSIGB(Y)は、受信者116の暗号鍵Bを用いて署名される。実施形態によっては、データパッケージ(A,B,P,t,H(Z))は、コンピュータデバイス104が第2のデータペイロードYの署名バージョンをコンピュータデバイス108から受信するための期限を(tの値を用いて)示す。例えば、tが違反された場合には、取引は無効とされるか、又は取り消されることになる。
【0026】
送信者112が、適切に署名された受け取り(第2のデータペイロードYの署名バージョンSIGB(Y))を受信者116から受信したときに、送信者112はデータ140(プライベート鍵S)を受信者116へ送信しなければならない。実施形態によっては、tは、コンピュータデバイス104がデータ136を受信した後に、コンピュータデバイス104がプライベート鍵Sをコンピュータデバイス108へ伝送しなければならない時間期限を示す。コンピュータデバイス108が、それがプライベート鍵Sを期限tよりも十分に早い時間に受信したと決定した場合には、仮想ブロックチェーンプロトコルはうまく完了する。
【0027】
実施形態によっては、コンピュータデバイス108は、コンピュータデバイス108がプライベート鍵S(データ140)をコンピュータデバイス104から受信しなかったと決定する。他の実施形態では、コンピュータデバイス108は、コンピュータデバイス104が期限tまでにプライベート鍵Sをコンピュータデバイス108へ伝送しなかったと決定する。それゆえ、FEEが違反され得る。一例では、送信者112は自動車の販売者であり、受信者116は自動車の購入者であり、Cは、送信者112による自動車の販売の申し出を表す。送信者112はデータSIGA(C)を受信者116へ伝送するが、受信者116は全く応答しない。この場合には、送信者112はその自動車を別の購入者に販売してもよく、その後に、受信者116が自動車を要求する。それゆえ、当事者は、それが所望の情報を得たことを認識し、その後、交換を未完了状態にとどまるよう強制することができる。
【0028】
FEEを実施するために、プライベート鍵Sを受信しなかったと決定したことに応じて、コンピュータデバイス108は問いかけをブロックチェーン120に投稿する。問いかけは第2のデータペイロードYの署名バージョンSIG
B(Y)を含む。署名バージョンSIG
B(Y)をブロックチェーン120に投稿することは、コンピュータデバイス108がプライベート鍵Sをコンピュータデバイス104から受信しなかったことをコンピュータデバイス104に指示する。
図1は、コンピュータデバイス108がブロック124において問いかけを投稿する様子を示す。実施形態によっては、tは、コンピュータデバイス108が第2のデータペイロードYの署名バージョンをブロックチェーン120に投稿するための期限を示す。それゆえ、データパッケージ(A,B,P,t,H(Z))は期限t=T1を指示し、その時間までにコンピュータデバイス108は問いかけをブロックチェーン120に投稿しなければならない。T1が違反された場合には、契約は破棄されるか、又は取り消され、送信者112は履行する必要がない。データSIG
B(Y)が時間t(T1)以内にブロックチェーン120内に出現した場合には、コンピュータデバイス104は、送信者112が取引を正直に遂行し、公正に完了したいと欲する限り、所与の量の時間以内にプライベート鍵Sをブロックチェーン120上に投稿する。t(T1)の値は、送信者112が、取引が「開かれた」ままとどまっている時間の上限を設定することを可能にする。コンピュータデバイス104へ受け取りSIGB(Y)を送信する前に、受信者116は、コンピュータデバイス104がSを受信者116へ伝送しない場合には、受信者が、(時間T1までに)対応するための時間があるかどうかを主観的に評価することができる。
【0029】
実施形態によっては、コンピュータデバイス104は、第2のデータペイロードYの署名バージョンSIGB(Y)がブロックチェーン120に投稿されたと決定する。第2のデータペイロードYの署名バージョンSIGB(Y)がブロックチェーン120に投稿されたと決定したことに応じて、コンピュータデバイス104は、受信者116によってメッセージMを解読するためにプライベート鍵Sをブロックチェーン120に投稿する。例えば、プライベート鍵Sはブロック128に投稿され得る。実施形態によっては、コンピュータデバイス104は、第2のデータペイロードYの署名バージョンSIGB(Y)が期限T1よりも早い時間にブロックチェーン120に投稿されたと決定したことに応じて、プライベート鍵Sをブロックチェーン120に投稿する。実施形態によっては、tは、第2のデータペイロードYの署名バージョンがコンピュータデバイス108によってブロックチェーン120に投稿された後にコンピュータデバイス104がプライベート鍵Sをブロックチェーン120に投稿するための期限T2を示す。したがって、コンピュータデバイス104は時間T2よりも前にSをブロック128に投稿しなければならない。
【0030】
本例を続けると、コンピュータデバイス108は、プライベート鍵Sがコンピュータデバイス104によってブロックチェーン120に投稿されたと決定する。コンピュータデバイス108はプライベート鍵Sを用いて第1のデータペイロードZを解読し、メッセージMを得る。他方で、コンピュータデバイス104が、データSIGB(Y)の投稿後に期限T2以内にSをブロックチェーン120に投稿しなかった場合には、これは、送信者112が、受信者116が、関数H(Z)によってコミットされたメッセージMを受信しなかったことに同意することを意味する。
【0031】
送信者112が正直に行動する場合には、次に、データSIG(Y)を与えられると、送信者112は、M及びSを公開することによって、SIGB(Y)が受け取りとなるメッセージの内容を証明することができる。任意のエンティティは、Sが、Pに対応する解読鍵であること、並びにP及び受信者116の暗号鍵Bに対する(A、B、M)の統合暗号化が本当にZであることを検証することができる。それゆえ、任意のエンティティは、Sを与えられると、受信者116がMを回復することができることを検証することができる。受信者116がSを全く受信しなかった場合には、コンピュータデバイス108は、Yをブロックチェーン120上に適時に投稿することになり、これにより、送信者112は、Sを公けに投稿するか、又は受信者116が、メッセージMを受信することに関して「責任を免れる(off the hook)」ことに公に同意することになる。例えば、Yがブロックチェーン120に適時に投稿された後に、コンピュータデバイス104がプライベート鍵Sを適時に投稿しなかった場合には、このとき、送信者112は、Yをブロックチェーン120に投稿するための取引コスト(のうちの少なくとも一部)を受信者116へ払い戻しさせられ得る。
【0032】
実施形態によっては、単一の暗号化EPX(A,B,M)を用いるのではなく、送信者112は、異なる公開鍵に対して、Mを伝送するために2つの(又はそれより多くの)暗号化を用いることができる。実施形態によっては、送信者112は、複数の公開暗号化鍵をブロックチェーン120内に登録することができる。他の実施形態では、受信者116は、登録された公開暗号化鍵を全く有しなくてもよいが、送信者112が、送信者112が配達証明付きメッセージ、例えば、Mを伝送する予定であると受信者116に対して注意喚起したときに、必要とされるものを生成することができる。例えば、受信者116は公開署名鍵のみを所有し、それらを用いて、受信者116が仮想ブロックチェーンプロトコルのために必要とする任意の公開暗号化鍵を認証し得る。
【0033】
値Z=EPX(A,B,M)をコンピュータデバイス104から受信したときに、受信者は(Sがまだ利用可能でないため)ZからMを直ちに解読することができない。それゆえ、受信者116が処理を停止した場合には、送信者112は受け取りSIGB(Y)を受信しないことになり、受信者116もメッセージMを受信しないことになる。コンピュータデバイス108が受け取りSIGB(Y)をコンピュータデバイス104へ伝送した場合には、このとき、送信者112はメッセージMのための有効な受け取りを受信者116から受信する。それゆえ、メッセージM及び受け取りSIGB(Y)の交換が公正になるために、受信者116はMを直ちに容易に得ることができなければならない。FEEは、送信者112がプライベート鍵Sを伝送したときに実施される。送信者112がプライベート鍵Sを伝送しない場合には、このとき、コンピュータデバイス108は受け取りSIGB(Y)をブロックチェーン120に適時に投稿し、コンピュータデバイス104に、Sをブロックチェーン120に適時に投稿するよう本質的に要求することになる。
【0034】
実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは電子小切手及び転送システムを(ブロックチェーン120の外部で)実施するために用いられる。例えば、送信者112が、受信者116が小切手を受信したとの受け取りを受信した場合、及びその場合にのみ、受信者116は電子小切手から現金にアクセスすることができる。実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは、エージェントが別のエージェントに(例えば、選択権を行使するための期限に関して)通知する義務を有するシステムを実施するために用いることができる。システムは、エージェントがそれらの義務に従ったことを証明する仕方で動作する(例えば、取締役会に、社員に彼らの選択権期限について知らせることを通知する)。
【0035】
実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは、加入ベースのモデルを実施するために用いられる。加入ベースのモデルでは、エンティティは、製品又はサービスへのアクセスのために、繰り返し発生する代価を一定の間隔で支払うことを要求される。取引の公正さを回復するべく、必要なときに、ブロックチェーンを利用する能力を得るために、送信者112及び受信者116は、例えば、取引をブロックチェーン120に投稿し、(求められるサービスの種類を表す)特定の文字列を指定し、手数料を支払うことによって、月極又は年間加入手数料を支払うことを必要とされ得る。サービスの種類は、配達証明付き電子メール、電子署名付き契約書等であることができる。手数料は、(a)ブロックチェーン120を維持する責任を負うエンティティ(例えば、企業、財団等)に支払われるか、(b)ブロックチェーン120の維持に寄与するユーザに分配されるべき取引手数料のプールに組み込まれるか、(c)特定のエンティティ又はユーザEに支払われるか、或いは(d)それらの組み合わせであることができる。例えば、受信者116がこのような加入手数料を支払っていなかった場合には、このとき、それは、公正さを回復するためにブロックチェーン120を利用することを可能にされない。
【0036】
仮想ブロックチェーンプロトコルの加入ベースのモデルの利点及び利益は、ユーザが追加コストなしで複数の正直な公正な交換を遂行することができることを含む。ブロックチェーン120を維持する企業又は財団は、企業又は財団を各取引にさらに関与させないサービスを提供するための加入手数料から利益を得る。加入手数料が取引プール内に組み込まれる場合には、詐欺に遭ったユーザ(例えば、受信者116)が、取引の公正さを回復するデータSIG
B(Y)を投稿するためにブロックチェーン120を利用したときに、プールの受益者はさらに利益を得る。仮想ブロックチェーンプロトコルにおいて、ユーザは事前に加入手数料を支払うことに同意する。詐欺が発生した取引のためにのみ事後の取引手数料が支払われる。従来のブロックチェーンベースの技法では、ユーザは、詐欺が発生し得るため、たとえ、全ての当事者が正直であっても、取引ごとに事前の取引手数料を支払うことに同意しなければならない。さらに、仮想ブロックチェーンプロトコルの加入ベースのモデル内の加入者Fは、単一のユーザではなく、ユーザのセットを表すことができる。例えば、Fは法律事務所を表すことができ、Fによって支払われる加入手数料は、仮想ブロックチェーンプロトコル加入ベースのモデルによって実施されるFEEサービスを利用するユーザの数に比例することができる。実施形態によっては、Fは全てのユーザの代理をすることができる。例えば、CEMシステムにおいて、Fは、そのユーザのうちの一部に宛てられたメッセージのための受け取りを提供し、次に、メッセージを必要に応じて内部で配信するコンピュータサーバを表すことができる。コンピュータサーバは、
図3を参照してより詳細に示され、説明される構成要素を用いて実施され得る。
【0037】
図2は仮想ブロックチェーンプロトコルのためのプロセスを示す。実施形態によっては、
図2のプロセスは、
図1を参照してより詳細に示され、説明されるコンピュータデバイス104によって遂行される。他のエンティティは他の実施形態におけるプロセスのステップのうちのいくつか又は全てを遂行する。同様に、実施形態は、異なる、及び/又は追加のステップを含むか、或いは異なる順序でステップを遂行し得る。
【0038】
コンピュータデバイス104は公開鍵P及び対応するプライベート鍵Sを生成する(204)。公開鍵P及びプライベート鍵Sは
図1を参照してより詳細に示され、説明される。公開鍵Pは、メッセージMを送信者112から受信者116へ伝送するためのものである。メッセージM、送信者112、及び受信者116は
図1を参照してより詳細に示され、説明される。コンピュータデバイス104は送信者112に関連付けられている。
【0039】
コンピュータデバイス104は、公開鍵P及び受信者116の暗号鍵Bを用いてメッセージMを暗号化し(208)、第1のデータペイロードZを生成する。受信者116の暗号鍵Bは受信者116の識別を指示する。第1のデータペイロードZはEPB(A,B,M)として表される。実際には、任意のユーザ、例えば、受信者116が送信者112の公開暗号鍵Aを用いてメッセージMを暗号化することができるが、送信者112のみが、送信者112がその対応するプライベート解読鍵を有する限り、EA(M)を解読することができる。
【0040】
コンピュータデバイス104が、送信者112の暗号鍵Aを用いてデータパッケージ(A,B,P,t,H(Z))に署名し(212)、第2のデータペイロードYを生成する。送信者112の暗号鍵Aは送信者112の識別を指示する。データパッケージは、送信者112の識別、受信者116の識別、公開鍵P、及び第1のデータペイロードのハッシュ関数H(Z)を含む。実施形態によっては、tは、送信者112又は受信者116のどちらかが後続の機能を遂行するための期限を示す。例えば、tは、コンピュータデバイス104が第2のデータペイロードYの肯定応答を第2のコンピュータデバイス108から受信するための期限を指示することができる。他の実施形態では、tは、受信者116が取引の公正さを回復することができなくなる将来の時点を指定する。
【0041】
コンピュータデバイス104は第1のデータペイロードZ及び第2のデータペイロードYを、受信者116に関連付けられたコンピュータデバイス108へ伝送する(216)。データYをコンピュータデバイス104から受信すると、実施形態によっては、コンピュータデバイス108は、必要とされる場合には、コンピュータデバイス108が取引の公正さを回復することができるよう、現在の時間が期限tよりも十分に早いかどうかを決定する。コンピュータデバイス108はデータYにデジタル署名し、データ136(SIG
B(Y))を生成する。データ136は、コンピュータデバイス108がデータ132を受信したことをコンピュータデバイス104に指示するための受け取りとして用いられる。データ132及びデータ136は
図1を参照してより詳細に示され、説明される。
【0042】
コンピュータデバイス104は第2のデータペイロードYの署名バージョンSIGB(Y)をコンピュータデバイス108から受信する(220)。第2のデータペイロードYの署名バージョンSIGB(Y)は、受信者116の暗号鍵Bを用いて署名される。実施形態によっては、データパッケージ(A,B,P,t,H(Z))は、コンピュータデバイス104が第2のデータペイロードYの署名バージョンをコンピュータデバイス108から受信するための期限を(tの値を用いて)示す。例えば、tが違反された場合には、取引は無効とされるか、又は取り消されることになる。
【0043】
コンピュータデバイス104は、第2のデータペイロードYの署名バージョンSIG
B(Y)がコンピュータデバイス108によってブロックチェーン120に投稿されたと決定する(224)。送信者112が、適切に署名された受け取り(第2のデータペイロードYの署名バージョンSIG
B(Y))を受信者116から受信したときに、送信者112はデータ140(プライベート鍵S)を受信者116へ送信することになる。データ140は
図1を参照してより詳細に示され、説明される。コンピュータデバイス108が、コンピュータデバイス108がプライベート鍵S(データ140)をコンピュータデバイス104から受信しなかったと決定したときに、コンピュータデバイス108は第2のデータペイロードYの署名バージョンSIG
B(Y)をブロックチェーン120に投稿する。
【0044】
第2のデータペイロードYの署名バージョンがブロックチェーン120に投稿されたと決定したことに応じて、コンピュータデバイス104は、受信者116によってメッセージMを解読するためにプライベート鍵Sをブロックチェーン120に投稿する(228)。実施形態によっては、tは、第2のデータペイロードYの署名バージョンがコンピュータデバイス108によってブロックチェーン120に投稿された後にコンピュータデバイス104がプライベート鍵Sをブロックチェーン120に投稿するための期限T2を示す。したがって、コンピュータデバイス104は時間T2よりも前にSをブロック128に投稿しなければならない。
【0045】
図3は例示的な機械を示す。
図3の実装形態では、コンピュータシステム300は専用コンピューティングデバイスである。専用コンピューティングデバイスは、ブロックチェーンプロトコルを実行するようハードワイヤードされているか、本明細書における技法を遂行するように永続的にプログラムされた1つ以上の特定用途向け集積回路(ASIC(application-specific integrated circuit))又はフィールドプログラマブルゲートアレイ(FPGA(field programmable gate array))などのデジタル電子デバイスを含むか、或いはファームウェア、メモリ、他のストレージ、又は組み合わせ内のプログラム命令に従って技法を遂行するようプログラムされた1つ以上の汎用ハードウェアプロセッサを含む。様々な実装形態では、専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス、又は技法を実施するためのハードワイヤード若しくはプログラム論理の両方を組み込んだ任意の他のデバイスである。
【0046】
コンピュータシステム300は、バス302、若しくは情報を通信するための他の通信機構、及び情報を処理するためのバス302に結合された1つ以上のコンピュータハードウェアプロセッサ304を含む。実装形態によっては、ハードウェアプロセッサ304は汎用マイクロプロセッサである。コンピュータシステム300はまた、情報、及びプロセッサ304によって実行されるべき命令を記憶するための、バス302に結合された、ランダムアクセスメモリ(RAM(random-access memory))又は他の動的記憶デバイスなどの、主メモリ306を含む。一実装形態では、主メモリ306は、プロセッサ304によって実行されるべき命令の実行中に一時変数又は他の中間情報を記憶するために用いられる。このような命令は、プロセッサ304がアクセス可能な非一時的記憶媒体内に記憶されたときに、コンピュータシステム300を、命令内で指定された動作を遂行するようカスタマイズされた専用機械にする。
【0047】
一実装形態では、コンピュータシステム300は、プロセッサ304のために静的情報及び命令を記憶するための、バス302に結合されたリードオンリーメモリ(ROM(read only memory))308又は他の静的記憶デバイスをさらに含む。磁気ディスク、光ディスク、ソリッドステートドライブ、又は3次元クロスポイントメモリなどの、記憶デバイス312が、情報及び命令を記憶するために提供され、バス302に結合されている。
【0048】
一実装形態では、コンピュータシステム300は、バス302を介して、情報をコンピュータユーザに表示するための、陰極線管(CRT(cathode ray tube))、液晶ディスプレイ(LCD(liquid crystal display))、プラズマディスプレイ、発光ダイオード(LED(light emitting diode))ディスプレイ、又は有機発光ダイオード(OLED(organic light emitting diode))ディスプレイなどの、ディスプレイ310に結合されている。英数字及び他のキーを含む、入力デバイス314が、情報及びコマンド選択をプロセッサ304に通信するためにバス302に結合されている。別の種類のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ304へ通信するため、並びにディスプレイ310上のカーソル移動を制御するための、マウス、トラックボール、タッチ対応ディスプレイ、又はカーソル方向キーなどの、カーソルコントローラ316である。
【0049】
一実装形態によれば、本明細書における技法は、コンピュータシステム300によって、プロセッサ304が、主メモリ306内に包含された1つ以上の命令の1つ以上の列を実行したことに応じて遂行される。このような命令は、記憶デバイス312などの、別の記憶媒体から主メモリ306内に読み込まれる。主メモリ306内に包含された命令の列の実行は、プロセッサ304に、本明細書において説明されるプロセスステップを遂行させる。代替的実装形態では、ハードワイヤード回路機構がソフトウェア命令の代わりに、又はそれらと組み合わせて用いられる。
【0050】
用語「記憶媒体」は、本明細書で使用するとき、機械に特定の仕方で動作させるデータ又は命令の両方を記憶する任意の非一時的媒体を指す。このような記憶媒体としては、不揮発性媒体又は揮発性媒体の両方が挙げられる。不揮発性媒体としては、記憶デバイス312などの、光ディスク、磁気ディスク、ソリッドステートドライブ、又は3次元クロスポイントメモリなどのものが挙げられる。一般的な形態の記憶媒体としては、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、FLASH-EPROM、NV-RAM、或いは任意の他のメモリチップ又はカートリッジなどのものが挙げられる。記憶媒体は伝送媒体とは別個であるが、それと併用される。伝送媒体は、記憶媒体の間で情報を転送することに関与する。伝送媒体としては、バス302を含むワイヤを含む、同軸ケーブル、銅線、及び光ファイバが挙げられる。
【0051】
一実装形態では、様々な形態の媒体が、1つ以上の命令の1つ以上の列をプロセッサ304へ実行のために搬送することに関わる。命令は、最初、リモートコンピュータの磁気ディスク又はソリッドステートドライブ上で搬送される。リモートコンピュータは命令をそのダイナミックメモリ内にロードし、モデムを用いて電話線を通じて命令を送信する。コンピュータシステム300にローカルなモデムが電話線上のデータを受信し、赤外線伝送器を用いてデータを赤外線信号に変換する。赤外線検出器が、赤外線信号に含めて搬送されたデータを受信し、適切な回路機構がデータをバス302上に乗せる。バス302はデータを主メモリ306へ搬送し、プロセッサ304はそこから命令を取得して実行する。主メモリ306によって受信される命令は、プロセッサ304による実行の前、又は後のどちらかにおいて記憶デバイス312上に記憶されてもよい。
【0052】
コンピュータシステム300はまた、バス302に結合された通信インターフェース318を含む。通信インターフェース318は、ローカルネットワーク322に接続されたネットワークリンク320への双方向データ通信結合を提供する。通信インターフェース318は、サービス総合デジタル網(ISDN(integrated service digital network))カード、ケーブルモデム、衛星モデム、又は対応する種類の電話線へのデータ通信接続を提供するためのモデムである。別の実装形態では、通信インターフェース318は、適合したLANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN(local area network))カードである。実装形態によっては、無線リンクも実施される。
【0053】
ネットワークリンク320は、通例、1つ以上のネットワークを通じた他のデータデバイスへのデータ通信を提供する。ネットワークリンク320は、ローカルネットワーク322を通じた、ホストコンピュータ324への、又はインターネットサービスプロバイダ(ISP(Internet Service Provider))326によって運営されるクラウドデータセンター若しくは機器への接続を提供する。ISP326は、今度は、「インターネット」328と今日一般的に称されるワールドワイドパケットデータ通信ネットワークを通じたデータ通信サービスを提供する。ローカルネットワーク322及びインターネット328は両方とも、デジタルデータストリームを搬送する電気、電磁気、又は光信号を用いる。
【0054】
上述された特徴及び機能のうちのいずれか又は全ては、当業者に明らかであろうように、それが別途上述され得る範囲を除いて、或いは任意のこのような実施形態がそれらの機能又は構造のゆえに不適合になり得る範囲を除いて、互いに組み合わせることができる。物理的可能性に反しない限り、(i)本明細書において説明される方法/ステップは、任意のシーケンスで、及び/又は任意の組み合わせで遂行され得ること、並びに(ii)それぞれの実施形態の構成要素は任意の仕方で組み合わせられ得ることが想定される。
【0055】
本主題は、構造的特徴及び/又は動作に特定的な文言で説明されたが、添付の請求項において定義された本主題は、上述された特定の特徴又は動作に必ずしも限定されないことを理解されたい。むしろ、上述された特定の特徴及び動作は、請求項を実施する例として開示されており、他の同等の特徴及び動作も請求項の範囲に含まれることが意図される。
【0056】
図面において、デバイス、モジュール、命令ブロック、及びデータ要素を表現するものなどの、図式的要素の特定の配置又は順序付けは、説明を容易にするために示されている。しかし、図面における図式的要素の特定の順序付け又は配置は、処理の特定の順序若しくはシーケンス、又はプロセスの分離が必要とされることを暗示することを意図されていないことが当業者によって理解されるべきである。さらに、図面に図式的要素を含むことは、このような要素が全ての実施形態において必要とされること、或いはこのような要素によって表現される特徴が、いくつかの実施形態に含まれるか、又はいくつかの実施形態における他の要素と組み合わせられ得ないことを暗示することを意図されていない。
【0057】
さらに、図面において、実線若しくは破線又は矢印などの接続要素が、2つ以上の他の図式的要素の間又はそれらの中の接続、関係、又は関連を示すために用いられる場合、いずれかのこのような接続要素が存在しないことは、接続、関係、又は関連が存在し得ないことを暗示することを意図されていない。換言すれば、要素の間のいくつかの接続、関係、又は関連は、本開示を不明瞭にしないよう、図面に示されていない。加えて、図解を容易にするために、要素の間の複数の接続、関係、又は関連を表現するために単一の接続要素が用いられる。例えば、接続要素が信号、データ、又は命令の通信を表現する場合、このような要素は、通信に影響を及ぼすための、必要とされ得るとおりの、1つ又は複数の信号経路(例えば、バス)を表現することが当業者によって理解されるべきである。
【0058】
上述の説明において、実施形態は、実装形態ごとに異なる数多くの特定の詳細を参照して説明された。したがって、明細書及び図面は、限定でなく、例示的な意味で捉えられるべきである。実施形態の範囲の唯一の排他的な指標、及び出願人によって実施形態の範囲であると意図されるものは、本出願より発せられる請求項のセットの、任意のその後の補正を含む、このような請求項が発せられる特定の形式による、文字通り及び同等の範囲である。このような請求項に包含される用語のために本明細書において明示的に定められた任意の定義は、請求項において用いられるとおりのこのような用語の意味に適用されるものとする。加えて、上述の説明又は添付の請求項において、我々が用語「~をさらに含む(further including)」を使用するとき、この表現の後に続くものは、追加のステップ又は実体、或いは以前に述べられたステップ又は実体の下位ステップ/下位実体であることができる。
【手続補正書】
【提出日】2023-11-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1のコンピュータデバイスによって、公開鍵及びプライベート鍵を含む鍵ペアを生成することであって、前記公開鍵が、メッセージを送信者から受信者へ伝送するためのものである、生成することと、
前記第1のコンピュータデバイスによって、前記公開鍵及び前記受信者の暗号鍵を用いて前記メッセージを暗号化し、第1のデータパッケージを生成することと、
前記第1のコンピュータデバイスによって、前記送信者の暗号鍵を用いて前記第1のデータパッケージのハッシュ関数に署名し、第2のデータパッケージを生成することと、
前記第1のコンピュータデバイスによって、前記第1のデータパッケージ及び前記第2のデータパッケージを第2のコンピュータデバイスへ伝送することと、
前記第1のコンピュータデバイスによって、前記第2のデータパッケージの署名バージョンを前記第2のコンピュータデバイスから受信することであって、前記第2のデータパッケージの前記署名バージョンが前記受信者によって署名される、受信することと、
前記第1のコンピュータデバイスによって、前記鍵ペアの前記公開鍵を前記受信者に提供すべきかどうかを決定することと、
を含む、方法。
【請求項2】
前記第2のデータパッケージが、前記送信者の識別を表す情報と、前記受信者の識別を表す情報と、前記鍵ペアの前記公開鍵と、前記第1のデータパッケージの前記ハッシュ関数とを含む、請求項1に記載の方法。
【請求項3】
前記第2のデータパッケージが、前記第1のコンピュータデバイスが前記第2のデータパッケージの前記署名バージョンを前記第2のコンピュータデバイスから受信するための期限を指示する、請求項1に記載の方法。
【請求項4】
前記第2のデータパッケージが、前記第2のコンピュータデバイスが前記第2のデータパッケージの前記署名バージョンを前記ブロックチェーンに投稿するための期限を指示し、前記第1のコンピュータデバイスが、前記第2のデータパッケージの前記署名バージョンが、前記期限よりも早い時間に前記ブロックチェーンに投稿されたと決定したことに応じて、前記鍵ペアの前記プライベート鍵を前記ブロックチェーンに投稿する、請求項1に記載の方法。
【請求項5】
前記ハッシュ関数が衝突耐性ハッシュ関数であり、前記第1のデータパッケージの第1のサイズが前記第2のデータパッケージの前記署名バージョンの第2のサイズよりも大きい、請求項1に記載の方法。
【請求項6】
前記第2のデータパッケージの前記署名バージョンが、前記第2のデータパッケージの前記署名バージョンが前記第2のコンピュータデバイスによって前記ブロックチェーンに投稿された後に前記第1のコンピュータデバイスが前記プライベート鍵を前記ブロックチェーンに投稿するための期限を指示する、請求項1に記載の方法。
【請求項7】
前記第1のデータパッケージが前記受信者の前記暗号鍵及び前記送信者の前記暗号鍵をさらに含む、請求項1に記載の方法。
【請求項8】
前記鍵ペアの前記公開鍵を前記受信者に提供すべきかどうかを決定することが、前記第2のデータパッケージの前記署名バージョンがブロックチェーンに投稿されたと決定することを含む、請求項1に記載の方法。
【請求項9】
前記第1のコンピュータデバイスによって、前記プライベート鍵を前記ブロックチェーンに投稿することをさらに含む、請求項1に記載の方法。
【請求項10】
前記受信者の前記暗号鍵が前記受信者の公開鍵を含む、請求項1に記載の方法。
【請求項11】
前記送信者の前記暗号鍵が前記送信者のプライベート鍵を含む、請求項1に記載の方法。
【請求項12】
前記第1のコンピュータデバイスが前記送信者に関連付けられている、請求項1に記載の方法。
【請求項13】
前記第2のコンピュータデバイスが前記受信者に関連付けられている、請求項1に記載の方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年12月10日に出願された、米国仮特許出願第62/777,410号、及び2018年12月12日に出願された、米国仮特許出願第62/778,482号の利益を主張し、これらは双方とも参照により本明細書に組み込まれる。
【0002】
本明細書は、概して、公正な電子交換(FEE(fair electronic exchange))を実施するための仮想ブロックチェーンプロトコルの利用に関する。
【背景技術】
【0003】
公開台帳は、読み出し、拡張することができる、改ざん防止データシーケンスである。共有公開台帳は、現代社会が活動する仕方に大変革をもたらすことができる。- 支払い、資産移転、及び所有権譲渡などの - 従来の取引の安全性が、それらが行われる指図において確保され得る。- 暗号通貨及びスマートコントラクトなどの - 新たな取引が可能にされ得る。不正が低減され、仲介が解消され得、信用のための新たなパラダイムが導入され得る。
【0004】
しかし、従来の公開台帳はそれらの潜在性を達成していない。従来の公開台帳は、与えられた鍵によって行われた支払いを公表することを自由裁量によって拒否することができる単一のエンティティに全信用を置くことができ、サイバー攻撃に対して脆弱である。実際に、単一の中央機関が不正アクセスを受けると、システム全体もそうなる。いくつかの従来のシステムは、実行に費用がかかり、計算及び他の貴重なリソースを浪費し、能力を新たなエンティティの手中に集中させ(マイナー)、多大な曖昧さに悩まされ(フォーク)、長いレイテンシ及び小さいスループットを有する。他の従来の実装形態は、許可型であるか、若しくは悪意のあるユーザを罰する能力を前提とするか、又はその両方であり、並びに/或いはユーザの何らかのサブセットが適切な長さの時間にわたってサイバー攻撃の影響を受けないことを信用する。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書における実施形態は、仮想ブロックチェーンプロトコルを実施するための方法、システム、及び装置に関する。第1のコンピュータデバイスは公開鍵及び対応するプライベート鍵を生成する。公開鍵は、メッセージを送信者から受信者へ伝送するためのものである。第1のコンピュータデバイスは送信者に関連付けられている。第1のコンピュータデバイスは、公開鍵及び受信者の暗号鍵を用いてメッセージを暗号化し、第1のデータパッケージを生成する。受信者の暗号鍵は受信者の識別を指示する。第1のコンピュータデバイスは、送信者の暗号鍵を用いて第2のデータパッケージに署名し、第3のデータパッケージを生成する。送信者の暗号鍵は送信者の識別を指示する。第2のデータパッケージは、送信者の識別、受信者の識別、公開鍵、及び第1のデータパッケージのハッシュ関数を含む。
【0006】
第1のコンピュータデバイスは、第1のデータパッケージ及び第3のデータパッケージを、受信者に関連付けられた第2のコンピュータデバイスへ伝送する。第1のコンピュータデバイスは、第3のデータパッケージの署名バージョンを第2のコンピュータデバイスから受信する。第3のデータパッケージの署名バージョンは、受信者の暗号鍵を用いて署名される。第1のコンピュータデバイスは、第3のデータパッケージの署名バージョンがブロックチェーンに投稿されたと決定する。第3のデータパッケージの署名バージョンがブロックチェーンに投稿されたと決定したことに応じて、第1のコンピュータデバイスは、受信者によって暗号メッセージを解読するためにプライベート鍵をブロックチェーンに投稿する。
【0007】
本明細書において開示される実施形態の利益及び利点は、他の技法と比べて低減された計算労力を含む。ブロックチェーンは背景にとどまっており、仮想ブロックチェーンプロトコルの実行においては、仮にあったとしても、ごくまれにしか利用されない。公正な電子交換(FEE)が仮想ブロックチェーンプロトコルを利用して実施されるときには、正直な当事者によって行われる商業的に公平な取引は、ブロックチェーンを利用することなく、プロトコルによって提供される。当事者は、当事者が別の当事者を犠牲にして取引の利益を得ようと試みない場合に、「正直」であると示される。他方で、第1の当事者が取引の利益を受け、その一方で、第2の当事者が受けない場合には、第2の当事者は、取引の商業的公平性を回復するためにブロックチェーンを呼び出すことができる。
【0008】
仮想ブロックチェーンプロトコルは、他の技法と比べてより効率的でより経済的な仕方で商業的に公平な交換を提供する。ブロックチェーンはごくまれに仮想ブロックチェーンプロトコルに介入する。両方の当事者が正直であるときには、取引はオフチェーンで行われる。ブロックチェーンは、商業的に不公平な取引が生じたときにのみ、取引の商業的公平性を回復するために利用される。不履行によって得られる利点が他の技法と比べて低減されるため、不履行は実際には促されない。当事者が、ブロックチェーンを迂回することによって双方向で取引きし、情報をブロック内に投稿するための取引手数料の支払いを回避し、新たなブロックが生成されるのを待つことを回避するおかげで、取引コストが他の技法と比べて低減される。
【0009】
配達証明付き電子メール又は電子署名付き契約書などの、暗号資産及び他の取引は、仮想ブロックチェーンプロトコルを利用して、他の技法と比べてより短い時間で作成することができ、取引はより速やかに完遂される。さらなる利益及び利点は取引のためのプライバシ及び機密性を含む。仮想ブロックチェーンプロトコルは、商業的に公平な取引を確実にするためにそれらが受ける規制制度に適合することができる。仮想ブロックチェーンプロトコルは、より複雑で計算コストが高いスマートコントラクトの必要性を低減することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、例示的な仮想ブロックチェーンプロトコルを示す。
【
図2】
図2は、仮想ブロックチェーンプロトコルのためのプロセスを示す。
【発明を実施するための形態】
【0011】
取引、例えば、配達証明付き電子メールの伝送、電子署名付き契約書に署名して引き渡すこと、又は暗号資産取引を安全にするために、時として、信頼できる第三者が利用される。しかし、このような信頼できる第三者は取引を減速させ、そのサービスのための報酬を要求し得るため、信頼できる第三者を要する取引は非効率的になるか、又は費用が高くなり得る。ブロックチェーンは、特定の状況において、低減されたコストで、信頼できる第三者の代わりに利用され得る。しかし、ブロックチェーンは処理時間及び金銭的制約に関するコストも発生させ得る。本明細書において開示される実施形態は、公正な電子交換(FEE)を実施するための仮想ブロックチェーンプロトコルを提供する。FEEは、配達証明付き電子メール、電子契約書への署名、及び他の実装形態を含む取引のセットを表す。
【0012】
仮想ブロックチェーンプロトコルは、ブロックチェーンの存在下で二者取引を安全に完了するために利用することができるものであり、これにより、当事者が両者とも正直であり、どちらの当事者も追加費用を負担しないときには、ブロックチェーンは利用されない。第1の当事者が正直でない場合には、第2の当事者が損害を被らないよう、ブロックチェーンが仮想ブロックチェーンプロトコルによって最小限に利用される。それゆえ、仮想ブロックチェーンプロトコルは、ブロックチェーンが背景で動作し、当事者が商業的に不公平な仕方で行動しない限り呼び出されないというプロトコルである。
【0013】
図1は、例示的な仮想ブロックチェーンプロトコルを示す。
図1の図は、送信者112、コンピュータデバイス104、受信者116、コンピュータデバイス108、及びブロックチェーン120を含む。送信者112は、配達証明付き電子メール又は暗号資産取引の伝送などの、取引を遂行するためのメッセージMを受信者116へ伝送したいと欲するエンティティである。例えば、送信者112は、暗号資産アカウント、企業、大学、又は個人等を表すことができる。コンピュータデバイス104は送信者112に通信可能に結合されており、スマートフォン、タブレット、ラップトップ、又は
図3を参照してより詳細に示され、説明される構成要素を用いて実施される別のコンピュータデバイスであることができる。受信者116は、メッセージMが意図されたエンティティである。例えば、受信者116は、暗号資産アカウント、企業、大学、又は個人等を表すことができる。コンピュータデバイス108は受信者116に通信可能に結合されており、スマートフォン、タブレット、ラップトップ、又は
図3を参照してより詳細に示され、説明される構成要素を用いて実施される別のコンピュータデバイスであることができる。
【0014】
コンピュータデバイス104、108は仮想ブロックチェーンプロトコルを用いてメッセージMを送信者112から受信者116へ伝送する。仮想ブロックチェーンプロトコルは、FEEを実施するために用いられるものなどの、双方向取引を可能にする。送信者112及び受信者116が両者とも正直な当事者であるときには、ブロックチェーン120は、実際には、取引を遂行するために利用されない。当事者は、当事者が別の当事者を犠牲にして取引の利益を得ようと試みない場合に、「正直」であると示される。例えば、送信者112が自動車所有権を有し、受信者116が暗号資産アカウントの電子アドレスを有するシナリオを考える。どちらの当事者も最初は他方の資産を知らないが、それが資産にアクセスすることができるならば、認識することになる。送信者112が「正直」である場合には、それは、自動車所有権を受信者116へ伝送することを履行しないまま、暗号資産アカウントの電子アドレスを入手しようとすることはない。
【0015】
送信者112及び受信者116は各々、ブロックチェーン120を一度利用してそれら自身に関する情報を登録し得、その後、ブロックチェーン120を要することなく、他の正直な当事者と正直に対話することができる。登録された情報は、例えば、送信者112の公開暗号鍵A及び受信者116の公開暗号鍵Bを含むことができる。公開暗号鍵A、Bは、時として、公開鍵又は公開暗号化鍵とも称される。暗号鍵は、メッセージなどのデータにデジタル署名する、それを暗号化する、又はそれを解読するために用いられる公開鍵及び/又はプライベート(秘密)鍵であることができる。2つの当事者のうちの一方が正直でないとき、仮想ブロックチェーンプロトコルは、正直な当事者が損害を被らないよう、ブロックチェーン120上への情報の投稿を可能にすることによって問題を解決する。
【0016】
実施形態によっては、仮想ブロックチェーンプロトコルは、ブロックチェーン120のブロック(例えば、ブロック124、128)が特定の精度レベルをもって時間情報を組み込むことを可能にする。他の実施形態では、仮想ブロックチェーンプロトコルは時間をブロック単位で測定する。例えば、情報Yをブロック124の出現から所与の量の時間以内にブロックチェーン120上に投稿することは、ブロック124に続く25個のブロックのうちの1つ、例えば、ブロック128においてYを投稿する結果をもたらす。
【0017】
コンピュータデバイス104は公開鍵P及び対応するプライベート鍵Sを生成する。公開鍵Pは、メッセージMを送信者112から受信者116へ伝送するためのものである。送信者112はそれ自身の一意の識別子A、例えば、公開暗号化鍵、公開署名鍵、又は公開暗号鍵を有する。送信者112はまた、それ自身の対応する秘密鍵又はプライベート解読鍵も有する。送信者112の公開暗号鍵Aは、送信者112が特定のシステム、例えば、配達証明付き電子メールシステムに参加したときに、ブロックチェーン120上に投稿され得る。同様に、受信者116は一意の識別子B、例えば、公開暗号鍵を有する。送信者112はメッセージMに署名し、SIGA(M)によって表される署名されたメッセージを生成することができる。送信者112はメッセージMを暗号化し、EA(M)によって表される暗号化されたメッセージを生成することができる。
【0018】
コンピュータデバイス104は公開鍵P及び受信者116の暗号鍵Bを用いてメッセージMを暗号化し、第1のデータパッケージZ=EPB(M)を生成する。ここで、EPB(M)は、統合公開鍵PBを用いたメッセージMの暗号化、すなわち、公開鍵P及び暗号鍵Bを用いたメッセージMの暗号化を表現し、これにより、メッセージMは、Pに対応する秘密(プライベート)鍵S及びBに対応する別の秘密鍵の両方の知識を有せずにアクセス又は理解され得ない。実施形態によっては、第1のデータパッケージZは、メッセージM、並びに送信者112の識別(暗号鍵A)及び/又は受信者116の識別(暗号鍵B)などの、追加のデータの暗号化を表現することができる。それゆえ、第1のデータパッケージはZ=EPB(A,B,M)と表現されるであろう。受信者116の暗号鍵Bは受信者116の識別を指示する。実際には、任意のユーザ、例えば、受信者116が送信者112の公開暗号鍵Aを用いてメッセージMを暗号化することができるが、送信者112のみが、送信者112がその対応するプライベート解読鍵を有する限り、EA(M)を解読することができる。本明細書において開示されるデジタル署名及び暗号化方法は頑強であり、CCA-2安全である。CCA-2セキュリティは、暗号化によるセキュリティのための暗号文識別不能性標準を指す。本明細書において開示されるデジタル署名及び暗号化方法は、プライベート解読鍵を明らかにすることなく、証明可能に解読可能である。さらに、本明細書において開示されるデジタル署名及び暗号化方法は、適応的選択文書攻撃に対して安全である。
【0019】
本明細書において開示される実施形態によって説明される暗号化は、1つを超える段階において実施される。例えば、第1の段階では、コンピュータデバイス104は公開鍵Pのみを用いてメッセージMを暗号化し、データパッケージEP(M)を生成することができる。第2の段階では、コンピュータデバイス104は公開鍵P及びワンタイム若しくは一時鍵Oを用いてメッセージMを暗号化し、データパッケージEPO(M)を生成することができる。一時鍵Oは、時として、短期鍵(ephemeral key)と称される。実施形態によっては、公開鍵Pを用いてメッセージMを暗号化することは、プライベート鍵Kを用いてプライベート鍵暗号システムにおいてMを暗号化し、Pを用いてプライベート鍵Kを暗号化することを含む。
【0020】
実施形態によっては、本明細書において開示されるデジタル署名及び暗号化方法は統合暗号化を実施する。例えば、Pは公開暗号化鍵を表し、Sは対応するプライベート解読鍵を表す。本例を続けると、Xは別の公開暗号化鍵を表し、SXはXの対応する秘密鍵を表す。コンピュータデバイス104は、P及びXから、「統合」公開暗号化鍵PXを計算することができ、その対応する統合秘密(プライベート)鍵はS及びSXを含む。統合公開暗号化鍵PXを用いたメッセージMの暗号化はZによって表される。ここで、Z=EPX(M)である。このように暗号化されたメッセージは、コンピュータデバイスがS及びSXの両方にアクセスすることができるときに解読され得る。Z=EPX(M)であり、PXが統合公開暗号化鍵を表し、SXが、対応する秘密解読鍵を表すとき、コンピュータデバイス108は、公開鍵P、公開鍵X、秘密鍵S、及び秘密鍵SXを用いてデータパッケージZを統合的に解読し、メッセージMを得ることができる。データパッケージEPX(M)は、受信者116のみが秘密鍵S及びSXへのアクセスを有する限り、安全であり続ける。Z=EPX(M)であるが、別の秘密鍵S’が、Pに対応する秘密解読鍵でないときには、このとき、公開鍵P、公開鍵X、秘密鍵S’、及び秘密鍵SXを用いてデータパッケージZを統合的に解読することによって得られるデータM’はメッセージMとは非常に異なることになり、SXを明らかにすることなく証明され得る。
【0021】
コンピュータデバイス104がメッセージMを送信者112から受信した後に、コンピュータデバイス104は、対応する公開及び秘密(プライベート)暗号化対(P、S)を生成し、P及び受信者116の公開暗号鍵Bを用いた統合暗号化を表す、データZ=EPB(A,B,M)を計算する。Zは第1のデータパッケージを表し、Aによって送信者112、及びBによって受信者116を識別する。実施形態によっては、それゆえ、第1のデータパッケージZは受信者の暗号鍵B及び送信者の暗号鍵Aを含む。第1のデータパッケージZはSを包含しない。それゆえ、第1のデータパッケージZは、第1のデータパッケージEPB(A,B,M)を解読し、メッセージMにアクセスするために受信者116によって必要とされるプライベート解読鍵Sを除外する。
【0022】
コンピュータデバイス104は、送信者112の暗号鍵Aを用いて第2のデータパッケージ(A,B,P,t,H(Z))に署名し、第3のデータパッケージYを生成する。送信者112の暗号鍵Aは送信者112の識別を指示する。それゆえ、第2のデータパッケージは、送信者112の識別、受信者116の識別、公開鍵P、及び第1のデータパッケージZのハッシュ関数H(Z)を含む。実施形態によっては、tは、送信者112又は受信者116のどちらかが後続の機能を遂行するための期限を示す。例えば、tは、コンピュータデバイス104が第3のデータパッケージYの肯定応答を第2のコンピュータデバイス108から受信するための期限を指示することができる。他の実施形態では、tは、受信者116が取引の「公正さ」を回復することができなくなる将来の時点を指定する。
【0023】
交換又は取引は、それが商業的に公平であり、これにより、悪意のあるエンティティが悪意のないエンティティを犠牲にして利益を得ない場合に、「公正」であると示される。送信者112が自動車所有権を有し、受信者が暗号資産アカウントの電子アドレスを有する上述の例を続ける。どちらの当事者も最初は他方の資産を知らないが、それが資産にアクセスすることができると認識することになる。交換プロトコルでは、当事者がそれらの資産を電子的に交換すること、すなわち、送信者が暗号資産アカウントの電子アドレスを入手し、受信者116が自動車所有権を入手することが望まれる(しかし、保証はされない)。交換プロトコルは、(当事者の意志に反して交換を強制することなく)プロトコルが、送信者112が暗号資産アカウントの電子アドレスを入手した場合、及びその場合にのみ、受信者116が自動車所有権を入手することを提供する場合に、「公正」であると示される。プロトコルは2つの可能な商業的に公平な結果のみを有するべきである:(1)送信者112が暗号資産アカウントの電子アドレスを入手し、受信者116が自動車所有権を入手するか、又は(2)どちらの当事者も他方の資産を入手しない。
【0024】
図1に示される例を続けると、実施形態によっては、tは省略されるか、又は無限大などの大きな値に設定され得る。コンピュータデバイス104は、送信者112の暗号鍵Aを用いて第3のデータパッケージY=SIG
A(A,B,P,t,H(Z))を生成する。実施形態によっては、Hは衝突耐性ハッシュ関数である。したがって、H(C)=H(D))となるよう、2つの異なる文字列C及びDが見出され得る確率は極めて低い。ハッシュ関数H(Z)は、Zを符号化するために用いられ、これにより、第1のデータパッケージZの第1のサイズは第3のデータパッケージYの第2のサイズよりも大きい。
【0025】
コンピュータデバイス104はデータ132(第1のデータパッケージZ及び第3のデータパッケージY)を、受信者116に関連付けられコンピュータデバイス108へ伝送する。データYをコンピュータデバイス104から受信すると、実施形態によっては、コンピュータデバイス108は、必要とされる場合には、コンピュータデバイス108が取引の公正さを回復することができるよう、現在の時間が期限tよりも十分に早いかどうかを決定する。コンピュータデバイス108はデータYにデジタル署名し、データ136(SIGB(Y))を生成する。データ136は、コンピュータデバイス108がデータ132を受信したことをコンピュータデバイス104に指示するための受け取りとして用いられる。例えば、コンピュータデバイス104は第3のデータパッケージYの署名バージョンSIGB(Y)をコンピュータデバイス108から受信する。第3のデータパッケージYの署名バージョンSIGB(Y)は、受信者116の暗号鍵Bを用いて署名される。実施形態によっては、第2のデータパッケージ(A,B,P,t,H(Z))は、コンピュータデバイス104が第3のデータパッケージYの署名バージョンをコンピュータデバイス108から受信するための期限を(tの値を用いて)示す。例えば、tが違反された場合には、取引は無効とされるか、又は取り消されることになる。
【0026】
送信者112が、適切に署名された受け取り(第3のデータパッケージYの署名バージョンSIGB(Y))を受信者116から受信したときに、送信者112はデータ140(プライベート鍵S)を受信者116へ送信しなければならない。実施形態によっては、tは、コンピュータデバイス104がデータ136を受信した後に、コンピュータデバイス104がプライベート鍵Sをコンピュータデバイス108へ伝送しなければならない時間期限を示す。コンピュータデバイス108が、それがプライベート鍵Sを期限tよりも十分に早い時間に受信したと決定した場合には、仮想ブロックチェーンプロトコルはうまく完了する。
【0027】
実施形態によっては、コンピュータデバイス108は、コンピュータデバイス108がプライベート鍵S(データ140)をコンピュータデバイス104から受信しなかったと決定する。他の実施形態では、コンピュータデバイス108は、コンピュータデバイス104が期限tまでにプライベート鍵Sをコンピュータデバイス108へ伝送しなかったと決定する。それゆえ、FEEが違反され得る。一例では、送信者112は自動車の販売者であり、受信者116は自動車の購入者であり、Cは、送信者112による自動車の販売の申し出を表す。送信者112はデータSIGA(C)を受信者116へ伝送するが、受信者116は全く応答しない。この場合には、送信者112はその自動車を別の購入者に販売してもよく、その後に、受信者116が自動車を要求する。それゆえ、当事者は、それが所望の情報を得たことを認識し、その後、交換を未完了状態にとどまるよう強制することができる。
【0028】
FEEを実施するために、プライベート鍵Sを受信しなかったと決定したことに応じて、コンピュータデバイス108は問いかけをブロックチェーン120に投稿する。問いかけは第3のデータパッケージYの署名バージョンSIG
B(Y)を含む。署名バージョンSIG
B(Y)をブロックチェーン120に投稿することは、コンピュータデバイス108がプライベート鍵Sをコンピュータデバイス104から受信しなかったことをコンピュータデバイス104に指示する。
図1は、コンピュータデバイス108がブロック124において問いかけを投稿する様子を示す。実施形態によっては、tは、コンピュータデバイス108が第3のデータパッケージYの署名バージョンをブロックチェーン120に投稿するための期限を示す。それゆえ、第2のデータパッケージ(A,B,P,t,H(Z))は期限t=T1を指示し、その時間までにコンピュータデバイス108は問いかけをブロックチェーン120に投稿しなければならない。T1が違反された場合には、契約は破棄されるか、又は取り消され、送信者112は履行する必要がない。データSIG
B(Y)が時間t(T1)以内にブロックチェーン120内に出現した場合には、コンピュータデバイス104は、送信者112が取引を正直に遂行し、公正に完了したいと欲する限り、所与の量の時間以内にプライベート鍵Sをブロックチェーン120上に投稿する。t(T1)の値は、送信者112が、取引が「開かれた」ままとどまっている時間の上限を設定することを可能にする。コンピュータデバイス104へ受け取りSIG
B(Y)を送信する前に、受信者116は、コンピュータデバイス104がSを受信者116へ伝送しない場合には、受信者が、(時間T1までに)対応するための時間があるかどうかを主観的に評価することができる。
【0029】
実施形態によっては、コンピュータデバイス104は、第3のデータパッケージYの署名バージョンSIGB(Y)がブロックチェーン120に投稿されたと決定する。第3のデータパッケージYの署名バージョンSIGB(Y)がブロックチェーン120に投稿されたと決定したことに応じて、コンピュータデバイス104は、受信者116によってメッセージMを解読するためにプライベート鍵Sをブロックチェーン120に投稿する。例えば、プライベート鍵Sはブロック128に投稿され得る。実施形態によっては、コンピュータデバイス104は、第3のデータパッケージYの署名バージョンSIGB(Y)が期限T1よりも早い時間にブロックチェーン120に投稿されたと決定したことに応じて、プライベート鍵Sをブロックチェーン120に投稿する。実施形態によっては、tは、第3のデータパッケージYの署名バージョンがコンピュータデバイス108によってブロックチェーン120に投稿された後にコンピュータデバイス104がプライベート鍵Sをブロックチェーン120に投稿するための期限T2を示す。したがって、コンピュータデバイス104は時間T2よりも前にSをブロック128に投稿しなければならない。
【0030】
本例を続けると、コンピュータデバイス108は、プライベート鍵Sがコンピュータデバイス104によってブロックチェーン120に投稿されたと決定する。コンピュータデバイス108はプライベート鍵Sを用いて第1のデータパッケージZを解読し、メッセージMを得る。他方で、コンピュータデバイス104が、データSIGB(Y)の投稿後に期限T2以内にSをブロックチェーン120に投稿しなかった場合には、これは、送信者112が、受信者116が、関数H(Z)によってコミットされたメッセージMを受信しなかったことに同意することを意味する。
【0031】
送信者112が正直に行動する場合には、次に、データSIGB(Y)を与えられると、送信者112は、M及びSを公開することによって、SIGB(Y)が受け取りとなるメッセージの内容を証明することができる。任意のエンティティは、Sが、Pに対応する解読鍵であること、並びにP及び受信者116の暗号鍵Bに対する(A、B、M)の統合暗号化が本当にZであることを検証することができる。それゆえ、任意のエンティティは、Sを与えられると、受信者116がMを回復することができることを検証することができる。受信者116がSを全く受信しなかった場合には、コンピュータデバイス108は、Yをブロックチェーン120上に適時に投稿することになり、これにより、送信者112は、Sを公けに投稿するか、又は受信者116が、メッセージMを受信することに関して「責任を免れる(off the hook)」ことに公に同意することになる。例えば、Yがブロックチェーン120に適時に投稿された後に、コンピュータデバイス104がプライベート鍵Sを適時に投稿しなかった場合には、このとき、送信者112は、Yをブロックチェーン120に投稿するための取引コスト(のうちの少なくとも一部)を受信者116へ払い戻しさせられ得る。
【0032】
実施形態によっては、単一の暗号化EPX(A,B,M)を用いるのではなく、送信者112は、異なる公開鍵に対して、Mを伝送するために2つの(又はそれより多くの)暗号化を用いることができる。実施形態によっては、送信者112は、複数の公開暗号化鍵をブロックチェーン120内に登録することができる。他の実施形態では、受信者116は、登録された公開暗号化鍵を全く有しなくてもよいが、送信者112が、送信者112が配達証明付きメッセージ、例えば、Mを伝送する予定であると受信者116に対して注意喚起したときに、必要とされるものを生成することができる。例えば、受信者116は公開署名鍵のみを所有し、それらを用いて、受信者116が仮想ブロックチェーンプロトコルのために必要とする任意の公開暗号化鍵を認証し得る。
【0033】
値Z=EPX(A,B,M)をコンピュータデバイス104から受信したときに、受信者は(Sがまだ利用可能でないため)ZからMを直ちに解読することができない。それゆえ、受信者116が処理を停止した場合には、送信者112は受け取りSIGB(Y)を受信しないことになり、受信者116もメッセージMを受信しないことになる。コンピュータデバイス108が受け取りSIGB(Y)をコンピュータデバイス104へ伝送した場合には、このとき、送信者112はメッセージMのための有効な受け取りを受信者116から受信する。それゆえ、メッセージM及び受け取りSIGB(Y)の交換が公正になるために、受信者116はMを直ちに容易に得ることができなければならない。FEEは、送信者112がプライベート鍵Sを伝送したときに実施される。送信者112がプライベート鍵Sを伝送しない場合には、このとき、コンピュータデバイス108は受け取りSIGB(Y)をブロックチェーン120に適時に投稿し、コンピュータデバイス104に、Sをブロックチェーン120に適時に投稿するよう本質的に要求することになる。
【0034】
実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは電子小切手及び転送システムを(ブロックチェーン120の外部で)実施するために用いられる。例えば、送信者112が、受信者116が小切手を受信したとの受け取りを受信した場合、及びその場合にのみ、受信者116は電子小切手から現金にアクセスすることができる。実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは、エージェントが別のエージェントに(例えば、選択権を行使するための期限に関して)通知する義務を有するシステムを実施するために用いることができる。システムは、エージェントがそれらの義務に従ったことを証明する仕方で動作する(例えば、取締役会に、社員に彼らの選択権期限について知らせることを通知する)。
【0035】
実施形態によっては、本明細書において開示される仮想ブロックチェーンプロトコルは、加入ベースのモデルを実施するために用いられる。加入ベースのモデルでは、エンティティは、製品又はサービスへのアクセスのために、繰り返し発生する代価を一定の間隔で支払うことを要求される。取引の公正さを回復するべく、必要なときに、ブロックチェーンを利用する能力を得るために、送信者112及び受信者116は、例えば、取引をブロックチェーン120に投稿し、(求められるサービスの種類を表す)特定の文字列を指定し、手数料を支払うことによって、月極又は年間加入手数料を支払うことを必要とされ得る。サービスの種類は、配達証明付き電子メール、電子署名付き契約書等であることができる。手数料は、(a)ブロックチェーン120を維持する責任を負うエンティティ(例えば、企業、財団等)に支払われるか、(b)ブロックチェーン120の維持に寄与するユーザに分配されるべき取引手数料のプールに組み込まれるか、(c)特定のエンティティ又はユーザEに支払われるか、或いは(d)それらの組み合わせであることができる。例えば、受信者116がこのような加入手数料を支払っていなかった場合には、このとき、それは、公正さを回復するためにブロックチェーン120を利用することを可能にされない。
【0036】
仮想ブロックチェーンプロトコルの加入ベースのモデルの利点及び利益は、ユーザが追加コストなしで複数の正直な公正な交換を遂行することができることを含む。ブロックチェーン120を維持する企業又は財団は、企業又は財団を各取引にさらに関与させないサービスを提供するための加入手数料から利益を得る。加入手数料が取引プール内に組み込まれる場合には、詐欺に遭ったユーザ(例えば、受信者116)が、取引の公正さを回復するデータSIG
B(Y)を投稿するためにブロックチェーン120を利用したときに、プールの受益者はさらに利益を得る。仮想ブロックチェーンプロトコルにおいて、ユーザは事前に加入手数料を支払うことに同意する。詐欺が発生した取引のためにのみ事後の取引手数料が支払われる。従来のブロックチェーンベースの技法では、ユーザは、詐欺が発生し得るため、たとえ、全ての当事者が正直であっても、取引ごとに事前の取引手数料を支払うことに同意しなければならない。さらに、仮想ブロックチェーンプロトコルの加入ベースのモデル内の加入者Fは、単一のユーザではなく、ユーザのセットを表すことができる。例えば、Fは法律事務所を表すことができ、Fによって支払われる加入手数料は、仮想ブロックチェーンプロトコル加入ベースのモデルによって実施されるFEEサービスを利用するユーザの数に比例することができる。実施形態によっては、Fは全てのユーザの代理をすることができる。例えば、CEMシステムにおいて、Fは、そのユーザのうちの一部に宛てられたメッセージのための受け取りを提供し、次に、メッセージを必要に応じて内部で配信するコンピュータサーバを表すことができる。コンピュータサーバは、
図3を参照してより詳細に示され、説明される構成要素を用いて実施され得る。
【0037】
図2は仮想ブロックチェーンプロトコルのためのプロセスを示す。実施形態によっては、
図2のプロセスは、
図1を参照してより詳細に示され、説明されるコンピュータデバイス104によって遂行される。他のエンティティは他の実施形態におけるプロセスのステップのうちのいくつか又は全てを遂行する。同様に、実施形態は、異なる、及び/又は追加のステップを含むか、或いは異なる順序でステップを遂行し得る。
【0038】
コンピュータデバイス104は公開鍵P及び対応するプライベート鍵Sを生成する(204)。公開鍵P及びプライベート鍵Sは
図1を参照してより詳細に示され、説明される。公開鍵Pは、メッセージMを送信者112から受信者116へ伝送するためのものである。メッセージM、送信者112、及び受信者116は
図1を参照してより詳細に示され、説明される。コンピュータデバイス104は送信者112に関連付けられている。
【0039】
コンピュータデバイス104は、公開鍵P及び受信者116の暗号鍵Bを用いてメッセージMを暗号化し(208)、第1のデータパッケージZを生成する。受信者116の暗号鍵Bは受信者116の識別を指示する。第1のデータパッケージZはEPB(A,B,M)として表される。実際には、任意のユーザ、例えば、受信者116が送信者112の公開暗号鍵Aを用いてメッセージMを暗号化することができるが、送信者112のみが、送信者112がその対応するプライベート解読鍵を有する限り、EA(M)を解読することができる。
【0040】
コンピュータデバイス104が、送信者112の暗号鍵Aを用いて第2のデータパッケージ(A,B,P,t,H(Z))に署名し(212)、第3のデータパッケージYを生成する。送信者112の暗号鍵Aは送信者112の識別を指示する。第2のデータパッケージは、送信者112の識別、受信者116の識別、公開鍵P、及び第1のデータパッケージのハッシュ関数H(Z)を含む。実施形態によっては、tは、送信者112又は受信者116のどちらかが後続の機能を遂行するための期限を示す。例えば、tは、コンピュータデバイス104が第3のデータパッケージYの肯定応答を第2のコンピュータデバイス108から受信するための期限を指示することができる。他の実施形態では、tは、受信者116が取引の公正さを回復することができなくなる将来の時点を指定する。
【0041】
コンピュータデバイス104は第1のデータパッケージZ及び第3のデータパッケージYを、受信者116に関連付けられたコンピュータデバイス108へ伝送する(216)。データYをコンピュータデバイス104から受信すると、実施形態によっては、コンピュータデバイス108は、必要とされる場合には、コンピュータデバイス108が取引の公正さを回復することができるよう、現在の時間が期限tよりも十分に早いかどうかを決定する。コンピュータデバイス108はデータYにデジタル署名し、データ136(SIG
B(Y))を生成する。データ136は、コンピュータデバイス108がデータ132を受信したことをコンピュータデバイス104に指示するための受け取りとして用いられる。データ132及びデータ136は
図1を参照してより詳細に示され、説明される。
【0042】
コンピュータデバイス104は第3のデータパッケージYの署名バージョンSIGB(Y)をコンピュータデバイス108から受信する(220)。第3のデータパッケージYの署名バージョンSIGB(Y)は、受信者116の暗号鍵Bを用いて署名される。実施形態によっては、第2のデータパッケージ(A,B,P,t,H(Z))は、コンピュータデバイス104が第3のデータパッケージYの署名バージョンをコンピュータデバイス108から受信するための期限を(tの値を用いて)示す。例えば、tが違反された場合には、取引は無効とされるか、又は取り消されることになる。
【0043】
コンピュータデバイス104は、第3のデータパッケージYの署名バージョンSIG
B(Y)がコンピュータデバイス108によってブロックチェーン120に投稿されたと決定する(224)。送信者112が、適切に署名された受け取り(第3のデータパッケージYの署名バージョンSIG
B(Y))を受信者116から受信したときに、送信者112はデータ140(プライベート鍵S)を受信者116へ送信することになる。データ140は
図1を参照してより詳細に示され、説明される。コンピュータデバイス108が、コンピュータデバイス108がプライベート鍵S(データ140)をコンピュータデバイス104から受信しなかったと決定したときに、コンピュータデバイス108は第3のデータパッケージYの署名バージョンSIG
B(Y)をブロックチェーン120に投稿する。
【0044】
第3のデータパッケージYの署名バージョンがブロックチェーン120に投稿されたと決定したことに応じて、コンピュータデバイス104は、受信者116によってメッセージMを解読するためにプライベート鍵Sをブロックチェーン120に投稿する(228)。実施形態によっては、tは、第3のデータパッケージYの署名バージョンがコンピュータデバイス108によってブロックチェーン120に投稿された後にコンピュータデバイス104がプライベート鍵Sをブロックチェーン120に投稿するための期限T2を示す。したがって、コンピュータデバイス104は時間T2よりも前にSをブロック128に投稿しなければならない。
【0045】
図3は例示的な機械を示す。
図3の実装形態では、コンピュータシステム300は専用コンピューティングデバイスである。専用コンピューティングデバイスは、ブロックチェーンプロトコルを実行するようハードワイヤードされているか、本明細書における技法を遂行するように永続的にプログラムされた1つ以上の特定用途向け集積回路(ASIC(application-specific integrated circuit))又はフィールドプログラマブルゲートアレイ(FPGA(field programmable gate array))などのデジタル電子デバイスを含むか、或いはファームウェア、メモリ、他のストレージ、又は組み合わせ内のプログラム命令に従って技法を遂行するようプログラムされた1つ以上の汎用ハードウェアプロセッサを含む。様々な実装形態では、専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス、又は技法を実施するためのハードワイヤード若しくはプログラム論理の両方を組み込んだ任意の他のデバイスである。
【0046】
コンピュータシステム300は、バス302、若しくは情報を通信するための他の通信機構、及び情報を処理するためのバス302に結合された1つ以上のコンピュータハードウェアプロセッサ304を含む。実装形態によっては、ハードウェアプロセッサ304は汎用マイクロプロセッサである。コンピュータシステム300はまた、情報、及びプロセッサ304によって実行されるべき命令を記憶するための、バス302に結合された、ランダムアクセスメモリ(RAM(random-access memory))又は他の動的記憶デバイスなどの、主メモリ306を含む。一実装形態では、主メモリ306は、プロセッサ304によって実行されるべき命令の実行中に一時変数又は他の中間情報を記憶するために用いられる。このような命令は、プロセッサ304がアクセス可能な非一時的記憶媒体内に記憶されたときに、コンピュータシステム300を、命令内で指定された動作を遂行するようカスタマイズされた専用機械にする。
【0047】
一実装形態では、コンピュータシステム300は、プロセッサ304のために静的情報及び命令を記憶するための、バス302に結合されたリードオンリーメモリ(ROM(read only memory))308又は他の静的記憶デバイスをさらに含む。磁気ディスク、光ディスク、ソリッドステートドライブ、又は3次元クロスポイントメモリなどの、記憶デバイス312が、情報及び命令を記憶するために提供され、バス302に結合されている。
【0048】
一実装形態では、コンピュータシステム300は、バス302を介して、情報をコンピュータユーザに表示するための、陰極線管(CRT(cathode ray tube))、液晶ディスプレイ(LCD(liquid crystal display))、プラズマディスプレイ、発光ダイオード(LED(light emitting diode))ディスプレイ、又は有機発光ダイオード(OLED(organic light emitting diode))ディスプレイなどの、ディスプレイ310に結合されている。英数字及び他のキーを含む、入力デバイス314が、情報及びコマンド選択をプロセッサ304に通信するためにバス302に結合されている。別の種類のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ304へ通信するため、並びにディスプレイ310上のカーソル移動を制御するための、マウス、トラックボール、タッチ対応ディスプレイ、又はカーソル方向キーなどの、カーソルコントローラ316である。
【0049】
一実装形態によれば、本明細書における技法は、コンピュータシステム300によって、プロセッサ304が、主メモリ306内に包含された1つ以上の命令の1つ以上の列を実行したことに応じて遂行される。このような命令は、記憶デバイス312などの、別の記憶媒体から主メモリ306内に読み込まれる。主メモリ306内に包含された命令の列の実行は、プロセッサ304に、本明細書において説明されるプロセスステップを遂行させる。代替的実装形態では、ハードワイヤード回路機構がソフトウェア命令の代わりに、又はそれらと組み合わせて用いられる。
【0050】
用語「記憶媒体」は、本明細書で使用するとき、機械に特定の仕方で動作させるデータ又は命令の両方を記憶する任意の非一時的媒体を指す。このような記憶媒体としては、不揮発性媒体又は揮発性媒体の両方が挙げられる。不揮発性媒体としては、記憶デバイス312などの、光ディスク、磁気ディスク、ソリッドステートドライブ、又は3次元クロスポイントメモリなどのものが挙げられる。一般的な形態の記憶媒体としては、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、FLASH-EPROM、NV-RAM、或いは任意の他のメモリチップ又はカートリッジなどのものが挙げられる。記憶媒体は伝送媒体とは別個であるが、それと併用される。伝送媒体は、記憶媒体の間で情報を転送することに関与する。伝送媒体としては、バス302を含むワイヤを含む、同軸ケーブル、銅線、及び光ファイバが挙げられる。
【0051】
一実装形態では、様々な形態の媒体が、1つ以上の命令の1つ以上の列をプロセッサ304へ実行のために搬送することに関わる。命令は、最初、リモートコンピュータの磁気ディスク又はソリッドステートドライブ上で搬送される。リモートコンピュータは命令をそのダイナミックメモリ内にロードし、モデムを用いて電話線を通じて命令を送信する。コンピュータシステム300にローカルなモデムが電話線上のデータを受信し、赤外線伝送器を用いてデータを赤外線信号に変換する。赤外線検出器が、赤外線信号に含めて搬送されたデータを受信し、適切な回路機構がデータをバス302上に乗せる。バス302はデータを主メモリ306へ搬送し、プロセッサ304はそこから命令を取得して実行する。主メモリ306によって受信される命令は、プロセッサ304による実行の前、又は後のどちらかにおいて記憶デバイス312上に記憶されてもよい。
【0052】
コンピュータシステム300はまた、バス302に結合された通信インターフェース318を含む。通信インターフェース318は、ローカルネットワーク322に接続されたネットワークリンク320への双方向データ通信結合を提供する。通信インターフェース318は、サービス総合デジタル網(ISDN(integrated service digital network))カード、ケーブルモデム、衛星モデム、又は対応する種類の電話線へのデータ通信接続を提供するためのモデムである。別の実装形態では、通信インターフェース318は、適合したLANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN(local area network))カードである。実装形態によっては、無線リンクも実施される。
【0053】
ネットワークリンク320は、通例、1つ以上のネットワークを通じた他のデータデバイスへのデータ通信を提供する。ネットワークリンク320は、ローカルネットワーク322を通じた、ホストコンピュータ324への、又はインターネットサービスプロバイダ(ISP(Internet Service Provider))326によって運営されるクラウドデータセンター若しくは機器への接続を提供する。ISP326は、今度は、「インターネット」328と今日一般的に称されるワールドワイドパケットデータ通信ネットワークを通じたデータ通信サービスを提供する。ローカルネットワーク322及びインターネット328は両方とも、デジタルデータストリームを搬送する電気、電磁気、又は光信号を用いる。
【0054】
上述された特徴及び機能のうちのいずれか又は全ては、当業者に明らかであろうように、それが別途上述され得る範囲を除いて、或いは任意のこのような実施形態がそれらの機能又は構造のゆえに不適合になり得る範囲を除いて、互いに組み合わせることができる。物理的可能性に反しない限り、(i)本明細書において説明される方法/ステップは、任意のシーケンスで、及び/又は任意の組み合わせで遂行され得ること、並びに(ii)それぞれの実施形態の構成要素は任意の仕方で組み合わせられ得ることが想定される。
【0055】
本主題は、構造的特徴及び/又は動作に特定的な文言で説明されたが、添付の請求項において定義された本主題は、上述された特定の特徴又は動作に必ずしも限定されないことを理解されたい。むしろ、上述された特定の特徴及び動作は、請求項を実施する例として開示されており、他の同等の特徴及び動作も請求項の範囲に含まれることが意図される。
【0056】
図面において、デバイス、モジュール、命令ブロック、及びデータ要素を表現するものなどの、図式的要素の特定の配置又は順序付けは、説明を容易にするために示されている。しかし、図面における図式的要素の特定の順序付け又は配置は、処理の特定の順序若しくはシーケンス、又はプロセスの分離が必要とされることを暗示することを意図されていないことが当業者によって理解されるべきである。さらに、図面に図式的要素を含むことは、このような要素が全ての実施形態において必要とされること、或いはこのような要素によって表現される特徴が、いくつかの実施形態に含まれるか、又はいくつかの実施形態における他の要素と組み合わせられ得ないことを暗示することを意図されていない。
【0057】
さらに、図面において、実線若しくは破線又は矢印などの接続要素が、2つ以上の他の図式的要素の間又はそれらの中の接続、関係、又は関連を示すために用いられる場合、いずれかのこのような接続要素が存在しないことは、接続、関係、又は関連が存在し得ないことを暗示することを意図されていない。換言すれば、要素の間のいくつかの接続、関係、又は関連は、本開示を不明瞭にしないよう、図面に示されていない。加えて、図解を容易にするために、要素の間の複数の接続、関係、又は関連を表現するために単一の接続要素が用いられる。例えば、接続要素が信号、データ、又は命令の通信を表現する場合、このような要素は、通信に影響を及ぼすための、必要とされ得るとおりの、1つ又は複数の信号経路(例えば、バス)を表現することが当業者によって理解されるべきである。
【0058】
上述の説明において、実施形態は、実装形態ごとに異なる数多くの特定の詳細を参照して説明された。したがって、明細書及び図面は、限定でなく、例示的な意味で捉えられるべきである。実施形態の範囲の唯一の排他的な指標、及び出願人によって実施形態の範囲であると意図されるものは、本出願より発せられる請求項のセットの、任意のその後の補正を含む、このような請求項が発せられる特定の形式による、文字通り及び同等の範囲である。このような請求項に包含される用語のために本明細書において明示的に定められた任意の定義は、請求項において用いられるとおりのこのような用語の意味に適用されるものとする。加えて、上述の説明又は添付の請求項において、我々が用語「~をさらに含む(further including)」を使用するとき、この表現の後に続くものは、追加のステップ又は実体、或いは以前に述べられたステップ又は実体の下位ステップ/下位実体であることができる。
【外国語明細書】