(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-22
(45)【発行日】2024-12-02
(54)【発明の名称】ブロックチェーンを用いる公開鍵管理のための方法及び装置
(51)【国際特許分類】
H04L 9/32 20060101AFI20241125BHJP
【FI】
H04L9/32 200Z
H04L9/32 200B
(21)【出願番号】P 2021566551
(86)(22)【出願日】2020-05-05
(86)【国際出願番号】 IB2020054259
(87)【国際公開番号】W WO2020229947
(87)【国際公開日】2020-11-19
【審査請求日】2023-04-06
(32)【優先日】2019-05-10
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】ジャーン,ウエイ
【審査官】青木 重徳
(56)【参考文献】
【文献】中国特許出願公開第108964924(CN,A)
【文献】特開2018-117287(JP,A)
【文献】東角 芳樹 ほか,コンソーシアムチェーンにおける証明書管理に関する一考察,2017年 暗号と情報セキュリティシンポジウム(SCIS2017) [USB],日本,2017年 暗号と情報セキュリティシンポジウム実行,2017年01月24日,1F2-3,pp. 1-4
【文献】田篭 照博,堅牢なシステム開発/運用を実現するためのビットコイン[技術]入門,第1版,日本,株式会社技術評論社,2018年08月09日,p.118-119
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンネットワークを用いて公開鍵基盤を管理する、コンピュータにより実施される方法であって、
前記コンピュータは、証明機関に関連付けられたサーバと、第1エンティティに関連付けられた第1コンピューティング装置と、第2エンティティに関連付けられた第2コンピューティング装置と、を含み、前記第1エンティティは第1公開鍵を有し、前記方法は、
前記サーバにより、前記第1エンティティのデジタル証明を生成するステップ
であって、
証明トランザクションを生成し、前記証明トランザクションは、
前記証明機関からのデジタル署名と、第2公開鍵に基づくアドレスへの第1アウトプットと、
前記第1公開鍵を含む情報フィールドを有する第2アウトプットと、を含み、
前記証明トランザクションのハッシュから証明トランザクション識別子を決定し、
前記証明トランザクションを前記ブロックチェーンネットワーク上で伝播させ
、
前記デジタル証明は、前記第1公開鍵と前記証明トランザクション識別子とを含む、
ステップと、
前記第2コンピューティング装置により、前記デジタル証明を検証するステップであって、以下:
前記デジタル証明の中の前記証明トランザクション識別子に基づき、前記ブロックチェーンネットワークから前記証明トランザクションのコピーを取得し、
前記第1アウトプットが未使用トランザクションアウトプットであると決定し、
前記証明トランザクション内の前記第2アウトプットに含まれる前記第1公開鍵が前記デジタル証明内の前記第1公開鍵に一致すると決定する、
ことにより前記デジタル証明を検証するステップと、
を含む方法。
【請求項2】
前記第2アウトプットは、少なくとも前記第1公開鍵を含むOP_RETURNフィールドを含む、請求項1に記載の方法。
【請求項3】
前記第1アウトプットは、前記第2公開鍵のハッシュとして取得されたアドレスを参照するP2PKH(pay-to-public-key-hash)演算を含む、請求項1又は2に記載の方法。
【請求項4】
前記証明機関は、前記第2公開鍵に対応する第2秘密鍵を保持する、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記第1アウトプットが未使用トランザクションアウトプットであると決定することは、前記第1アウトプットが前記ブロックチェーンネットワークの未使用トランザクションアウトプットプール内に存在すると決定することを含む、請求項
1に記載の方法。
【請求項6】
前記証明トランザクションは、証明機関公開鍵を更に含み、前記デジタル証明を検証するステップは、前記証明トランザクションが、前記証明機関公開鍵に基づき前記証明機関により署名されていると決定するステップを更に含む、請求項
1~5のいずれかに記載の方法。
【請求項7】
前記サーバにより、インプットと
して前記証明トランザクションの前記第1アウトプット
を含む取消トランザクションを生成し、前記取消トランザクションを前記ブロックチェーンネットワーク上で伝播させることにより、前記デジタル証明を取り消すステップ、を更に含む請求項1~
6のいずれか一項に記載の方法。
【請求項8】
前記サーバにより、以下:
新しい証明トランザクションを生成し、前記新しい証明トランザクションは、インプットとして前記証明トランザクションの前記第1アウトプットと、第3公開鍵に基づく新しいアドレスへの第1の新しいアウトプットと、前記情報フィールドを有する第2の新しいアウトプットと、を含み、前記情報フィールドは前記新しい公開鍵を含み、
前記新しい証明トランザクションをハッシングすることから、新しい証明トランザクション識別子を決定し、
前記新しい証明トランザクションを前記ブロックチェーンネットワーク上に伝播させる、
ことにより、前記デジタル証明を、新しい公開鍵の新しいデジタル証明により置き換えるステップであって、前記新しいデジタル証明は、前記新しい公開鍵及び前記新しい証明トランザクション識別子を含む、ステップ、を更に含む、請求項1~
6のいずれか一項に記載の方法。
【請求項9】
前記情報フィールドはOP_RETURNアウトプットである、請求項1~
8のいずれか一項に記載の方法。
【請求項10】
前記証明トランザクションは、証明機関公開鍵のハッシュから取得される未使用トランザクションアウトポイントアドレスを参照するインプットを含み、前記証明トランザクションは、前記証明機関公開鍵と前記デジタル署名とを含む前記未使用トランザクションアウトポイントアドレスのアンロックスクリプトを含み、前記デジタル署名は、前記証明機関公開鍵に対応する秘密鍵に基づき生成される、請求項1~
9のいずれか一項に記載の方法。
【請求項11】
前記第1アウトプットは、2以上の秘密鍵のうちの1つが前記第1アウトプットを利用することを可能にするマルチシグロックスクリプトを含む、請求項1~
10のいずれか一項に記載の方法。
【請求項12】
ブロックチェーンネットワークを用いて公開鍵基盤を管理するコンピューティング装置であって、前記コンピューティング装置は、
1つ以上のプロセッサと、
メモリと、
前記メモリに格納されたコンピュータ実行可能命令であって、前記1つ以上のプロセッサにより実行されると、前記プロセッサに請求項1~
11のいずれか一項に記載の方法を実行させる、コンピュータ実行可能命令と、
を含むコンピューティング装置。
【請求項13】
ブロックチェーンネットワークを用いて公開鍵基盤を管理するためのプロセッサ実行可能命令を格納しているコンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つ以上のプロセッサにより実行されると、前記プロセッサに請求項1~
11のいずれか一項に記載の方法を実行させる、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ブロックチェーンネットワークに関し、特に公開鍵基盤のための公開鍵管理を実現するためのブロックチェーンの使用に関する。
【背景技術】
【0002】
公開鍵基盤(public key infrastructure)では、コンピューティング装置は、セキュアな通信、デジタル署名、非否認、及び他の機能を実現するために、公開-秘密鍵ペアを有してよい。公開鍵基盤の部分として、コンピューティング装置は、証明機関に登録された自身の公開鍵を有してよい。証明機関は、コンピューティング装置に、公開鍵の所有権及び許可を確認するデジタル署名を提供する。
【0003】
証明機関の使用に伴う問題は、彼らがデジタル署名を発行すると、それがその指定された終了日まで有効のままであることである。しかしながら、公開鍵は、損なわれる可能性があり、認証の取消が必要になる。その問題を解決するために、証明機関は、どのデジタル証明が取り消されたと考えられるべきかの詳細を記述する「取消リスト」を維持し、これらのリストを定期的に更新し発行する。公開鍵を検証したいエンティティは、デジタル証明に頼ってよいが、従って、デジタル証明が証明機関により向こうにされたかどうかを知るために、対応する証明取消リストを取得し吟味しなければならない。このシステム及びその固有の遅延は、幾つかのデジタル証明が取り消され得ること、及び該デジタル証明に依存しようとしているエンティティに取消が未だ発行されていない又は利用可能ではないことを意味する。
【図面の簡単な説明】
【0004】
例として、本願の例示的な実施形態を示す以下の添付の図面を参照する。
【0005】
【
図1】ブロックチェーンネットワークの例示的なブロック構造を示す。
【0006】
【
図2】ブロック伝搬の例示的な方法のフローチャートを示す。
【0007】
【
図3】公開鍵を検証する1つの例示的な方法を、フローチャートの形式で示す。
【0008】
【
図4】マイニングノードの簡易な例をブロック図形式で示す。
【0009】
図中の同様の参照符号は同様の要素及び特徴を示すために使用される。
【発明を実施するための形態】
【0010】
一態様では、ブロックチェーンを用いて公開鍵基盤を管理する、コンピュータにより実施される方法が提供され得る。前記方法は、第1エンティティのデジタル証明を生成するステップ、を含んでよく、
前記第1エンティティは、以下:
証明トランザクションを生成し、前記証明トランザクションは、証明機関からのデジタル署名と、第2公開鍵に基づくアドレスへの第1アウトプットと、前記第1公開鍵を含む情報フィールドを有する第2アウトプットと、を含み、
前記証明トランザクションのハッシュから証明トランザクション識別子を決定し、
前記証明トランザクションを前記ブロックチェーンネットワーク上で伝播させる、ことにより第1公開鍵を有する。前記デジタル証明は、前記第1公開鍵と前記証明トランザクション識別子とを含む。
【0011】
幾つかの実装では、前記第2アウトプットは、少なくとも前記第1公開鍵を含むOP_RETURNフィールドを含む。幾つかの実装では、前記第1アウトプットは、前記第2公開鍵のハッシュとして取得されたアドレスを参照P2PKH(pay-to-public-key-hash)演算を含む。幾つかの実装では、前記証明機関は、前記第2公開鍵に対応する第2秘密鍵を保持する。
【0012】
幾つかの実装では、前記方法は、前記デジタル証明を検証するステップを更に含んでよい。前記デジタル証明を検証するステップは、
前記デジタル証明の中の前記証明トランザクション識別子に基づき、ブロックチェーンから前記証明トランザクションのコピーを取得するステップと、
前記第1アウトプットが未使用トランザクションアウトプットであると決定するステップと、
前記証明トランザクション内の前記第2アウトプットに含まれる前記第1公開鍵が前記デジタル証明内の公開鍵に一致すると決定するステップと、
を含んでよい。幾つかのそのような実装では、前記第1アウトプットが未使用トランザクションアウトプットであると決定することは、前記第1アウトプットが前記ブロックチェーンネットワークの未使用トランザクションアウトプットプール内に存在すると決定することを含む。幾つかのそのような実装では、前記証明トランザクションは、証明機関公開鍵を更に含んでよく、前記デジタル証明を検証するステップは、前記証明トランザクションが、前記証明機関公開鍵に基づき前記証明機関により署名されていると決定するステップを更に含んでよい。
【0013】
幾つかのそのような実装では、インプットと前記証明トランザクションの前記第1アウトプットとを含む取消トランザクションを生成し、前記取消トランザクションを前記ブロックチェーンネットワーク上で伝播させることにより、前記デジタル証明を取り消すステップ、を更に含んでよい。
【0014】
幾つかの実装では、前記方法は、前記デジタル証明を新しい公開鍵の新しいデジタル証明により置き換えるステップを更に含んでよい。置き換えるステップは、
新しい証明トランザクションを生成するステップであって、前記新しい証明トランザクションは、インプットとして前記証明トランザクションの前記第1アウトプットと、第3公開鍵に基づく新しいアドレスへの第1の新しいアウトプットと、前記情報フィールドを有する第2の新しいアウトプットと、を含み、前記情報フィールドは前記新しい公開鍵を含む、ステップと、
前記新しい証明トランザクションをハッシングすることから、新しい証明トランザクション識別子を決定するステップと、
前記新しい証明トランザクションを前記ブロックチェーンネットワーク上に伝播させるステップと、
を含んでよい。前記新しいデジタル証明は、前記新しい公開鍵と前記証明トランザクション識別子とを含んでよい。
【0015】
幾つかの実装では前記情報フィールドはOP_RETURNアウトプットである。
【0016】
幾つかの実装では、前記証明トランザクションは、証明機関公開鍵のハッシュから取得される未使用トランザクションアウトポイントアドレスを参照するインプットを含み、前記証明トランザクションは、前記証明機関公開鍵と前記デジタル署名とを含む前記未使用トランザクションアウトポイントアドレスのアンロックスクリプトを含み、前記デジタル署名は、前記証明機関公開鍵に対応する秘密鍵に基づき生成される。
【0017】
幾つかの実装では、前記第1アウトプットは、2以上の秘密鍵のうちの1つが前記第1アウトプットを利用することを可能にするマルチシグロックスクリプトを含む。
【0018】
更なる態様では、本願は、ブロックチェーンネットワークを用いてデジタル証明を検証する、コンピュータにより実施される方法を記載する。前記デジタル証明は、第1公開鍵と証明トランザクション識別子とを含む。前記方法は、
第1エンティティから記デジタル証明を受信するステップと、
前記デジタル証明内の前記証明トランザクション識別子に基づき、ブロックチェーンから前記証明トランザクションのコピーを取得するステップと、
を含んでよく、前記証明トランザクションは、証明機関からのデジタル署名と、第2公開鍵に基づくアドレスへの第1アウトプットと情報フィールドを有する第2アウトプットと、を含む。前記方法は、
前記情報フィールドが、前記デジタル証明内の前記第1公開鍵に一致する公開鍵を含むと決定するステップと、
前記証明トランザクション内の前記第1アウトプットが任意の皇族のトランザクションにおいて使用されていないことを決定するために、未使用トランザクションアウトプットプールをクエリするステップと、
それらの結果に基づき、前記第1公開鍵が有効であると証明されたことを検証するステップと、
を含む。
【0019】
別の態様では、ネットワーク内のノードを実装するコンピューティング装置が提供されてよい。前記コンピューティング装置は、メモリと、1つ以上のプロセッサと、実行されると前記プロセッサに本願明細書に記載の方法のうちの1つ以上を実行させるコンピュータ実行可能命令と、を含んでよい。
【0020】
更に別の態様では、ネットワーク内のノードを差動させるためのプロセッサ実行可能命令を格納しているコンピュータ可読媒体であって、前記プロセッサ実行可能命令は、1つ以上のプロセッサにより実行されると、前記プロセッサに本願明細書に記載の方法のうちの少なくとも1つを実行させる、コンピュータ可読媒体が提供され得る。
【0021】
本開示の他の例示的な実施形態は、図面と関連して以下の詳細な説明を読むことから当業者に明らかになるだろう。
【0022】
本願では、用語「及び/又は」は、列挙された要素単独、任意の一部の組合せ、又は要素の全部、を含む列挙された要素の全部の可能な組合せ及び一部の組合せをカバーすることを意図しており、必ずしも追加要素を排除しない。
【0023】
本願では、用語「...又は...のうちの少なくとも1つ」は、列挙された要素単独、任意の一部の組合せ、又は要素の全部、を含む列挙された要素の全部の可能な組合せ及び一部の組合せをカバーすることを意図しており、必ずしも追加要素を排除せず、必ずしも全部の要素を必要としない。
【0024】
本願は、任意のデータセット又は「メッセージ」に適用されるとユニークな固定長英数字文字列を決定論的に(deterministically)生成する多数の暗号ハッシュ関数のうちの任意の1つを含むことを意図している、ハッシング(hashing)又はハッシュ(hash)関数を参照する。ハッシュ関数の結果は、ハッシュ値、フィンガープリント、ハッシュ結果、又はそれらの均等物と呼ばれてよい。例は、限定ではないが、SHA-2、SHA-3、及びBLAKE2を含む。
【0025】
本願明細書では、用語「ブロックチェーン」は、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含すると理解される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoin SVプロトコルにより例示されるBitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本発明はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本発明の範囲に包含されることに留意すべきである。
【0026】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムを用いて実装されるピアツーピアの電子台帳である。ブロックチェーンはブロックで構成され、ブロックはまた、トランザクションで構成される。各トランザクションは、特に、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックヘッダは、マークル(Merkle)ルートの形式のようなブロックのコンテンツの要約を含み、各ブロックヘッダは前のブロックヘッダのハッシュを含む。その結果、ブロックは一緒に繋がれるようになり、永久の変更不可能な、開始以来ブロックチェーンに書き込まれた全部のトランザクションのレコードを生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
【0027】
ブロックチェーンは、ノードのネットワークにより実装される。各ノードは、ネットワーク接続と適用可能なブロックチェーンプトロコルを実行する実行ソフトウェアとを有するコンピューティング装置である。ノードは、トランザクションを検証し、それらをネットワーク内の他のノードへ伝搬する。「マイニングノード」又は「マイナー」と呼ばれる専用ネットワークノードは、未確定のトランザクション、つまり保留中のトランザクションのセットを集めて、ブロックにし、該ブロックを「マイニング」しようとする。マイニングは、これらの例では、ネットワーク内の他のマイナーが彼らのそれぞれのブロックのproof-of-workを解くことに成功する前に、proof-of-work(POW)を解くことを表す。Bitcoinの例では、POWは、結果が採掘難易度(difficultly)パラメータにより設定された閾値より下になるまで、ノンス(nonce)を含むブロックヘッダをハッシングすることを含む。ノンスは、繰り返されインクリメントされ、結果が閾値より下になるまで、又は別のマイナーが成功したノンスをマイナーが受信するまで、ハッシングが繰り返される。マイニング処理における変形は、当業者によく知られている。
【0028】
チェックされる事柄の中でも特に、トランザクションを検証するとき、ノードは、トランザクションへのインプットが有効であるかどうかを決定する。特に、ノードは、アンロックスクリプトが真と評価するかどうかを評価し、インプットが前のトランザクションからの「未使用トランザクションアウトプット」(unspent transaction output (UTXO))を参照するかどうかを決定する。幾つかのノードは、参照されるトランザクションアウトプットがUTXOの中にあるか否かの高速な決定を可能にするために、UTXOの実行中リスト又はプールを維持してよい。トランザクションは、幾つかの実装ではトランザクションのハッシュである自身のユニークなトランザクション識別子TxIDにより識別されてよい。幾つかのトランザクションは、1つより多くのアウトプットを有してよく、従って、ユニークなトランザクションアウトプット(つまりアウトポイント)は、TxID及びインデックスにより識別されてよい。ここで、インデックスは、トランザクションからのアウトプットの順序付きセットの中のアウトプットのうちの1つを指す。トランザクションアウトプットがUTXOプールの中に存在する場合、該トランザクションのアウトプットは「未使用(unspent)」であり、インプットとして機能することが可能である。
【0029】
トランザクションアウトポイントのアンロックスクリプトは、実行されるためにアウトプットに対する「制御」をどのように証明するかを定める。多くの場合に、トランザクションアウトプットに関連付けられたアドレスは、公開鍵のハッシュである。アウトプットに対する制御を証明するために、アンロックスクリプトは、公開鍵と、対応する秘密鍵を用いて生成されたデジタル署名と、を必要とする場合が多い。この方法では、秘密鍵を制御するノードは、トランザクションアウトプットが任意の後続のインプットでいつ及びどのように使用されるかを制御できる。以下に更に議論されるように、これは、特定の公開鍵に対応するトランザクションインプットが対応する秘密鍵を用いて生成されたデジタル署名を含み、従って該特定の公開鍵に関連付けられたエンティティがトランザクションの内容に事実上署名している又は証明しているという推論を有する。
【0030】
公開鍵暗号法は、オンライン通信において至る所に現れている。多くの例では、公開鍵が特定のエンティティとの関連付けにより所有されているという確実性を提供するために、処理及びポリシが必要とされる。公開鍵が真正であり信用を落としていないことを保証するための最も一般的なアプローチは、公開鍵基盤(public key infrastructure (PKI))である。PKIは、公開鍵を有効であると「認証する」信頼できる第三者に依存する。これらのエンティティは「証明機関」(certificate authority (CA))である。CAは、公開鍵と特定の所有者との間の結び付きを確認するデジタル証明の登録及び発行を提供する。公開鍵の保持者は、自身の公開鍵及び自身のデジタル証明を、別のエンティティに提供する。他のエンティティは、次に、信頼できるCAが保持者に属するとして公開鍵にデジタル署名していることを確認することにより、公開鍵の真正さを検証してよい。
【0031】
既存のPKIに伴う問題のうちの1つは、時に、秘密鍵が失われた又は証明の指定された終了日の前に開示された場合に、公開鍵が損なわれることである。その理由から、CAは証明取消リストを維持してよい。公開鍵に関連付けられた証明に依存することを望む任意のエンティティは、従って、証明がCAにより取り消されていることを確認するために、関連する証明取消リストを探し出し、吟味しなければならない。これは、鍵をオフラインで認証する能力が損なわれ、取消と新しい証明取消リストの発行との間の、時に24時間以上になる遅延に起因するリスクを生じる。
【0032】
本願の一態様によると、デジタル証明の高速且つ安全な検証、取消、及び更新を提供することにより、公開鍵基盤を改善するためにブロックチェーンネットワークが使用されてよい。公開鍵は、公開鍵が証明機関により証明されていること及び証明が取り消されていないことを第三者が迅速且つ容易に検証できるように、証明機関によりブロックチェーンに記録されてよい。以下に説明する方法で公開鍵を記録することにより、証明機関は、ほぼ瞬間的に証明を呼び出すことができ、又は古い鍵を廃止しながら、同時に同じエンティティの新しい鍵を証明することができる。幾つかの場合には、証明を廃止する能力は、公開鍵の所有者に、又は幾つかの場合には他のエンティティのうちの1つ若しくはそのグループに与えられてよい。
【0033】
図1を参照すると、公開鍵基盤を管理する例示的なシステム100を図示する。本例のシステム100は、第1コンピューティング装置102、第2コンピューティング装置104、及びサーバ106を含む。第1コンピューティング装置102、及び第2コンピューティング装置104は、サーバ、パーソナルコンピュータ、タブレット、スマートフォン、コネクテッドカー、モノのインターネット装置、又は任意の他のそのような装置、を含む任意のネットワーク対応コンピューティング装置により実装されてよい。サーバ106は、証明機関(certificate authority (CA))により運用され、デジタル証明についての要求を受信し応答するよう構成される。CAはサーバ106により実装されるように示されるが、CA機能は1つ以上のサーバ又は他のコンピューティング装置により実装されてよいことが理解される。
【0034】
システム100は、ブロックチェーンネットワーク108を更に含む。ブロックチェーンネットワーク108は、適用可能なブロックチェーンプロトコルに従い動作するノードのネットワークを含む。幾つかの実装では第1コンピューティング装置102、第2コンピューティング装置104、及び/又はサーバ106のうちの1つ以上は、ブロックチェーンネットワーク108内のノードであってもよいが、本例では、それらは説明を容易にするためにブロックチェーンネットワーク108と別個のノードであるように示される。
【0035】
この例示的なシステム100では、第1コンピューティング装置102は、「Alice」とラベル付けされ、非対称暗号通信において使用するための公開-秘密鍵ペアを有する。幾つかの暗号化シナリオで公開鍵を使用するために、Aliceは、公開鍵及びそのAliceとの関連を認証する、対応するデジタル証明を有する必要があってよい。従って、動作110で、Aliceは、登録の要求と共に、CAに公開鍵PKAを提供する。CAは、公開鍵の所有者としてAliceのアイデンティティを保証するために何らかのレベルの認証に従事してよい。幾つかの例では、この認証は、動作110で提供されたデータに基づき、サーバ106により実行される自動オンライン動作であってよい。幾つかの例では、この認証は、追加又は代替として、オフライン認証動作を含んでよい。2要因(Two-factor)認証及び他のそのような技術が利用されてよい。
【0036】
CAは、公開鍵PKAが証明されるべきであると決定すると、ブロックチェーントランザクションである「証明トランザクション」(certification transaction (CTX))を生成する。このトランザクションは、公開鍵PKAを含み、CAにより署名される。該証明トランザクションは、CAにより制御されるアウトプットを更に含む。動作112により示されるように、トランザクションはブロックチェーンネットワーク108に提出される。動作114で、CAは、次に、Aliceに証明トランザクション識別子TxIDCTX_PKAを提供する。幾つかの実装では、Aliceは、トランザクション識別子に基づき、ブロックチェーンネットワーク108から証明トランザクションのコピーを取得して、それが期待に適合し公開鍵PKAを含むことを確認してよい。
【0037】
トランザクション識別子TxIDCTX_PKAは、公開鍵PKAと一緒に、事実上、Aliceのためのデジタル証明を形成する。本例では「Bob」とラベル付けされる第2コンピューティング装置104との何らかの通信に関連して、動作116で、Aliceは、自身のデジタル証明をBobへ送信してよい。Bobは、次に、公開鍵PKAを認証し、ブロックチェーンネットワーク108により維持されるブロックチェーンに基づき、証明が取り消されていないことを検証する。
【0038】
特に、動作118及び120で、Bobは、証明トランザクションのコピーを要求し受信してよい。証明トランザクションから、Bobは、それがAliceの主張する公開鍵PKAを含むこと、及び、それが信頼できる証明機関により署名されていることを検証してよい。動作122及び124により示されるように、Bobは、CAにより制御されるトランザクションアウトプットが「未使用」のままであるかどうか、つまりトランザクションアウトプットポイントがUTXOプール130内に存在することをブロックチェーンネットワーク108にクエリすることにより、証明が取り消されていないことを更に検証できる。UTXOプール130は、ブロックチェーンネットワーク108の多数のノードのうちのいずれかにより維持される「未使用」トランザクションアウトプットポイントのプールである。
【0039】
図2を参照すると、認証機関に公開鍵を登録する例示的な方法200をフローチャートの形式で図示する。例示的な方法200は、認証された証明機関により実施され、説明される機能を実行するために適切にプログラムされる1つ以上のサーバにより実施されてよい。
【0040】
動作202で、証明機関は、公開鍵PKAの証明のために、Aliceから要求を受信する。証明機関は、自身の適用可能なポリシに従い、認証又は認証プロトコルを実行してよい。それらのプロトコルは、自動化されたコンピュータにより実施される動作及び/又は管理者により実現される動作を含んでよい。特定の認証動作に拘わらず、動作204で、Aliceのために公開鍵を証明するかどうかについて決定が行われる。否の場合、方法は終了する。証明が認められる場合、動作306で、証明機関は証明トランザクションを生成する。上述のように、証明トランザクションは、証明機関の公開鍵と証明機関からのデジタル署名とを含むインプットと、証明機関により制御されるアウトプットと、公開鍵PKAと、を含む。特定の例を提供するために、インプットは、何らかの正規化又は任意の値のUTXOであってよく、該値について、認証機関は、有効なアンロックスクリプト内の署名を生成するために秘密鍵を有する。UTXOは、証明トランザクションをマイニングするための任意のトランザクション手数料を相殺するために十分なデジタル値と関連付けられてよい。
【0041】
証明トランザクションは、2つのアウトプットを含んでよい。1つ目は、証明機関により選択され制御されるCA公開鍵PKCTX_PKAに基づき、2つ目は、例えば非運用情報フィールドに公開鍵PKAを含む。後者の例は、BitcoinにおけるOP_RETURN関数である。OP_RETURNは、事実上、任意のデータが、トランザクションがマイニングされるとブロックチェーンに記録するために置かれてよいアウトプットである。
【0042】
第1アウトプットは、例えば、証明機関により選択され制御される公開鍵ハッシュ(例えば、Bitcoinアドレス)への移転を指定するP2PKH(pay to public key hash)動作であってよい。
【0043】
トランザクション内の自身のデジタル署名により、認証機関は、UTXOのトランザクションへのインプットを認証し、それによりアンロックスクリプトを満たし、並びに、証明機関がOP_RETURNアウトプット内に現れる公開鍵PKAを証明していることの検証可能な証拠を提供する。幾つかの実装では、Aliceからのデジタル署名又は他のそのような情報のような追加情報がOP_RETURNアウトプットフィールド内に現れてよいことに留意する。
【0044】
証明トランザクションが生成されると、動作208で、証明機関は、トランザクションをハッシングして、トランザクション識別子TxIDCTX_PKAを求め、動作210に示されるように、ブロックチェーンネットワーク上でトランザクションを伝播させる。トランザクションを「伝播させること(propagating)」は、トランザクションをブロックチェーンネットワークのノードに提出し、それが検証され、全部の他のノードへ送信されること、また、トランザクションがネットワーク内の実質的に全部のノードに到達するまで、検証し再送信することを含むことが理解される。幾つかの実施形態では、証明機関は、それ自体が、ブロックチェーンネットワーク内のノードのうちの1つである。
【0045】
動作212で、証明機関は、証明トランザクションを含むブロックのマイニング、つまりトランザクションの「確定(confirmation)」を待ち、次に、動作214で、トランザクション識別子TxIDCTX_PKAをAliceへ送信する。幾つかの実装では、証明機関は、トランザクションがマイニングされる前に、Aliceにトランザクション識別子を提供してよい。
【0046】
Aliceは、次に、任意の第三者に、Aliceの公開鍵PKA及び証明トランザクション識別子TxIDCTX_PKAを含むデジタル証明を提供できる。これから、第三者は、Aliceの公開鍵がCAにより証明されている事を検証してよい。
【0047】
証明トランザクションの簡易な例が以下に示される:
【表1】
【0048】
インプットのためのアンロックスクリプトは、署名機関の公開鍵と、証明機関により生成された署名と、を含むことに留意する。Aliceの公開鍵PKAは、第2アウトプットとしてOP_RETURNフィールドに現れる。第1アウトプットは、証明機関により制御される任意の公開鍵ハッシュである。
【0049】
図3を参照すると、公開鍵を検証する例示的な方法300を示す。例示的な方法300に示される動作は、
図2に例示した処理を用いて証明されることを意図している公開鍵を検証しようとするコンピューティング装置により実行されてよい。例示的なコンピューティング装置は、任意のネットワーク対応コンピューティング装置を含む。
【0050】
方法300は、動作302で、「Alice」とラベル付けされた第1コンピューティング装置102(
図1)のような別のエンティティのためのデジタル証明を受信するステップを含む。デジタル証明は、少なくとも、公開鍵PK
A、及び証明トランザクション識別子TxID
CTX_
PKAを含む。動作304で、証明トランザクション識別子を用いて、証明トランザクションは、ブロックチェーンネットワークから取得される。ブロックチェーンのコピーがコンピューティング装置にローカルであるかどうか、又はブロックチェーンネットワーク内のノードにより維持されているかどうかに拘わらず、証明トランザクションは、ブロックチェーンの該コピーから取得されてよいことが理解される。万が一、トランザクションが確定されていない、つまり未だマイニング済みブロック内にない場合には、トランザクションは、未確定トランザクションのメモリプール(mempool)内に存在してよい。しかしながら、多くの実装では、認証機関は、証明トランザクションがマイニングされた後に、証明トランザクション識別子をAliceに提供するだけでよい。
【0051】
証明トランザクションから、コンピューティング装置は特定の事柄を検証してよい。特に、動作306で、コンピューティング装置は、証明トランザクションが証明機関により署名されることを検証してよい。コンピューティング装置は、認定された又は信任された信用機関のリスト及びそれらのそれぞれの公開鍵を有してよく、又はそれへのアクセスを有してよい。これは、コンピューティング装置がデジタル署名を検証することを可能にし得る。デジタル署名は、記載されるように証明トランザクションへのインプットの部分を形成してよい。証明トランザクションが信頼できる又は認定された証明機関により署名されることを確認することにより、コンピューティング装置は、証明が正当であることを確認することができる。トランザクションがブロックチェーンにある場合、それはマイナーにより確定され検証されているので、コンピューティング装置が必ずしもインプット内のデジタル署名を検証する必要がないことに留意する。むしろ、コンピューティング装置は、単に、インプット内で識別された公開鍵が証明機関に関連付けられることを検証してよい。
【0052】
動作308により示されるように、コンピューティング装置は、証明トランザクションのアウトプットポイントのうちの1つが「未使用」のままであること、つまりアウトプットポイントがUTXOプール内で見付かることを更に検証してよい。この検証動作は、証明が有効であり且つ取り消されていないままであることを確認する。上述のように、多くの実施形態で(代替案は後述される)、このアウトプットポイントは、証明機関により制御される。これは、鍵が損なわれた、終了した、又はもはや有効でない場合に、証明機関が証明を取り消すことを可能にする。取消又はキャンセルは、証明機関にアウトプットポイントを「使用(spend、消費)」させ、それによりUTXOプールから除去することにより、容易に実現される。アウトプットポイントがUTXOプール内に存在するという確認は、例えば、TxID番号及びアウトプットインデックスに基づき、UTXOプールをクエリすることにより、実行されてよい。幾つかの例では、コンピューティング装置は、ブロックチェーンネットワークのノードのような仲介を通じて、UTXOプールをクエリしてよい。
【0053】
動作310で、コンピューティング装置は、証明トランザクションの第2アウトプット内の公開鍵PKAが、Aliceからのデジタル証明の部分として受信される公開鍵PKAと一致することを確認する。
【0054】
動作306、308、及び310が全部確認された場合、動作312で、コンピューティング装置は、Aliceから受信したデジタル証明内の公開鍵PKAが有効であると決定する。
【0055】
ブロックチェーンネットワークを用いて公開鍵証明を記録することにより、証明機関は、アウトプットポイントを「使用する」ことにより、署名を迅速且つ容易に取り消すことができ、その結果、動作308における検証が失敗する。従って、証明機関は、証明トランザクションの第1アウトプットを使用するトランザクションを生成し伝播させることにより、公開鍵の証明を取り消してよい。上述のように、第1アウトプットは、名目(nominal)デジタルアセットを第1アウトプット内で指定された公開鍵ハッシュアドレスへ移転するP2PKH演算であってよい。その第1アウトプットのためのアンロックスクリプトは、これらの例では、P2PKH演算で使用されるCA公開鍵PKCTX_PKAに対応する秘密鍵に対する制御を要求する認証機関からのデジタル署名を要求してよい。
【0056】
幾つかの例では、証明機関は、証明を取り消さなくてよいが、証明された公開鍵を置き換える/更新するよう依頼されてよい。例えば、秘密鍵が失われ又は損なわれた場合、所有者(例えば、Alice)は、証明機関が前に証明した公開鍵を新しい公開鍵PKA_newで更新する又は置き換えることを要求してよい。証明機関は、オンライン又はオフライン認証メカニズムが導入されているものを用いて、要求を認証し、更新動作が生じるべきであると決定した場合には、新しい証明トランザクションCTXnewを生成して、古い証明を取り消し及び新しい証明を発行する。
【0057】
新しい証明トランザクションは、同じタイプのアウトプット、つまり、PKCTX_newのようなCAにより選択された新しい公開鍵及びPKA_newを含むOP_RETURNフィールドを用いるP2PKH演算を特徴とする。しかしながら、インプットは、元の証明トランザクションTxIDCTX_PKAからの、CAの制御するアウトプットポイントを含んでよい。該アウトプットを、新しい証明トランザクションへのインプットとして「使用する」ことにより、UTXOプールから該アウトプットポイントを除去することにより、取り消しが実施される。有利なことに、古い公開鍵証明の取り消し、及び新しい公開鍵証明の登録は、単一のトランザクションの中で生じる。更に、証明取り消しの別個の周期的に発行されるリストが維持され証明機関に利用可能にされる必要がない。
【0058】
上述のように、多くの場合、証明トランザクションの第1アウトプットポイントは、証明機関により制御されてよく、その結果、証明機関のみが、公開鍵の証明を取り消すことができる。取り消しは、第1アウトプットポイントを、該アウトプットポイントに対応する秘密鍵を用いて「使用する」ことに基づく。幾つかの例では、しかしながら、他のエンティティが証明を取り消すことを許可するように、証明トランザクションを構成することが有利な場合がある。
【0059】
例えば、幾つかの状況では、公開鍵の所有者、例えばAliceは、自身の公開鍵を取り消すための権限を有してよい。この構成では、証明トランザクション内の第1アウトプットポイントは、Aliceにより制御され、つまりAliceが対応する秘密鍵を有する公開鍵(公開鍵ハッシュ)を参照する。つまり、第1アウトプットポイントに対するアンロックスクリプトは、Aliceからのデジタル署名を要求する。この構成は、オンラインサービスへの登録のような幾つかの公開鍵証明シナリオで有利であってよい。オンラインサービスの一例は、ソーシャルメディアプラットフォーム上のソーシャルメディアアカウントである。プラットフォームは、上述のメカニズムを使用して、プラットフォームと共に使用するために、ユーザの公開鍵を登録してよく、ユーザが、証明トランザクションを介してバックアップされる彼らのデジタル証明による信頼に基づき、プラットフォーム及び/又はプラットフォームの他のユーザと相互作用することを可能にする。ユーザは、次に、プラットフォームの協力を有しないで彼らのアカウントを終了するために、証明を取り消すことができる。
【0060】
別のシナリオでは、1より多くのアウトプットポイントが提供されてよく、そのうちの1つが、証明を終了するために「使用され」てよい。そのようなシナリオでは、第三者は、証明トランザクションの両方の(又は全部の)そのようなアウトプットポイントを、UTXOプール内の未使用トランザクションアウトプットとしてそれらの存在について、テストするよう構成される。
【0061】
代替として、複数のパーティのうちの任意の1つからの取り消しが実現されるべき場合には、第1アウトプットは、複数の署名を使用するよう構成されてよい。つまり、多数の署名のうちのいずれかがアウトプットを「使用する」ために使用されてよい。この目的のために、マルチシグがアウトプットの中で使用されてよい。
【0062】
更に別のシナリオでは、マルチシグは、少なくとも閾数のエンティティが証明を取り消すことに合意することを保証するよう構成されてよい。マルチシグは、アウトプットをアンロックするためにmのうちのn個の(n out of m)署名を要求するよう構成されてよい。ここで、n≦mである。例として、ビジネス、パートナーシップ、又は他のそのような個人の集合のような組織の場合には、組織に関連付けられた署名済み公開鍵は、特定のエンティティのうちの全部又は少なくとも閾数、例えばCEO、COO、CTO、又は他の執行部若しくはビジネスに関連する個人が取消に署名した場合にのみ取消可能であってよい。
【0063】
種々の上述の例示的な方法の上述の動作のうちの一部又は全部は示されたものと異なる順序で実行されてよいこと、及び/又はそれらの方法の全体的な動作を変更することなく同時に実行されてよいことが理解される。
【0064】
図4を参照すると、本願の例に従う、簡易コンピューティング装置400をブロック図の形式で示す。コンピューティング装置400は、上述の機能のうちの1つ以上を実行してよい。この意味で、それは、幾つかの実装では、第1コンピューティング装置102(
図1)、第2コンピューティング装置104(
図1)、又はサーバ106(
図1)として機能してよい。
【0065】
コンピューティング装置400は、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ、又は同様のコンピュータ処理装置を含んでよいプロセッサ402を含む。コンピューティング装置400は、値、変数、及び幾つかの例ではプロセッサ実行可能プログラム命令を格納するための永久及び非永久メモリを含んでよいメモリ404と、ネットワークインタフェース406と、を更に含んでよい。
【0066】
コンピューティング装置400は、実行されるとプロセッサ402に本願明細書に記載の機能又は動作のうちの1つ以上を実行させるプロセッサ実行可能命令を含むプロセッサ実行可能アプリケーション408を含んでよい。
【0067】
上述の種々の実施形態は、単なる例であり、本願の範囲を限定することを意味しない。本願の意図された範囲内にある変形のように、ここに記載された種々の技術革新は、当業者に明らかである。特に、上述の例示的な実施形態のうちの1つ以上からの特徴は、以上に明示的に示されない特徴の部分結合を含む代替の例示的な実施形態を生成するために選択されてよい。更に、上述の例示的な実施形態のうちの1つ以上からの特徴は、以上に明示的に示されない特徴の結合を含む代替の例示的な実施形態を生成するために選択され結合されてよい。このような結合及び部分結合に適する特徴は、本願の全体的に吟味することにより当業者に直ちに明らかになるだろう。本願明細書及び請求項に記載された主題は、あらゆる適切な技術的変更をカバーし包含する。