(57)【特許請求の範囲】
【請求項１】
デジタル証明書を実装するためのコンピュータで実施される方法であって、
デジタル証明書を生成することと、
暗号化処理を用いて前記デジタル証明書のデジタル要約を生成することと、
前記デジタル証明書の前記デジタル要約をブロックチェーンの１つ又は複数のノードに送信して前記ブロックチェーンに保存することと、
前記デジタル証明書の前記デジタル要約を前記ブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得することと、
デジタル・マークを前記トランザクションＩＤに関連付けることと、
前記デジタル・マークと前記トランザクションＩＤとの関連付け関係を前記１つ又は複数のノードに送信して前記ブロックチェーンに保存することと、
未検証のデジタル・マークにより保証された未検証のデジタル証明書に対する検証要求を受けて、前記未検証のデジタル証明書に対応するトランザクションＩＤを取得することと、
前記未検証のデジタル証明書に対応する前記トランザクションＩＤに従って、ブロックチェーンに保存されているデジタル要約及びブロックチェーンに保存されているデジタル・マークを取得することと、
前記暗号化処理に従って、前記未検証のデジタル証明書のデジタル要約を生成することと、
前記ブロックチェーンに保存されているデジタル要約が前記未検証のデジタル証明書の前記デジタル要約と一致しているかどうか、及び前記ブロックチェーンに保存されているデジタル・マークが前記未検証のデジタル・マークと一致しているかどうかを検証することと、
前記ブロックチェーンに保存されているデジタル要約が前記未検証のデジタル証明書の前記デジタル要約と一致し、前記ブロックチェーンに保存されているデジタル・マークが前記未検証のデジタル・マークと一致していると判定したことを受けて、前記未検証のデジタル証明書が真正であると判定することと、を備える方法。
【請求項２】
前記デジタル・マークはエンティティに関連付けられる、請求項１に記載の方法。
【請求項３】
前記デジタル・マークは、前記エンティティのエンティティ情報を前記ブロックチェーンに保存することに関連付けられた別のトランザクションＩＤに関連付けられる、請求項２に記載の方法。
【請求項４】
前記デジタル・マークを前記トランザクションＩＤに関連付けることは、前記エンティティによる保証を示す、請求項２又は３に記載の方法。
【請求項５】
前記デジタル・マークはデジタル署名を備える、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記デジタル証明書の前記デジタル要約を前記ブロックチェーンの前記１つ又は複数のノードに送信して前記ブロックチェーンに保存することは、
前記デジタル証明書の前記デジタル要約及び前記デジタル要約を生成するために使用する前記暗号化処理をブロックチェーン・コントラクトに書き込むことと、
前記１つ又は複数のノードにブロックチェーン・トランザクションを開始させて、前記ブロックチェーン・コントラクトをデプロイすることと、を備える、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記デジタル要約は前記デジタル証明書のハッシュ値を含み、
前記トランザクションＩＤは前記ブロックチェーン・トランザクションのハッシュ値を備える、請求項６に記載の方法。
【請求項８】
前記デジタル・マークを前記トランザクションＩＤに関連付けることは、前記デジタル・マーク、前記トランザクションＩＤ、及び前記デジタル要約を関連付けることを備える、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記デジタル証明書を生成することは、
前記デジタル証明書のコンテンツを、法人であるエンティティから取得することと、
前記コンテンツを備える前記デジタル証明書を生成することと、を備える、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
１つ又は複数のプロセッサと、
前記１つ又は複数のプロセッサに接続され、請求項１から９のいずれか一項に記載の方法を実行するために前記１つ又は複数のプロセッサにより実行可能な命令が保存されている１つ又は複数のコンピュータ可読メモリと、を備えるデジタル証明書システム。
【請求項１１】
請求項１から９のいずれか一項に記載の方法を実行するための複数のモジュールを備えるデジタル証明書装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、ブロックチェーンベースのデジタル証明書を実装するための方法及び装置に関する。
【背景技術】
【０００２】
証明書は、経済取引もしくはその他の活動の証拠又は証明となり、ある法的な目的を果たすことができる。従来の取交わしの場合、証明書は紙ベースで、ゴム印又は署名により保証される。一例において、社印又は署名は正式に登録された関連企業を表す。しかしながら、紙の証明書は紛失又は損傷しやすい。これに応えて、そのような欠点を克服するために、紙ベースの証明書の代わりにデジタル証明書が次第に使用されるようになっている。それにもかかわらず、デジタル証明書は、紙の証明書よりも複製又はその他の方法による偽造が容易である。現在の技術では、デジタル証明書は、物理的な証明書のデジタル画像又はＰＤＦレンダリングとして実装されることが多い。そのようなデジタル証明書は、改ざん又はその他の無許可の改変を受けやすい。その結果、紙の証明書を上回る一定の利便性があるにもかかわらず、現在のデジタル証明書はセキュリティを確保することができず、法的証拠としての効果を弱める又は失うことが多い。したがって、安全な改ざん防止デジタル証明書があると望ましい。
【発明の概要】
【０００３】
本明細書の様々な実施形態は、ブロックチェーンベースのデジタル証明書を実装するためのシステム、方法、及び非一時的コンピュータ可読媒体を含むが、これらに限定されない。
【０００４】
一態様によれば、デジタル証明書を実装するためのコンピュータで実施される方法は、デジタル証明書を生成することと、デジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得することと、デジタル・マークをトランザクションＩＤに関連付けることと、を備える。
【０００５】
一部の実施形態において、デジタル・マークはエンティティに関連付けられる。デジタル・マークは、エンティティのエンティティ情報をブロックチェーンに保存することに関連付けられた別のトランザクションＩＤに関連付けられる。
【０００６】
他の実施形態において、デジタル・マークをトランザクションＩＤに関連付けることは、エンティティによる保証を示す。
【０００７】
一部の実施形態において、デジタル・マークは、デジタル印又はデジタル署名のうちの少なくとも一方を備える。一実施形態において、デジタル・マークはデジタル印を備える。別の実施形態において、デジタル・マークはデジタル署名を備える。デジタル・マークはエンティティによる保証に関連付けられる。デジタル・マークに関連付けられると、デジタル証明書はデジタル・マークに関連付けられ、エンティティにより保証される。
【０００８】
他の実施形態において、デジタル証明書のデジタル要約を１つ又は複数のノードの１つ又は複数のノードに送信してブロックチェーンに保存することは、デジタル証明書のデジタル要約及びデジタル要約を生成するために使用する暗号化処理をブロックチェーン・コントラクトに書き込むことと、１つ又は複数のノードにブロックチェーン・トランザクションを開始させて、ブロックチェーン・コンタクトをデプロイすることと、を備える。
【０００９】
さらに、他の実施形態において、デジタル要約はデジタル証明書のハッシュ値を含み、トランザクションＩＤはブロックチェーン・トランザクションのハッシュ値を備える。
【００１０】
更に別の実施形態において、デジタル・マークをトランザクションＩＤに関連付けることは、デジタル・マーク、トランザクションＩＤ、及びデジタル要約を関連付けることを備える。
【００１１】
一部の実施形態において、デジタル証明書を生成することは、デジタル証明書のコンテンツを、法人であるエンティティから取得することと、コンテンツを備えるデジタル証明書を生成することとを備える。
【００１２】
他の実施形態において、方法は、デジタル・マークとトランザクションＩＤとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。
【００１３】
更に別の実施形態において、方法は、未検証のデジタル・マークにより保証された未検証のデジタル証明書に対する検証要求を受けて、未検証のデジタル証明書に対応するトランザクションＩＤを取得することと、未検証のデジタル証明書に対応するトランザクションＩＤに従って、ブロックチェーンに保存されているデジタル要約及びブロックチェーンに保存されているデジタル・マークを取得することと、デジタル証明書のデジタル要約を生成するために使用する暗号化処理に従って、未検証のデジタル証明書のデジタル要約を生成することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致しているかどうか、及びブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致しているかどうかを検証することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致し、ブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致していると判定したことを受けて、未検証のデジタル証明書が真正であると判定することと、を更に備える。
【００１４】
一部の実施形態において、デジタル証明書システムは、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、上記実施形態のいずれかの方法を実行するために１つ又は複数のプロセッサにより実行可能な命令が保存されている１つ又は複数のコンピュータ可読メモリとを備える。
【００１５】
他の実施形態において、デジタル証明書装置は、上記実施形態のいずれかの方法を実行するための複数のモジュールを備える。
【００１６】
別の態様によれば、デジタル証明書システムは、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、システムにオペレーションを実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成されている１つ又は複数の非一過性のコンピュータ可読メモリとを備え、オペレーションが、デジタル証明書を生成することと、デジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得することと、デジタル・マークをトランザクションＩＤに関連付けることと、を備える。
【００１７】
別の態様によれば、非一過性のコンピュータ可読記憶媒体は、１つ又は複数のプロセッサにオペレーションを実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成され、オペレーションが、デジタル証明書を生成することと、デジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得することと、デジタル・マークをトランザクションＩＤに関連付けることと、を備える。
【００１８】
別の態様によれば、ブロックチェーンベースのデジタル証明書装置は、デジタル証明書を生成するための第１の生成モジュールと、デジタル証明書のデジタル要約を生成するための第２の生成モジュールと、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュールと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得するための取得モジュールと、デジタル・マークをトランザクションＩＤに関連付けるための関連付けモジュールと、を備えることができる。
【００１９】
本明細書に開示された実施形態は、１つ又は複数の技術的効果を有する。一部の実施形態において、方法及びシステムは、エンティティ保証を表す改ざん防止デジタル・マークを生成することができる。ブロックチェーンに保存することにより、オリジナル・データを正確に記録保持することができる。他の実施形態において、エンティティがその情報を（例えば、権限を持って）登録すると、登録情報及びその登録するエンティティとのアンカ（関連付け）を、ブロックチェーン・トランザクションにおいてブロックチェーンに保存することができる。したがって、登録情報は不変となり、検証のために検索可能となる。更に別の実施形態において、方法及びシステムは、登録エンティティがデジタル証明書又は他のデータを保証するための、登録エンティティに関連付けられた固有のデジタル・マークを生成することができる。更に別の実施形態において、登録情報をブロックチェーンに保存することに関連付けられたトランザクションＩＤに基づいて、デジタル・マークを生成することができる。これにより、デジタル・マークを対応する登録エンティティに一意的にリンクさせ、アイデンティティの偽造を防止する。一部の実施形態において、方法及びシステムは、デジタル証明書を生成し、デジタル表現をブロックチェーンに保存することができる。他の実施形態において、エンティティがデジタル証明書を保証すると、デジタル証明書及びその保証するエンティティのデジタル・マークとのアンカ（関連付け）を、ブロックチェーン・トランザクションにおいてブロックチェーンに保存することができる。したがって、デジタル証明書及びその保証者は、不変となり、検証のために検索可能となる。したがって、デジタル証明書のセキュリティが向上する。
【００２０】
本明細書に開示されるシステム、方法、及び非一時的コンピュータ可読媒体のこれら及びその他の特徴、構造の関連する要素及び部分の組合せの動作方法及び機能、ならびに製造コストの節約が、本明細書の一部をなす添付図面を参照しながら以下の説明及び添付の特許請求の範囲を検討することにより明らかになろう。同一の参照符号は様々な図において対応する部分を指す。しかしながら、図面は例示及び説明のためのものに過ぎず、限定的なものではないことを明確に理解されたい。
【図面の簡単な説明】
【００２１】
【図１Ａ】様々な実施形態によるブロックチェーンベースのデジタル証明書システムの例を示す図である。
【図１Ｂ】様々な実施形態によるブロックチェーン・ネットワークの例を示す図である。
【図２】様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法の例を示す図である。
【図３】様々な実施形態によるブロックチェーンベースのデジタル証明書を発行するための方法の例を示す図である。
【図４】様々な実施形態によるブロックチェーンベースのデジタル証明書を検証するための方法の例を示す図である。
【図５Ａ】様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法の例のフロー・チャートである。
【図５Ｂ】様々な実施形態によるブロックチェーンベースのデジタル証明書を実装するための方法の例のフロー・チャートである。
【図６Ａ】様々な実施形態によるブロックチェーンベースのデジタル・マーク生成コンピュータ・システムの例のブロック図である。
【図６Ｂ】様々な実施形態によるブロックチェーンベースのデジタル証明書コンピュータ・システムの例のブロック図である。
【図７】本明細書に記載の実施形態のいずれかを実施可能なコンピュータ・システムの例のブロック図である。
【発明を実施するための形態】
【００２２】
本明細書に開示される実施形態は、ブロックチェーンベースのデジタル・マーク生成システム、方法、及び非一時的コンピュータ可読媒体を含むが、これらに限定されない。様々な実施形態において、デジタル・マーク（例えば、印／署名）は、正式に検証されたエンティティの情報に基づいて生成することにより、エンティティによる保証として機能することができる。一部の実施形態において、保証するデジタル・マークにデジタル証明書をアンカリングすることに基づいて、デジタル証明書を発行することができる。ブロックチェーンの不変性、一貫性、及び正確さにより、デジタル証明書の有効性及び一意性を確保することができ、しばしば不一致又は不正確さを生じさせる改ざんを防止する。他の実施形態において、デジタル証明書をデジタル署名により認証することによって、証明書のコンテンツを認証するエンティティとリンクさせる。したがって、デジタル証明書の有効性を効果的に検証することができ、デジタル証明書のセキュリティが向上し、デジタル証明書の法的効果が高まる。
【００２３】
様々な実施形態において、開示されたデジタル証明書システム、方法、及び非一時的コンピュータ可読媒体は、誰がネットワークに参加でき、コンセンサス・プロトコルを実行でき、かつ共有ブロックチェーン台帳を維持できるかに応じて、様々なタイプのブロックチェーンに基づくことができる。様々なタイプのブロックチェーンとしては、例えば、パブリック型ブロックチェーン、コンソーシアム型ブロックチェーン、プライベート型ブロックチェーンなどが挙げられる。以下の説明は、コンソーシアム型ブロックチェーンに言及する。それにもかかわらず、開示されたデジタル証明書システム、方法、及び非一時的コンピュータ可読媒体は、他のタイプのブロックチェーンに対しても同様に適用することができる。
【００２４】
ブロックチェーンは、オペレーションがネットワーク内の様々なノード（例えば、計算装置）により実行されるため、分散型台帳と一般に称する分散型データベース又は部分中央集権型データベースであると考えられる。任意の情報をブロックチェーンに書き込み、保存し、そこから読み出すことができる。ノードは、例えば、ブロックチェーン・ネットワークをサポートし、円滑に動作するように保持する計算装置又は大型コンピュータ・システムである。各ノードはブロックチェーンの機能の一部又は全部を提供することができる。例えば、コンセンサス検証を提供するノードは、コンセンサス参加ノード（又はコンセンサス・ノード）と称することができる。コンセンサスは、一般に認められている処理結果を達成するための、ブロックチェーン・ノードのネットワークについてのルールのアルゴリズムであってよい。コンセンサスにより、データがブロックのチェーンに連続して追加される。ブロックに変更が行われると、そのブロックとチェーン内の前のブロックとのリンクが無効になり、これが全ネットワーク参加者に見えるようになる。ネットワーク参加者は、コンセンサス・ルールを通じて、さらなる無許可の動作を防止することができる。
【００２５】
コンソーシアム型ブロックチェーンは、予め設定されたノードにより管理されるコンセンサス手続きを有するブロックチェーンを指す。ブロックチェーンにより、誰でも又は承認された参加者のみが、ハイブリッド・アクセス方法にアクセスする、又はこれを採用することができる。例えば、ルート・ハッシュ及びそのアプリケーション・プログラミング・インターフェース（ＡＰＩ）は公開することができ、外部関係者がＡＰＩを利用してある数の問合せを行い、ブロックチェーン・ステータスに関する情報を取得することができる。
【００２６】
コンソーシアム型ブロックチェーンは、より一般的なブロックチェーンであるパブリック型ブロックチェーンと比較すると最もよく理解することができる。パブリック型ブロックチェーンにはアクセス制限がなく、これは、インターネット接続を有する人であれば誰でもパブリック型ブロックチェーンの参加者になることができることを意味する。より具体的には、世界中の誰でもブロックチェーンに含まれるデータを読み出すことができ、世界中の誰でもパブリック型ブロックチェーンにおけるトランザクションを実行することができる。また、ブロックチェーンにブロックを追加できる個人又はエンティティを決定するプロセスである、ブロックチェーンのコンセンサス・プロセスに参加できる人に制限はない。パブリック型ブロックチェーンは、完全に分散型であると考えられ、ブロックチェーンの管理権限は単一の個人又はエンティティにはない。
【００２７】
コンソーシアム型ブロックチェーンは許可制であり、したがって、インターネット接続を有する人が誰でもコンソーシアム型ブロックチェーンにアクセスできるわけではないという点で、パブリック型ブロックチェーンとは異なる。このタイプのブロックチェーンを半分散型と称することもできる。コンソーシアム型ブロックチェーンの管理は、単一のエンティティに許可されるのではなく、認可された個人のグループに許可される。コンソーシアム型ブロックチェーンでは、コンセンサス・プロセスはパブリック型ブロックチェーンのものとは異なる可能性がある。誰でも手続きに参加できるのではなく、コンソーシアム型ブロックチェーンのコンセンサス参加者は、ネットワーク上の予め認可されたノード群である可能性がある。ノードは様々な国、企業、又は他のエンティティに対応することができる。したがって、コンソーシアム型ブロックチェーンは、パブリック型ブロックチェーン特有のセキュリティ機能を有し、一方でネットワーク上においてより高度な管理を行うこともできる。
【００２８】
図１Ａは、様々な実施形態による、様々な開示されたステップ及び方法を実行するためのシステム１１０の例を示す。図示したように、システム１１０は、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４を備えることができ、各システムは、ネットワーク１１９により代表される様々なタイプの通信によって接続される、１つ又は複数の物理ハードウェア装置又は仮想装置に対応することができる。
【００２９】
登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４の各々は、サーバ、コンピュータ、携帯電話などの１つ又は複数の計算装置に実装することができる。例えば、各システムはサーバ群に実装することができる。サーバ群はロード・バランシングを採用することができる。
【００３０】
この図では、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４が単一の構成要素として示されているが、これらのシステムを単一の装置又は接続された複数の装置として実装してもよいことを理解されたい。すなわち、図１Ａのシステムの２つ以上を単一のシステムに統合しても、別々のシステムとして実装してもよい。例えば、登録システム１１１と証明システム１１３とを、１つ又は複数の計算装置を備えるデジタル証明書システム１１８に統合してもよい。デジタル証明書システム１１８を、ブロックチェーンベースのデジタル証明書システムと称することができる。登録システム１１１と証明システム１１３とは、統合されると、様々なモジュールとして、又は統合されたシステムの同様の構成要素として実装することができる。
【００３１】
登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４の各々には、システム１１０の他のシステム又は装置にアクセスするための適切なソフトウェア（例えば、登録アプリケーション・プログラム・インターフェース、ブロックチェーン・アプリケーション・プログラム・インターフェース、デジタル証明書生成プログラム、公的機関アプリケーション・インターフェース）及び／又はハードウェア（例えば、ワイヤ、無線接続）がインストールされていてもよい。登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４の各々は、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続された１つ又は複数のメモリとを備えることができる。メモリは、非一過性かつコンピュータ可読であり、１つ又は複数のプロセッサに本明細書に記載のオペレーションを実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成することができる。
【００３２】
一般に、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４は、ネットワーク１１９を通じて互いに通信可能であってよい。例えば、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、及び公的機関システム１１４は、データ通信可能な１つ又は複数の有線又は無線ネットワーク（例えば、インターネット）を通じて互いに通信可能であってよい。図１Ｂ〜図７を参照しながら、システム構成要素の様々な態様について、以下で更に詳細に説明する。
【００３３】
図１Ｂは、様々な実施形態によるブロックチェーン・ネットワーク１２０の例を示す。図示したように、ブロックチェーン・ネットワーク１２０は、前述のブロックチェーン・システム１１２を備えることができる。ブロックチェーン・システム１１２は、複数のブロックチェーン・ノード（例えば、ノード１、ノード２、ノード３、ノード４、ノードｉなど）を備えることができる。ブロックチェーン・ノードは、１つのブロックチェーン・ノードが別のブロックチェーン・ノードと通信するネットワーク（例えば、ピアツーピア・ネットワーク）を形成することができる。図示したブロックチェーン・ノードの順序及び数は例示であり、説明を簡単にするためのものに過ぎない。ブロックチェーン・ノードはサーバ、コンピュータなどに実装することができる。各ブロックチェーン・ノードは、ＴＣＰ／ＩＰなどの様々なタイプの通信方法によって接続された１つ又は複数の物理ハードウェア装置又は仮想装置に対応することができる。分類に応じて、ブロックチェーン・ノードとしては、フル・ノード、Ｇｅｔｈノード、コンセンサス・ノードなどが挙げられる。
【００３４】
様々な実施形態において、ブロックチェーン・システム１１２の１つ又は複数のノードは、前述の登録システム１１１、証明システム１１３、公的機関システム１１４などの他のシステム及び装置と対話することができる。対話は、例えば、トランザクション、証明、契約などの目的でデータの送信及び／又は受信を伴うことができる。一例では、ノードＡ（例えば、携帯電話、コンピュータなど）はデジタル証明書システム１１８の装置に対応することができ、情報をノード１（又はブロックチェーン・システム１１２の複数のノード）に送信してブロックチェーンに保存することができる。保存プロセスは、ブロックチェーン・トランザクションにより実現可能である。例えば、情報をブロックチェーン・コントラクト（例えば、スマート・コントラクト）に書き込むことができ、ブロックチェーン・トランザクションをノード１（又は、ブロックチェーン・コンセンサス・ルールに基づいてそのような権限を有する１つ又は複数の他のノード）により開始して、コントラクトをブロックチェーンにデプロイすることができる。他のブロックチェーン・トランザクションと同様に、ここでのトランザクションはトランザクション・ハッシュに対応することができる。トランザクション・ハッシュは、様々なトランザクション情報をハッシュ関数にかける出力であってよい。ブロックチェーンは、トランザクションのハッシュ値を保存することができる。後で、情報を（例えば、検証のために）検索する必要があるときに、ノードＡ／ノードＢ（例えば、携帯電話、コンピュータなど）が、ノード１／ノード２（又はブロックチェーン・システム１１２の複数のノード）に、別のトランザクションを開始してブロックチェーンから情報を取得するように命令することができる。別のトランザクションは、情報を取得するためのアドレスを問い合わせることができる。ノードＢは、デジタル証明書システム１１８、公的機関システム１１４、又はブロックチェーン・システム１１２に接続された別のシステム（図示せず）に属していてもよい。
【００３５】
ブロックチェーン・システム１１２との対話において、ノードＡ及びノードＢには、トランザクションを開始する、転送する、又はトランザクションにアクセスするための適切なブロックチェーン・ソフトウェアがインストールされていてもよい。ノードＡは、ノード１又はブロックチェーンの１つ又は複数の他のノードとの通信を通じてブロックチェーンにアクセスすることができ、ノードＢは、ノード２又はブロックチェーンの１つ又は複数の他のノードとの通信を通じてブロックチェーンにアクセスすることができる。ノードＡは、ノード１又は同様のノードを通じてトランザクションをブロックチェーンに提示し、トランザクションをブロックチェーンに追加するよう要求することができる。
【００３６】
ブロックチェーンは、複数のブロックチェーン・ノードにより維持することができ、各ブロックチェーン・ノードはメモリを備える又はメモリに接続している。一部の実施形態において、メモリはプール・データベースを保存することができる。プール・データベースには、複数のブロックチェーン・ノードが分散してアクセス可能である。例えば、プール・データベースを、ブロックチェーン・ノードのメモリにそれぞれ保存することができる。プール・データベースは、ノードＡと同様に１つ又は複数のユーザ装置により提示された複数のトランザクションを保存することができる。
【００３７】
一部の実施形態において、受信者ブロックチェーン・ノードは、未確認のトランザクションのトランザクション要求を受信した後、トランザクションの何らかの予備検証を実行することができる。例えば、図１Ｂを参照すると、ノード１は、ノードＡからトランザクションを受信した後に予備検証を実行することができる。トランザクションは、検証されると、受信者ブロックチェーン・ノード（例えば、ノード１）のプール・データベースに保存されてよく、受信者ブロックチェーン・ノードは、トランザクションを１つ又は複数の他のブロックチェーン・ノード（例えば、ノード３、ノード４）に転送することもできる。１つ又は複数の他のブロックチェーン・ノードは、受信者ノードにより実行されるプロセスを繰り返すことができる。対応するプール・データベースのトランザクションがあるレベル（例えば、閾値）に達すると、ブロックチェーン・ノードは各々、コンセンサス・ルール又は他のルールに従って、対応するプール・データベースのトランザクション群を検証することができる。
【００３８】
ブロックチェーン・トランザクションがブロックチェーン・コントラクト（例えば、スマート・コントラクト）を伴う場合、ブロックチェーン・ノードはブロックチェーン・コントラクトを局所的に実行することができる。ブロックチェーン・コントラクトは、コントラクトのネゴシエーション又はパフォーマンスをデジタル的に促進、検証、又は強化することを意図したコンピュータ・プロトコルである。ブロックチェーン・コントラクトにより、第三者なしで、信頼できるブロックチェーン・トランザクションのパフォーマンスが可能になる。ブロックチェーン・トランザクションの例として、（コントラクトのデプロイメントによる）データ保存のためにデータをコントラクト・コードに符号化すること、及び（コントラクトにアクセスする、又はコントラクトを実行することによる）検索が挙げられる。ブロックチェーン・コントラクトとしては、エンティティ情報、デジタル証明書のデジタル要約などのユーザ作成コントラクト・コードが挙げられる。
【００３９】
コンセンサス・ルールに従ってブロックチェーン・トランザクション群を順調に検証する、あるブロックチェーン・ノードが、ブロックチェーン・トランザクションをパックしてブロックチェーンのローカル・コピーに追加し、その結果を他のブロックチェーン・ノードに広めることができる。あるブロックチェーン・ノードは、最初に検証を順調に完了し、検証権限を取得し、又は別のコンセンサス・ルールに基づいて決定されたブロックチェーン・ノードなどであってよい。その後、他のブロックチェーン・ノードは、ブロックチェーン・トランザクションを局所的に実行し、実行結果を互いに検証し（例えば、ハッシュ計算を行うことにより）、それらのブロックチェーンのコピーをあるブロックチェーン・ノードのコピーと同期させることができる。ブロックチェーンのローカル・コピーをアップデートすることにより、他のブロックチェーン・ノードが、ブロックチェーン・トランザクションのそのような情報をそれぞれのローカル・メモリに同様に書き込むことができる。したがって、ブロックチェーン・コントラクトがデプロイされる。デプロイされたコントラクトは、後で、ブロックチェーンの対応するアドレスを通じてアクセスし、実行することができる。例えば、コントラクトに保存されたデータを検索することができる。ある時点で検証が失敗すると、ブロックチェーン・トランザクションは拒絶される。上記にもかかわらず、他のタイプのブロックチェーン・システム及び関連するコンセンサス・ルールを、開示したブロックチェーン・システムに適用してもよい。
【００４０】
図２は、様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法２００の例を示す。方法２００は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３、公的機関システム１１４）により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム１１１と証明システム１１３とを、１つ又は複数の計算装置を備えるデジタル証明書システム１１８に統合することができる。以下に示すオペレーションは例示的なものである。実施に基づいて、方法２００は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。
【００４１】
一部の実施形態において、ステップ２１１で、第１のエンティティが、登録システム１１１により情報登録を開始することができる。登録情報は、識別番号、アドレス、連絡先情報などのエンティティのアイデンティティ情報を備えることができる。エンティティは、個人、法人又は企業、組織などに関連付けることができる。例えば、法人は、登録システム１１１により、法人の情報（例えば、法人の名称、法人の代表者、法人の連絡先など）を提示することによって法人情報の登録を開始することができる。
【００４２】
ステップ２１２で、登録システム１１１は、検証要求２１２を証明システム１１３に送信することができる。登録情報を証明システム１１３に送信してもよい。
【００４３】
ステップ２１３で、証明システム１１３は、公的機関システム１１４によるエンティティのアイデンティティの検証を要求することができる。例えば、証明システム１１３は、公的機関システム１１４のアプリケーション・プログラム・インターフェースと通信してアイデンティティを検証することができる。別の例では、証明システム１１３は、登録情報を送信して、法人登録データベースに問い合わせ、法人のアイデンティティを検証するように、公的機関システム１１４に要求することができる。
【００４４】
ステップ２１４で、公的機関システム１１４は、検証結果を証明システム１１３に返信することができる。
【００４５】
ステップ２２１で、検証が成功した場合、証明システム１１３は、登録情報をブロックチェーン・システム１１２に送信して、ブロックチェーン・システム１１２により維持されるブロックチェーンに保存することができる。登録情報は、公開情報であり、ブロックチェーンの様々なノードが利用できると考えられる。
【００４６】
様々な実施形態において、証明システム１１３は、１つ又は複数の軽量ノード（例えば、ノードＡ、ノードＢ）を含むことができる。証明システム１１３は、軽量ノードに接続されたブロックチェーン・システム１１２のノード（例えば、ノード１）により、ブロックチェーン・トランザクション（又は略して、トランザクション）を開始することができる。例えば、登録情報をブロックチェーン・コントラクト（例えば、スマート・コントラクト）に書き込むことができ、ブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。デプロイメントにより、実行、検索、又は他のオペレーションのために、コントラクトにブロックチェーンからアクセス可能である。この場合のブロックチェーン・トランザクションは、トランザクションＩＤ（例えば、第１のトランザクション・ハッシュ）に対応することができる。例えば、ブロックチェーン・トランザクションＩＤは、ブロックチェーン・トランザクションのハッシュ値であってよい。トランザクションＩＤをエンティティに関連付けてもよい。ブロックチェーンは登録情報を保存することができる。ブロックチェーンは対応するトランザクションＩＤを保存することもできる。したがって、ブロックチェーン・トランザクションＩＤと登録情報とがアンカリングされる（関連付けられる）。トランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されている登録情報を検索することができる。例えば、ブロックチェーン・トランザクションＩＤがブロックチェーン・システム１１２（例えば、ブロックチェーン・ノード）に送信されると、ブロックチェーン・システム１１２は、ブロックチェーン・コントラクトを実行して、ブロックチェーンに保存されている登録情報を検索することができる。ブロックチェーンに登録情報を保存し、登録情報を検索する多くの他の適切な方法がある。当業者には、本明細書の実施形態が上記の例に限定されないことを理解されたい。この段落に記載のトランザクション及びトランザクションＩＤを、第１のトランザクション及び第１のトランザクションＩＤと称することができる。
【００４７】
ステップ２２２で、ブロックチェーン・システム１１２は、第１のトランザクションＩＤ（例えば、デジタル要約）を証明システム１１３に返信することができる。第１のトランザクションＩＤは、一意的にエンティティを表し登録情報に対応するデジタル改ざん防止表現であってよい。例えば、ブロックチェーン・システム１１２は、第１のトランザクションのハッシュ値を第１のトランザクションＩＤとして証明システム１１３に返信することができる。第１のトランザクションＩＤは、エンティティがブロックチェーンに存在することを示す。
【００４８】
ステップ２３１で、証明システム１１３は、少なくともエンティティの第１のトランザクションＩＤに基づいてデジタル・マーク（例えば、デジタル署名／印）を生成することができる。デジタル・マーク（例えば、デジタル署名／印）を、第１のトランザクションＩＤ（例えば、第１のトランザクションのハッシュ値）に基づいて一意的に識別することができる。証明システム１１３は、エンティティとデジタル・マーク（例えば、デジタル署名／印）との関係を維持することができる。
【００４９】
ステップ２４１で、証明システム１１３は、デジタル・マーク（例えば、デジタル署名／印）とエンティティとの関連付け関係をブロックチェーン・システム１１２に送信してブロックチェーンに保存することができる。したがって、生成されたデジタル・マーク（例えば、デジタル署名／印）とエンティティとの関連付け関係を、ブロックチェーン・システム１１２及び／又は証明システム１１３により保存することができる。
【００５０】
様々な実施形態において、証明システム１１３は、ブロックチェーン・システム１１２のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第２のトランザクションと称することができ、第２のトランザクションＩＤに対応することができる。例えば、ステップ２４１におけるデジタル・マーク（例えば、デジタル署名／印）とエンティティとの関連付けの関連付け関係を、ブロックチェーン・コントラクト（例えば、スマート・コントラクト）に書き込むことができる。上記のステップ２２１を参照して前述したプロセスと同様に、第２のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第２のブロックチェーン・トランザクションは、第２のトランザクションＩＤ（例えば、第２のトランザクション・ハッシュ）に対応することができ、この第２のトランザクションＩＤもエンティティに関連付けられる。ブロックチェーンは、関連付け関係を保存することができる。ブロックチェーンは、対応する第２のトランザクションＩＤを保存することもできる。第２のトランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【００５１】
ステップ２５１で、上記のステップが順調に実行されると、証明システム１１３は、登録成功のメッセージを登録システム１１１に返信することができる。
【００５２】
図３は、様々な実施形態による、ブロックチェーンベースのデジタル証明書を発行するための方法３００の例を示す。方法３００は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３）により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム１１１と証明システム１１３とを、１つ又は複数の計算装置を備えるデジタル証明書システム１１８に統合することができる。以下に示すオペレーションは例示的なものである。実施に基づいて、方法３００は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法３００を方法２００の後に実行してもよい。
【００５３】
一部の実施形態において、ステップ３１１で、第１のエンティティが、登録システム１１１により証明書（例えば、デジタル証明書）の生成要求を開始することができる。本明細書において、証明書はある事実又は他の情報を証明する書類を含むことができる。証明書をエンティティにより保証することができる。例えば、法人又は機関などのエンティティが、デジタル証明書の形の金融トランザクション・レシートを発行することができる。別の例では、保険代理店が、デジタル証明書の形の保険証券又は保険証明書を発行することができる。
【００５４】
ステップ３１２で、登録システム１１１は、証明書データを生成することができる。証明書データは、要求に従った証明書のコンテンツを備えることができる。例えば、金融トランザクションのためのレシートの生成要求は、金融トランザクションの日付、金融トランザクションの量、金融トランザクションの支払人及び受取人などの証明書データに対応することができる。
【００５５】
ステップ３２１で、登録システム１１１は、要求された証明書を証明システム１１３に送信し、要求された証明書を図２に関して前述したデジタル・マーク（例えば、デジタル署名／印）とアンカリングするよう証明システム１１３に要求することができる。本明細書において、アンカリングとは、関連付け又はその他の方法による関連付けの確立を意味することができる。関連付けを、デジタル証明書システム１１８の１つ又は複数の構成要素に保存することができる。
【００５６】
ステップ３２２で、証明システム１１３は、要求された証明書とデジタル・マーク（例えば、デジタル署名／印）とをアンカリングすることができる。一部の実施形態において、証明システム１１３はデジタル証明書のデジタル要約を生成することができる。
【００５７】
ステップ３３１で、証明システム１１３は、デジタル証明書のデジタル要約をブロックチェーン・システム１１２に送信して、デジタル要約をブロックチェーンに保存するようブロックチェーン・システム１１２に要求することができる。
【００５８】
様々な実施形態において、証明システム１１３は、ブロックチェーン・システム１１２のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第３のトランザクションと称することができ、第３のトランザクションＩＤに対応することができる。例えば、デジタル証明書のデジタル要約をブロックチェーン・コントラクト（例えば、スマート・コントラクト）に書き込むことができる。上記のステップ２２１を参照して前述したプロセスと同様に、第３のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第３のブロックチェーン・トランザクションは、第３のトランザクションＩＤ（例えば、第３のトランザクション・ハッシュ）に対応することができる。第３のトランザクションＩＤを、デジタル証明書のデジタル要約、第３のトランザクションのタイムスタンプ、第３のトランザクションの開始者などの情報に関連付けることができる。ブロックチェーンは、デジタル要約（例えば、デジタル証明書のハッシュ値）を保存することができるが、プライバシー確保のため、デジタル証明書の詳細（例えば、プレーンテキスト）を保存することができない。ブロックチェーンは、対応する第３のトランザクションＩＤを保存することもできる。第３のトランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されているデジタル証明書のデジタル要約を検索することができる。スマート・コントラクトの他の代替方法を採用して、証明書をブロックチェーンに保存してもよい。
【００５９】
ステップ３３２で、ブロックチェーン・システム１１２は、デジタル証明書のデジタル要約を保存するための第３のトランザクションの第３のトランザクションＩＤ（例えば、第３のトランザクション・ハッシュ）を、証明システム１１３に返信することができる。ステップ３３１、３３２により、ブロックチェーンに保存されているデジタル証明書のデジタル要約を後で使用して、不審なデジタル証明書の要約を検証することができる。
【００６０】
ステップ３４１で、証明システム１１３は、デジタル印／署名を、証明書のデジタル要約を保存するための第３のトランザクションの第３のトランザクションＩＤにアンカリングすることができる。ステップ３２２で、要求された証明書がデジタル・マーク（例えば、デジタル署名／印）にアンカリングされているため、証明システム１１３に保存されているデジタル証明書は、ブロックチェーンに保存されているデジタル要約表現にリンクされる。
【００６１】
ステップ３５１で、証明システム１１３は、デジタル印／署名、証明書のデジタル要約を保存するための第３のトランザクションの第３のトランザクションＩＤ、及びデジタル証明書のデジタル要約間の関連付けをブロックチェーン・システム１１２に送信してブロックチェーンに保存することができる。したがって、エンティティ、デジタル印／署名、及びデジタル証明書が関連付けられ、関連付け関係がブロックチェーンに保存される。
【００６２】
様々な実施形態において、証明システム１１３は、ブロックチェーン・システム１１２のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第４のトランザクションと称することができ、第４のトランザクションＩＤに対応することができる。例えば、ステップ３５１における関連付けの関連付け関係を、ブロックチェーン・コントラクト（例えば、スマート・コントラクト）に書き込むことができる。上記のステップ２２１を参照して前述したプロセスと同様に、第４のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第４のブロックチェーン・トランザクションは、第４のトランザクションＩＤ（例えば、第４のトランザクション・ハッシュ）に対応することができる。ブロックチェーンは、関連付け関係を保存することができる。ブロックチェーンは、対応するトランザクションＩＤを保存することもできる。第４のトランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【００６３】
ステップ３６１で、上記ステップが順調に実行されると、証明システム１１３は、成功のメッセージを登録システム１１１に返信することができる。
【００６４】
図４は、様々な実施形態による、ブロックチェーンベースのデジタル証明書を検証するための方法４００の例を示す。方法４００は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、登録システム１１１、ブロックチェーン・システム１１２、証明システム１１３）により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム１１１と証明システム１１３とを、１つ又は複数の計算装置を備えるデジタル証明書システム１１８に統合することができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法４００は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。
【００６５】
一部の実施形態において、ステップ４１１で、第三者エンティティが、登録システム１１１により証明書の検証を開始することができる。例えば、第三者は、デジタル証明書を取得しており、取得したデジタル証明書がブロックチェーンに存在するかどうかを検証して証明書を認証することを望んでいる。したがって、第三者はデジタル証明書を検証のために提示することができる。
【００６６】
ステップ４１２で、登録システム１１１は、デジタル・マーク（例えば、デジタル署名／印）のアンカリングなどの証明書の検証要求を証明システム１１３に送信することができる。
【００６７】
これを受けて、ステップ４１３で、証明システム１１３は、証明書に対応するデータをブロックチェーンから取得して証明書を検証することができる。例えば、証明システム１１３は、ブロックチェーン・システム１１２のノードにより、ブロックチェーンに保存されている情報（例えば、証明書に関連付けられたデジタル要約、証明書に関連付けられたデジタル・マーク（例えば、デジタル署名／印））を問い合わせることができる。
【００６８】
ステップ４２１で、証明システム１１３は、対応するデータをブロックチェーンから取得することができる。証明書がブロックチェーンに存在する場合、データは、図３を参照して前述した、証明書に関連付けられたデジタル要約（ブロックチェーンに保存されているデジタル要約と称する）、証明書に関連付けられたデジタル・マーク（例えば、デジタル署名／印）（ブロックチェーンに保存されているデジタル・マークと称する）などの、ブロックチェーンに保存されている情報を備えることができる。
【００６９】
ステップ４２２で、証明システム１１３は、（１）デジタル・マーク（例えば、デジタル署名／印）と証明書とのアンカリング、及び（２）証明書の要約と、証明書に関連付けられた、ブロックチェーンに保存されているデジタル要約とのアンカリングを検証することができる。データはデジタル証明書のデジタル要約（例えば、ＳＨＡ−２５６ハッシング）を生成するために使用する暗号化処理を備えることができるため、証明システム１１３は、ステップ４２２で検証を行うために証明書の要約を生成することができる。
【００７０】
あるいは、ブロックチェーン・システム１１２は、検証を行い、結果を証明システム１１３に返信することができる。
【００７１】
ステップ４３１で、証明システム１１３は、検証結果を登録システム１１１に返信することができる。
【００７２】
図５Ａは、様々な実施形態による、ブロックチェーンベースのデジタル・マークを生成するための方法５１０の例のフロー・チャートである。方法５１０は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、デジタル証明書システム１１８）により実施することができる。方法５１０を、様々なハードウェア・マシン及び／又はソフトウェアを備えるシステムにより実施することができる。例えば、デジタル証明書システム１１８を、１つ又は複数のシステム又は装置（例えば、コンピュータ、サーバ）により実装することができる。方法５１０を実施するシステムは、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、システム（例えば、プロセッサ）に方法５１０を実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成されている１つ又は複数の非一時的コンピュータ可読記憶媒体（例えば、１つ又は複数のメモリ）とを備えることができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法５１０は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法５１０の実施の例は、図２を参照して前述されている。
【００７３】
ステップ５１１は、エンティティのエンティティ情報を取得することを含む。一部の実施形態において、エンティティは法人であり、エンティティ情報は、公的機関により認証された法人登録情報を備える。例えば、デジタル証明書システム１１８は、エンティティからエンティティ情報を登録情報として取得することができる。デジタル証明書システム１１８は、登録情報を検証のために公的機関システムに転送することができる。検証されると、以下のステップを実行してデジタル・マークを生成することができる。
【００７４】
ステップ５１２は、エンティティ情報をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することを含む。一部の実施形態において、エンティティ情報をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することは、少なくともエンティティ情報をブロックチェーン・コントラクトに書き込むことと、１つ又は複数のノードにブロックチェーン・トランザクションを開始させてブロックチェーン・コントラクトをデプロイすることと、を備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム１１８は、ノードの１つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ２２１を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションＩＤ（例えば、トランザクション・ハッシュ）に対応することができる。ブロックチェーンは、エンティティ情報を保存することができる。ブロックチェーンは、対応するトランザクションＩＤも保存することができる。トランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されているエンティティ情報を検索することができる。
【００７５】
ステップ５１３は、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションＩＤ（例えば、デジタル要約）を取得することを含む。エンティティ情報がブロックチェーンに順調に保存されると、ブロックチェーンの１つ又は複数のノードによりトランザクションＩＤを返信することができる。一部の実施形態において、トランザクションＩＤはブロックチェーン・トランザクションのハッシュ値を備える。例えば、ハッシュ・アルゴリズムは、任意の長さのメッセージを一定の長さのメッセージ・ダイジェストに圧縮する関数として理解することができる。一般に使用されるハッシュ関数としては、ＭＤ５及びＳＨＡが挙げられる。ブロックチェーン・トランザクションのハッシュ値は、ブロックチェーン・トランザクションの様々な情報を入力として有するハッシュ関数の出力を含むことができる。ブロックチェーン・トランザクションの様々な情報は、「送信元」（送信者アドレス）、「値」（トランザクション値）、「ガス」（トランザクションを完了するための費用）、「データ」（ブロックチェーン・コントラクト・データ）などの１つ又は複数のトランザクション・パラメータを含むことができる。ブロックチェーンのハッシュ・アルゴリズムは不可逆的であり、すなわち、順方向計算は容易であるが、すべての計算リソースを使い尽くしても逆方向計算は行うことができない。したがって、ブロックチェーン・トランザクションのハッシュ値は一意的なものである。詳細は、前述したステップ２２２を参照することができる。
【００７６】
ステップ５１４は、少なくともトランザクションＩＤに基づいてエンティティのデジタル・マークを生成することを含む。デジタル・マークはエンティティに関連付けられる。関連付け関係はデジタル証明書システム１１８により維持することができる。一部の実施形態において、デジタル・マークはトランザクションＩＤ（例えば、ブロックチェーン・トランザクションのハッシュ値）を備える。あるデータのハッシュ値は、ハッシュ・アルゴリズムを前述のブロックチェーン・トランザクションの様々な情報などのデータに適用した数値結果である。例えば、デジタル・マークはステップ５１３のトランザクションＩＤであってよい。あるいは、トランザクションＩＤを、対応するトランザクションのダイジェストと称することができる。詳細は、前述したステップ２３１を参照することができる。
【００７７】
一部の実施形態において、デジタル・マークは、デジタル印又はデジタル署名のうちの少なくとも一方を備え、デジタル・マークは、エンティティによる保証を示すためにデジタル証明書に関連付けることができる。例えば、関連付けにより、デジタル・マークとデジタル証明書とを１つのファイルにまとめることができる。別の例では、関連付けにより、デジタル証明書をデジタル・マークにリンクさせることができる。
【００７８】
一部の実施形態において、方法は、エンティティとデジタル・マークとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム１１８は、ノードの１つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ２４１を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションＩＤ（例えば、トランザクション・ハッシュ）に対応することができる。ブロックチェーンは関連付けを保存することができる。ブロックチェーンは、対応するトランザクションＩＤも保存することができる。トランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【００７９】
一部の実施形態において、方法は、デジタル証明書を生成することと、デジタル・マークをデジタル証明書に関連付けることと、デジタル証明書をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書をブロックチェーンに保存することに関連付けられた別のデジタル要約を取得することと、デジタル・マークを別のデジタル要約に関連付けることと、デジタル・マークとトランザクションＩＤとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することと、を更に備える。デジタル・マークと別のデジタル要約との関連付けは、エンティティによる保証を示す。デジタル証明書が別のデジタル要約にリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークとトランザクションＩＤとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。図５Ｂを参照しながら、さらなる詳細について以下で説明する。
【００８０】
他の実施形態において、デジタル証明書を任意の手段により取得することができる。方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられた別のトランザクションＩＤを取得することと、デジタル・マークを別のトランザクションＩＤに関連付けることと、を更に備える。デジタル・マークと別のトランザクションＩＤとの関連付けは、エンティティによる保証を示す。デジタル証明書が別のトランザクションＩＤにリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークと別のトランザクションＩＤとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【００８１】
更に別の実施形態において、方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル・マークをデジタル要約に関連付けることと、を更に備える。デジタル・マークとデジタル要約との関連付けは、エンティティによる保証を示す。デジタル証明書がデジタル要約にリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークとデジタル要約との関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【００８２】
更に別の実施形態において、方法は、デジタル・マークをエンティティに関連付けられたデジタル証明書に関連付けることを更に備える。デジタル・マークとデジタル証明書との関連付けは、エンティティによる保証を示す。方法は、デジタル・マークとデジタル証明書との関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【００８３】
図５Ｂは、様々な実施形態による、ブロックチェーンベースのデジタル証明書を実装するための方法５２０の例のフロー・チャートである。方法５２０は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、デジタル証明書システム１１８）により実施することができる。方法５２０を、様々なハードウェア・マシン及び／又はソフトウェアを備えるシステムにより実施することができる。例えば、デジタル証明書システム１１８を、１つ又は複数のシステム又は装置（例えば、コンピュータ、サーバ）により実装することができる。方法５２０を実施するシステムは、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、システム（例えば、プロセッサ）に方法５２０を実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成されている１つ又は複数の非一時的コンピュータ可読記憶媒体（例えば、１つ又は複数のメモリ）とを備えることができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法５２０は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法５２０の実施の例は、図３及び図４を参照して前述されている。
【００８４】
ステップ５２１は、デジタル証明書を生成することを含む。一部の実施形態において、デジタル証明書を生成することは、デジタル証明書のコンテンツを、法人であるエンティティから取得することと、コンテンツを備えるデジタル証明書を生成することと、を備える。例えば、デジタル証明書システム１１８は、デジタル証明書に示す必要のあるコンテンツをエンティティ又は別のソースから取得することができる。詳細は、前述したステップ３１２を参照することができる。
【００８５】
任意選択のステップ５２２は、デジタル・マークをデジタル証明書に関連付けることを含む。デジタル・マークは、図５Ａを参照して説明したものであってよい。デジタル・マークはデジタル証明書システム１１８により維持することができる。一部の実施形態において、デジタル・マークはデジタル印及び／又はデジタル署名を備え、デジタル・マークはエンティティによる保証に関連付けられる。詳細は、前述したステップ３２２を参照することができる。
【００８６】
ステップ５２３は、デジタル証明書のデジタル要約を生成することを含む。例えば、ＳＨＡ−２５６などのハッシュ・プロセスを使用して、デジタル証明書からデジタル要約を生成することができる。したがって、デジタル証明書のコンテンツは暗号化表現に変換される。
【００８７】
ステップ５２４は、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することを含む。一部の実施形態において、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存することは、デジタル証明書のデジタル要約及びデジタル要約を生成するために使用する暗号化処理（例えば、ＳＨＡ−２５６ハッシング）をブロックチェーン・コントラクトに書き込むことと、１つ又は複数のノードにブロックチェーン・トランザクションを開始させてブロックチェーン・コントラクトをデプロイすることとを備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム１１８は、ノードの１つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ３３１を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションＩＤ（例えば、トランザクション・ハッシュ）に対応することができる。ブロックチェーンは、デジタル要約（例えば、デジタル証明書のハッシュ値）を保存することができるが、プライバシー確保のため、デジタル証明書の詳細（例えば、プレーンテキスト）を保存することができない。ブロックチェーンは対応するトランザクションＩＤを保存することもできる。トランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されているデジタル証明書のデジタル要約を検索することができる。
【００８８】
ステップ５２５は、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得することを含む。デジタル証明書のデジタル要約がブロックチェーンに順調に保存されると、ブロックチェーンの１つ又は複数のノードによりトランザクションＩＤ（例えば、トランザクションの要約）を返信することができる。一部の実施形態において、デジタル要約はデジタル証明書のハッシュ値を備え、トランザクションＩＤはブロックチェーン・トランザクションのハッシュ値を備える。ブロックチェーンは、プライバシー保護のため、デジタル証明書のプレーンテキストではなくデジタル要約を保存することができる。詳細は、前述したステップ３３２を参照することができる。
【００８９】
ステップ５２６は、デジタル・マークをトランザクションＩＤに関連付けることを含む。詳細は、前述のアンカリング・ステップ３４１を参照することができる。一部の実施形態において、デジタル・マークをトランザクションＩＤに関連付けることは、デジタル・マーク、トランザクションＩＤ、及びデジタル要約を関連付けることを備える。一部の実施形態において、方法は、デジタル・マークとトランザクションＩＤとの関連付け関係を１つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。一部の実施形態において、方法は、デジタル・マーク、トランザクションＩＤ、及びデジタル要約間の関連付けを送信することを更に備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム１１８は、ノードの１つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ３５１を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションＩＤ（例えば、トランザクション・ハッシュ）に対応することができる。ブロックチェーンは、関連付けを保存することができる。ブロックチェーンは、対応するトランザクションＩＤを保存することもできる。トランザクションＩＤを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【００９０】
一部の実施形態において、方法は、未検証のデジタル・マークにより保証された未検証のデジタル証明書に対する検証要求を受けて、未検証のデジタル証明書に対応するトランザクションＩＤを取得することと、未検証のデジタル証明書に対応するトランザクションＩＤに従って、ブロックチェーンに保存されているデジタル要約及びブロックチェーンに保存されているデジタル・マークを取得することと、デジタル証明書のデジタル要約を生成するために使用する暗号化処理に従って、未検証のデジタル証明書のデジタル要約を生成することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致しているかどうか、及びブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致しているかどうかを検証することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致し、ブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致していると判定したことを受けて、未検証のデジタル証明書が真正であると判定することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致しない、又はブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致しないと判定したことを受けて、未検証のデジタル証明書が真正でないと判定することとを更に備える。
【００９１】
例えば、図４を参照して前述したように、第三者は、未検証のエンティティの未検証のマークにより保証された未検証のデジタル証明書を受信しており、それが真正であることを検証することを望んでいる。ブロックチェーンがエンティティ、デジタル証明書の要約、トランザクションＩＤ、及び対応するデジタル・マーク間の関連付け関係を保存しているため、デジタル証明書システム１１８は、未検証のデジタル証明書に対応するトランザクションＩＤを取得し、これに対応して、例えば、ブロックチェーンの１つ又は複数のノードによりトランザクションを開始して、未検証のデジタル証明書に関連付けられたデータ（例えば、ブロックチェーンに保存されているデジタル要約、ブロックチェーンに保存されているデジタル・マーク、ブロックチェーンに保存されているエンティティ情報）を取得することにより、ブロックチェーンに保存されている情報を検索することができる。デジタル証明書システム１１８は、検証のために、未検証のデジタル証明書のデジタル要約を得ることができる。デジタル証明書システム１１８は、未検証のデジタル証明書のデジタル要約がブロックチェーンに保存されているデジタル要約と一致しているかどうか（デジタル証明書のコンテンツが改ざんされていないことを確実にするため）、及び未検証のデジタル・マークがデジタル・マークと一致しているかどうか（保証するエンティティが正確であることを確実にするため）を検証することができる。場合により、デジタル証明書システム１１８は、未検証のエンティティが、デジタル証明書に関連付けられた、ブロックチェーンに保存されているエンティティ情報と一致しているかどうかを検証することができる。一致の検証が成功すると、デジタル証明書システム１１８は、未検証のデジタル証明書が真正であると判定することができる。データが取得できない場合、又は一致の検証のいずれかが失敗した場合、デジタル証明書システム１１８は、未検証のデジタル証明書が真正でないと判定することができる。
【００９２】
図６Ａは、様々な実施形態による、ブロックチェーンベースのデジタル・マークを生成するためのコンピュータ・システム６１０の例のブロック図である。システム６１０は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、デジタル証明書システム１１８）の実装の例であってよい。方法５１０は、コンピュータ・システム６１０により実施することができる。コンピュータ・システム６１０は、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、システム又は装置（例えば、プロセッサ）に方法５１０を実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成されている１つ又は複数の非一時的コンピュータ可読記憶媒体（例えば、１つ又は複数のメモリ）と、を備えることができる。コンピュータ・システム６１０は、命令（例えば、ソフトウェアの命令）に対応する様々なユニット／モジュールを備えることができる。一部の実施形態において、コンピュータ・システム６１０をブロックチェーンベースのデジタル・マーク生成装置と称することができる。ブロックチェーンベースのデジタル・マーク生成装置は、エンティティのエンティティ情報を取得するための第１の取得モジュール６１１と、エンティティ情報をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュール６１２と、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得するための第２の取得モジュール６１３と、少なくともトランザクションＩＤに基づいてエンティティのデジタル・マークを生成するための生成モジュール６１４と、を備えることができる。
【００９３】
図６Ｂは、様々な実施形態による、ブロックチェーンベースのデジタル証明書を実装するためのコンピュータ・システム６２０の例のブロック図である。システム６２０は、図１Ａのシステム１１０の１つ又は複数の構成要素（例えば、デジタル証明書システム１１８）の実施の例であってよい。方法５２０は、コンピュータ・システム６２０により実施することができる。コンピュータ・システム６２０は、１つ又は複数のプロセッサと、１つ又は複数のプロセッサに接続され、システム又は装置（例えば、プロセッサ）に方法５２０を実行させるために１つ又は複数のプロセッサにより実行可能な命令を含んで構成されている１つ又は複数の非一時的コンピュータ可読記憶媒体（例えば、１つ又は複数のメモリ）と、を備えることができる。コンピュータ・システム６２０は、命令（例えば、ソフトウェアの命令）に対応する様々なユニット／モジュールを備えることができる。一部の実施形態において、コンピュータ・システム６２０をブロックチェーンベースのデジタル証明書装置と称することができる。ブロックチェーンベースのデジタル証明書装置は、デジタル証明書を生成するための第１の生成モジュール６２１と、デジタル証明書のデジタル要約を生成するための第２の生成モジュール６２２と、デジタル証明書のデジタル要約をブロックチェーンの１つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュール６２３と、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションＩＤを取得するための取得モジュール６２４と、デジタル・マークをトランザクションＩＤに関連付けるための関連付けモジュール６２５と、を備えることができる。
【００９４】
図示したように、デジタル証明書のデジタル要約を取得し、要約をブロックチェーンに保存することにより、オリジナルのデジタル証明書の表現を安全に維持し、検証のためにアクセス可能にすることができる。デジタル証明書の改ざんを、ハッシングを含むブロックチェーン・コンセンサス・ルールに基づいて阻止することができる。デジタル証明書のデジタル要約表現は、プライバシー保護のため、プレーンテキスト情報を隠すこともできる。さらに、ブロックチェーンに保存されている、オリジナルのデジタル証明書の表現は、保証関係を保存する対応する保証デジタル・マーク及び対応するトランザクションＩＤに関連付けられる。トランザクションＩＤを問い合わせることにより、そのような関連付け情報を、検証のためにブロックチェーンから検索することができる。したがって、デジタル証明書の発行及び検証を、セキュリティを確保して行うことができる。
【００９５】
本明細書に記載の技法は、１つ又は複数の専用計算装置により実施することができる。専用計算装置は、デスクトップ・コンピュータ・システム、サーバ・コンピュータ・システム、携帯型コンピュータ・システム、ハンドヘルド装置、ネットワーク装置、又は任意の他の装置、あるいは技法を実施するための配線論理及び／又はプログラム論理を組み込んだ装置の組合せであってよい。専用計算装置は、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディア・プレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、タブレット・コンピュータ、ウェアラブル装置、又はこれらの組合せとして実装することができる。計算装置は、一般に、システム・ソフトウェアを動作させることにより制御され調整される。従来の動作システムは、実行のためのコンピュータ・プロセスを制御及びスケジューリングし、メモリ管理を行い、ファイル・システム、ネットワーク、Ｉ／Ｏサービスを提供し、特にグラフィカル・ユーザ・インターフェース（「ＧＵＩ」）などのユーザ・インターフェース機能を提供する。本明細書に記載の様々なシステム、装置、記憶媒体、モジュール、及びユニットを、専用計算装置、又は１つ又は複数の専用計算装置の１つ又は複数の計算チップに実装することができる。一部の実施形態において、本明細書に記載の命令を、専用計算装置上の仮想マシンに実装することができる。実行時に、命令により、本明細書に記載の様々な方法を専用計算装置に実行させることができる。仮想マシンは、ソフトウェア、ハードウェア、又はこれらの組合せを含むことができる。例えば、仮想マシンは、イーサリアムにおけるスマート・コントラクトのランタイム環境を提供するイーサリアム仮想マシン（ＥＶＭ）ソフトウェアを含むことができる。
【００９６】
図７は、本明細書に記載の実施形態のいずれかを実施可能なコンピュータ・システム７００のブロック図である。システム７００は、本明細書に記載のシステム及び装置のいずれかに実装することができ、ブロックチェーンベースのデジタル証明書を実装するための対応することを実行するように構成することができる。コンピュータ・システム７００は、バス７０２又は情報を通信するための他の通信機構と、バス７０２に接続されて情報を処理する１つ又は複数のハードウェア・プロセッサ７０４と、を備える。ハードウェア・プロセッサ７０４は、例えば、１つ又は複数の汎用マイクロプロセッサであってよい。
【００９７】
コンピュータ・システム７００は、バス７０２に接続されて情報及びプロセッサ７０４により実行可能な命令を保存する、ランダム・アクセス・メモリ（ＲＡＭ）、キャッシュ及び／又は他の動的記憶装置等のメイン・メモリ７０６を備えることもできる。メイン・メモリ７０６を使用して、プロセッサ７０４により実行可能な命令の実行中に、一時変数又は他の中間情報を保存することもできる。そのような命令は、プロセッサ７０４によりアクセス可能な記憶媒体に保存されると、コンピュータ・システム７００を、命令において特定されたオペレーションを実行するようにカスタマイズされた専用マシンにする。コンピュータ・システム７００は、バス７０２に接続されて静的情報及びプロセッサ７０４のための命令を保存する読取り専用メモリ（ＲＯＭ）７０８又は他の静的記憶装置を更に備える。磁気ディスク、光ディスク、又はＵＳＢサム・ドライブ（フラッシュ・ドライブ）などの記憶装置７１０を設けて、情報及び命令を保存するようにバス７０２に接続する。
【００９８】
コンピュータ・システム７００は、コンピュータ・システムと組み合わせてコンピュータ・システム７００を専用マシンにする又はプログラムする、カスタマイズされた配線論理、１つ又は複数のＡＳＩＣもしくはＦＰＧＡ、ファームウェア、及び／又はプログラム論理を使用して、本明細書に記載の技法を実施することができる。一実施形態によれば、本明細書に記載のオペレーション、方法、及びプロセスは、プロセッサ７０４がメイン・メモリ７０６に含まれる１つ又は複数の命令の１つ又は複数のシーケンスを実行することを受けて、コンピュータ・システム７００により実行される。そのような命令は、記憶装置７１０などの別の記憶媒体からメイン・メモリ７０６に読み込むことができる。メイン・メモリ７０６に含まれる命令のシーケンスを実行すると、プロセッサ７０４が本明細書に記載のプロセス・ステップを実行する。代替実施形態において、ソフトウェアの命令の代わりに、又はソフトウェアの命令と組み合わせて、配線回路構成を使用することができる。
【００９９】
メイン・メモリ７０６、ＲＯＭ７０８、及び／又は記憶装置７１０は、非一時的記憶媒体を含むことができる。本明細書で使用されるとき、「非一時的媒体」という用語及び同様の用語は、マシンを特定の方法で動作させるデータ及び／又は命令を保存する媒体を指し、この媒体は一時的信号を除外する。そのような非一時的媒体は、不揮発性媒体及び／又は揮発性媒体を備えることができる。不揮発性媒体としては、例えば、記憶装置７１０のような光ディスク又は磁気ディスクが挙げられる。揮発性媒体としては、メイン・メモリ７０６のような動的メモリが挙げられる。一般的な形態の非一時的媒体としては、例えば、フロッピ・ディスク、フレキシブル・ディスク、ハード・ディスク、ソリッド・ステート・ドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、ＣＤ−ＲＯＭ、任意の他の光データ記憶媒体、ホール・パターンのある任意の物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、任意の他のメモリ・チップ又はカートリッジ、及びこれらのネットワーク・バージョンが挙げられる。
【０１００】
コンピュータ・システム７００は、バス７０２に接続されたネットワーク・インターフェース７１８も備える。ネットワーク・インターフェース７１８は、１つ又は複数のローカル・ネットワークに接続された１つ又は複数のネットワーク・リンクに接続する双方向データ通信を提供する。例えば、ネットワーク・インターフェース７１８は、サービス総合デジタル網（ＩＳＤＮ）カード、ケーブル・モデム、衛星モデム、又は対応するタイプの電話線とのデータ通信接続を提供するモデムであってよい。別の例として、ネットワーク・インターフェース７１８は、互換ＬＡＮ（又はＷＡＮと通信するＷＡＮコンポーネント）とのデータ通信接続を提供するローカル・エリア・ネットワーク（ＬＡＮ）カードであってよい。無線リンクを実装してもよい。そのような実装の場合、ネットワーク・インターフェース７１８は、様々なタイプの情報を表すデジタル・データ・ストリームを伝える電気信号、電磁信号、又は光信号を送受信する。
【０１０１】
コンピュータ・システム７００は、ネットワーク、ネットワーク・リンク、及びネットワーク・インターフェース７１８を通じて、プログラム・コードを含むメッセージを送信し、データを受信することができる。インターネットの例では、サーバが、インターネット、ＩＳＰ、ローカル・ネットワーク、及びネットワーク・インターフェース７１８を通じて、アプリケーション・プログラムの要求されたコードを送信することができる。
【０１０２】
受信したコードを、プロセッサ７０４が受信時に実行することができ、かつ／又は記憶装置７１０もしくは他の不揮発性記憶装置に保存して後で実行することができる。
【０１０３】
前述したプロセス、方法、及びアルゴリズムの各々を、コード・モジュールにおいて具体化することができ、コード・モジュールにより完全に又は部分的に自動化することができる。このコード・モジュールは、１つ又は複数のコンピュータ・システム又はコンピュータ・ハードウェアを備えるコンピュータ・プロセッサにより実行される。プロセス及びアルゴリズムは、特定用途向け回路構成に部分的に又は完全に実装することができる。
【０１０４】
前述した様々な特徴及びプロセスは、互いに独立して使用されてもよく、又は様々な方法で組み合わされてもよい。すべての可能な組合せ及び部分的組合せは、本明細書の範囲内に含まれるものである。加えて、ある方法又はプロセス・ブロックを、一部の実施において省略してもよい。本明細書に記載の方法及びプロセスはまた、任意の特定の順序に限定されず、それに関するブロック又は状態は、適切な他の順序で実行することができる。例えば、記載されるブロック又は状態は、具体的に開示されるもの以外の順序で実行することができ、又は複数のブロックもしくは状態は、単一のブロックもしくは状態にまとめることができる。ブロック又は状態の例は、連続して、並行して、又はいくつかの他の方法で実行することができる。ブロック又は状態は、開示された実施形態に追加することができ、又はそれから削除することができる。本明細書に記載のシステム及び構成要素の例は、記載されたものとは異なって構成することができる。例えば、開示された実施形態と比較して、要素をそれに追加し、それから削除し、又は再配列することができる。
【０１０５】
本明細書に記載の方法の様々なオペレーションを、少なくとも部分的にアルゴリズムにより実行することができる。アルゴリズムは、メモリ（例えば、前述の非一時的コンピュータ可読記憶媒体）に保存されたプログラム・コード又は命令に備えられていてもよい。そのようなアルゴリズムは、機械学習アルゴリズムを備えることができる。一部の実施形態において、機械学習アルゴリズムは、コンピュータが機能を果たすように明確にプログラムすることはできず、訓練データから学習して、機能を果たす予測モデルを作成することができる。
【０１０６】
本明細書に記載の方法の様々なオペレーションを、少なくとも部分的に１つ又は複数のプロセッサにより実行することができる。このプロセッサは、関連するオペレーションを実行するように一時的に構成され（例えば、ソフトウェアにより）又は恒久的に構成されたものである。そのようなプロセッサは、一時的に構成されたものであっても、恒久的に構成されたものであっても、本明細書に記載の１つ又は複数のオペレーション又は機能を実行するように動作するプロセッサ実装エンジンを構成することができる。
【０１０７】
同様に、本明細書に記載の方法は、少なくとも部分的にプロセッサで実施してもよく、１つ又は複数の特定のプロセッサがハードウェアの例である。例えば、方法のオペレーションの少なくとも一部を、１つ又は複数のプロセッサ又はプロセッサ実装エンジンにより実行することができる。さらに、１つ又は複数のプロセッサは、「クラウド・コンピューティング」環境において、又は「サービスとしてのソフトウェア」（ＳａａＳ）として、関連するオペレーションのパフォーマンスをサポートするように動作することもできる。例えば、オペレーションの少なくともいくつかをコンピュータ群（プロセッサを備えるマシンの例として）により実行することができ、これらのオペレーションに、ネットワーク（例えば、インターネット）及び１つ又は複数の適切なインターフェース（例えば、アプリケーション・プログラム・インターフェース（ＡＰＩ））を介してアクセスすることができる。
【０１０８】
オペレーションのうちのいくつかのパフォーマンスをプロセッサ間で分散させ、単一のマシンに常駐するだけでなく、いくつかのマシンにわたってデプロイすることができる。一部の実施形態において、プロセッサ又はプロセッサ実装エンジンを、単一の地理的位置（例えば、家庭環境、オフィス環境、又はサーバ・ファーム内）に配置することができる。他の実施形態において、プロセッサ又はプロセッサ実装エンジンをいくつかの地理的位置にわたって分散させることができる。
【０１０９】
本明細書全体を通して、複数の事例が、単一の事例として記載された構成要素、オペレーション、又は構造を実装することができる。１つ又は複数の方法の個々のオペレーションが別々のオペレーションとして図示され記載されているが、個々のオペレーションの１つ又は複数を並行して実行してもよく、図示した順序でオペレーションを実行する必要はない。構成において別々の構成要素として示される構造及び機能を、構造又は構成要素の組合せとして実装してもよい。同様に、単一の構成要素として示される構造及び機能を、別々の構成要素として実装してもよい。これら及びその他の変形形態、修正、追加、及び改良は、本明細書の主題の範囲内に含まれる。
【０１１０】
特定の実施形態に言及して主題の概要を説明したが、本明細書の実施形態のより広い範囲から逸脱することなく、これらの実施形態に様々な修正及び変更を加えてもよい。詳細な説明は限定する意味ととらえるべきではなく、様々な実施形態の範囲は、特許請求の範囲が権利を与えられる等価物の全範囲とともに添付の特許請求の範囲によってのみ定義される。さらに、本明細書で使用される関連する用語（「第１の」、「第２の」、「第３の」など）は、何らかの順序、高さ、又は重要性を示すものではなく、１つの要素を別の要素から区別するために使用されている。さらに、「ａ」、「ａｎ」、及び「複数の」という用語は、本明細書における量の限定を示すものではなく、言及される物品のうち少なくとも１つが存在することを示す。
【図１Ａ】
0006853364.tif 000002
【図１Ｂ】
0006853364.tif 000003
【図２】
0006853364.tif 000004
【図３】
0006853364.tif 000005
【図４】
0006853364.tif 000006
【図５Ａ】
0006853364.tif 000007
【図５Ｂ】
0006853364.tif 000008
【図６Ａ】
0006853364.tif 000009
【図６Ｂ】
0006853364.tif 000010
【図７】
0006853364.tif 000011