特許第6965352号(P6965352)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスド ニュー テクノロジーズ カンパニー リミテッドの特許一覧

特許6965352デジタル・マークを生成するためのシステム及び方法
<>
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000002
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000003
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000004
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000005
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000006
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000007
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000008
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000009
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000010
  • 特許6965352-デジタル・マークを生成するためのシステム及び方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6965352
(24)【登録日】2021年10月22日
(45)【発行日】2021年11月10日
(54)【発明の名称】デジタル・マークを生成するためのシステム及び方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20211028BHJP
   G09C 1/00 20060101ALI20211028BHJP
   G06F 21/62 20130101ALI20211028BHJP
【FI】
   H04L9/00 675Z
   H04L9/00 675B
   G09C1/00 640D
   G06F21/62 318
【請求項の数】14
【全頁数】28
(21)【出願番号】特願2019-534087(P2019-534087)
(86)(22)【出願日】2019年2月28日
(65)【公表番号】特表2020-511018(P2020-511018A)
(43)【公表日】2020年4月9日
(86)【国際出願番号】CN2019076476
(87)【国際公開番号】WO2019101226
(87)【国際公開日】20190531
【審査請求日】2019年8月29日
(73)【特許権者】
【識別番号】520015461
【氏名又は名称】アドバンスド ニュー テクノロジーズ カンパニー リミテッド
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】チョン ロン
(72)【発明者】
【氏名】リー イェンポン
【審査官】 岸野 徹
(56)【参考文献】
【文献】 国際公開第2018/067271(WO,A1)
【文献】 国際公開第2018/230305(WO,A1)
【文献】 特開2005−010301(JP,A)
【文献】 国際公開第2016/179334(WO,A1)
【文献】 特表2018−516030(JP,A)
【文献】 特開2003−108708(JP,A)
【文献】 高木 聡一郎,進化するICTの最新利活用事例 先進技術を活用した新たな試み,月刊J−LIS −地方自治情報誌− 第4巻 第12号,地方公共団体情報システム機構,2018年03月01日,第4巻,pp.30-35
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
デジタル・マークを生成するためのコンピュータで実施される方法であって、
エンティティのエンティティ情報を取得することと、
前記エンティティ情報を備える第1のブロックチェーン・トランザクションをブロックチェーンの1つ又は複数のノードに送信して前記ブロックチェーンに保存することと、
前記エンティティ情報を前記ブロックチェーンに保存することに関連付けられた前記第1のブロックチェーン・トランザクションの第1のトランザクションIDを取得することと、
前記第1のトランザクションIDに基づいて前記エンティティのデジタル・マークを生成することと、
前記エンティティと前記デジタル・マークとの関連付け関係を作成することと、
前記関連付け関係を備える第2のブロックチェーン・トランザクションを前記ブロックチェーンの1つ又は複数のノードに送信して前記ブロックチェーンに保存することと、
前記第2のブロックチェーン・トランザクションの第2のトランザクションIDを取得することであって、前記第2のトランザクションIDは、前記第1のトランザクションIDを含む前記関連付け関係を検索するために前記ブロックチェーンからパブリックに問い合わせることができることと、
を備える方法。
【請求項2】
前記エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、
前記デジタル証明書の前記デジタル要約を備える第3のブロックチェーン・トランザクションを前記ブロックチェーンの前記1つ又は複数のノードに送信して前記ブロックチェーンに保存することと、
前記デジタル証明書の前記デジタル要約を前記ブロックチェーンに保存することに関連付けられた前記第3のブロックチェーン・トランザクションの第3のトランザクションIDを取得することと、
前記デジタル・マークを前記第3のトランザクションIDに関連付けて前記エンティティによる前記デジタル証明書の保証を表すことと、を更に備える、請求項1に記載の方法。
【請求項3】
前記エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、
前記デジタル・マークを前記デジタル要約に関連付けて前記エンティティによる前記デジタル証明書の保証を表すことと、を更に備える、請求項1に記載の方法。
【請求項4】
前記デジタル・マークを前記エンティティに関連付けられたデジタル証明書に関連付けて前記エンティティによる前記デジタル証明書の保証を表すことを更に備える、請求項1に記載の方法。
【請求項5】
前記デジタル・マークと前記第3のトランザクションID、前記デジタル要約、又は前記デジタル証明書との前記関連付けが、前記エンティティによる保証を示す、請求項2に記載の方法。
【請求項6】
前記デジタル・マークと前記第3のトランザクションID、前記デジタル要約、又は前記デジタル証明書との前記関連付けの関連付け関係を前記1つ又は複数のノードに送信して前記ブロックチェーンに保存することを更に備える、請求項2又は5に記載の方法。
【請求項7】
前記デジタル・マークがデジタル署名を備える、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記エンティティが法人であり、
前記エンティティ情報が、公的機関により認証された法人登録情報を備える、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記エンティティ情報を前記ブロックチェーンの前記1つ又は複数のノードに送信して前記ブロックチェーンに保存することが、
少なくとも前記エンティティ情報をブロックチェーン・コントラクトに書き込むことと、
前記1つ又は複数のノードに前記ブロックチェーン・コントラクトをデプロイすることと、を備える、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記第1のトランザクションIDが前記第1のブロックチェーン・トランザクションのハッシュ値を備える、請求項9に記載の方法。
【請求項11】
前記デジタル・マークが前記第1のブロックチェーン・トランザクションのハッシュ値を備える、請求項9又は10に記載の方法。
【請求項12】
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサに接続され、請求項1から11のいずれか一項に記載の方法を実行するために前記1つ又は複数のプロセッサにより実行可能な命令が保存されている1つ又は複数のコンピュータ可読メモリと、を備えるデジタル・マーク生成システム。
【請求項13】
請求項1から11のいずれか一項に記載の方法を実行するための複数のモジュールを備えるデジタル・マーク生成装置。
【請求項14】
1つ又は複数のプロセッサに請求項1から11のいずれか一項に記載の方法のオペレーションを実行させるために前記1つ又は複数のプロセッサにより実行可能な命令を含んで構成された非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、デジタル・マークを生成するための方法及び装置に関する。
【背景技術】
【0002】
証明書は、経済取引もしくはその他の活動の証拠又は証明となり、ある法的な目的を果たすことができる。従来の取交わしの場合、証明書は紙ベースで、ゴム印又は署名により保証される。一例において、社印又は署名は正式に登録された関連企業を表す。しかしながら、紙の証明書は紛失又は損傷しやすい。これに応えて、そのような欠点を克服するために、紙ベースの証明書の代わりにデジタル証明書が次第に使用されるようになっている。それにもかかわらず、デジタル証明書は、紙の証明書よりも複製又はその他の方法による偽造が容易である。現在の技術では、デジタル証明書は、物理的な証明書のデジタル画像又はPDFレンダリングとして実装されることが多い。そのようなデジタル証明書は、改ざん又はその他の無許可の改変を受けやすい。その結果、紙の証明書を上回る一定の利便性があるにもかかわらず、現在のデジタル証明書はセキュリティを確保することができず、法的証拠としての効果を弱める又は失うことが多い。したがって、安全な改ざん防止デジタル証明書があると望ましい。
【発明の概要】
【0003】
本明細書の様々な実施形態は、ブロックチェーンベースのデジタル・マークを生成するためのシステム、方法、及び非一時的コンピュータ可読媒体を含むが、これらに限定されない。
【0004】
一態様によれば、デジタル・マークを生成するためのコンピュータで実施される方法は、エンティティのエンティティ情報を取得することと、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションIDを取得することと、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成することと、を備える。
【0005】
一部の実施形態において、方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられた別のトランザクションIDを取得することと、デジタル・マークを別のトランザクションIDに関連付けることと、を備える。デジタル・マークと別のトランザクションIDとの関連付けは、エンティティによる保証を示す。方法は、デジタル・マークと別のトランザクションIDとの関連付けの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0006】
他の実施形態において、方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル・マークをデジタル要約に関連付けることと、を更に備える。デジタル・マークとデジタル要約との関連付けは、エンティティによる保証を示す。方法は、デジタル・マークとデジタル要約との関連付けの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0007】
更に別の実施形態において、方法は、デジタル・マークをエンティティに関連付けられたデジタル証明書に関連付けることを更に備える。デジタル・マークとデジタル証明書との関連付けは、エンティティによる保証を示す。方法は、デジタル・マークとデジタル証明書との関連付けの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0008】
一部の実施形態において、デジタル・マークは、デジタル印又はデジタル署名のうちの少なくとも一方を備える。一実施形態において、デジタル・マークはデジタル印を備える。別の実施形態において、デジタル・マークはデジタル署名を備える。
【0009】
一部の実施形態において、デジタル・マークをデジタル証明書に関連付けて、エンティティによる保証を示すことができる。
【0010】
他の実施形態において、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することは、少なくともエンティティ情報をブロックチェーン・コントラクトに書き込むことと、1つ又は複数のノードにブロックチェーン・トランザクションを開始させて、ブロックチェーン・コントラクトをデプロイすることと、を備える。
【0011】
更に別の実施形態において、トランザクションIDはブロックチェーン・トランザクションのハッシュ値を備える。
【0012】
更に別の実施形態において、デジタル・マークはブロックチェーン・トランザクションのハッシュ値を備える。
【0013】
一部の実施形態において、エンティティは法人であり、エンティティ情報は公的機関により認証された法人登録情報を備える。
【0014】
他の実施形態において、方法は、エンティティとデジタル・マークとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。
【0015】
更に別の実施形態において、デジタル・マーク生成システムは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、前述の実施形態のいずれかの方法を実行するために1つ又は複数のプロセッサにより実行可能な命令が保存されている1つ又は複数のコンピュータ可読メモリとを備える。
【0016】
更に別の実施形態において、デジタル・マーク生成装置は、前述の実施形態のいずれかの方法を実行するための複数のモジュールを備える。
【0017】
別の態様によれば、デジタル・マーク生成システムは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、システムにオペレーションを実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成されている1つ又は複数の非一時的コンピュータ可読メモリとを備え、オペレーションが、エンティティのエンティティ情報を取得することと、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションIDを取得することと、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成することとを備える。
【0018】
別の態様によれば、非一時的コンピュータ可読記憶媒体は、1つ又は複数のプロセッサにオペレーションを実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成され、オペレーションが、エンティティのエンティティ情報を取得することと、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションIDを取得することと、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成することと、を備える。
【0019】
別の態様によれば、ブロックチェーンベースのデジタル・マーク生成装置は、エンティティのエンティティ情報を取得するための第1の取得モジュールと、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュールと、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションIDを取得するための第2の取得モジュールと、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成するための生成モジュールとを備えることができる。
【0020】
本明細書に開示された実施形態は、1つ又は複数の技術的効果を有する。一部の実施形態において、方法及びシステムは、エンティティ保証を表す改ざん防止マークを生成することができる。ブロックチェーンに保存することにより、オリジナル・データを正確に記録保持することができる。他の実施形態において、エンティティがその情報を(例えば、権限を持って)登録すると、登録情報をブロックチェーン・トランザクションにおいてブロックチェーンに保存することができる。したがって、登録情報は不変となり、検証のために検索可能となる。更に別の実施形態において、方法及びシステムは、登録エンティティがデジタル証明書又は他のデータを保証するための、登録エンティティに関連付けられた固有のデジタル・マークを生成することができる。更に別の実施形態において、登録情報をブロックチェーンに保存することに関連付けられたトランザクションIDに基づいて、デジタル・マークを生成することができる。これにより、デジタル・マークを対応する登録エンティティに一意的にリンクさせ、アイデンティティの偽造を防止する。一部の実施形態において、方法及びシステムは、生成されたデジタル・マークと対応するエンティティとの関連付け関係をブロックチェーンに保存する。その結果、デジタル・マークは対応するエンティティにアンカリングされ、これによりデジタル・マークの無許可の不正使用を防止することができる。
【0021】
本明細書に開示されるシステム、方法、及び非一時的コンピュータ可読媒体のこれら及びその他の特徴、構造の関連する要素及び部分の組合せの動作方法及び機能、ならびに製造コストの節約が、本明細書の一部をなす添付図面を参照しながら以下の説明及び添付の特許請求の範囲を検討することにより明らかになろう。同一の参照符号は様々な図において対応する部分を指す。しかしながら、図面は例示及び説明のためのものに過ぎず、限定的なものではないことを明確に理解されたい。
【図面の簡単な説明】
【0022】
図1A】様々な実施形態によるブロックチェーンベースのデジタル証明書システムの例を示す図である。
図1B】様々な実施形態によるブロックチェーン・ネットワークの例を示す図である。
図2】様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法の例を示す図である。
図3】様々な実施形態によるブロックチェーンベースのデジタル証明書を発行するための方法の例を示す図である。
図4】様々な実施形態によるブロックチェーンベースのデジタル証明書を検証するための方法の例を示す図である。
図5A】様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法の例のフロー・チャートである。
図5B】様々な実施形態によるブロックチェーンベースのデジタル証明書を実装するための方法の例のフロー・チャートである。
図6A】様々な実施形態によるブロックチェーンベースのデジタル・マーク生成コンピュータ・システムの例のブロック図である。
図6B】様々な実施形態によるブロックチェーンベースのデジタル証明書コンピュータ・システムの例のブロック図である。
図7】本明細書に記載の実施形態のいずれかを実施可能なコンピュータ・システムの例のブロック図である。
【発明を実施するための形態】
【0023】
本明細書に開示される実施形態は、ブロックチェーンベースのデジタル・マーク生成システム、方法、及び非一時的コンピュータ可読媒体を含むが、これらに限定されない。様々な実施形態において、デジタル・マーク(例えば、印/署名)は、正式に検証されたエンティティの情報に基づいて生成することにより、エンティティによる保証として機能することができる。一部の実施形態において、保証するデジタル・マークにデジタル証明書をアンカリングすることに基づいて、デジタル証明書を発行することができる。ブロックチェーンの不変性、一貫性、及び正確さにより、デジタル証明書の有効性及び一意性を確保することができ、しばしば不一致又は不正確さを生じさせる改ざんを防止する。他の実施形態において、デジタル証明書をデジタル署名により認証することによって、証明書のコンテンツを認証するエンティティとリンクさせる。したがって、デジタル証明書の有効性を効果的に検証することができ、デジタル証明書のセキュリティが向上し、デジタル証明書の法的効果が高まる。
【0024】
様々な実施形態において、開示されたデジタル証明書システム、方法、及び非一時的コンピュータ可読媒体は、誰がネットワークに参加でき、コンセンサス・プロトコルを実行でき、かつ共有ブロックチェーン台帳を維持できるかに応じて、様々なタイプのブロックチェーンに基づくことができる。様々なタイプのブロックチェーンとしては、例えば、パブリック型ブロックチェーン、コンソーシアム型ブロックチェーン、プライベート型ブロックチェーンなどが挙げられる。以下の説明は、コンソーシアム型ブロックチェーンに言及する。それにもかかわらず、開示されたデジタル証明書システム、方法、及び非一時的コンピュータ可読媒体は、他のタイプのブロックチェーンに対しても同様に適用することができる。
【0025】
ブロックチェーンは、オペレーションがネットワーク内の様々なノード(例えば、計算装置)により実行されるため、分散型台帳と一般に称する分散型データベース又は部分中央集権型データベースであると考えられる。任意の情報をブロックチェーンに書き込み、保存し、そこから読み出すことができる。ノードは、例えば、ブロックチェーン・ネットワークをサポートし、円滑に動作するように保持する計算装置又は大型コンピュータ・システムである。各ノードはブロックチェーンの機能の一部又は全部を提供することができる。例えば、コンセンサス検証を提供するノードは、コンセンサス参加ノード(又はコンセンサス・ノード)と称することができる。コンセンサスは、一般に認められている処理結果を達成するための、ブロックチェーン・ノードのネットワークについてのルールのアルゴリズムであってよい。コンセンサスにより、データがブロックのチェーンに連続して追加される。ブロックに変更が行われると、そのブロックとチェーン内の前のブロックとのリンクが無効になり、これが全ネットワーク参加者に見えるようになる。ネットワーク参加者は、コンセンサス・ルールを通じて、さらなる無許可の動作を防止することができる。
【0026】
コンソーシアム型ブロックチェーンは、予め設定されたノードにより管理されるコンセンサス手続きを有するブロックチェーンを指す。ブロックチェーンにより、誰でも又は承認された参加者のみが、ハイブリッド・アクセス方法にアクセスする、又はこれを採用することができる。例えば、ルート・ハッシュ及びそのアプリケーション・プログラミング・インターフェース(API)は公開することができ、外部関係者がAPIを利用してある数の問合せを行い、ブロックチェーン・ステータスに関する情報を取得することができる。
【0027】
コンソーシアム型ブロックチェーンは、より一般的なブロックチェーンであるパブリック型ブロックチェーンと比較すると最もよく理解することができる。パブリック型ブロックチェーンにはアクセス制限がなく、これは、インターネット接続を有する人であれば誰でもパブリック型ブロックチェーンの参加者になることができることを意味する。より具体的には、世界中の誰でもブロックチェーンに含まれるデータを読み出すことができ、世界中の誰でもパブリック型ブロックチェーンにおけるトランザクションを実行することができる。また、ブロックチェーンにブロックを追加できる個人又はエンティティを決定するプロセスである、ブロックチェーンのコンセンサス・プロセスに参加できる人に制限はない。パブリック型ブロックチェーンは、完全に分散型であると考えられ、ブロックチェーンの管理権限は単一の個人又はエンティティにはない。
【0028】
コンソーシアム型ブロックチェーンは許可制であり、したがって、インターネット接続を有する人が誰でもコンソーシアム型ブロックチェーンにアクセスできるわけではないという点で、パブリック型ブロックチェーンとは異なる。このタイプのブロックチェーンを半分散型と称することもできる。コンソーシアム型ブロックチェーンの管理は、単一のエンティティに許可されるのではなく、認可された個人のグループに許可される。コンソーシアム型ブロックチェーンでは、コンセンサス・プロセスはパブリック型ブロックチェーンのものとは異なる可能性がある。誰でも手続きに参加できるのではなく、コンソーシアム型ブロックチェーンのコンセンサス参加者は、ネットワーク上の予め認可されたノード群である可能性がある。ノードは様々な国、企業、又は他のエンティティに対応することができる。したがって、コンソーシアム型ブロックチェーンは、パブリック型ブロックチェーン特有のセキュリティ機能を有し、一方でネットワーク上においてより高度な管理を行うこともできる。
【0029】
図1Aは、様々な実施形態による、様々な開示されたステップ及び方法を実行するためのシステム110の例を示す。図示したように、システム110は、登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114を備えることができ、各システムは、ネットワーク119により代表される様々なタイプの通信によって接続される、1つ又は複数の物理ハードウェア装置又は仮想装置に対応することができる。
【0030】
登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114の各々は、サーバ、コンピュータ、携帯電話などの1つ又は複数の計算装置に実装することができる。例えば、各システムはサーバ群に実装することができる。サーバ群はロード・バランシングを採用することができる。
【0031】
この図では、登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114が単一の構成要素として示されているが、これらのシステムを単一の装置又は接続された複数の装置として実装してもよいことを理解されたい。すなわち、図1Aのシステムの2つ以上を単一のシステムに統合しても、別々のシステムとして実装してもよい。例えば、登録システム111と証明システム113とを、1つ又は複数の計算装置を備えるデジタル証明書システム118に統合してもよい。デジタル証明書システム118を、ブロックチェーンベースのデジタル証明書システムと称することができる。登録システム111と証明システム113とは、統合されると、様々なモジュールとして、又は統合されたシステムの同様の構成要素として実装することができる。
【0032】
登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114の各々には、システム110の他のシステム又は装置にアクセスするための適切なソフトウェア(例えば、登録アプリケーション・プログラム・インターフェース、ブロックチェーン・アプリケーション・プログラム・インターフェース、デジタル証明書生成プログラム、公的機関アプリケーション・インターフェース)及び/又はハードウェア(例えば、ワイヤ、無線接続)がインストールされていてもよい。登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114の各々は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続された1つ又は複数のメモリとを備えることができる。メモリは、非一過性かつコンピュータ可読であり、1つ又は複数のプロセッサに本明細書に記載のオペレーションを実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成することができる。
【0033】
一般に、登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114は、ネットワーク119を通じて互いに通信可能であってよい。例えば、登録システム111、ブロックチェーン・システム112、証明システム113、及び公的機関システム114は、データ通信可能な1つ又は複数の有線又は無線ネットワーク(例えば、インターネット)を通じて互いに通信可能であってよい。図1B図7を参照しながら、システム構成要素の様々な態様について、以下で更に詳細に説明する。
【0034】
図1Bは、様々な実施形態によるブロックチェーン・ネットワーク120の例を示す。図示したように、ブロックチェーン・ネットワーク120は、前述のブロックチェーン・システム112を備えることができる。ブロックチェーン・システム112は、複数のブロックチェーン・ノード(例えば、ノード1、ノード2、ノード3、ノード4、ノードiなど)を備えることができる。ブロックチェーン・ノードは、1つのブロックチェーン・ノードが別のブロックチェーン・ノードと通信するネットワーク(例えば、ピアツーピア・ネットワーク)を形成することができる。図示したブロックチェーン・ノードの順序及び数は例示であり、説明を簡単にするためのものに過ぎない。ブロックチェーン・ノードはサーバ、コンピュータなどに実装することができる。各ブロックチェーン・ノードは、TCP/IPなどの様々なタイプの通信方法によって接続された1つ又は複数の物理ハードウェア装置又は仮想装置に対応することができる。分類に応じて、ブロックチェーン・ノードとしては、フル・ノード、Gethノード、コンセンサス・ノードなどが挙げられる。
【0035】
様々な実施形態において、ブロックチェーン・システム112の1つ又は複数のノードは、前述の登録システム111、証明システム113、公的機関システム114などの他のシステム及び装置と対話することができる。対話は、例えば、トランザクション、証明、契約などの目的でデータの送信及び/又は受信を伴うことができる。一例では、ノードA(例えば、携帯電話、コンピュータなど)はデジタル証明書システム118の装置に対応することができ、情報をノード1(又はブロックチェーン・システム112の複数のノード)に送信してブロックチェーンに保存することができる。保存プロセスは、ブロックチェーン・トランザクションにより実現可能である。例えば、情報をブロックチェーン・コントラクト(例えば、スマート・コントラクト)に書き込むことができ、ブロックチェーン・トランザクションをノード1(又は、ブロックチェーン・コンセンサス・ルールに基づいてそのような権限を有する1つ又は複数の他のノード)により開始して、コントラクトをブロックチェーンにデプロイすることができる。他のブロックチェーン・トランザクションと同様に、ここでのトランザクションはトランザクション・ハッシュに対応することができる。トランザクション・ハッシュは、様々なトランザクション情報をハッシュ関数にかける出力であってよい。ブロックチェーンは、トランザクションのハッシュ値を保存することができる。後で、情報を(例えば、検証のために)検索する必要があるときに、ノードA/ノードB(例えば、携帯電話、コンピュータなど)が、ノード1/ノード2(又はブロックチェーン・システム112の複数のノード)に、別のトランザクションを開始してブロックチェーンから情報を取得するように命令することができる。別のトランザクションは、情報を取得するためのアドレスを問い合わせることができる。ノードBは、デジタル証明書システム118、公的機関システム114、又はブロックチェーン・システム112に接続された別のシステム(図示せず)に属していてもよい。
【0036】
ブロックチェーン・システム112との対話において、ノードA及びノードBには、トランザクションを開始する、転送する、又はトランザクションにアクセスするための適切なブロックチェーン・ソフトウェアがインストールされていてもよい。ノードAは、ノード1又はブロックチェーンの1つ又は複数の他のノードとの通信を通じてブロックチェーンにアクセスすることができ、ノードBは、ノード2又はブロックチェーンの1つ又は複数の他のノードとの通信を通じてブロックチェーンにアクセスすることができる。ノードAは、ノード1又は同様のノードを通じてトランザクションをブロックチェーンに提示し、トランザクションをブロックチェーンに追加するよう要求することができる。
【0037】
ブロックチェーンは、複数のブロックチェーン・ノードにより維持することができ、各ブロックチェーン・ノードはメモリを備える又はメモリに接続している。一部の実施形態において、メモリはプール・データベースを保存することができる。プール・データベースには、複数のブロックチェーン・ノードが分散してアクセス可能である。例えば、プール・データベースを、ブロックチェーン・ノードのメモリにそれぞれ保存することができる。プール・データベースは、ノードAと同様に1つ又は複数のユーザ装置により提示された複数のトランザクションを保存することができる。
【0038】
一部の実施形態において、受信者ブロックチェーン・ノードは、未確認のトランザクションのトランザクション要求を受信した後、トランザクションの何らかの予備検証を実行することができる。例えば、図1Bを参照すると、ノード1は、ノードAからトランザクションを受信した後に予備検証を実行することができる。トランザクションは、検証されると、受信者ブロックチェーン・ノード(例えば、ノード1)のプール・データベースに保存されてよく、受信者ブロックチェーン・ノードは、トランザクションを1つ又は複数の他のブロックチェーン・ノード(例えば、ノード3、ノード4)に転送することもできる。1つ又は複数の他のブロックチェーン・ノードは、受信者ノードにより実行されるプロセスを繰り返すことができる。対応するプール・データベースのトランザクションがあるレベル(例えば、閾値)に達すると、ブロックチェーン・ノードは各々、コンセンサス・ルール又は他のルールに従って、対応するプール・データベースのトランザクション群を検証することができる。
【0039】
ブロックチェーン・トランザクションがブロックチェーン・コントラクト(例えば、スマート・コントラクト)を伴う場合、ブロックチェーン・ノードはブロックチェーン・コントラクトを局所的に実行することができる。ブロックチェーン・コントラクトは、コントラクトのネゴシエーション又はパフォーマンスをデジタル的に促進、検証、又は強化することを意図したコンピュータ・プロトコルである。ブロックチェーン・コントラクトにより、第三者なしで、信頼できるブロックチェーン・トランザクションのパフォーマンスが可能になる。ブロックチェーン・トランザクションの例として、(コントラクトのデプロイメントによる)データ保存のためにデータをコントラクト・コードに符号化すること、及び(コントラクトにアクセスする、又はコントラクトを実行することによる)検索が挙げられる。ブロックチェーン・コントラクトとしては、エンティティ情報、デジタル証明書のデジタル要約などのユーザ作成コントラクト・コードが挙げられる。
【0040】
コンセンサス・ルールに従ってブロックチェーン・トランザクション群を順調に検証する、あるブロックチェーン・ノードが、ブロックチェーン・トランザクションをパックしてブロックチェーンのローカル・コピーに追加し、その結果を他のブロックチェーン・ノードに広めることができる。あるブロックチェーン・ノードは、最初に検証を順調に完了し、検証権限を取得し、又は別のコンセンサス・ルールに基づいて決定されたブロックチェーン・ノードなどであってよい。その後、他のブロックチェーン・ノードは、ブロックチェーン・トランザクションを局所的に実行し、実行結果を互いに検証し(例えば、ハッシュ計算を行うことにより)、それらのブロックチェーンのコピーをあるブロックチェーン・ノードのコピーと同期させることができる。ブロックチェーンのローカル・コピーをアップデートすることにより、他のブロックチェーン・ノードが、ブロックチェーン・トランザクションのそのような情報をそれぞれのローカル・メモリに同様に書き込むことができる。したがって、ブロックチェーン・コントラクトがデプロイされる。デプロイされたコントラクトは、後で、ブロックチェーンの対応するアドレスを通じてアクセスし、実行することができる。例えば、コントラクトに保存されたデータを検索することができる。ある時点で検証が失敗すると、ブロックチェーン・トランザクションは拒絶される。上記にもかかわらず、他のタイプのブロックチェーン・システム及び関連するコンセンサス・ルールを、開示したブロックチェーン・システムに適用してもよい。
【0041】
図2は、様々な実施形態によるブロックチェーンベースのデジタル・マークを生成するための方法200の例を示す。方法200は、図1Aのシステム110の1つ又は複数の構成要素(例えば、登録システム111、ブロックチェーン・システム112、証明システム113、公的機関システム114)により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム111と証明システム113とを、1つ又は複数の計算装置を備えるデジタル証明書システム118に統合することができる。以下に示すオペレーションは例示的なものである。実施に基づいて、方法200は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。
【0042】
一部の実施形態において、ステップ211で、第1のエンティティが、登録システム111により情報登録を開始することができる。登録情報は、識別番号、アドレス、連絡先情報などのエンティティのアイデンティティ情報を備えることができる。エンティティは、個人、法人又は企業、組織などに関連付けることができる。例えば、法人は、登録システム111により、法人の情報(例えば、法人の名称、法人の代表者、法人の連絡先など)を提示することによって法人情報の登録を開始することができる。
【0043】
ステップ212で、登録システム111は、検証要求212を証明システム113に送信することができる。登録情報を証明システム113に送信してもよい。
【0044】
ステップ213で、証明システム113は、公的機関システム114によるエンティティのアイデンティティの検証を要求することができる。例えば、証明システム113は、公的機関システム114のアプリケーション・プログラム・インターフェースと通信してアイデンティティを検証することができる。別の例では、証明システム113は、登録情報を送信して、法人登録データベースに問い合わせ、法人のアイデンティティを検証するように、公的機関システム114に要求することができる。
【0045】
ステップ214で、公的機関システム114は、検証結果を証明システム113に返信することができる。
【0046】
ステップ221で、検証が成功した場合、証明システム113は、登録情報をブロックチェーン・システム112に送信して、ブロックチェーン・システム112により維持されるブロックチェーンに保存することができる。登録情報は、公開情報であり、ブロックチェーンの様々なノードが利用できると考えられる。
【0047】
様々な実施形態において、証明システム113は、1つ又は複数の軽量ノード(例えば、ノードA、ノードB)を含むことができる。証明システム113は、軽量ノードに接続されたブロックチェーン・システム112のノード(例えば、ノード1)により、ブロックチェーン・トランザクション(又は略して、トランザクション)を開始することができる。例えば、登録情報をブロックチェーン・コントラクト(例えば、スマート・コントラクト)に書き込むことができ、ブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。デプロイメントにより、実行、検索、又は他のオペレーションのために、コントラクトにブロックチェーンからアクセス可能である。この場合のブロックチェーン・トランザクションは、トランザクションID(例えば、第1のトランザクション・ハッシュ)に対応することができる。例えば、ブロックチェーン・トランザクションIDは、ブロックチェーン・トランザクションのハッシュ値であってよい。トランザクションIDをエンティティに関連付けてもよい。ブロックチェーンは登録情報を保存することができる。ブロックチェーンは対応するトランザクションIDを保存することもできる。したがって、ブロックチェーン・トランザクションIDと登録情報とがアンカリングされる(関連付けられる)。トランザクションIDを問い合わせることにより、ブロックチェーンに保存されている登録情報を検索することができる。例えば、ブロックチェーン・トランザクションIDがブロックチェーン・システム112(例えば、ブロックチェーン・ノード)に送信されると、ブロックチェーン・システム112は、ブロックチェーン・コントラクトを実行して、ブロックチェーンに保存されている登録情報を検索することができる。ブロックチェーンに登録情報を保存し、登録情報を検索する多くの他の適切な方法がある。当業者には、本明細書の実施形態が上記の例に限定されないことを理解されたい。この段落に記載のトランザクション及びトランザクションIDを、第1のトランザクション及び第1のトランザクションIDと称することができる。
【0048】
ステップ222で、ブロックチェーン・システム112は、第1のトランザクションID(例えば、デジタル要約)を証明システム113に返信することができる。第1のトランザクションIDは、一意的にエンティティを表し登録情報に対応するデジタル改ざん防止表現であってよい。例えば、ブロックチェーン・システム112は、第1のトランザクションのハッシュ値を第1のトランザクションIDとして証明システム113に返信することができる。第1のトランザクションIDは、エンティティがブロックチェーンに存在することを示す。
【0049】
ステップ231で、証明システム113は、少なくともエンティティの第1のトランザクションIDに基づいてデジタル・マーク(例えば、デジタル署名/印)を生成することができる。デジタル・マーク(例えば、デジタル署名/印)を、第1のトランザクションID(例えば、第1のトランザクションのハッシュ値)に基づいて一意的に識別することができる。証明システム113は、エンティティとデジタル・マーク(例えば、デジタル署名/印)との関係を維持することができる。
【0050】
ステップ241で、証明システム113は、デジタル・マーク(例えば、デジタル署名/印)とエンティティとの関連付け関係をブロックチェーン・システム112に送信してブロックチェーンに保存することができる。したがって、生成されたデジタル・マーク(例えば、デジタル署名/印)とエンティティとの関連付け関係を、ブロックチェーン・システム112及び/又は証明システム113により保存することができる。
【0051】
様々な実施形態において、証明システム113は、ブロックチェーン・システム112のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第2のトランザクションと称することができ、第2のトランザクションIDに対応することができる。例えば、ステップ241におけるデジタル・マーク(例えば、デジタル署名/印)とエンティティとの関連付けの関連付け関係を、ブロックチェーン・コントラクト(例えば、スマート・コントラクト)に書き込むことができる。上記のステップ221を参照して前述したプロセスと同様に、第2のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第2のブロックチェーン・トランザクションは、第2のトランザクションID(例えば、第2のトランザクション・ハッシュ)に対応することができ、この第2のトランザクションIDもエンティティに関連付けられる。ブロックチェーンは、関連付け関係を保存することができる。ブロックチェーンは、対応する第2のトランザクションIDを保存することもできる。第2のトランザクションIDを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【0052】
ステップ251で、上記のステップが順調に実行されると、証明システム113は、登録成功のメッセージを登録システム111に返信することができる。
【0053】
図3は、様々な実施形態による、ブロックチェーンベースのデジタル証明書を発行するための方法300の例を示す。方法300は、図1Aのシステム110の1つ又は複数の構成要素(例えば、登録システム111、ブロックチェーン・システム112、証明システム113)により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム111と証明システム113とを、1つ又は複数の計算装置を備えるデジタル証明書システム118に統合することができる。以下に示すオペレーションは例示的なものである。実施に基づいて、方法300は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法300を方法200の後に実行してもよい。
【0054】
一部の実施形態において、ステップ311で、第1のエンティティが、登録システム111により証明書(例えば、デジタル証明書)の生成要求を開始することができる。本明細書において、証明書はある事実又は他の情報を証明する書類を含むことができる。証明書をエンティティにより保証することができる。例えば、法人又は機関などのエンティティが、デジタル証明書の形の金融トランザクション・レシートを発行することができる。別の例では、保険代理店が、デジタル証明書の形の保険証券又は保険証明書を発行することができる。
【0055】
ステップ312で、登録システム111は、証明書データを生成することができる。証明書データは、要求に従った証明書のコンテンツを備えることができる。例えば、金融トランザクションのためのレシートの生成要求は、金融トランザクションの日付、金融トランザクションの量、金融トランザクションの支払人及び受取人などの証明書データに対応することができる。
【0056】
ステップ321で、登録システム111は、要求された証明書を証明システム113に送信し、要求された証明書を図2に関して前述したデジタル・マーク(例えば、デジタル署名/印)とアンカリングするよう証明システム113に要求することができる。本明細書において、アンカリングとは、関連付け又はその他の方法による関連付けの確立を意味することができる。関連付けを、デジタル証明書システム118の1つ又は複数の構成要素に保存することができる。
【0057】
ステップ322で、証明システム113は、要求された証明書とデジタル・マーク(例えば、デジタル署名/印)とをアンカリングすることができる。一部の実施形態において、証明システム113はデジタル証明書のデジタル要約を生成することができる。
【0058】
ステップ331で、証明システム113は、デジタル証明書のデジタル要約をブロックチェーン・システム112に送信して、デジタル要約をブロックチェーンに保存するようブロックチェーン・システム112に要求することができる。
【0059】
様々な実施形態において、証明システム113は、ブロックチェーン・システム112のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第3のトランザクションと称することができ、第3のトランザクションIDに対応することができる。例えば、デジタル証明書のデジタル要約をブロックチェーン・コントラクト(例えば、スマート・コントラクト)に書き込むことができる。上記のステップ221を参照して前述したプロセスと同様に、第3のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第3のブロックチェーン・トランザクションは、第3のトランザクションID(例えば、第3のトランザクション・ハッシュ)に対応することができる。第3のトランザクションIDを、デジタル証明書のデジタル要約、第3のトランザクションのタイムスタンプ、第3のトランザクションの開始者などの情報に関連付けることができる。ブロックチェーンは、デジタル要約(例えば、デジタル証明書のハッシュ値)を保存することができるが、プライバシー確保のため、デジタル証明書の詳細(例えば、プレーンテキスト)を保存することができない。ブロックチェーンは、対応する第3のトランザクションIDを保存することもできる。第3のトランザクションIDを問い合わせることにより、ブロックチェーンに保存されているデジタル証明書のデジタル要約を検索することができる。スマート・コントラクトの他の代替方法を採用して、証明書をブロックチェーンに保存してもよい。
【0060】
ステップ332で、ブロックチェーン・システム112は、デジタル証明書のデジタル要約を保存するための第3のトランザクションの第3のトランザクションID(例えば、第3のトランザクション・ハッシュ)を、証明システム113に返信することができる。ステップ331、332により、ブロックチェーンに保存されているデジタル証明書のデジタル要約を後で使用して、不審なデジタル証明書の要約を検証することができる。
【0061】
ステップ341で、証明システム113は、デジタル印/署名を、証明書のデジタル要約を保存するための第3のトランザクションの第3のトランザクションIDにアンカリングすることができる。ステップ322で、要求された証明書がデジタル・マーク(例えば、デジタル署名/印)にアンカリングされているため、証明システム113に保存されているデジタル証明書は、ブロックチェーンに保存されているデジタル要約表現にリンクされる。
【0062】
ステップ351で、証明システム113は、デジタル印/署名、証明書のデジタル要約を保存するための第3のトランザクションの第3のトランザクションID、及びデジタル証明書のデジタル要約間の関連付けをブロックチェーン・システム112に送信してブロックチェーンに保存することができる。したがって、エンティティ、デジタル印/署名、及びデジタル証明書が関連付けられ、関連付け関係がブロックチェーンに保存される。
【0063】
様々な実施形態において、証明システム113は、ブロックチェーン・システム112のノードにより、別のブロックチェーン・トランザクションを開始することができる。この段落に記載のトランザクションは、第4のトランザクションと称することができ、第4のトランザクションIDに対応することができる。例えば、ステップ351における関連付けの関連付け関係を、ブロックチェーン・コントラクト(例えば、スマート・コントラクト)に書き込むことができる。上記のステップ221を参照して前述したプロセスと同様に、第4のブロックチェーン・トランザクションを開始してコントラクトをブロックチェーンにデプロイすることができる。第4のブロックチェーン・トランザクションは、第4のトランザクションID(例えば、第4のトランザクション・ハッシュ)に対応することができる。ブロックチェーンは、関連付け関係を保存することができる。ブロックチェーンは、対応するトランザクションIDを保存することもできる。第4のトランザクションIDを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【0064】
ステップ361で、上記ステップが順調に実行されると、証明システム113は、成功のメッセージを登録システム111に返信することができる。
【0065】
図4は、様々な実施形態による、ブロックチェーンベースのデジタル証明書を検証するための方法400の例を示す。方法400は、図1Aのシステム110の1つ又は複数の構成要素(例えば、登録システム111、ブロックチェーン・システム112、証明システム113)により実施することができる。前述したように、別々のシステムとして図示されているが、登録システム111と証明システム113とを、1つ又は複数の計算装置を備えるデジタル証明書システム118に統合することができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法400は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。
【0066】
一部の実施形態において、ステップ411で、第三者エンティティが、登録システム111により証明書の検証を開始することができる。例えば、第三者は、デジタル証明書を取得しており、取得したデジタル証明書がブロックチェーンに存在するかどうかを検証して証明書を認証することを望んでいる。したがって、第三者はデジタル証明書を検証のために提示することができる。
【0067】
ステップ412で、登録システム111は、デジタル・マーク(例えば、デジタル署名/印)のアンカリングなどの証明書の検証要求を証明システム113に送信することができる。
【0068】
これを受けて、ステップ413で、証明システム113は、証明書に対応するデータをブロックチェーンから取得して証明書を検証することができる。例えば、証明システム113は、ブロックチェーン・システム112のノードにより、ブロックチェーンに保存されている情報(例えば、証明書に関連付けられたデジタル要約、証明書に関連付けられたデジタル・マーク(例えば、デジタル署名/印))を問い合わせることができる。
【0069】
ステップ421で、証明システム113は、対応するデータをブロックチェーンから取得することができる。証明書がブロックチェーンに存在する場合、データは、図3を参照して前述した、証明書に関連付けられたデジタル要約(ブロックチェーンに保存されているデジタル要約と称する)、証明書に関連付けられたデジタル・マーク(例えば、デジタル署名/印)(ブロックチェーンに保存されているデジタル・マークと称する)などの、ブロックチェーンに保存されている情報を備えることができる。
【0070】
ステップ422で、証明システム113は、(1)デジタル・マーク(例えば、デジタル署名/印)と証明書とのアンカリング、及び(2)証明書の要約と、証明書に関連付けられた、ブロックチェーンに保存されているデジタル要約とのアンカリングを検証することができる。データはデジタル証明書のデジタル要約(例えば、SHA−256ハッシング)を生成するために使用する暗号化処理を備えることができるため、証明システム113は、ステップ422で検証を行うために証明書の要約を生成することができる。
【0071】
あるいは、ブロックチェーン・システム112は、検証を行い、結果を証明システム113に返信することができる。
【0072】
ステップ431で、証明システム113は、検証結果を登録システム111に返信することができる。
【0073】
図5Aは、様々な実施形態による、ブロックチェーンベースのデジタル・マークを生成するための方法510の例のフロー・チャートである。方法510は、図1Aのシステム110の1つ又は複数の構成要素(例えば、デジタル証明書システム118)により実施することができる。方法510を、様々なハードウェア・マシン及び/又はソフトウェアを備えるシステムにより実施することができる。例えば、デジタル証明書システム118を、1つ又は複数のシステム又は装置(例えば、コンピュータ、サーバ)により実装することができる。方法510を実施するシステムは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、システム(例えば、プロセッサ)に方法510を実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成されている1つ又は複数の非一時的コンピュータ可読記憶媒体(例えば、1つ又は複数のメモリ)とを備えることができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法510は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法510の実施の例は、図2を参照して前述されている。
【0074】
ステップ511は、エンティティのエンティティ情報を取得することを含む。一部の実施形態において、エンティティは法人であり、エンティティ情報は、公的機関により認証された法人登録情報を備える。例えば、デジタル証明書システム118は、エンティティからエンティティ情報を登録情報として取得することができる。デジタル証明書システム118は、登録情報を検証のために公的機関システムに転送することができる。検証されると、以下のステップを実行してデジタル・マークを生成することができる。
【0075】
ステップ512は、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することを含む。一部の実施形態において、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することは、少なくともエンティティ情報をブロックチェーン・コントラクトに書き込むことと、1つ又は複数のノードにブロックチェーン・トランザクションを開始させてブロックチェーン・コントラクトをデプロイすることと、を備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム118は、ノードの1つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ221を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションID(例えば、トランザクション・ハッシュ)に対応することができる。ブロックチェーンは、エンティティ情報を保存することができる。ブロックチェーンは、対応するトランザクションIDも保存することができる。トランザクションIDを問い合わせることにより、ブロックチェーンに保存されているエンティティ情報を検索することができる。
【0076】
ステップ513は、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションID(例えば、デジタル要約)を取得することを含む。エンティティ情報がブロックチェーンに順調に保存されると、ブロックチェーンの1つ又は複数のノードによりトランザクションIDを返信することができる。一部の実施形態において、トランザクションIDはブロックチェーン・トランザクションのハッシュ値を備える。例えば、ハッシュ・アルゴリズムは、任意の長さのメッセージを一定の長さのメッセージ・ダイジェストに圧縮する関数として理解することができる。一般に使用されるハッシュ関数としては、MD5及びSHAが挙げられる。ブロックチェーン・トランザクションのハッシュ値は、ブロックチェーン・トランザクションの様々な情報を入力として有するハッシュ関数の出力を含むことができる。ブロックチェーン・トランザクションの様々な情報は、「送信元」(送信者アドレス)、「値」(トランザクション値)、「ガス」(トランザクションを完了するための費用)、「データ」(ブロックチェーン・コントラクト・データ)などの1つ又は複数のトランザクション・パラメータを含むことができる。ブロックチェーンのハッシュ・アルゴリズムは不可逆的であり、すなわち、順方向計算は容易であるが、すべての計算リソースを使い尽くしても逆方向計算は行うことができない。したがって、ブロックチェーン・トランザクションのハッシュ値は一意的なものである。詳細は、前述したステップ222を参照することができる。
【0077】
ステップ514は、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成することを含む。デジタル・マークはエンティティに関連付けられる。関連付け関係はデジタル証明書システム118により維持することができる。一部の実施形態において、デジタル・マークはトランザクションID(例えば、ブロックチェーン・トランザクションのハッシュ値)を備える。あるデータのハッシュ値は、ハッシュ・アルゴリズムを前述のブロックチェーン・トランザクションの様々な情報などのデータに適用した数値結果である。例えば、デジタル・マークはステップ513のトランザクションIDであってよい。あるいは、トランザクションIDを、対応するトランザクションのダイジェストと称することができる。詳細は、前述したステップ231を参照することができる。
【0078】
一部の実施形態において、デジタル・マークは、デジタル印又はデジタル署名のうちの少なくとも一方を備え、デジタル・マークは、エンティティによる保証を示すためにデジタル証明書に関連付けることができる。例えば、関連付けにより、デジタル・マークとデジタル証明書とを1つのファイルにまとめることができる。別の例では、関連付けにより、デジタル証明書をデジタル・マークにリンクさせることができる。
【0079】
一部の実施形態において、方法は、エンティティとデジタル・マークとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム118は、ノードの1つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ241を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションID(例えば、トランザクション・ハッシュ)に対応することができる。ブロックチェーンは関連付けを保存することができる。ブロックチェーンは、対応するトランザクションIDも保存することができる。トランザクションIDを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【0080】
一部の実施形態において、方法は、デジタル証明書を生成することと、デジタル・マークをデジタル証明書に関連付けることと、デジタル証明書をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書をブロックチェーンに保存することに関連付けられた別のデジタル要約を取得することと、デジタル・マークを別のデジタル要約に関連付けることと、デジタル・マークとトランザクションIDとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することと、を更に備える。デジタル・マークと別のデジタル要約との関連付けは、エンティティによる保証を示す。デジタル証明書が別のデジタル要約にリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークとトランザクションIDとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。図5Bを参照しながら、さらなる詳細について以下で説明する。
【0081】
他の実施形態において、デジタル証明書を任意の手段により取得することができる。方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル証明書のデジタル要約をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することと、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられた別のトランザクションIDを取得することと、デジタル・マークを別のトランザクションIDに関連付けることと、を更に備える。デジタル・マークと別のトランザクションIDとの関連付けは、エンティティによる保証を示す。デジタル証明書が別のトランザクションIDにリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークと別のトランザクションIDとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0082】
更に別の実施形態において、方法は、エンティティに関連付けられたデジタル証明書のデジタル要約を生成することと、デジタル・マークをデジタル要約に関連付けることと、を更に備える。デジタル・マークとデジタル要約との関連付けは、エンティティによる保証を示す。デジタル証明書がデジタル要約にリンクされるため、デジタル証明書はエンティティにより保証される。方法は、デジタル・マークとデジタル要約との関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0083】
更に別の実施形態において、方法は、デジタル・マークをエンティティに関連付けられたデジタル証明書に関連付けることを更に備える。デジタル・マークとデジタル証明書との関連付けは、エンティティによる保証を示す。方法は、デジタル・マークとデジタル証明書との関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備えることができる。
【0084】
図5Bは、様々な実施形態による、ブロックチェーンベースのデジタル証明書を実装するための方法520の例のフロー・チャートである。方法520は、図1Aのシステム110の1つ又は複数の構成要素(例えば、デジタル証明書システム118)により実施することができる。方法520を、様々なハードウェア・マシン及び/又はソフトウェアを備えるシステムにより実施することができる。例えば、デジタル証明書システム118を、1つ又は複数のシステム又は装置(例えば、コンピュータ、サーバ)により実装することができる。方法520を実施するシステムは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、システム(例えば、プロセッサ)に方法520を実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成されている1つ又は複数の非一時的コンピュータ可読記憶媒体(例えば、1つ又は複数のメモリ)とを備えることができる。以下に示すオペレーションは例示的なものである。実施に応じて、方法520は、様々な順序で又は並行して実行される、追加の、より少ない、又は代替のステップを含むことができる。方法520の実施の例は、図3及び図4を参照して前述されている。
【0085】
ステップ521は、デジタル証明書を生成することを含む。一部の実施形態において、デジタル証明書を生成することは、デジタル証明書のコンテンツを、法人であるエンティティから取得することと、コンテンツを備えるデジタル証明書を生成することと、を備える。例えば、デジタル証明書システム118は、デジタル証明書に示す必要のあるコンテンツをエンティティ又は別のソースから取得することができる。詳細は、前述したステップ312を参照することができる。
【0086】
任意選択のステップ522は、デジタル・マークをデジタル証明書に関連付けることを含む。デジタル・マークは、図5Aを参照して説明したものであってよい。デジタル・マークはデジタル証明書システム118により維持することができる。一部の実施形態において、デジタル・マークはデジタル印及び/又はデジタル署名を備え、デジタル・マークはエンティティによる保証に関連付けられる。詳細は、前述したステップ322を参照することができる。
【0087】
ステップ523は、デジタル証明書のデジタル要約を生成することを含む。例えば、SHA−256などのハッシュ・プロセスを使用して、デジタル証明書からデジタル要約を生成することができる。したがって、デジタル証明書のコンテンツは暗号化表現に変換される。
【0088】
ステップ524は、デジタル証明書のデジタル要約をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することを含む。一部の実施形態において、デジタル証明書のデジタル要約をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存することは、デジタル証明書のデジタル要約及びデジタル要約を生成するために使用する暗号化処理(例えば、SHA−256ハッシング)をブロックチェーン・コントラクトに書き込むことと、1つ又は複数のノードにブロックチェーン・トランザクションを開始させてブロックチェーン・コントラクトをデプロイすることとを備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム118は、ノードの1つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ331を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションID(例えば、トランザクション・ハッシュ)に対応することができる。ブロックチェーンは、デジタル要約(例えば、デジタル証明書のハッシュ値)を保存することができるが、プライバシー確保のため、デジタル証明書の詳細(例えば、プレーンテキスト)を保存することができない。ブロックチェーンは対応するトランザクションIDを保存することもできる。トランザクションIDを問い合わせることにより、ブロックチェーンに保存されているデジタル証明書のデジタル要約を検索することができる。
【0089】
ステップ525は、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションIDを取得することを含む。デジタル証明書のデジタル要約がブロックチェーンに順調に保存されると、ブロックチェーンの1つ又は複数のノードによりトランザクションID(例えば、トランザクションの要約)を返信することができる。一部の実施形態において、デジタル要約はデジタル証明書のハッシュ値を備え、トランザクションIDはブロックチェーン・トランザクションのハッシュ値を備える。ブロックチェーンは、プライバシー保護のため、デジタル証明書のプレーンテキストではなくデジタル要約を保存することができる。詳細は、前述したステップ332を参照することができる。
【0090】
ステップ526は、デジタル・マークをトランザクションIDに関連付けることを含む。詳細は、前述のアンカリング・ステップ341を参照することができる。一部の実施形態において、デジタル・マークをトランザクションIDに関連付けることは、デジタル・マーク、トランザクションID、及びデジタル要約を関連付けることを備える。一部の実施形態において、方法は、デジタル・マークとトランザクションIDとの関連付け関係を1つ又は複数のノードに送信してブロックチェーンに保存することを更に備える。一部の実施形態において、方法は、デジタル・マーク、トランザクションID、及びデジタル要約間の関連付けを送信することを更に備える。例えば、ブロックチェーンのノードは、ブロックチェーン・トランザクションを開始する権限を有することができる。デジタル証明書システム118は、ノードの1つ又は複数に接続して、ブロックチェーン・トランザクションを開始することができる。ノードは、コンセンサス・ルールに従って、ブロックチェーン・トランザクションを検証し実行することができる。デプロイメント後、ブロックチェーン・トランザクションはブロックチェーンの新しいブロックにパックされ、そのコピーをノードが利用できるようになる。詳細は、前述したステップ351を参照することができる。この場合のブロックチェーン・トランザクションは、トランザクションID(例えば、トランザクション・ハッシュ)に対応することができる。ブロックチェーンは、関連付けを保存することができる。ブロックチェーンは、対応するトランザクションIDを保存することもできる。トランザクションIDを問い合わせることにより、ブロックチェーンに保存されている関連付けを検索することができる。
【0091】
一部の実施形態において、方法は、未検証のデジタル・マークにより保証された未検証のデジタル証明書に対する検証要求を受けて、未検証のデジタル証明書に対応するトランザクションIDを取得することと、未検証のデジタル証明書に対応するトランザクションIDに従って、ブロックチェーンに保存されているデジタル要約及びブロックチェーンに保存されているデジタル・マークを取得することと、デジタル証明書のデジタル要約を生成するために使用する暗号化処理に従って、未検証のデジタル証明書のデジタル要約を生成することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致しているかどうか、及びブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致しているかどうかを検証することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致し、ブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致していると判定したことを受けて、未検証のデジタル証明書が真正であると判定することと、ブロックチェーンに保存されているデジタル要約が未検証のデジタル証明書のデジタル要約と一致しない、又はブロックチェーンに保存されているデジタル・マークが未検証のデジタル・マークと一致しないと判定したことを受けて、未検証のデジタル証明書が真正でないと判定することとを更に備える。
【0092】
例えば、図4を参照して前述したように、第三者は、未検証のエンティティの未検証のマークにより保証された未検証のデジタル証明書を受信しており、それが真正であることを検証することを望んでいる。ブロックチェーンがエンティティ、デジタル証明書の要約、トランザクションID、及び対応するデジタル・マーク間の関連付け関係を保存しているため、デジタル証明書システム118は、未検証のデジタル証明書に対応するトランザクションIDを取得し、これに対応して、例えば、ブロックチェーンの1つ又は複数のノードによりトランザクションを開始して、未検証のデジタル証明書に関連付けられたデータ(例えば、ブロックチェーンに保存されているデジタル要約、ブロックチェーンに保存されているデジタル・マーク、ブロックチェーンに保存されているエンティティ情報)を取得することにより、ブロックチェーンに保存されている情報を検索することができる。デジタル証明書システム118は、検証のために、未検証のデジタル証明書のデジタル要約を得ることができる。デジタル証明書システム118は、未検証のデジタル証明書のデジタル要約がブロックチェーンに保存されているデジタル要約と一致しているかどうか(デジタル証明書のコンテンツが改ざんされていないことを確実にするため)、及び未検証のデジタル・マークがデジタル・マークと一致しているかどうか(保証するエンティティが正確であることを確実にするため)を検証することができる。場合により、デジタル証明書システム118は、未検証のエンティティが、デジタル証明書に関連付けられた、ブロックチェーンに保存されているエンティティ情報と一致しているかどうかを検証することができる。一致の検証が成功すると、デジタル証明書システム118は、未検証のデジタル証明書が真正であると判定することができる。データが取得できない場合、又は一致の検証のいずれかが失敗した場合、デジタル証明書システム118は、未検証のデジタル証明書が真正でないと判定することができる。
【0093】
図6Aは、様々な実施形態による、ブロックチェーンベースのデジタル・マークを生成するためのコンピュータ・システム610の例のブロック図である。システム610は、図1Aのシステム110の1つ又は複数の構成要素(例えば、デジタル証明書システム118)の実装の例であってよい。方法510は、コンピュータ・システム610により実施することができる。コンピュータ・システム610は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、システム又は装置(例えば、プロセッサ)に方法510を実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成されている1つ又は複数の非一時的コンピュータ可読記憶媒体(例えば、1つ又は複数のメモリ)と、を備えることができる。コンピュータ・システム610は、命令(例えば、ソフトウェアの命令)に対応する様々なユニット/モジュールを備えることができる。一部の実施形態において、コンピュータ・システム610をブロックチェーンベースのデジタル・マーク生成装置と称することができる。ブロックチェーンベースのデジタル・マーク生成装置は、エンティティのエンティティ情報を取得するための第1の取得モジュール611と、エンティティ情報をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュール612と、エンティティ情報をブロックチェーンに保存することに関連付けられたトランザクションIDを取得するための第2の取得モジュール613と、少なくともトランザクションIDに基づいてエンティティのデジタル・マークを生成するための生成モジュール614と、を備えることができる。
【0094】
図6Bは、様々な実施形態による、ブロックチェーンベースのデジタル証明書を実装するためのコンピュータ・システム620の例のブロック図である。システム620は、図1Aのシステム110の1つ又は複数の構成要素(例えば、デジタル証明書システム118)の実施の例であってよい。方法520は、コンピュータ・システム620により実施することができる。コンピュータ・システム620は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに接続され、システム又は装置(例えば、プロセッサ)に方法520を実行させるために1つ又は複数のプロセッサにより実行可能な命令を含んで構成されている1つ又は複数の非一時的コンピュータ可読記憶媒体(例えば、1つ又は複数のメモリ)と、を備えることができる。コンピュータ・システム620は、命令(例えば、ソフトウェアの命令)に対応する様々なユニット/モジュールを備えることができる。一部の実施形態において、コンピュータ・システム620をブロックチェーンベースのデジタル証明書装置と称することができる。ブロックチェーンベースのデジタル証明書装置は、デジタル証明書を生成するための第1の生成モジュール621と、デジタル証明書のデジタル要約を生成するための第2の生成モジュール622と、デジタル証明書のデジタル要約をブロックチェーンの1つ又は複数のノードに送信してブロックチェーンに保存するための送信モジュール623と、デジタル証明書のデジタル要約をブロックチェーンに保存することに関連付けられたトランザクションIDを取得するための取得モジュール624と、デジタル・マークをトランザクションIDに関連付けるための関連付けモジュール625と、を備えることができる。
【0095】
図示したように、デジタル証明書のデジタル要約を取得し、要約をブロックチェーンに保存することにより、オリジナルのデジタル証明書の表現を安全に維持し、検証のためにアクセス可能にすることができる。デジタル証明書の改ざんを、ハッシングを含むブロックチェーン・コンセンサス・ルールに基づいて阻止することができる。デジタル証明書のデジタル要約表現は、プライバシー保護のため、プレーンテキスト情報を隠すこともできる。さらに、ブロックチェーンに保存されている、オリジナルのデジタル証明書の表現は、保証関係を保存する対応する保証デジタル・マーク及び対応するトランザクションIDに関連付けられる。トランザクションIDを問い合わせることにより、そのような関連付け情報を、検証のためにブロックチェーンから検索することができる。したがって、デジタル証明書の発行及び検証を、セキュリティを確保して行うことができる。
【0096】
本明細書に記載の技法は、1つ又は複数の専用計算装置により実施することができる。専用計算装置は、デスクトップ・コンピュータ・システム、サーバ・コンピュータ・システム、携帯型コンピュータ・システム、ハンドヘルド装置、ネットワーク装置、又は任意の他の装置、あるいは技法を実施するための配線論理及び/又はプログラム論理を組み込んだ装置の組合せであってよい。専用計算装置は、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディア・プレーヤ、ナビゲーション装置、電子メール装置、ゲーム機、タブレット・コンピュータ、ウェアラブル装置、又はこれらの組合せとして実装することができる。計算装置は、一般に、システム・ソフトウェアを動作させることにより制御され調整される。従来の動作システムは、実行のためのコンピュータ・プロセスを制御及びスケジューリングし、メモリ管理を行い、ファイル・システム、ネットワーク、I/Oサービスを提供し、特にグラフィカル・ユーザ・インターフェース(「GUI」)などのユーザ・インターフェース機能を提供する。本明細書に記載の様々なシステム、装置、記憶媒体、モジュール、及びユニットを、専用計算装置、又は1つ又は複数の専用計算装置の1つ又は複数の計算チップに実装することができる。一部の実施形態において、本明細書に記載の命令を、専用計算装置上の仮想マシンに実装することができる。実行時に、命令により、本明細書に記載の様々な方法を専用計算装置に実行させることができる。仮想マシンは、ソフトウェア、ハードウェア、又はこれらの組合せを含むことができる。例えば、仮想マシンは、イーサリアムにおけるスマート・コントラクトのランタイム環境を提供するイーサリアム仮想マシン(EVM)ソフトウェアを含むことができる。
【0097】
図7は、本明細書に記載の実施形態のいずれかを実施可能なコンピュータ・システム700のブロック図である。システム700は、本明細書に記載のシステム及び装置のいずれかに実装することができ、ブロックチェーンベースのデジタル証明書を実装するための対応することを実行するように構成することができる。コンピュータ・システム700は、バス702又は情報を通信するための他の通信機構と、バス702に接続されて情報を処理する1つ又は複数のハードウェア・プロセッサ704と、を備える。ハードウェア・プロセッサ704は、例えば、1つ又は複数の汎用マイクロプロセッサであってよい。
【0098】
コンピュータ・システム700は、バス702に接続されて情報及びプロセッサ704により実行可能な命令を保存する、ランダム・アクセス・メモリ(RAM)、キャッシュ及び/又は他の動的記憶装置等のメイン・メモリ706を備えることもできる。メイン・メモリ706を使用して、プロセッサ704により実行可能な命令の実行中に、一時変数又は他の中間情報を保存することもできる。そのような命令は、プロセッサ704によりアクセス可能な記憶媒体に保存されると、コンピュータ・システム700を、命令において特定されたオペレーションを実行するようにカスタマイズされた専用マシンにする。コンピュータ・システム700は、バス702に接続されて静的情報及びプロセッサ704のための命令を保存する読取り専用メモリ(ROM)708又は他の静的記憶装置を更に備える。磁気ディスク、光ディスク、又はUSBサム・ドライブ(フラッシュ・ドライブ)などの記憶装置710を設けて、情報及び命令を保存するようにバス702に接続する。
【0099】
コンピュータ・システム700は、コンピュータ・システムと組み合わせてコンピュータ・システム700を専用マシンにする又はプログラムする、カスタマイズされた配線論理、1つ又は複数のASICもしくはFPGA、ファームウェア、及び/又はプログラム論理を使用して、本明細書に記載の技法を実施することができる。一実施形態によれば、本明細書に記載のオペレーション、方法、及びプロセスは、プロセッサ704がメイン・メモリ706に含まれる1つ又は複数の命令の1つ又は複数のシーケンスを実行することを受けて、コンピュータ・システム700により実行される。そのような命令は、記憶装置710などの別の記憶媒体からメイン・メモリ706に読み込むことができる。メイン・メモリ706に含まれる命令のシーケンスを実行すると、プロセッサ704が本明細書に記載のプロセス・ステップを実行する。代替実施形態において、ソフトウェアの命令の代わりに、又はソフトウェアの命令と組み合わせて、配線回路構成を使用することができる。
【0100】
メイン・メモリ706、ROM708、及び/又は記憶装置710は、非一時的記憶媒体を含むことができる。本明細書で使用されるとき、「非一時的媒体」という用語及び同様の用語は、マシンを特定の方法で動作させるデータ及び/又は命令を保存する媒体を指し、この媒体は一時的信号を除外する。そのような非一時的媒体は、不揮発性媒体及び/又は揮発性媒体を備えることができる。不揮発性媒体としては、例えば、記憶装置710のような光ディスク又は磁気ディスクが挙げられる。揮発性媒体としては、メイン・メモリ706のような動的メモリが挙げられる。一般的な形態の非一時的媒体としては、例えば、フロッピ・ディスク、フレキシブル・ディスク、ハード・ディスク、ソリッド・ステート・ドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、CD−ROM、任意の他の光データ記憶媒体、ホール・パターンのある任意の物理媒体、RAM、PROM、及びEPROM、フラッシュEPROM、NVRAM、任意の他のメモリ・チップ又はカートリッジ、及びこれらのネットワーク・バージョンが挙げられる。
【0101】
コンピュータ・システム700は、バス702に接続されたネットワーク・インターフェース718も備える。ネットワーク・インターフェース718は、1つ又は複数のローカル・ネットワークに接続された1つ又は複数のネットワーク・リンクに接続する双方向データ通信を提供する。例えば、ネットワーク・インターフェース718は、サービス総合デジタル網(ISDN)カード、ケーブル・モデム、衛星モデム、又は対応するタイプの電話線とのデータ通信接続を提供するモデムであってよい。別の例として、ネットワーク・インターフェース718は、互換LAN(又はWANと通信するWANコンポーネント)とのデータ通信接続を提供するローカル・エリア・ネットワーク(LAN)カードであってよい。無線リンクを実装してもよい。そのような実装の場合、ネットワーク・インターフェース718は、様々なタイプの情報を表すデジタル・データ・ストリームを伝える電気信号、電磁信号、又は光信号を送受信する。
【0102】
コンピュータ・システム700は、ネットワーク、ネットワーク・リンク、及びネットワーク・インターフェース718を通じて、プログラム・コードを含むメッセージを送信し、データを受信することができる。インターネットの例では、サーバが、インターネット、ISP、ローカル・ネットワーク、及びネットワーク・インターフェース718を通じて、アプリケーション・プログラムの要求されたコードを送信することができる。
【0103】
受信したコードを、プロセッサ704が受信時に実行することができ、かつ/又は記憶装置710もしくは他の不揮発性記憶装置に保存して後で実行することができる。
【0104】
前述したプロセス、方法、及びアルゴリズムの各々を、コード・モジュールにおいて具体化することができ、コード・モジュールにより完全に又は部分的に自動化することができる。このコード・モジュールは、1つ又は複数のコンピュータ・システム又はコンピュータ・ハードウェアを備えるコンピュータ・プロセッサにより実行される。プロセス及びアルゴリズムは、特定用途向け回路構成に部分的に又は完全に実装することができる。
【0105】
前述した様々な特徴及びプロセスは、互いに独立して使用されてもよく、又は様々な方法で組み合わされてもよい。すべての可能な組合せ及び部分的組合せは、本明細書の範囲内に含まれるものである。加えて、ある方法又はプロセス・ブロックを、一部の実施において省略してもよい。本明細書に記載の方法及びプロセスはまた、任意の特定の順序に限定されず、それに関するブロック又は状態は、適切な他の順序で実行することができる。例えば、記載されるブロック又は状態は、具体的に開示されるもの以外の順序で実行することができ、又は複数のブロックもしくは状態は、単一のブロックもしくは状態にまとめることができる。ブロック又は状態の例は、連続して、並行して、又はいくつかの他の方法で実行することができる。ブロック又は状態は、開示された実施形態に追加することができ、又はそれから削除することができる。本明細書に記載のシステム及び構成要素の例は、記載されたものとは異なって構成することができる。例えば、開示された実施形態と比較して、要素をそれに追加し、それから削除し、又は再配列することができる。
【0106】
本明細書に記載の方法の様々なオペレーションを、少なくとも部分的にアルゴリズムにより実行することができる。アルゴリズムは、メモリ(例えば、前述の非一時的コンピュータ可読記憶媒体)に保存されたプログラム・コード又は命令に備えられていてもよい。そのようなアルゴリズムは、機械学習アルゴリズムを備えることができる。一部の実施形態において、機械学習アルゴリズムは、コンピュータが機能を果たすように明確にプログラムすることはできず、訓練データから学習して、機能を果たす予測モデルを作成することができる。
【0107】
本明細書に記載の方法の様々なオペレーションを、少なくとも部分的に1つ又は複数のプロセッサにより実行することができる。このプロセッサは、関連するオペレーションを実行するように一時的に構成され(例えば、ソフトウェアにより)又は恒久的に構成されたものである。そのようなプロセッサは、一時的に構成されたものであっても、恒久的に構成されたものであっても、本明細書に記載の1つ又は複数のオペレーション又は機能を実行するように動作するプロセッサ実装エンジンを構成することができる。
【0108】
同様に、本明細書に記載の方法は、少なくとも部分的にプロセッサで実施してもよく、1つ又は複数の特定のプロセッサがハードウェアの例である。例えば、方法のオペレーションの少なくとも一部を、1つ又は複数のプロセッサ又はプロセッサ実装エンジンにより実行することができる。さらに、1つ又は複数のプロセッサは、「クラウド・コンピューティング」環境において、又は「サービスとしてのソフトウェア」(SaaS)として、関連するオペレーションのパフォーマンスをサポートするように動作することもできる。例えば、オペレーションの少なくともいくつかをコンピュータ群(プロセッサを備えるマシンの例として)により実行することができ、これらのオペレーションに、ネットワーク(例えば、インターネット)及び1つ又は複数の適切なインターフェース(例えば、アプリケーション・プログラム・インターフェース(API))を介してアクセスすることができる。
【0109】
オペレーションのうちのいくつかのパフォーマンスをプロセッサ間で分散させ、単一のマシンに常駐するだけでなく、いくつかのマシンにわたってデプロイすることができる。一部の実施形態において、プロセッサ又はプロセッサ実装エンジンを、単一の地理的位置(例えば、家庭環境、オフィス環境、又はサーバ・ファーム内)に配置することができる。他の実施形態において、プロセッサ又はプロセッサ実装エンジンをいくつかの地理的位置にわたって分散させることができる。
【0110】
本明細書全体を通して、複数の事例が、単一の事例として記載された構成要素、オペレーション、又は構造を実装することができる。1つ又は複数の方法の個々のオペレーションが別々のオペレーションとして図示され記載されているが、個々のオペレーションの1つ又は複数を並行して実行してもよく、図示した順序でオペレーションを実行する必要はない。構成において別々の構成要素として示される構造及び機能を、構造又は構成要素の組合せとして実装してもよい。同様に、単一の構成要素として示される構造及び機能を、別々の構成要素として実装してもよい。これら及びその他の変形形態、修正、追加、及び改良は、本明細書の主題の範囲内に含まれる。
【0111】
特定の実施形態に言及して主題の概要を説明したが、本明細書の実施形態のより広い範囲から逸脱することなく、これらの実施形態に様々な修正及び変更を加えてもよい。詳細な説明は限定する意味ととらえるべきではなく、様々な実施形態の範囲は、特許請求の範囲が権利を与えられる等価物の全範囲とともに添付の特許請求の範囲によってのみ定義される。さらに、本明細書で使用される関連する用語(「第1の」、「第2の」、「第3の」など)は、何らかの順序、高さ、又は重要性を示すものではなく、1つの要素を別の要素から区別するために使用されている。さらに、「a」、「an」、及び「複数の」という用語は、本明細書における量の限定を示すものではなく、言及される物品のうち少なくとも1つが存在することを示す。
図1A
図1B
図2
図3
図4
図5A
図5B
図6A
図6B
図7