(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038320
(43)【公開日】2024-03-19
(54)【発明の名称】ブロックチェーンで実施されるイベントロック暗号化の方法及びシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240312BHJP
【FI】
H04L9/32 200Z
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024002242
(22)【出願日】2024-01-11
(62)【分割の表示】P 2022157262の分割
【原出願日】2018-07-16
(31)【優先権主張番号】1711878.7
(32)【優先日】2017-07-24
(33)【優先権主張国・地域又は機関】GB
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フレッチャー,ジョン
(57)【要約】 (修正有)
【課題】ブロックチェーンの整合性を維持するためにデジタル資産の所有権を管理する方法及び装置を提供する。
【解決手段】複数のノードを含むコングレスのメンバーは、アイデンティティベースの暗号化方式に従って、コングレス公開キーを使用して平文メッセージを暗号化して暗号化メッセージを生成し、暗号公開キーに対応する暗号秘密キーを使用して、イベントの発生時に暗号操作を行うための第1の命令セットに対するデジタル署名を生成し、暗号化メッセージ、暗号公開キー、第1の命令セット、及び第1の命令セットを実行するように命令する第2の命令セットを含むトランザクションを、プルーフオブワーク・ブロックチェーン・ネットワークにブロードキャストする。第1の命令セットの実行には、しきい値を満たす複数の秘密キーシェア及び暗号キーから復号化キーを導出することが含まれる。
【選択図】
図14
【特許請求の範囲】
【請求項1】
デジタル資産を没収する方法であって、当該方法は、
複数のノードを含むコングレスのメンバーである第1のノードが、同じく前記コングレスのメンバーである悪意のあるノードによる悪意のある活動を検出するステップと、
前記第1のノードが、前記悪意のあるノードによって預託されたデジタル資産の少なくとも一部を支出不能アドレスに転送するための没収トランザクションに部分署名を提供するステップであって、前記デジタル資産は、前記コングレスに加入するときに前記悪意のあるノードによって預託されたものである、ステップと、
前記コングレスの閾値数のメンバーが、前記悪意のあるノードの前記デジタル資産を没収すべきであると決定するステップであって、該決定はサイドチェーン上でコンセンサスに達することによって行われる、ステップと、
前記没収トランザクションに対する有効な署名を生成することによって、前記悪意のあるノードの前記デジタル資産の少なくとも一部を没収し、前記悪意のあるノードの前記コングレスへの更なる参加を一時保留状態にするステップと、を含む、
方法。
【請求項2】
ノードが前記コングレスに加入するステップは、
コングレス公開鍵を取得するステップと、
前記コングレス公開鍵に支払いを行うステップと、
キーシェアを受信するステップと、
秘密キーシェアを生成するステップと、を含む、請求項1に記載の方法。
【請求項3】
前記第1のノードは、閾値署名スキームに関連付けられたその秘密キーシェアを使用して、前記部分署名を提供する、請求項2に記載の方法。
【請求項4】
前記有効な署名を生成するステップは、前記コングレスの他のメンバーと協力して前記第1のノードの前記秘密キーシェアを使用するステップを含む、請求項3に記載の方法。
【請求項5】
悪意のある活動には、前記コングレスの他のメンバーに偽の情報を報告することが含まれる、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記コングレスは、留め置き検証セットとして機能し、ブロードキャストチャネルとして使用されるプルーフオブステークのサイドチェーンを確保する、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記コンセンサスは、前記悪意のあるノードが予め規定されたプロトコル又は基準に違反したと判定することによって達成される、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
前記コンセンサスは、前記悪意のある活動の犯罪的証拠を含むサイドチェーン・トランザクションの確認に対応する、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記命令が実行されると、請求項1乃至8のいずれか一項に記載の方法を実行するようにプロセッサを構成する、コンピュータ可読記憶媒体。
【請求項10】
電子装置であって、当該電子装置は、
インターフェイス装置と、
該インターフェイス装置に結合されたプロセッサと、
該プロセッサに結合され、コンピュータ実行可能命令を記憶したメモリと、を含み、
前記命令が実行されると、請求項1乃至8のいずれか一項に記載の方法を実行するように前記プロセッサを構成する、
電子装置。
【請求項11】
前記プロセッサには信頼できる実行環境が含まれ、前記コンピュータ実行可能命令は前記信頼できる実行環境内で実行される、請求項10に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、分散システムに関し、より具体的には、分散システム上のトランザクションにおけるイベントロック操作のための方法及びシステムに関する。イベントロック及びイベントロック暗号化は、イベントの発生に応じてデータに対して操作(演算)を行うことを意味し得る。例えば、イベントロック暗号化方式では、イベントの発生に応じて暗号メッセージが復号化され得る。特定のタイプのイベントロック暗号化は、メッセージが暗号化され、一定時間が経過した後に暗号化メッセージが復号化される又は復号化できるタイムロック暗号化方式である。本発明は、特に限定しないが、効率的且つ確実にメッセージを生成し、イベントの発生を検出し、分散システムを使用してイベントの発生の検証に応じて動作を実行するのに適している。例えば、メッセージは、(恐らくランダムな)時間の経過の結果として対応する復号化操作が発生し得るタイムロック暗号化方式の下で暗号化され得る。
【0002】
この文書では、あらゆる形態の電子的なコンピュータベースの分散型台帳を含めるために「ブロックチェーン」という用語を使用している。これらの形態には、限定するものではないが、ブロックチェーン及びトランザクションチェーン技術、許可された台帳及び許可されていない台帳、共有台帳、及びそれらのバリエーションが含まれる。ブロックチェーン技術の最も広く知られている用途はビットコイン台帳であるが、他のブロックチェーン実施態様が提案され開発されている。本明細書では、便宜上及び例示の目的で、ビットコインについて参照し得るが、本発明は、ビットコイン・ブロックチェーンでの使用に限定されず、代替ブロックチェーンの実施態様及びプロトコルが、本発明の範囲内にあることに留意されたい。
【背景技術】
【0003】
ブロックチェーンはコンセンサスベースの電子台帳であり、この台帳はブロックで構成されるコンピュータベースの非中央型の分散システムとして実施され、ブロックは、トランザクション及び他の情報で構成される。ビットコインの場合に、各トランザクションは、ブロックチェーン・システムの参加者同士の間でデジタル資産の制御(control:管理)の転送(transfer:移転)を符号化するデータ構造であり、各トランザクションには、少なくとも1つの入力(input)と少なくとも1つの出力(output)とが含まれる。各ブロックには以前のブロックのハッシュが含まれているため、これらブロックは、一緒にチェーンで繋がれており、その開始からブロックチェーンに書き込まれた全てのトランザクションの永続的な変更不可能なレコードを作成する。トランザクションには、それらの入力及び出力に埋め込まれたスクリプトとして知られている小さなプログラムが含まれており、スクリプトは、トランザクションの出力に誰がどの様にアクセスできるかを指定する。ビットコイン・プラットフォームでは、これらのスクリプトは、スタックベースのスクリプト言語を使用して記述される。
【0004】
トランザクションをブロックチェーンに書き込むためには、「検証」する必要がある。いくつかのネットワークノードが、マイナー(miners)として機能し、各トランザクションが有効であることを確認する作業を行い、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェア・クライアントが、未決済のトランザクション出力(UTXO)を参照するトランザクションに関してこの検証作業を行う。検証は、そのロック及びロック解除スクリプトを実行することで行うことができる。ロック及びロック解除スクリプトの実行がTRUEと評価され、且つ他の特定の条件が満たされた場合に、トランザクションは有効であり、このトランザクションはブロックチェーンに書き込まれ得る。こうして、トランザクションをブロックチェーンに書き込むためには、そのトランザクションは、i)トランザクションを受信するノードによって検証される(トランザクションが検証されると、ノードはその検証したトランザクションをネットワーク内の他のノードに中継する);ii)マイナーによって構築された新しいブロックに追加され;iii)マイニングされる(つまり、過去のトランザクションの公的な台帳に追加される)必要がある。トランザクションは、十分な数のブロックがブロックチェーンに追加されたときに確認されたとみなされ、トランザクションを実質的に元に戻せない。
【0005】
ブロックチェーン技術が暗号通貨の実施態様の使用で最も広く知られているが、デジタル起業家は、ビットコインがベースとする暗号セキュリティシステムと、ブロックチェーンに格納され得るデータとの両方を使用して新しいシステムを実施することを模索し始めている。暗号通貨建ての支払いに純粋に限定されない自動化されたタスク及びプロセスにブロックチェーンを使用できれば、非常に有利になろう。このような解によって、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止記録、分散処理等)を活用しながら、それら用途をより広げることができるだろう。
【0006】
新しい機能を提供するようにブロックチェーン技術が拡張されるため、ブロックチェーン及びそこに表されるデジタル資産のセキュリティを維持することが重要である。ブロックチェーンに依存する拡張機能セットは、悪意のある関係者からの攻撃を受ける可能性がある。従って、ブロックチェーン又はブロックチェーンの新機能に追加のセキュリティを提供する、又はブロックチェーンの整合性を維持するためにデジタル資産の所有権を管理する方法及び装置を提供することは有用であり得る。
【0007】
さらに、ブロックチェーンへの新しい改善又は修正が開発されると、あるブロックチェーンと別のブロックチェーンとの両方のブロックチェーンの整合性を維持しながら、あるブロックチェーンから別のブロックチェーンにデジタル資産を制御及び転送するための技術が役立つ。こうして、これらの態様の1つ又は複数においてブロックチェーン技術を改良する改善された方法及び装置を提供することが望ましい。
【発明の概要】
【0008】
こうして、本発明によれば、添付の特許請求の範囲で規定される方法/システムが提供される。
【0009】
以下でより詳細に説明するように、ブロックチェーン・ネットワーク上でコングレスを形成することができる。コングレスはオープンメンバーシップ・グループであり、このグループには、コングレスに関連するプールに十分な出資金を提出すると、ブロックチェーン・ネットワーク内の任意のノードが加入できる。例えば、ノードは、デジタル通貨(ビットコイン等)、トークン、又は他の出資金や価値等のデジタル資産を、コングレスに関連するリソース(例えば、アカウント)に転送することで、コングレスに加入できる。コングレスは、秘密キーシェアの分散生成によって部分的に保護され得る。所有者が、各秘密キーシェアを使用して、トランザクションの部分署名を生成できる。少なくともしきい値の部分的な署名を使用して、そのようなトランザクションの有効な署名を生成するためにしきい値署名方式が使用され得る。メンバー預託金(deposit)は、悪意のある行為に関して没収の対象となる。
【0010】
有利には、キーシェアの分散生成及び他のセキュリティ機能を使用することにより、キーシェアが保護され、グループメンバー又は非グループメンバーによる悪意のある活動が防止される。このようなセキュリティは、しきい値署名方式の使用と相まって、自治型で、非中央型のグループの形成を可能にし、このグループは、例えば双方向のペグ(peg)を提供する等、いくつかの目的のいずれかに使用できる。より具体的には、しきい値署名方式により、グループが、グループに関連する公開キーによって制限された(emcumbered)デジタル資産を制御できる。
【0011】
従って、本発明によれば、コンピュータで実施される方法を提供することができる。コンピュータで実施される方法は、
i)アイデンティティベースの暗号化方式に従って、少なくともコングレス公開キーを使用して平文メッセージを暗号公開キーに暗号化して暗号化メッセージを生成するステップであって、コングレス公開キーはコングレスのメンバーに関連付けられ、コングレスの各メンバーは、しきい値復号化方式で使用可能な秘密キーシェアへのアクセスを有しており、しきい値復号化方式において、少なくともしきい値の秘密キーシェアが、コングレスに代わって(on behalf of)復号化キーへの部分的な寄与の組合せによって復号化キーを導出するのに十分である、生成するステップと;
ii)暗号公開キーに対応する暗号秘密キーを少なくとも使用して、イベントの発生時に暗号操作を行うための第1の命令セットに対するデジタル署名を生成するステップと;
iii)暗号化メッセージ、暗号公開キー、少なくとも第1の命令セット、及び第2の命令セットを含む1つ又は複数のトランザクションを、プルーフオブワーク・ブロックチェーン・ネットワークにブロードキャストするステップと;を含み、
第2の命令セットは、デジタル署名が本物であることを条件としてイベントの発生についてコンセンサスに達したことに応じて、コングレスのメンバーと協力してゴースト(ghost)チェーンを展開して第1の命令セットを実行するように命令し、第1の命令セットの実行には、しきい値を満たす複数の秘密キーシェア及び暗号キーから復号化キーを少なくとも導出することが含まれ、復号化キーは、暗号化メッセージから平文メッセージを得るのに十分な暗号化素材である。
【0012】
いくつかの実施態様では、復号化キーは、楕円曲線上のペアリング(pairings)に基づくスキームに少なくとも部分的に基づいて導出可能である。
【0013】
いくつかの実施態様では、アイデンティティベースの暗号化方式は、ボン・フランクリン(Boneh-Franklin)のアイデンティティベースの暗号化方式に従う。
【0014】
いくつかの実施態様では、1つ又は複数のトランザクションは、コングレスに関連する公開グループアドレスへの手数料を含むトランザクションを含み、手数料は、復号化キーを導出するのに協力する、ゴーストチェーンのマイナーの少なくともいくつかに分配される。
【0015】
いくつかの実施態様では、ゴーストチェーンのマイナーが、プルーフオブワーク・ブロックチェーンから取得可能な情報に基づいて、イベントに関してコンセンサスに達する。
【0016】
いくつかの実施態様では、プルーフオブワーク・ブロックチェーンから取得可能な情報は、プルーフオブワーク・ブロックチェーンへのトランザクション送信のタイムスタンプである。
【0017】
いくつかの実施態様では、プルーフオブワーク・ブロックチェーンから取得可能な情報は、少なくとも特定の高さの有効なブロックの検出である。
【0018】
いくつかの実施態様では、コングレスのメンバーが、イベントが発生したという少なくともしきい値の証明書を発行することを少なくとも部分的に検出することに基づいて、コンセンサスに達し、イベントの発生は、プルーフオブワーク・ブロックチェーンの外部の情報に少なくとも部分的に基づいて決定され、さらに、証明書の真正性は、コングレスのそれぞれのメンバーに関連する暗号公開キーを使用して暗号によって検証可能である。
【0019】
いくつかの実施態様では、証明書は所定の期間に亘って発行される。
【0020】
いくつかの実施態様では、1つ又は複数の暗号操作には、1つ又は複数の復号化操作が含まれる。
【0021】
いくつかの実施態様では、1つ又は複数の暗号操作には、1つ又は複数の認証操作が含まれる。
【0022】
いくつかの実施形態では、コングレスのメンバーのそれぞれの秘密キーシェアが生成され、秘密キーシェアは、そのメンバーに関連するノード内の信頼できる実行環境内で暗号操作を行うために使用される。
【0023】
本発明によれば、電子装置が提供され得る。電子装置は、インターフェイス装置、インターフェイス装置に結合されたプロセッサ、及びプロセッサに結合されたメモリを含む。メモリは、実行されると、本明細書で説明する方法を実施するようにプロセッサを構成するコンピュータ実行可能命令を記憶している。
【0024】
本発明によれば、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本明細書で説明する方法を実施するようにプロセッサを構成するコンピュータ実行可能命令を含む。
【図面の簡単な説明】
【0025】
本発明のこれら及び他の態様は、本明細書に記載の実施形態から明らかとなり、この実施形態を参照して説明される。ここで、本発明の実施形態を、単なる例として、添付の図面を参照して説明する。
【
図1】例示的なブロックチェーン・ネットワークのブロック図である。
【
図2】ブロックチェーン・ネットワーク内のノードとして機能し得る例示的な電子装置のブロック図である。
【
図3】コングレスを開始する例示的な方法のフローチャートである。
【
図4】コングレスに加入する例示的な方法のフローチャートである。
【
図5】デジタル資産を没収する例示的な方法のフローチャートである。
【
図6】キーシェアを再分配する例示的な方法のフローチャートである。
【
図7】キーシェアを再分配する更なる例示的な方法のフローチャートである。
【
図8】預託金を返却する例示的な方法のフローチャートである。
【
図9】例示的なブロックチェーン及び例示的なゴーストチェーンのブロック図である。
【
図10】タスクの完了を要求するための例示的な要求者に関する方法のフローチャートである。
【
図11】タスクに対する解を提案するための例示的な提案者に関する方法のフローチャートである。
【
図12】タスクに対する解に異議を申し立てるための例示的な異議申立者に関する方法のフローチャートである。
【
図13】タスクに対する解について異議申立者を仲裁するための例示的な仲裁者に関する方法のフローチャートである。
【
図14】例示的なブロックチェーン及びイベントロック・メッセージのブロック図である。
【
図15】イベントロック・メッセージを生成するための例示的な暗号化方法のフローチャートである。
【
図16】イベントロック・メッセージで指定されたイベントを検出することに応答してステップを実行し、イベントロック・メッセージを復号化するために使用可能な復号化キーを生成する例示的な方法のフローチャートである。
【発明を実施するための形態】
【0026】
ブロックチェーン・ネットワーク
最初に
図1を参照すると、この図は、ブロックチェーンに関連する例示的なブロックチェーン・ネットワーク100をブロック図形式で示す。ブロックチェーン・ネットワークは、パブリック・ブロックチェーン・ネットワークとすることができ、このネットワークは、招待を受けずに又は他のメンバーの同意なしに、誰でも加入できるピアツーピアのオープンメンバーシップ・ネットワークである。ブロックチェーン・ネットワーク100の動作下で、ブロックチェーン・プロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーン・ネットワーク100に参加することができる。そのような分散型電子装置は、ノード102と呼ばれ得る。ブロックチェーン・プロトコルは、例えば、ビットコイン・プロトコルであってもよい。
【0027】
ブロックチェーン・プロトコルを実行し、且つブロックチェーン・ネットワーク100のノード102を形成する電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ等のコンピュータ、スマートフォン等のモバイル装置、スマートウォッチ等のウェアラブルコンピュータ、又は他の電子装置等を含む様々なタイプの装置であってもよい。
【0028】
ブロックチェーン・ネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を使用して互いに結合される。このような通信は、ブロックチェーンに関連するプロトコルに準拠している。例えば、ブロックチェーンがビットコイン・ブロックチェーンである場合に、ビットコイン・プロトコルを使用してもよい。
【0029】
ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。こうして、グローバル台帳は分散型台帳である。各ノード102は、グローバル台帳の完全なコピー又は部分的なコピーを格納することができる。プルーフオブワーク(proof of work:作業証明)により保証されたブロックチェーンの場合に、グローバル台帳に影響を与えるノード102によるトランザクションは、グローバル台帳の有効性が維持されるように他のノード102によって検証される。ブロックチェーンがプルーフオブワークベースのブロックチェーンである場合に、ブロックとともに送信された作業証明をチェックすることでブロックも検証される。
【0030】
ノード102の少なくともいくつかは、ブロックチェーン・ネットワーク100のマイナー104として動作する。
図1のブロックチェーン・ネットワーク100は、ブロックチェーン上でのトランザクションを促進するためにマイナー104が費用のかかる計算を行うプルーフオブワーク・ブロックチェーンである。例えば、プルーフオブワーク・ブロックチェーンでは、マイナーが暗号問題を解く必要があり得る。ビットコインでは、マイナー104は、ブロックヘッダーをSHA-256でハッシュして、現在の難易度により規定される値よりも小さい数になるようにナンス(nonce)を見つける。プルーフオブワーク・アルゴリズムに必要なハッシュ能力は、トランザクションが、特定の数のブロックがその上部でマイニングされた後に、実質的に不可逆とみなされることを意味する。暗号問題を解くマイナー104は、ブロックチェーンに新しいブロックを作成し、この新しいブロックを他のノード102にブロードキャストする。他のノード102は、マイナー104が実際に暗号問題を解き、従って、ブロックをブロックチェーンに追加すべきことを受け入れる前に、十分なプルーフオブワーク(作業証明)を実証したかを検証する。ブロックは、ノード102のコンセンサスによってブロックチェーン(つまり、グローバル分散型台帳)に追加される。
【0031】
マイナー104によって作成されたブロックは、ノード102によってブロックチェーンにブロードキャストされたトランザクションを含む。例えば、ブロックは、あるノード102に関連するアドレスから別のノード102に関連するアドレスへのトランザクションを含み得る。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションの記録として機能する。トランザクションをブロックに含めるように要求する関係者(party)は、公開キー(public key)に対応する秘密キー(private key)を使用してその要求に署名することにより、転送を開始する(例えば、ビットコインの場合に、ビットコインを使用する)権限があることを証明する。その要求が有効に署名されている場合にのみ、その転送(トランザクション)がブロックに追加され得る。
【0032】
ビットコインの場合に、公開キーとアドレスとの間には1対1の対応関係がある。つまり、各公開キーは単一のアドレスに関連付けられる。こうして、本明細書での公開キーとの間でのデジタル資産の移転(例えば、公開キーへの支払い)及びその公開キーに関連するアドレスとの間でのデジタル資産の移転への言及は、共通の動作を指す。
【0033】
ノード102のいくつかは、マイナーとして動作しない場合があり、代わりに検証ノードとして参加し得る。トランザクションの検証には、署名の照合、有効なUTXOへの参照の確認等が含まれ得る。
【0034】
図1の例は、6つのノード102を含み、そのうちの2つがマイナー104として参加している。実際には、ノード102又はマイナー104の数は異なっていてもよい。多くのブロックチェーン・ネットワークでは、ノード102及びマイナー104の数は、
図1に示されている数よりはるかに多くてもよい。
【0035】
以下で説明するように、様々なノード102が協力して、本明細書でコングレス(congress:会議)110と呼ばれるグループを形成することができる。図示の例では、3つのノード102がコングレス110に参加するものとして示されている。しかしながら、コングレス110の実際のメンバーは、はるかに多くてもよい。
【0036】
コングレス110は、コングレス110に関連するプールに十分な出資金(stake)を提出すると、ノード102が加入することができるオープンメンバーシップ・グループである。例えば、ノードは、デジタル通貨(ビットコイン等)、トークン、又は他の出資金や価値等のデジタル資産を、コングレス110に関連するアカウントに転送することで、コングレスに加入することができる。コングレスに加入するノード102は、マイニングノードと非マイニングノードとの両方を含む、ブロックチェーン・ネットワーク内のノードであり得る。コングレスの少なくともいくつかのアプリケーション(以下で説明するように、コングレスが双方向のペグを実行している場合等)では、コングレス・メンバーとして機能するノードは、完全なブロックチェーンをダウンロードする(ただし、必ずしも保持する必要はない)という意味でブロックチェーンを監視する。
【0037】
コングレス110への加入、退会、及び参加の手法については、以下でより詳細に議論する。
【0038】
ノードとして動作する電子装置
図2は、ピアツーピア・ブロックチェーン・ネットワーク100(
図1)においてノード102(
図1)として機能し得る例示的な電子装置200のコンポーネントを示すブロック図である。例示的な電子装置200は、処理装置とも呼ばれ得る。電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォン等のモバイル装置、スマートウォッチ等のウェアラブルコンピュータ、又は別のタイプの形式を含む様々な形態を取ることができる。
【0039】
電子装置200は、プロセッサ210、メモリ220、及びインターフェイス装置230を含む。これらのコンポーネントは、互いに直接的又は間接的に結合してもよく、互いに通信してもよい。例えば、プロセッサ210、メモリ220、及びインターフェイス装置230は、バス240を介して互いに通信することができる。メモリ220は、本明細書で説明する機能を実行するための機械可読命令及びデータを含むコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ210によって実行されると、電子装置に本明細書で説明する方法を実行させるプロセッサ実行可能命令を含み得る。プロセッサ実行可能命令は、プロセッサ210によって実行されると、電子装置にブロックチェーン・ネットワーク100(
図1)に関連するプロトコルを実装させる命令を含み得る。例えば、命令には、ビットコイン・プロトコルを実装するための命令が含まれ得る。
【0040】
メモリ220は、ブロックチェーン・ネットワーク100(
図1)のグローバル台帳又はその一部を格納してもよい。つまり、メモリ220は、ブロックチェーンの全てのブロック、又は最新のブロック等のブロックの一部、又はいくつかのブロックにおける情報の一部を格納することができる。
【0041】
図2では、メモリ220が単一のブロックで示されているが、実際には、電子装置200は、複数のメモリ・コンポーネントを含んでもよい。メモリ・コンポーネントは、例えば、RAM、HDD、SSD、フラッシュドライブ等を含む様々なタイプのものであってもよい。異なるタイプのメモリが異なる目的に適している場合がある。さらに、メモリ220がプロセッサ210とは別に示されているが、プロセッサ210は埋込み型メモリを含んでもよい。
【0042】
図2に示されるように、プロセッサ210は、信頼できる実行環境(TEE)250等の安全な領域を含むことができる。TEE250は、隔離された状態での実行、信頼できるアプリケーションの統合、及び資産の機密性等の追加のセキュリティを電子装置200に提供する隔離された実行環境であり得る。TEE250は、TEE250内にロードされたコンピュータ命令及びデータが機密性及び完全性の観点から保護されることを保証する実行空間を提供する。TEE250は、キー等の重要なリソースの完全性及び機密性を保護するために使用され得る。TEE250は、少なくとも部分的にハードウェアレベルで実装されるため、TEE250内で実行される命令及びデータは、電子装置200の残りの部分からの及び電子装置の所有者等の外部関係者からのアクセス及び操作に対して保護される。TEE250内のデータ及び計算は、TEE250を含むノード102を操作する関係者からセキュリティ保護される。
【0043】
TEE250は、累積的にハッシュしながら、エンクレーブ(enclave:孤立領域)をインスタンス化し、メモリのページを一度に1つずつ追加するように動作し得る。同様の動作をリモートマシン(開発マシン又は別のマシンであり得る)でも実行することができ、リモートマシンは、予想されるハッシュを決定して格納する。従って、エンクレーブのコンテンツをリモートマシンで検証して、エンクレーブが承認済みアルゴリズムを実行していることを保証することができる。この検証は、ハッシュを比較することで行うことができる。エンクレーブが完全に構築されると、そのエンクレーブはロックダウン(locked down)され得る。TEE250でコードを実行し、このコードにシークレット(secrets)を送信することは可能であるが、コードを変更することはできない。最終的なハッシュは、認証キーによって署名され、データ所有者がシークレットをエンクレーブに送信する前に検証するためにデータ所有者がそのハッシュを利用できるようにし得る。
【0044】
TEE250は、コングレス110(
図1)によって使用されるコングレス公開キーに関連する秘密キーシェア(private key share)の機密性及び完全性を保護するために使用され得る。例えば、TEE250は、秘密キーシェアの生成及び格納に使用され得る。TEE250は、TEE250エンクレーブ内に保持されている秘密キーシェア、又はメンバー間通信又はエンクレーブ間通信から他の秘密キーシェアに関する情報を、メンバーが直接的に取得できないようにすることを目的としている。このプロトコルは、エンクレーブのしきい値の危殆化(compromise)に対しても堅牢であり得る。さらに、TEE250は、ノード102(
図1)によって使用され得るリモート認証を可能にし、TEE250が、真正であり、且つコングレス110によって実施されるプロトコル用の承認済みのコンピュータ実行可能命令を実行していることを他のノード102に証明することができる。コードの特定の一部を実行し、エンクレーブの内部認証キーで署名された、エンクレーブの内部のコードのハッシュを送信することにより、TEE250によってリモート認証が提供され得る。
【0045】
TEE250は、電子装置200上で秘密キーシェアを以前に使用したコングレス110のメンバーがコングレスを退会することを選択したときに、秘密キーシェアの確実な削除を証明するために使用され得る。電子装置200は、TEE250で提供されるリモート認証プロトコルを介して削除の証明を他のコングレス・メンバーに提供することができる。メンバーが自分のメンバー預託金(deposit)を引き出すことを許可される前に、削除の証明が必要とされ得る。つまり、預託金の返却は、メンバーのエンクレーブ内に保持されている秘密キーシェアの削除の証明を条件とし得る。
【0046】
TEE250は、TEEのエンクレーブの内部にある安全な(secure)乱数発生器を装備することができ、この乱数発生器を使用して、秘密キー、ランダム・チャレンジ(random challenges)、又は他のランダムデータを生成することができる。TEE250は、外部メモリからデータを読み出すように構成することもでき、且つ外部メモリにデータを書き込むように構成することができる。このようなデータは、エンクレーブ内でのみ保持される秘密キーで暗号化され得る。
【0047】
TEE250は、Trusted Platform Module(TPM)やIntel Software Guard Extensions(SGX)等の様々なプラットフォームを使用して実装することができる。例えば、SGXはリモート認証をサポートし、これにより、エンクレーブが、特定のエンクレーブを実行しているプロセッサからクォート(quote)として知られている呼ばれる所与のメンバーのハッシュを含む署名付きステートメントを取得することができる。Intel Attestation Service(IAS)等の第三者認証サービスは、これらの署名付きステートメントがSGX仕様に準拠した真正のCPUからのものであることを証明し得る。
【0048】
電子装置200は、ブロックチェーン・ネットワーク100(
図1)内のノード102(
図1)として機能し、コングレス110(
図1)に加入し、そうでなければ参加することができる。コングレス110は、デジタル資産所有者のグループが、ブロックチェーン・ネットワーク100(
図1)によってサポートされるデジタル通貨、トークン、又は他の出資金や価値等のデジタル資産をプールするときに形成される。
【0049】
コングレス及びしきい値署名
コングレス110は、許可されたグループでも許可されていないグループであってもよい。つまり、コングレス110には、ブロックチェーン・ネットワーク100(
図1)内の任意のノード102(
図1)が(すなわち、ブロックチェーン内の情報の少なくとも一部を監視及び格納する任意のノードが)加入することができる。コングレス110に加入するために、ノード102は、1つ又は複数のデジタル資産をコングレス110に関連するデジタル資産プールに(つまり、1つ又は複数のデジタル資産に関連付けられ、次にコングレスの他のメンバーに関連付けられた公開グループアドレスに)転送する。このデジタル資産プールは、コングレスプールと呼ばれ得る。例えば、ノード102は、そのようなデジタル資産をコングレスプールに関連するアドレス(つまり、公開グループアドレスとも呼ばれ得る「コングレスアドレス」)に転送する(すなわち、預託する)ことにより、コングレス110に加入することができる。デジタル資産は、コングレス公開キーと呼ばれる単一の公開キーを含むグループしきい値署名の管理下に置かれる。コングレス・メンバーは、分配的に生成された秘密キーシェアを保持している。保持シェア数は、プールに預託した金額に比例し得る。
【0050】
コングレス110によって管理されるデジタル資産は、コングレスアドレスに転送されるデジタル資産を含み、しきい値署名方式の管理下に置かれる。しきい値署名方式では、デジタル資産をコングレス110の管理から外すように転送するのを可能にする有効な署名を生成するためには、秘密キーシェアの合計保有量がしきい値を超えるメンバーのグループが必要である。つまり、少なくともしきい値数の秘密キーシェアを使用して、コングレス110が管理するデジタル資産の支出(outgoing)転送のための有効な署名を生成する必要がある。
【0051】
コングレス公開キーは、秘密キーシェアと引き換えに、コングレス110のメンバーによってコングレスプールに預託されたデジタル資産と、コングレス110のメンバー又は非メンバーによってコングレスプールに関連するアドレスに預託された(つまり、コングレスの全体的、部分的、又は条件付き管理下に置かれた)(秘密キーシェアの取得以外の理由で預託された)デジタル資産とを制限する(encumber)。非メンバー又はメンバーは、様々な理由でコングレスに関連するアドレスにデジタル資産を預託する場合がある。
【0052】
同じコングレス公開キーが、メンバー預託金(つまり、秘密キーシェアと引き換えにコングレス・メンバーによって提供されるデジタル資産)と、他の目的でメンバー又は非メンバーによって提供されるデジタル資産との両方を管理する場合があるため、預託金のタイプを示すために、コングレスに関連するアドレスに送信された少なくとも一部の預託金に特別なフラグを立てる場合がある。例えば、デジタル資産をコングレスアドレスに転送するトランザクションには、行われている預託金の性質を示すフラグ、識別子、又は他の属性が含まれ得る。例として、コングレスへの加入又はコングレス構成員の出資金を増やす目的で行われていないデジタル資産をコングレスアドレスに転送するトランザクションには、別の目的で預託が行われていることを示す特別な識別子が含まれ得る。そのような識別子は、秘密キー生成を管理するときに、コングレス110に関連するノード102によって使用され得る。より具体的には、グループに加入する目的でデジタル資産を預託するノード102には、コングレス110の秘密キーシェアが(例えば、デジタル資産の預託を行った結果として)割り当てられる一方、他の目的で(例えば、サイドチェーン(sidechain)に転送するために)デジタル資産を預託した他のノード102は、コングレスのコングレス秘密キーシェア(つまり、コングレス公開キーに対応する)を保持していない可能性がある。
【0053】
コングレス106は、メンバー預託金の全部又は一部を没収するという脅しによって協力的な行動が強制される自治グループとして機能し得る。多くの誠実なメンバーが協力的なプロトコルに参加することにより、非協力的な又は悪意のあるメンバーのそのようなデジタル資産を没収することができる。つまり、全てのノード102が所定のプロトコル又は基準に準拠して動作することを保証するために、コングレスプールへのメンバー預託金は没収の対象となり得る。没収とは、没収されたとみなされるメンバー預託金の返却を永久に阻止することを意味する。悪意のある活動のために返却されないメンバー預託金を形成するデジタル資産は、コングレスプールに残され得るが、返却しない場合があり(例えば、代替チェーン(alt-chain)で返却すべきではないというコンセンサスに達した場合)、別の支出不能アドレスに直ちに又は将来的に転送され、又は没収され、没収の性質は、コングレスがサイドチェーンの留め置き検証(bonded validator)セットとして機能するかどうかに依存し得る。
【0054】
さらに、コングレス・メンバーがコングレス110を退会したい場合に、メンバーは自分のメンバー預託金を引き出す(つまり、コングレス110がメンバー預託金をそのメンバーの個人アドレスに返送することを要求する)ことができる。ただし、資金(funds)の引出しは、有効なデジタル署名を生成するために必要なしきい値を超える数の秘密キーシェアが、引出しを承認するグループ(つまり、コングレス)のメンバーによって使用される場合にのみ、実行される。
【0055】
コングレス110によって実施されるしきい値署名方式は、様々なタイプのものであり得る。しきい値署名方式は、有効な署名の生成に少なくともしきい値数の秘密キーシェアが寄与している限り、n人の関係者の間で署名能力をシェアすることを可能にする。しきい値未満のサブセットを使用して、有効な署名を生成することはできない。より具体的には、各関係者は秘密署名キーのシェアを管理し、部分的な署名を組み合わせて有効な署名を生成するには、しきい値数のキーシェアを使用しなければならない。しきい値未満のキーシェアのサブセットでは、有効な署名を生成することができない。
【0056】
しきい値署名方式は、楕円曲線デジタル署名アルゴリズム(ECDSA)方式であり得る。例えば、ECDSA方式は、Ibrahimらによって、“A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme”, 2003 EIII 46th Midwest Symposium on Circuits and Systems, 1: 276-280 (2003)に提案されたタイプのものであり得る。このしきい値署名方式は、楕円曲線暗号ベースのアルゴリズムであるデジタル署名方式の拡張であり、この方式では、秘密キーを再構築するためにn人のキーシェア所有者から構成される関係者からのt+1個のキーシェアが必要となる。この方式を使用して、秘密キーを再構築する必要がなく、且つある関係者が自分のキーシェアを他の関係者に明らかにする必要なく、有効な署名を作成することができる。
【0057】
t+1個のキーシェアがシークレットを再構築するのに十分となり得るため、この手法による許容される敵の最大数はtである。Ibrahimらのモデルにおける敵(adversary)は、シークレットシェアを保持している関係者を買収し、且つそのシークレットシェアにアクセスするエンティティである。敵には様々な種類があり得る。例えば、ビザンチン(Byzantine)の敵は、プロトコルに参加するふりをしているが、実際には不正な情報を送信している敵である。Ibrahimによって提案されたECDSA方式は、最大t<=n/4の悪意のある敵に対して堅牢である。この堅牢性はt<=n/3まで上がる可能性があるが、複雑性のコストが増す。
【0058】
IbrahimらのECDSA方式は、t<=n/3の敵を食い止める(halting)のに堅牢である。敵の食止めによって、買収された関係者がプロトコルに参加するのを阻止するか、途中参加を食い止めることができる。
【0059】
このECDSA方式は、ノード102が悪意のある又は非協力的な関係者を特定するために使用できる様々なメカニズムを含む。例えば、検証可能な秘密分散(VSS:verifiable secret sharing)を使用して、Shamirの秘密分散(SSS)に必要な多項式をシェアすることができる。SSSは、シークレットが複数の部分に分割され、各参加者にそれ自身の固有の部分で提供される秘密分散(シークレットシェア)の形式である。これらの部分は、シークレットを再構築するために使用され得る。一貫性のないシェアが異なるノード102に提供される場合、又は全てのノードにブロードキャストされるブラインドシェア(blinded share)とは異なるシェアがノードに秘密裏に送信される場合に、VSSは、ノード102によって悪意のあるノード102又はメンバーを特定するために使用され得る。一貫性のないシェアは、ノード102のいずれか1つによって特定され得る。シークレットのシェア(sharing)は、ノード102がそのシェアを一貫したものとして検証することを可能にする補助情報を含めることによって検証可能になり得る。
【0060】
個々のノードへの誤ったシェア(つまり、ブロードキャストされるブラインドシェアとは異なるシェア)の送信は、シェアの受信対象ノードによって識別することができる。ノードに秘密裏に送信される誤ったシェアの識別は、公開される検証可能な秘密分散(PVSS:Publically Verifiable Secret Sharing)の手法を使用して、公開して検証可能にされ得る。そのような手法は、PVSSが使用されておらず、且つ誤ったシェアの受信者がオフラインであるか、又は誤ったシェアが送信されたときにその受信者がネットワークの実質的な部分から切り離されている場合に発生し得る不正送信者を特定する際の遅延の可能性を回避することができる。
【0061】
異なるノードに一貫性のないシェアを提供する等の不正行為は、悪意のある行為を阻止するコングレス110によって対処され得る。例えば、あるノード102(
図1)が他のノード102によって悪意のある関係者として特定されると、しきい値(例えば、t+1)を超える数のノード102(つまり、コングレス・メンバーに関連するノード)が協力して悪意のある関係者を罰することができる。例えば、ノード102は、悪意のある関係者によってコングレスに預託されたデジタル資産(デジタル通貨、トークン、又は他の出資金や価値等)に関係した行動をとることができる。例えば、コングレスは、デジタル通貨、トークン、出資金や価値を支出不能アドレスに転送することにより焼却し(burn)、又はコングレスは、他のノードとのコンセンサスによって返却を拒否することにより、そのようなデジタル資産を没収し得る。不正行為を行っているノードではないノード102は、不正行為を行っているノードを排除するように協力することにより(例えば、キーシェアを実質的に無効化することにより、例えば、コングレス・プロトコルへの参加からノードを排除することにより、又は秘密キーを再シェアすることにより且つ不正行為を行っているノードにシェアを割り当てないようにすることにより)、不正行為を阻止することもできる。
【0062】
上述したECDSA技術はTEEを使用して強化することができる。例えば、Ibrahimらに基づくしきい値ECDSA署名技術は、ここではビザンチンの敵と呼ばれる強力な敵を想定している。このタイプの敵は、署名プロセスに参加するのを拒否し、且つ関係者に割って入って食い止めるのを拒否するだけでなく、誠実に参加するふりをして不正な情報を送信する等、恣意的に振る舞い得る。ただし、TEEを使用し、シークレット秘密キーシェアが格納されるTEEのエンクレーブ内で署名に使用されるデータを生成することにより、エンクレーブがかなりの数で危険に曝される可能性が非常に低いため、追加のセキュリティを提供され得る。例えば、各TEEにキーシェアが1つしか割り当てられていない場合に、nが十分に大きいと仮定すると、危険に曝される可能性のあるTEEの数は、ビザンチンの敵に対する堅牢性のしきい値に到達しないことが合理的に予想され得る。これにより、キーシェアの総数に対して、悪意のある敵の僅かな割合に耐性がある場合に、プロトコルを安全にすることができる。
【0063】
例えば、全てのノードにTEEがある場合に、エンクレーブ内に格納されたシークレットの取得は、TEEの製造元が買収されてない限り、ノードへの物理アクセスに多大な労力と費用をかけた場合にのみ達成され得る。このような製造元レベルの買収は管理可能であると予想される。例えば、製造元が、複数の公開キーが真正のTEEに対応していると不誠実に主張した場合に、その製造元は、秘密キーシェアに直接的にアクセスして攻撃を開始する可能性がある。しかしながら、このような攻撃には、製造元が他のノードによる支援なしに有効な署名を作成できるようにするために、相当な数のキーシェアが必要となる。これは、出資総額の大部分を蓄積することを意味し、かなりの費用がかかる。さらに、攻撃を行うことにより、保有している出資金の大部分が破壊されるだろう。
【0064】
TEEを使用する場合に、「不正に関与する(corrupted:買収された)ノード」に対するプロトコルの堅牢性を熟慮することが有用である。不正に関与するノードとは、TEEの外部のハードウェアが不正に関与するが、TEEの完全性が損なわれていないノードのことである。不正に関与するノードは、エンクレーブが受信する情報及び受信しない情報を制御することができる。特に、不正に関与するノードは、プロトコルへの参加をためらう、つまり、控える可能性がある。プロトコルに提供される情報が、エンクレーブにおいて秘密裏に保持された秘密キーによって署名される必要がある場合(認証中に対応する公開キーが真正である認証された場合)に、秘密キーはエンクレーブ自体と同じ位信頼できる。こうして、不正に関与するノードは、恣意的な(認証された)情報をプロトコルに送信できず、一時停止し又はエンクレーブを不正に動作するように欺いて、例えば古い情報をエンクレーブに提供する等して干渉のみを試みる可能性がある。従って、不正に関与するノードの場合に、攻撃を成功させるには、完全な署名を生成するために十分な数の部分的な署名を集める必要があることになる。TEEでは、Ibrahimらのプロトコルは、2tの不正に関与するノードに対して堅牢である。n-2t>=2t+1の場合に署名を生成することができるため、サイズ2t+1<=(n+1)/2のキーシェアの有資格サブセットで十分となる。従って、TEEを使用する場合に、不正に関与するノードが存在する場合に有効な署名を生成するために、しきい値署名方式のしきい値をキーシェアの50%以上の数になるように設定することができる。
【0065】
他のしきい値署名方式も使用することができる。例えば、しきい値署名方式は、Goldfederらの、“Securing Bitcoin Wallets via a New DSA/EDCSA threshold signature scheme”, (2015)によって提案されたタイプのECDSAしきい値方式であってもよい。このプロトコルにより、t+1の関係者が有効な署名を生成することができる。その結果、敵が有効な署名を生成するために制御(管理)しなければならないキーシェアの数は、敵が秘密キーを再構築するために所有しなければならないキーシェアの数に等しくなる。この手法は、有効な署名を生成するために全会一致が必要な場合に効率的な方式を提供することができる。最も一般的なケースでは、この方式は、任意のしきい値に対して、nの中からt+1人のプレーヤーの可能なサブセットに対してプロトコル全体を繰り返す必要があるため、コングレス・メンバーの数に応じて指数関数的にスケーリングするスペース要件を課す。こうして、nとtとの両方の値が大きい場合に、多数のキーシェアを格納する必要がある。このようなストレージ要件を緩和するために、標準のビットコインのマルチ署名をしきい値署名と組み合わせてもよい。特に、複数の署名を使用してデジタル資産をロックすると、各秘密キーがシェアに分割される。この手法は、スペース要件の観点から、より大きなコングレスをより効率的にする。スケーリング特性は、小規模な関係者サイズの中から複数のレベルで多数の参加者向けの方式を反復的に構成することによっても改善され得る。例えば、しきい値署名方式は、Cohenらの、Efficient Multiparty Protocols via Log-Depth Threshold Formulae (2013), Advances in Cryptology-CRYPTO2013 pp 185-202の手法と組み合わせてもよい。
【0066】
非ECDSA署名方式を含む他のしきい値方式を使用してもよい。例えば、ノード102が、シュノア(Schnorr)方式に基づくしきい値方式を使用して、コングレス110を実施してもよい。
【0067】
ブロックチェーン・ネットワーク100(
図1)内のノード102(
図1)は、選択されたしきい値署名方式に基づいてコングレス・プロトコルを実装することができる。そのようなノード102は、コングレス・プロトコルを実装する、メモリ220(
図2)に格納されたコンピュータ実行可能命令を含み得る。そのような命令は、プロセッサ210(
図2)によって実行されると、(
図2を参照して説明したタイプの電子装置200等の)ノード102にコングレス・プロトコルの1つ又は複数の方法を実行させる。そのような方法は、
図3~
図8、及び
図10の方法300、400、500、600、700、800、1000のいずれか1つ又は組合せを含み得る。こうして、コングレス・プロトコルは、
図3~
図8、及び
図10の方法300、400、500、600、700、800、1000の1つ又は複数を含み得る。方法は、ノードが他のコングレス・メンバーに関連する他のノードと協力して実行してもよい。
【0068】
コングレスの開始
ここで
図3を参照すると、コングレス110を開始する方法300が示されている。方法300は、コングレス110をセットアップするために最初に信頼される関係者によって実行され得る。すなわち、最初に信頼される関係者に関連するノード102が、方法300を実行し得る。
【0069】
方法300は、動作302において、コングレス公開キーを提供するステップを含む。コングレス公開キーは、他のノード102に提供され、これら他のノードがコングレスへの加入を希望する場合に他のノードがコングレス公開キーに支払を行うことを可能にし得る。つまり、他のノードは、コングレスに加入するために、コングレス公開キーに関連するアドレスにデジタル資産を転送し得る。
【0070】
方法300を実行するノード102は、動作304において、1つ又は複数の条件が満たされるまで公開キーへの支払いを許可する。例えば、ノードは、決められた期間又は決められたブロック数の間に、公開キーへの支払いを許可し得る。条件が満たされた後(例えば、この期間の満了後又は複数のブロックのマイニング後)に、方法300を実行するノード102は、動作306において、コングレスの初期メンバーを特定する。
【0071】
コングレスの初期構成員を構成する関係者が特定された後に、動作307において、しきい値署名方式に従って秘密キーが秘密キーシェアに分割される。次に、動作308において、秘密キーシェアが、方法300を実行するノード102から特定された関係者に分配される。秘密キーシェアは、本明細書で説明するタイプのものであり得るしきい値署名方式に関連付けられる。
【0072】
動作308中に、コングレス・メンバーとして特定されたノード102は協力して、新しい秘密キーシェア及び新しい公開キーを生成する。最初に信頼される関係者によってそのようなノードに送信された元の(original)キーシェアは、署名するために使用され、コングレスプール内の全てのデジタル資産を新しい公開キーに送信するトランザクションにブロードキャストするために使用され得、次にコングレス公開キーになる。すなわち、動作308中に、新しい公開グループアドレスが確立され、コングレスの管理下にあるデジタル資産がこの新しいアドレスに転送され、このアドレスが、グループの新しいアドレスとなり、且つコングレス公開キーに関連付けられる。この転送が確認された後に、コングレスはトラストレスな(trustlessly:中央主権型システムに頼らない)運営を行うことができる。新しい公開グループアドレスは、コングレス110への加入を希望する他のノードから、又は上述したような他の目的のために、将来デジタル資産の預入金を受け取ることができるように形成される。ここで、コングレス・メンバーは、コングレスに登録されているとみなされ、これらのノードは、最初に信頼される関係者の支援なしに動作することができる。さらに、最初に信頼された関係者は、もはやコングレスの運営のあらゆる部分に関与しない。
【0073】
コングレスが開始された後のコングレスへの加入
ここで
図4を参照すると、この図は、コングレスに加入する方法400を示している。
図4の方法400は、
図3の方法300と関連して動作し得るが、
図4の方法400は、
図3の方法300を実行するノードが運営する同じブロックチェーン・ネットワーク100(
図1)で動作するノード102のうちの異なる1つによって実行される。
図4の方法400は、動作402において、コングレス公開キーを取得するステップを含む。コングレス公開キーは、
図3の方法300を実行するノード等の、コングレスを開始する関係者から直接的に取得することができる、或いは、例えばブロックチェーン・ネットワーク100(
図1)の外部で動作する第三者システムを含む第三者から取得することができる。例えば、コングレス公開キーは、公衆インターネットを介してアクセス可能な公開Webサーバから取得することができる。
【0074】
方法400を実行するノード102は、動作404において、ノード102に関連するプライベートアカウントからコングレスアドレス(すなわち、コングレス公開キーに関連するアドレス)にデジタル資産のトランザクションをブロードキャストすることにより、コングレス公開キーに支払を行う。より具体的には、ノード102は、1つ又は複数のデジタル資産をコングレス公開キーに関連する公開グループアドレスに転送するトランザクションをブロードキャストする。公開グループアドレスは、コングレスプールのためのアドレスである。コングレスプールには、コングレスの他のメンバーに関連する他のデジタル資産が含まれる。こうして、動作404におけるトランザクションは、マイナー104(
図1)によってブロックに追加されると、デジタル資産を、他のメンバーからのデジタル資産を含むコングレスプールに転送する。公開グループアドレスは、コングレスへの加入を希望する関係者からの転送と、コングレスへの加入を希望しない関係者からの転送との両方を受信する場合がある。コングレスへの加入を希望しない関係者は、デジタル資産をコングレスプールに転送し、そのようなデジタル資産は、コングレスが採用するしきい値署名方式を使用して、コングレスによる全体的、部分的、又は条件付き管理下に置かれ得る。
【0075】
動作404におけるトランザクションは、デジタル資産を転送する関係者がコングレスへの加入を希望し、そのような目的のために預託が行われていることを示すフラグ、識別子、又は他の属性を含み得る。
【0076】
デジタル資産をコングレスプールに預託した後に、動作406において、方法400を実行するノード102は、秘密キーシェアを受け取る。次に、ノード102は、動作408において、プロトコルの単一のインスタンスを実行することにより、秘密キーシェアを再生成する。秘密キーシェアの生成は、ノード102のTEE内で実行され得る。
【0077】
動作408において、ノード102は、しきい値署名方式で使用される秘密キーシェアを生成し、しきい値署名方式において、コングレスに代わってトランザクションの有効な署名を生成するために、少なくともしきい値の秘密キーシェアを使用しなければならない。秘密キーシェアの他の所有者は、それぞれのデジタル資産を公開グループアドレスに転送することにより、許可ベース又は非許可ベースでコングレスに加入したコングレスの他のメンバーである。
【0078】
秘密キーシェアを再生成するために、動作408において、既存のコングレス・メンバーは協力してキーシェアを更新することができる。例えば、ノード102は、次数tのランダム多項式を生成することができ、定数項はゼロ
【数1】
である。次に、ノード102は、ポイント
【数2】
を計算し、これを秘密キーシェアとして設定することができる。次に、ノード102は、この多項式
【数3】
上のポイントを既存の各コングレス・メンバーi=1,…,nに分配することができる。既存の各コングレス・メンバー(i=1,…,n)は、受信した値を自分の既存の秘密キーシェアに追加して、新しい秘密キーシェアを取得する。ここで、ノード102は、他の全てのメンバーと同等の秘密キーシェアを有しており、対応する公開キーは変更されないままである。上述したように、しきい値署名方式は、楕円曲線デジタル署名アルゴリズム又はシュノア方式に基づくしきい値方式を含む様々なタイプのものであり得る。
【0079】
秘密キーシェアは、TEE250(
図2)内で生成してもよく、且つノード102に安全に格納され得る。例えば、秘密キーシェアは、TEE250に格納してもよい。
【0080】
秘密キーシェアがそれぞれのノードによって生成された後に、以前のコングレス公開キーの管理下にある資金(例えば、元のコングレス公開キーに関連する公開グループアドレスに転送された資金)が、(しきい値署名方式の下で有効な署名を生成するのに十分な数のグループノードの協力によって、)新しい秘密キーシェアに関連する新しいコングレス公開キーに転送され得る。
【0081】
動作408において、秘密キーシェアが生成された後に、その秘密キーシェアを方法400の動作410において使用され得る。秘密キーシェアを使用して、(あるメンバーによってブロードキャストされ得る)公開グループアドレスからトランザクションのための有効な署名を協力して生成することができる。つまり、しきい値署名方式で秘密キーシェアを使用して、署名生成に寄与することができる。しきい値署名方式では、コングレスのしきい値数の秘密キーシェアをそれぞれのメンバーが使用して、デジタル資産をコングレスとは別の場所に(away from)転送できるようにする有効な署名を生成する必要がある。方法400を実行するノード102は、署名生成に寄与するために、ストレージから秘密キーシェアを検索し、この秘密キーシェアを使用することができる。十分な数の他のコングレス・メンバーもそれぞれの秘密キーを使用して署名の生成に寄与する場合に、署名が生成され、有効な支出トランザクションがブロードキャストされ得る。ブロックチェーン・ネットワーク100のマイナー104(
図1)が、(ブロックチェーン・ネットワーク100内のノード102のコンセンサスによってブロックチェーンに追加される)マイニングされたブロックにトランザクションを追加し、ブロックが確認されると、支出トランザクションが完了する。この時点で、トランザクションにおいて表されるデジタル資産は、もはやコングレスの管理下にない可能性がある。つまり、そのようなデジタル資産は、コングレス公開キーによってもはや制限されなくなる可能性がある。
【0082】
動作408における秘密キーシェアの使用は、ノード102のTEE内で実行され得る。TEEは、システムの他の部分もメンバー自体も、エンクレーブに格納された秘密キーシェア等のあらゆるデータにアクセスできないように秘密キーシェアを保護する。さらに、TEEは、メンバーが預託金の返却を望み、預託金を受け取る場合に、メンバーがメンバー預託金を返却する前に秘密キーの削除を証明する必要があるため、TEEが秘密キーのコピーを保持できないという点で、秘密キーを保護する。
【0083】
図4の方法400は、初期セットアップ段階中又はその後に実行することができる。すなわち、方法400は、初期キーシェアが分配される前(例えば、
図3の方法300の動作308中)又はその後(例えば、以下でより詳細に議論する再バランス中)に実行され得る。
【0084】
動作410におけるトランザクションは、デジタル資産を、元々それらのデジタル資産をコングレスプールに預託した関係者に戻すように転送することができる。つまり、転送(移転)はデジタル資産を預託者に返却する場合がある。転送は、デジタル資産を他の場所に転送することもある。例えば、デジタル資産は、第三者又は支出不能アドレスに転送される場合がある。
【0085】
デジタル資産の没収
ここで
図5を参照すると、デジタル資産を没収する例示的な方法500が示されている。
図5の方法500は、ノード102によって実行してもよく、ノード102は、
図4の方法400を実行するノードと同じであってもよい。方法500は、
図4の方法400の動作408の後に実行され得る。そのため、ノード102は、
図5の方法500が実行されたときに、秘密キーシェアに既にアクセスしている。
【0086】
動作502において、ノード102は、悪意のある関係者による悪意のある活動を検出する。悪意のある関係者は、コングレスの別のメンバーである可能性がある。悪意のある活動は、コングレス・メンバーが予め規定されたプロトコル又は基準に違反しているとノード102が判断したときに検出される。例えば、コングレスのメンバーであるノードが偽の情報(つまり、虚偽の、一貫性のない、又は容認できない情報)をコングレスの他のメンバーに報告する場合に、そのメンバーは悪意のあるメンバーとみなされ得る。
【0087】
動作503において、悪意のある活動の検出に応答して、ノード102は、コングレス内の他のノードと協力して、悪意のある関係者であるメンバーを一時保留状態にする(suspend)ことができる。つまり、コングレスは、悪意のある関係者をコングレスへの更なる参加から排除することができる。
【0088】
全てのノード102が予め規定されたプロトコル又は基準に準拠して動作することを保証するために、コングレスプールへのメンバー預託金は没収の対象となり得る。没収とは、没収されたとみなされるメンバー預託金の返却を永久に阻止することを意味する。悪意のある活動のために返却されない、メンバー預託金を形成するデジタル資産は、コングレスプールに残され得るが、(この措置を取るべきであるというコンセンサスに応じて)返却されない場合があり、別の支出不能アドレスに直ちに又は将来的に転送され、又は没収され得る。没収の性質は、コングレスがサイドチェーンの留め置き検証セットとして機能するかどうかに依存し得る。例えば、動作504において、悪意のある関係者による悪意のある活動を検出することに応じて、方法500を実行するノード102は、秘密キーシェアを使用して、没収トランザクション(デジタル資産を支出不能アドレス又は悪意のある活動を曝露する報酬として別のノードに転送するトランザクション)に関する部分的な署名を提供することができる。すなわち、ノードは、コングレスの他のノードと協力して、悪意のある関係者によって公開グループアドレス(つまり、コングレスプール)に以前転送されたデジタル資産の少なくとも一部を没収する。つまり、グループメンバーが予め規定されたプロトコル又は基準に違反していることを確認したことに応じて、秘密キーシェアは、そのグループメンバーに関連付けられ且つコングレスプール内に保持されている1つ又は複数のデジタル資産のトランザクションの承認に寄与するために利用される。
【0089】
しきい値署名方式がコングレス公開キーとともに使用されるため、単独で行動する個々のノードは、別のコングレス・メンバーのデジタル資産の預託金をコングレスプールとは別の場所(例えば、支出不能アドレスに)転送することができない。むしろ、デジタル資産は、デジタル資産を別のアドレスに転送するための有効な署名を生成するために、それぞれのメンバーがしきい値数の秘密キーシェアを使用する場合に、又は少なくともしきい値数の秘密キーシェアとなるグループのメンバーが、(動作503において)あるメンバーを一時保留状態にするコンセンサスに達した場合にのみ、転送によって没収され得、保留状態されたメンバーからの引出し要求は自動的に無視される。デジタル資産が転送によって没収された場合に、デジタル資産が転送され得る他のアドレスは、支出不能アドレスに関連付けられ得る。例えば、この他のアドレスは、秘密キーが存在しないアドレスであってもよく、このアドレスの公開キーに結び付けられたデジタル資産に誰もアクセスできないようにすることができる。デジタル資産を支出不能アドレスに転送するトランザクションが確認された場合、又はデジタル資産を没収すべきというコンセンサスがサイドチェーンで得られた場合に、デジタル資産は、もはやコングレスの任意のメンバーによって又は実際にブロックチェーン・ネットワーク100内の任意のノードによって保留状態ではないので、デジタル資産は焼却されたとみなされ得る。
【0090】
従って、動作504において、ノードは、コングレスの他のメンバーと協力して秘密キーシェアを使用してトランザクションの支出不能アドレスへの有効な署名を生成することにより、デジタル資産を没収することができ、いくつかの実施態様では、あるメンバー預託金の全部又は一部を永久に取り上げるべきであるコンセンサスの達成を第2のブロックチェーンで伴うことができる。
【0091】
さらに、いくつかの実施態様では、コングレスは、プルーフオブステーク(proof-of-stake)のサイドチェーンを保護する留め置き検証セットとして機能し、このサイドチェーンは、ブロードキャストチャネルとして使用され得る。例えば、サイドチェーンのコングレス・メンバーが、あるメンバーが悪意を持って行動したというコンセンサスに達する場合がある。このコンセンサスは、悪意のある活動の犯罪的証拠を含むサイドチェーン・トランザクションの確認に対応する場合がある。コンセンサスが得られると、悪意のあるメンバーによって行われたメンバー預託金の引出し要求は拒否され、預託金は没収されたとみなされる。没収されたデジタル資産は、将来のある時点で焼却され得る。つまり、しばらくすると、しきい値のメンバー(悪意のあるメンバーを含まない)が協力して、没収されたデジタル資産の支出不能アドレスへの転送を承認することができる。
【0092】
コングレスは、デジタル資産の預託によってブロックチェーン・ネットワーク100のノード102が加入できるオープングループであるため、グループ構成員は定期的に変更され得る。このような変更が発生すると、秘密キーシェアの分配が更新され得る。ここで
図6を参照すると、秘密キーシェア分配を更新する例示的な方法600が示されている。方法600は、ブロックチェーン・ネットワーク100のノード102がブロックチェーン・ネットワーク100の他のノードと協力して、実行され得る。
【0093】
新しい公開アドレスを使用した秘密キーシェア分配の更新
方法600の動作602において、ノード102は、再分配要求を検出し、これは要求であり、その履行は、キーシェアの再分配を伴う。例えば、ノード102は、新しい見込みメンバーがデジタル資産を公開グループアドレスに移転したこと、又は既存のメンバーがメンバー預託金の引出しを要求したことを検出することができる。
【0094】
デジタル資産は、コングレスへ加入すること又はコングレスへの参加を増やすことを要求するノードと、コングレスへの加入を要求しないが、代わりに別の目的で(以下で説明するように、デジタル資産をサイドチェーンに転送する等で)デジタル資産をコングレスに転送する他のノードとによって、公開グループアドレスに転送され得る。動作602において、ノード102は、デジタル資産の公開グループアドレスへのトランザクションの少なくとも一部に含まれる1つ又は複数の属性を使用して、コングレス・メンバー(すなわち、コングレスに加入するためにデジタル資産をコングレス公開キーに転送する関係者であり、別の目的の関係者ではない)を識別することができる。例えば、特定のトランザクションは、トランザクションの属性を使用して特別なトランザクションとしてフラグが付けられる場合がある。このような属性(又は、その属性の有無)は、転送を行う目的を示している場合がある。例えば、転送者がコングレスへの加入を要求していない場合に、トランザクションにフラグが含まれる場合がある。
【0095】
動作602における要求の検出に応じて、その履行はキーシェアの再分配を伴い、動作604において、秘密キーシェアが
図4の方法400の動作408において生成された方法と同様に、新しい秘密キーシェアがノード102によって生成される。コングレスの他のメンバーノードも、それぞれの秘密キーシェアを生成する。これら秘密キーシェアは、新しいコングレス公開キーのしきい値署名方式で使用することができる。この時点でコングレスを退会するメンバーは、動作604中に新しい秘密キーシェアを生成せず、退会するメンバーには新しいコングレス公開キーで使用する秘密キーシェアが割り当てられないため、退会するメンバーは、コングレスに参加する能力を失い、もはやコングレス・メンバーとはみなされなくなる。
【0096】
さらに、再分配要求(これは、その履行がキーシェアの再分配を伴う要求である)の検出に応じて、動作606において、ノード102は、他のコングレス・メンバーと協力して、公開グループアドレス内の全てのデジタル資産を、新しい公開キーに関連する新しい公開アドレス(これが新しいコングレス公開キーになる)に転送する。
【0097】
こうして、
図6の方法600によれば、預託金の分配が変更されたとき、又はあるメンバーから預託金を引き出す要求を受け取ったとき、秘密キーシェアが再生成され、コングレスの管理下にある全てのデジタル資産が新しい公開キーに移動され得る。コングレスの構成員を更新できる頻度は、ブロックチェーン・ネットワーク100のブロック時間によって制限され得る。多くのアプリケーションでは、プルーフオブワーク・メインチェーンの平均ブロック生成時間と比較して低頻度での再バランスのみが必要であり得る。
【0098】
既存の公開グループアドレスを保持しながら秘密キーシェア分配を更新する
ここで
図7を参照すると、秘密キーシェアの分配を更新する更なる例示的な方法700が示されている。方法700は、ブロックチェーン・ネットワーク100のノード102がブロックチェーン・ネットワーク100の他のノードと協力して、実行され得る。
【0099】
図7の方法700では、コングレス公開キーは、メンバー預託金の分配が変更される度に変更されない。(動作702において、デジタル資産の公開グループアドレスへの預託によって発生する可能性のある)新しいキーシェアを割り当てる要求が検出されると、ノード102は、コングレスの他のメンバーと協力して、(動作704において)同じ公開キーに関する新しい秘密キーシェアをグループの新しいメンバーに発行する。協力するノードの数は、しきい値署名方式でデジタル署名を生成するために必要な少なくともしきい値数のノードである。動作704において、追加のキーシェアが割り当てられる一方、他のキーシェアは同じままであり得る。これは、(しきい値署名方式の)しきい値の変更を伴う場合があるが、実際にはその変更は小さい。あるいはまた、動作704において、他のキーシェアが更新されている間に、追加のキーシェアを割り当ててもよい。そのような更新には、以前生成したあらゆるキーシェアの削除の証明を伴う必要がある。この場合に、同じしきい値を維持しながら新しいシェアを割り当てることができる(SSSの文脈では、これには、次数が増加した新しい多項式での分散(sharing)が含まれる)。
【0100】
動作702において、ノード102は、デジタル資産の公開グループアドレスへのトランザクションの少なくとも一部に含まれる1つ又は複数の属性を使用して、コングレス・メンバー(すなわち、コングレスに加入するためにデジタル資産をコングレス公開キーに転送する関係者であり、別の目的の関係者ではない)を識別することができる。例えば、特定のトランザクションは、トランザクションの属性を使用して特別なトランザクションとしてフラグが付けられる場合がある。このような属性(又は、その属性の有無)は、転送を行う目的を示し得る。例えば、転送者がコングレスへの加入を要求していない場合に、トランザクションにフラグを含めてもよい。
【0101】
メンバーが方法700を使用するコングレスを退会するときに、メンバーは、自分の秘密キーシェアを確実に削除することができる。古いメンバーの秘密キーシェアが使用できないことを確実にするために、コングレスのメンバーは、特別なTEEを有するノード102を使用することを要求される場合がある。TEEは、ハードウェアレベルで実装されるアーキテクチャであり、TEE内で実行される命令及びデータが、システムの残りの部分からのアクセス及び操作から保護されることを保証する。TEEは、ハードウェアメカニズムを使用して、コングレスの他のノード等の外部関係者に対してシステムの完全性を検証するために使用できるリモート認証の課題に対応することができる。
【0102】
各メンバーノードは、集積回路レベルでハードウェアを損なうことなくホストシステムにアクセスできないままである1つ又は複数のランダムシークレット値を生成するように構成された認定TEEを使用することができる。このようにして生成されたシークレット値は、(例えば、
図4の方法400の動作410において)秘密キーシェアの分配生成で使用される。このシークレット値は、コングレスのセットアップ段階でシェアされる(shared)公開キーを確立するために使用することもできる。セットアップ・プロトコルに関連付けられた計算はTEEのエンクレーブ内で実行されるため、メンバー又は以前のメンバーは、メンバー間通信又は他の方法により自分又は他の秘密キーシェアに関する情報を得ることができない。TEE内のエンクレーブは、TEEエンクレーブが、真正であり、承認されたコンピュータ可読命令を実行していることを他のノードに証明するために使用され得るリモート証明プロトコルを実行できるようにする。
【0103】
グループの変更に関連する計算は、TEEのエンクレーブ内で実行される。例えば、SSSの目的で新しい多項式を計算する際に使用され得る新しい安全なアランダムシークレットの生成は、TEEのエンクレーブ内で実行される。
【0104】
TEEのエンクレーブは、メンバー預託金を返却する前に、使用されなくなった以前のキーシェア及び以前のシークレットを確実に削除するのを確実にすることも目的としている。より具体的には、メンバー預託金を返却するために、認証プロトコルでは、TEEのエンクレーブがキーシェアの削除を証明することを要求する場合がある。各ノード102は、そのような証明を、削除の必要性がリモート証明プロトコルを介して他のノードで発生したことの確認として解釈することができる。こうして、方法700は、コングレスを退会したメンバーのTEE内に以前保持されていた秘密キーシェアが、そのメンバーに関連するノードから削除されたことを確認するステップも含み得る。この確認は、秘密キーシェアの削除の証明を受信することで行うことができる。従って、リモート証明プロトコルを使用して、コングレスを退会したメンバーのTEE内に以前保持されていた秘密キーシェアの削除に対する証明を取得することができる。
【0105】
図6の方法600及び
図7の方法700には、それぞれ様々な利点がある。例えば、
図6の方法600は、確実な削除に依存せず、信頼できるハードウェアに依存する必要もない。しかしながら、
図6の方法600は、状況によっては、このようなハードウェアによってキーシェアの悪意のあるプーリングをより起こりにくくし得るため、このようなハードウェアの恩恵を受け得る。
【0106】
図7の方法700は、構成員が変更される度に新しいコングレス公開キーの下でデジタル資産を再ロックする必要性を回避する。さらに、状況によっては、方法700は、
図6の方法600よりも速く構成員を更新する場合がある。なぜなら、
図7の方法700の下では、デジタル資産が新しい公開キーに移動されないため、全てのデジタル資産を新しい公開キーに移動するためにトランザクションをブロックチェーンに追加する必要はないからである。すなわち、公開キーが変更されないため、デジタル資産の新しい公開キーへの転送を確認するためにいくつかのブロックが生成されるのを待たずに、
図7の方法700を使用して構成員を更新することができる。
【0107】
コングレスからの登録解除
上述したように、グループメンバーは時々コングレスからの退会を要求する場合があり、グループメンバーをコングレスから登録解除するときに、コングレスプールに預託したデジタル資産がそのグループメンバーに返却される場合がある。ここで
図8を参照すると、預託金を返却する例示的な方法800がフローチャート形式で示されている。この方法は、ノード102がコングレスの他のノード102と協力して、実行され得る。
【0108】
方法800の動作802において、ノード102は、コングレス・メンバーである要求者から引出し要求を受信する。引出し要求は、登録解除要求とも呼ばれ得る。引出し要求は、要求者によって以前預託され、コングレスによって現在管理されているデジタル資産を引き出す要求である。要求は、要求者によって全てのコングレス・メンバーにブロードキャストされ得る。
【0109】
要求の受信に応じて、動作804において、ノード102は、決定された基準に対して要求を評価する。そのような基準は、予め決定された基準であり得る。コングレスが、グループの構成員が変更される度にコングレス公開キーが変更されないコングレス・プロトコルに従って動作する場合に、動作804において、ノード102は、秘密キーシェアが要求者によって削除されたことを確認することができる。このような確認は、TEEに関連するリモート証明プロトコルを使用して得ることができる。
【0110】
コングレス・プロトコルが、構成員が変更されたときにコングレス公開キーが変更されるものである場合に、秘密キーシェアはもはや有効ではないため、ノード102は、秘密キーシェアの削除を確認しない場合がある。代わりに、新しいコングレスキーが使用され、コングレスの管理下の他のデジタル資産が新しいコングレスキーに転送され得る。
【0111】
ノード102が評価に基づいて引出し要求を承認する場合に、動作806において、ノードはデジタル資産の引出しを容易にする。すなわち、ノード102は、その秘密キーシェアを使用してデジタル署名を協力して生成し、このデジタル署名を使用して、要求者によって以前に預託されたデジタル資産を要求者に返送する。例えば、デジタル資産は、デジタル資産を以前に受け取ったアドレスに送り返され得る。動作806は、しきい値署名方式に従って実行され、それにより、少なくともしきい値数のコングレス・メンバーが引出しを承認した場合にのみ引出しが行われる。動作806は、登録解除を希望するメンバーが一定期間活動を停止した後に実行される。この待機期間によって、メンバー預託金の返却のためのプロトコルを実行している間に、メンバーが不正行為に関与するのを防止する。
【0112】
コングレス・プロトコルは、多数の様々な目的に使用できる。コングレスは、様々な機能を実行するための安全なメカニズムを提供する。コングレスはトラストレス(trustless:中央主権型システムに頼らない)な運営を行い、デジタル資産の所有権を管理できる。
【0113】
コングレス・プロトコルは、例えば、ゴーストチェーンを実装するために使用してもよく、その場合に、コングレス・プロトコルはゴーストチェーン・プロトコルと呼ばれ得る。
【0114】
ゴーストチェーン
ここで
図9を参照すると、
図900は、ブロックチェーン902及びゴーストチェーン904を示している。ブロックチェーン902は、ブロックベースのプルーフオブワークの分散型台帳である。ゴーストチェーン904は、フラグ付きトランザクションで指定された1つ又は複数の条件に従って復号化キーを作成する、又はブロックチェーン・ネットワークのノード同士の間の紛争を仲裁する等、あらゆる目的に使用できるブロックベースの分散プルーフオブステーク(proof-of-stake)の分散型台帳である。例えば、ブロックチェーンには、あるノードが別のノードから送信された作業成果物に異議を申し立てる異議申立てを含み得る。そのような異議申立ては、
図9では「C」と示されている。異議申立ては、例えば、ノード(つまり、異議申立者)が要求の履行で提案された結果が無効であることを示す場合に発生し得る。
【0115】
異議申立てがノードによって提起されると、ゴーストチェーンが展開される。異議申立てに応答して異議申立てCが発生した後に、ゴーストチェーンがインスタンス化される。ゴーストチェーンは、ゴーストチェーンの以前のインスタンス化による最終ブロック(末端ブロックとも呼ばれる)であるジェネシス(genesis)ブロックでインスタンス化され得る。ゴーストチェーンがJで示される判断(judgement)に達するまで、マイナーがいくつかのブロックをゴーストチェーンに追加して、デジタル紛争を解決することができる。
【0116】
判断に達したときに、トランザクション(以下で最終トランザクション又は決済トランザクションと呼ばれる)が、構築され、(以下でより詳細に説明するように)署名され得る。このトランザクションは、判断に従って資金をメインブロックチェーン902に分配する、ゴーストチェーンのマイナーに報酬を与えるように資金を分配する等の効果を有するトランザクションであり得る。トランザクションは、判断の結果をメインブロックチェーン902に返信することもできる。より具体的には、結果はトランザクションにカプセル化され得る。
【0117】
判断に達し、最終トランザクションが構築及び署名された後に、ゴーストチェーン904は終了し、構築されたトランザクションは、メインブロックチェーン902にマイニングされる。ゴーストチェーン904が終了するため、ゴーストチェーンには末端ブロックがあるという点で、典型的なブロックチェーンとは異なる。ゴーストチェーン904の最後のブロックであるこの末端ブロックは、判断が決定されると発生し、この判断に従って資金をメインブロックチェーン902に分配し、ゴーストチェーンのマイナーに報酬を与えるように資金を分配する等の結果のトランザクションは、有効に署名される。
【0118】
要求者-提案者-異議申立者及びゴーストチェーン
従って、ブロックチェーン・ネットワーク(
図1)のノード102は、要求者-提案者-異議申立者プロトコル及び/又はゴーストチェーンの解決プロトコルを実装できる。そのようなノードは、メモリ220(
図2)に格納され、そのようなプロトコルを実装するコンピュータ実行可能命令を含み得る。そのような命令は、プロセッサ210(
図2)によって実行されると、ノード102(
図2を参照して説明したタイプの電子装置200等)に、プロトコルの1つ又は複数の方法を実行させる。そのような方法は、
図10~
図13の方法1000、1100、1200、1300のいずれか1つ又は組合せを含み得る。
【0119】
ここで、
図10~
図13を参照すると、これらの図は、要求者-提案者-異議申立者プロトコル及び/又はゴーストチェーンの解決プロトコルに含まれ得る方法を示している。
図10に示される要求者に関する方法(requester method)は、計算交換のタスクに関する要求者によって実行され得る。つまり、タスクの完了を要求するノード102は、
図10の要求者に関する方法を実行し得る。ノードはブロックチェーン・ネットワーク(
図1)内のノードであり、ノードは要求者と呼ばれ得る。
【0120】
提案者に関する方法(proposer method)1100が
図11に示されている。提案者に関する方法1100は、タスクに対する解に関する提案者によって実行され得る。つまり、タスクを完了したと主張するノード102が、
図11の方法を実行し得る。ノードはブロックチェーン・ネットワーク(
図1)内のノードであり、ノードは提案者と呼ばれ得る。
【0121】
異議申立者に関する方法(challenger method)1200が
図12に示されている。異議申立者に関する方法1200は、タスクに対する解に関する異議申立者によって実行され得る。つまり、提案者によって提示された解に異議を申し立てるノード102が、
図12の方法を実行し得る。ノードはブロックチェーン・ネットワーク(
図1)内のノードであり、ノードは異議申立者と呼ばれ得る。
【0122】
仲裁者に関する方法(arbitrator method)1300が
図13に示されている。仲裁者に関する方法(arbitrator
method)1300は、ブロックチェーン・ネットワークのノードがブロックチェーン・ネットワークの他のノードと協力して、実行され得る。他のノードと協力して仲裁者に関する方法を実行するノードは、仲裁者と呼ばれ得る。
【0123】
図10~
図13の方法1000、1100、1200、1300は、協同して実行される。例えば、方法は、ゴーストチェーンが提案者の解の有効性を保証するために使用される要求者-提案者-異議申立者プロトコルをまとめて提供する。
【0124】
要求者に関する方法1000(
図10)の動作1002において、要求者と呼ばれるノードが要求を行う。要求は、タスクを完了するための要求である。例えば、タスクは作業成果物に対する要求又は以下でより詳細に説明するオフチェーン・イベントが発生したかどうかを判定するための要求であり得る。要求は、タスクの成功裏の完了と引き換えに、ブロックチェーン・ネットワークに関連するデジタル資産の形式で報奨金(bounty)を提供する。要求は、ブロックチェーンの外部(つまり、「オフチェーン(off-chain)」)から発せられ得る。例えば、要求は、インターネット経由でアクセス可能なWebサーバで発せられ得る。要求に対する候補解が一定期間(これは「異議申立て期間」と呼ばれ得る)異議申立てされない場合、又は候補解が正しいかどうかに関してコングレスのメンバーが投票することによって異議申立てが解決される場合に、要求は、成功裏に完了したと規定され得る。いくつかの実施形態では、ゴーストチェーンは、投票の結果に応じて展開される。
【0125】
いくつかの実施形態では、以下で説明するように、計算交換により、ノードが計算タスクをオフロード(offload)できるようになる場合がある。(動作1002において)要求が、計算交換で提起され得る。計算交換は、要求されたタスクのコレクションであり得る。例えば、複数のタスクが計算交換で公開され得る。タスクは、同じ要求者又は別の要求者によって公開され得る。計算交換により、ノードが計算又はアルゴリズムのパフォーマンスを他のノードにオフロードできる。
【0126】
提案者に関する方法1100(
図11)の動作1102において、提案者と呼ばれるノードが要求を特定する。次に、ノードは、(動作1104において)タスクをオフチェーンで完了するよう進む。例えば、要求者によって要求されたアルゴリズム、データ、又は他の結果は、プロセッサによる作業成果物として取得される場合がある。
【0127】
次に、提案者は、方法1100(
図11)の動作1106において提案を提出することができる。提案は、
図10の方法1000の動作1002において要求者によって発せられた要求に関連するタスクを完了したという主張である。提案を提出するために、提案者は、ブロックチェーン・ネットワーク100の公開キーを要求者に送信することができる。提案者は、タスクに対する解にコミットすることもできる。このコミットは、解のハッシュ(つまり、計算の出力や別のタイプの解等の作業成果物のハッシュ)の形式にすることができる。
【0128】
要求者は、
図10の方法1000の動作1004において提案を受け取る。例えば、要求者は、提案者の公開キー及び「コミット」(例えば、目的の作業成果物のハッシュ)を受け取ることができる。
【0129】
提案の受取りに応じて、
図10の方法1000の動作1006において、要求者は、トランザクションT1を構築することができる。トランザクションT1には、入力として報奨金が含まれる。トランザクションには、出力として報奨金と提案者の預託金と(つまり、T1の出力、T1_out=報奨金+提案者の預託金)が含まれる。トランザクションT1に署名して、提案者が自分の入力に追加できるようにする。例えば、トランザクションT1は、SIGHASH_ALL|SIGHASH ANYONECANPAYに署名し得る。SIGHASH_ALLは、署名スクリプトを除くトランザクション全体に署名するデフォルトの署名ハッシュタイプであり、署名された部分の変更を防止する。SIGHASH ANYONECANPAYは、現在の入力のみに署名する署名ハッシュタイプである。
【0130】
トランザクションT1は、2つの方法でロック解除されるように構築される。(後述する)異議申立て期間の終了後に、そのトランザクションT1は、提案者の署名(つまり、提案者が要求者に提供した公開キーに対応する署名)とコミットに対応する解とでロックを解除できる。例えば、命令コードOP_CHECKSEQUENCEVERIFYを使用して、異議申立て期間に亘ってトランザクションをロックできるが、この期間内に異議申立てがない場合に、提案者によってロックを解除できる。トランザクションは、いつでもコングレス110(
図1)のグループ署名でロック解除されるようにも構築される。つまり、コングレス110のしきい値署名方式に従って、コングレスのメンバーであるノードが協力し、それぞれの秘密キーシェアを使用してトランザクションをロック解除するときに、異議申立て期間の終了前又は後にトランザクションをロック解除することができる。
【0131】
トランザクションT1には、コミット等の疑わしい(未確認の)解に関する情報も含まれる場合がある。例えば、OP_PUSHDATA命令コードを使用して、目的の作業成果物のハッシュをトランザクションに追加することができる。より具体的には、目的の作業成果物のハッシュをトランザクションのロックスクリプトに追加することができる。このロックスクリプトは、ロックスクリプトに含まれる目的の作業成果物のハッシュにハッシュする解を与えるロック解除スクリプトによって(異議申立て期間の終了後に)ロック解除されるように構成される。
【0132】
図10及び
図11に示されていないが、提案者は、動作1006において構築されたトランザクションT1を受け取り、提案者の預託金を入力としてトランザクションT1に追加することができる。提案者は、トランザクションをブロックチェーン・ネットワーク(
図1)の他のノードにブロードキャストする。トランザクションは、ブロックチェーン上でマイニング(つまり、ブロックに追加)され、公開される。
【0133】
トランザクションがブロックチェーンにマイニングされると、異議申立て期間が開始され、その間に、任意のノード(
図1)が提案者によって提出された提案に異議を申し立てることができる。異議申立て期間中に異議申立てがなされなかった場合に、提案者は、トランザクションT1から報奨金及び提案者の預託金を請求することができる。提案者は、異議申立て期間に残っている時間を追跡するためにタイマーを開始し、異議申立て期間が終了すると自動的にアクションを取ることができる。例えば、提案者は、プロセッサ作業成果物等の作業成果物(解と呼ばれ得る)を要求者に提供し、トランザクションのロックを解除できる。一例では、提案者は、オフチェーン・イベントが発生したことを示す作業成果物を提供し、ノード102(
図1)は、オフチェーン・イベントが実際に発生したという提案される解に異議を申し立てることができる。
【0134】
提案者は、要求者に解を直接提供することはできない。代わりに、提案者は、メインブロックチェーン・ネットワーク上のトランザクションに解を埋め込むことにより解を提供できる。例えば、提案者は、報奨金及び提案者の預託金を制限する(トランザクションT1内の)ロックスクリプトをロック解除するロック解除スクリプト(例えば、T1のロックスクリプトをTRUEと評価するロック解除スクリプト)に解を提供できる。上述したように、ロックスクリプトは、ロック解除スクリプト内の提案される解が、提案者が要求者に以前に与えた値(つまり、「コミット」)にハッシュすることを確認するように構成され得る。ロック解除スクリプトが、トランザクションT1のロックスクリプトによって以前制限されたデジタル資産(つまり、トランザクションT1のUTXO)を制限するロックスクリプトを成功裏にロック解除すると、ロック解除スクリプトを含むトランザクションは、デジタル資産(つまり、提案者の預託金及び報奨金)を新しいロックスクリプト(これは、例えば、提案者の公開キーを使用してデジタル資産を制限し、提案者がデジタル資産を完全に制御するようにする)で制限することによってトランザクションを使用する。
【0135】
上述したように、トランザクションT1は、OP_CHECKSEQUENCEVERIFYコードを使用して、報奨金及び提案者の預託金をロックするように構築することができる。これにより、提案者が、異議申立て期間の終了後に、要求者からの更なる承認なしに、報奨金及び提案者の預託金を自動的に請求できる。
【0136】
提案者の解に対して異議申立てがない場合に、異議申立てプロトコル又はゴーストチェーン・プロトコルの実行を必要とせずに、プルーフオブワーク・メインブロックチェーン902(
図9)で完全なトランザクションを実行できることに留意されたい。
【0137】
しかしながら、異議申立者は異議申立て期間中に異議を申し立てることができる。例えば、方法1200の動作1202において、異議申立者は異議を申し立てる。異議申立者は、
図11の方法1100の動作1102及び1104と同様の動作を行うことができる。つまり、異議申立者は、要求を特定し、動作1202において異議を申し立てる前にタスクをオフチェーンで完了させ得る。また、異議申立者は、異議申立者の解が提案者の解と異なると判定することにより、異議を申し立てるべきであると判断し得る。例えば、異議申立者は、自分の解のハッシュを実行し、そのハッシュを提案者の解のハッシュと比較することができ、ハッシュが異なる場合に、異議申立者は異議を申し立てることができる。
【0138】
図12の方法1200の動作1202において、異議申立者は、異議申立て期間内に異議を申し立てる。異議申立者は、異議を申し立てる意図をブロックチェーン・ネットワーク100にブロードキャストすることにより、異議を申し立てることができる。異議申立てがなされると、ノードのグループが、解の有効性を判断するのを支援することができる。例えば、オフチェーン・イベントが発生したという提案に応じて異議申立てが行われる場合があり、異議申立ては、オフチェーン・イベントが実際に発生していないと断言しており、それによりノードのグループ(例えば、コングレス)が、提案者又は異議申立者によって提供された解を受け入れるかどうかを判定し得る。
【0139】
例えば、
図13を簡潔に参照すると、この図は、仲裁者に関する方法1300のフローチャートを示しており、ノードのグループが、異議申立てが提起されたときに仲裁を行うために使用され得るコングレスを形成することができる。上述したように、コングレスは、デジタル資産をプルーフオブワーク・ブロックチェーン・ネットワークに預託することによって保護される。例えば、方法1300の動作1302において、仲裁者に関する方法1300を行う仲裁者はコングレスに加入することができる。例えば、仲裁者は、
図4を参照して上述したコングレスに加入する方法400を行ってもよい。従って、動作1302において、仲裁者は、コングレスに関連する公開グループアドレスにデジタル資産を預託することによりコングレスと呼ばれ得るグループに加入して、グループメンバーになる。仲裁者は、プルーフオブワーク・ブロックチェーン・ネットワーク上でこの預託を行う。上述したように、グループは、ノードが秘密キーシェアを制御するためのしきい値署名方式に関連付けられる。グループへの加入(登録とも呼ばれ得る)は、例えば、ゴーストチェーンの展開中に行われ得る。
図13は、動作1302(コングレスへの加入)が動作1306(ゴーストチェーンの展開)の前に行われるのを示しているので、動作1302は、ゴーストチェーンの以前の展開中(つまり、動作1306における展開中ではない)にコングレスに加入したノードによって実行され得る。しかしながら、動作1306、動作1308、及び動作1310は、例えば、動作1306中にグループに加入するノードによって実行してもよい。
【0140】
動作1304において、仲裁者は、グループの他のノードと協力して、
図12の異議申立者に関する方法1200動作1202において異議申立者によってなされた異議申立てを検出する。より具体的には、仲裁者は、グループの他のノードと協力して、要求者が行った要求に応じて提案者の作業成果物に対する異議申立者による異議申立てを検出する。
【0141】
上述したトランザクションT1により、異議申立てがなされると、グループは、報奨金及び提案者の預託金の管理を引き継ぐ。つまり、トランザクションT1は、いつでもコングレスによってロック解除可能になるように構築される。従って、報奨金及び預託金は、要求に対する解への提案者による引き渡しに続く異議申立て時間と呼ばれる期間内に異議申立てが検出された場合に、グループの管理下に置かれ、維持される。こうして、異議申立てが検出されると、グループは報奨金及び提案者の預託金を管理する。
【0142】
グループが報奨金及び提案者の預託金を管理した後に、異議申立者の検出に応じて、仲裁者は、グループの他のノードと協力して、異議申立者によるデジタル資産の預託を促進することができる。例えば、異議申立ての検出に応じて、コングレスは、報奨金及び提案者の預託金に等しい入力(例えば、T2_in=報奨金+提案者の預託金)と、報奨金、提案者の預託金、及び異議申立者の預託金の合計に等しい出力(例えば、T2_out=報奨金+提案者の預託金+異議申立者の預託金)とを含むトランザクションT2を構築することができる。トランザクションT2は、いつでもグループに支払うように構成される。つまり、トランザクションT2は、コングレス公開キーに支払うように構成される。トランザクションT2は、SIGHASH_ALL|SIGHASH ANYONECANPAYで署名され得る。仲裁者は、他の仲裁者とともに、異議申立者の預託金を入力として追加するために、トランザクションT2を異議申立者に提供できる。例えば、仲裁者は、他のノードと一緒に、トランザクションT2を他のノードに公開できる。
【0143】
トランザクションT2が公開された後に、異議申立者は、異議申立者の預託金を入力としてトランザクションT2に追加する。つまり、異議申立者は、デジタル資産の預託金を(
図12の異議申立者に関する方法1200の動作1204において)提供し、そのような預託金をグループの管理下に置く。より具体的には、異議申立者の預託金は、コングレス公開キーの管理下に置かれる。従って、報奨金、提案者の預託金、及び異議申立者の預託金は、全てグループの管理下に置かれ、コングレス公開キーによって制限される。上記のコングレスの記載で詳細に説明したように、しきい値署名方式により、しきい値数のコングレス・メンバーが、それぞれの秘密キーシェアを使用して、報奨金、提案者の預託金、及び異議申立者の預託金を含むトランザクションの有効な署名を協力して生成できる。提案者の預託金と異議申立者の預託金とが、同じサイズである場合がある。
【0144】
異議申立者は、異議申立ての解にコミットすることもできる。例えば、異議申立者は、例えば命令コードOP_PUSHDATAを使用して、解のハッシュをトランザクションT2に追加できる。
【0145】
トランザクションT2は、メインブロックチェーン・ネットワークにブロードキャストされ、且つ異議申立者の預託金がコングレス公開キーによって制限されるように、メインブロックチェーン・ネットワーク上でマイニングされる。報奨金、提案者の預託金、及び異議申立者の預託金は、グループの独占的管理下に置かれる。
【0146】
こうして、異議申立者は、代替解のエビデンス及び預託金を仲裁者に提供する。仲裁者に関する方法1300の動作1306において、トランザクションT2がメインブロックチェーン・ネットワーク上でマイニングされた後に、仲裁者は、グループの他のノードと協力してゴーストチェーンを展開して異議申立てを解決する。上述したように、ゴーストチェーンは、ゴーストチェーンのマイナーがグループのメンバーであるプルーフオブステーク・ブロックチェーンである。つまり、コングレスのメンバーは、ゴーストチェーンでのマイニングを許可される。プルーフオブワーク・ブロックチェーン・ネットワーク上のメンバー預託金は、コングレスのメンバーがゴーストチェーンでマイニングできるようにするための出資金として機能し、メンバーがマイニングに選択される確率は、預託金の相対額に比例する。
【0147】
(動作1306において)ゴーストチェーンが展開されている間に、仲裁者がグループの他のノードと協力して、ゴーストチェーンのジェネシス・ブロックを作成又は取得することができる。ジェネシス・ブロックは、最後のゴーストチェーン展開による最終ブロック(例えば、ゴーストチェーンが実行され、過去の異議申立てに応答して前回の実行が行われた最後のインスタンスによる末端ブロック)であり得る。このブロックには、ジェネシス支払に関する情報が含まれ得る。ジェネシス支払は、デジタル資産の転送であるが、これは未だ行われておらず、ゴーストチェーンの以前の展開に基づいている。
【0148】
さらに、ゴーストチェーンが展開されている間に、メンバーは、登録を許可されたり、グループからの登録解除を要求したりできる。登録段階の間に、新しいメンバーを登録して、(
図4を参照して上述したように)そのメンバーに秘密キーシェアを割り当てる。新しいメンバーには、ジェネシス・ブロック(現在のしきい値のメンバーによって認証され得る)と登録プロセス中に生成された後続のブロックとが提供される。
【0149】
ゴーストチェーンの実行には、事前登録解除の段階も含まれ得る。この登録解除前の段階の間に、登録解除を要求したメンバーは、特定の個人データの削除の証明を送信できる。このような証明は、メンバー預託金の返却に必要になる場合がある。メンバー預託金の返却を妨げる可能性のある不正行為の証拠は、この段階で送信できる(例えば、新しく登録されたメンバーは、現在のメンバー(複数可)によって事前にコミットされているが、偽物であると疑われるジェネシス・ブロックを送信し得る)。登録解除の手法については、
図8を参照して上記で詳しく説明している。
【0150】
ゴーストチェーンの展開には、グループの他のノードと協力する仲裁者による、裁定(adjudication)操作を含めることができる。裁定操作には、提案者及び異議申立者から証拠を受け取り、その証拠に基づいて異議申立てを解決することが含まれ得る。例えば、受け取った証拠には、最終的な解又は中間結果の一方又は両方が含まれ得る。中間結果は、要求されたタスクを実行するために必要なステップ又は一連のステップの結果であり得る。例えば、中間ステップは、タスクの部分的な作業成果物であり得る。最終的な解は、要求されたタスクを完了する最終的な作業成果物である。証拠は、
図11の提案者に関する方法1100の動作1108において提案者によって、及び
図12の異議申立者に関する方法1200の動作1206において異議申立者によって提出してもよい。場合によっては、最終的な解は、最終的な解に達するために使用される中間結果なしで提供される(例えば、オフチェーン・イベントが発生した、又は発生しなかったという主張は、中間結果なしに提供され得る)。
【0151】
仲裁者及びコングレスの他のノードは、要求に関連するタスクを実行して正しい解を決定することにより、異議申立てを解決することができる。例えば、タスク(例えば、計算又はアルゴリズム)は、オンチェーンで(つまり、ゴーストチェーン自体で)実行され得る。グループは、そのような解をゴーストチェーンで決定された特有の解と比較することで、提案者の解と異議申立者の解とのどちらが正しいかを判断できる。このプロセス中に、グループメンバー(つまり、ゴーストチェーンのマイナー)が計算及び/又は解析を実行して、紛争に関する仲裁を行う。グループメンバーは、このプロセス中にコンセンサスに達し、ブロックに署名する。場合によっては、異議申立ての解決には、提案者の解又は異議申立者の解を受け入れるべきかどうかを決定するためにノード(例えば、コングレスのメンバー)による投票が含まれ得る。これは、例えば、オフチェーン・イベントが発生したか否かを判断する等、解が2つの値のいずれかであるバイナリ解の場合に使用され得る。投票の結果は、オフチェーン・イベントが発生したか否かに関して真であると規定され、正しい解として扱われる場合がある。
【0152】
(グループの他のノードと協力して)仲裁者は、ゴーストチェーンが展開されている間に判断を下す。仲裁者及びコングレスの他のノードが異議申立てを解決するとき(つまり、そのようなノードが解決に関してコンセンサスを形成するとき)に、判断に達したと言うことができる。
【0153】
ブロックチェーンで仲裁の判断に達した後に、仲裁者は、グループの他のノードと協力して最終的なトランザクション(完全に署名されたときにメインブロックチェーン・ネットワークにマイニングされる)を構築する。決済トランザクションとも呼ばれ得る最終トランザクションには、様々なデジタル資産移転;例えば、(i)報奨金+預託金(これは、裁定の過程で成功又は正当であるとみなされたノードに転送され得る);(ii)マイニング手数料(既に実行されているゴーストチェーンマイニングのため);(iii)ジェネシス支払(これは、ゴーストチェーンの以前の実行に基づいて発生するデジタル資産転送であり、且つジェネシス・ブロックから決定される);及び/又は(iv)登録解除したメンバーのメンバー預託金の返却が含まれ得る。
【0154】
このトランザクションには、有用なメタデータも含まれる場合がある。例えば、決済トランザクションは、解をブロックチェーン・ネットワークに戻すことがある。従って、このプロセス中に、グループ(つまり、グループの他のノードと協力する仲裁者)は、裁定の結果をブロックチェーン・ネットワークにコミットできる。グループは、中間計算状態のマークル(Merkle)ルートハッシュをゴーストチェーン上の決定されたオンチェーンとしてブロックチェーン・ネットワークにコミットすることもできる。
【0155】
従って、グループ管理下のデジタル資産は、仲裁者がグループの他のノードと協力して(動作1308において)分配され得る。そのようなデジタル資産の分配は、コングレスに関して(つまり、グループに関して)規定されたしきい値署名方式に従って実行される。上記のコングレスの議論で述べたように、しきい値署名方式は、コングレス公開キーの有効な署名を生成するために、少なくともしきい値数のメンバーが必要となるように構成される。従って、仲裁者は、グループの他のノードと一緒に(つまり、他の仲裁者と一緒に)、仲裁者の秘密キーシェアを使用して最終トランザクションに部分的な署名を追加することにより、デジタル資産の転送に同意することができる。しきい値署名方式の下で必要な少なくともしきい値数の秘密キーシェアを使用して最終トランザクションの有効な署名を作成するまで、他のノードも、それぞれの秘密キーシェアを使用して部分的な署名を追加する。
【0156】
最終トランザクションでデジタル資産を分配する特定の方法は、仲裁の結果に依存する。例えば、異議申立てが成功すると、仲裁者は、他のノードと協力して、少なくとも異議申立者の預託金を異議申立者に転送し、マイニングしたブロックの絶対数に比例して提案者の預託金をゴーストチェーンのマイナーに分配することができる。異議申立てが成功し、異議申立者の解が正しいと判断された場合に、報奨金も異議申立者に転送され得る。こうして、異議申立者は、
図12の異議申立者に関する方法1200の動作1208においてデジタル資産を受け取ることができる。しかしながら、正しい解が特定されないようなバイナリサーチが使用される場合に、報奨金は要求を再び申し立てる要求者に返却され得、異議申立者が回答に基づいて提案を提出できるようにする。あるいはまた、提案者がバイナリサーチによって排除されると、要求者は、異議申立者のコミットを提案として取り扱い、
図10の方法1000の動作1006において動作を再開することができる。つまり、要求者は、異議申立者の提案に基づいて新しいトランザクションT1を構築することができる。このトランザクションは、以前に異議申立者であると見なされていたノードが現在提案者であるとみなされることを除いて、動作1006を参照して上述した通りであり得る。こうして、新しいトランザクションT1は、解のハッシュに対応する解を上述したトランザクションT2で異議申立者によって提供されるものとして与えることにより、異議申立て期間の終了後に異議申立者によってロック解除されるように構築され得る。
【0157】
提案者の作業成果物が有効であると判断された場合に、仲裁者は、他のノードと協力して報奨金及び提案者の預託金を提案者に転送し、マイニングしたブロックの絶対数に比例して異議申立者の預託金をゴーストチェーンのマイナーに分配することができる。こうして、提案者は、
図11の方法1100の動作1110においてデジタル資産を受け取ることができる。
【0158】
要求者は、
図10の要求者に関する方法1000の動作1008において解を受け取る。動作1008において要求者が解を受け取る方法は、異議申立てがなされたかどうかに依存し得る。例えば、異議申立てがなされなかった場合に、提案者は、
図10の方法1000の動作1006を参照して上述したトランザクションT1を使用して、ブロックチェーンに解をコミットした。しかしながら、異議申立てがなされ、ゴーストチェーンによって要求に対する解が決定される場合に、ゴーストチェーン・ノードは、ゴーストチェーンの終了時に(例えば、
図13の仲裁者に関する方法1300の動作1310において)解を要求者に送信してもよい。従って、ゴーストチェーン・プロトコルにより、ゴーストチェーンに参加しているノードは、解を決定すると、解を要求者に自動的に送信することができる。
【0159】
さらに、ゴーストチェーンで判断に達し、トランザクションが構築され、有効に署名された後に、ゴーストチェーンは、(
図13の仲裁者に関する方法1300の動作1310において)終了する。つまり、異議申立てが解決されると、ゴーストチェーンは終了する。ゴーストチェーンが終了すると、異議申立ての解決に関連する情報が、プルーフオブワーク・ブロックチェーン・ネットワークに戻され得る。
【0160】
ゴーストチェーンが終了すると、ゴーストチェーンに更なるブロックをマイニングすることはできない。つまり、典型的なブロックチェーンとは異なり、ゴーストチェーンには末端ブロックがある。ゴーストチェーンは、分岐しないプルーフオブステーク・ブロックチェーンとして実施できる。分岐が存在しないということは、ゴーストチェーンが終了するときに明確な末端ブロック(つまり、グループの全てのノードによって合意された末端ブロック)が存在することを意味する。この末端ブロックの後に、ゴーストチェーンは、目的を果たし、ブロックを追加できなくなる。
【0161】
前述したように、仲裁者(つまり、コングレスのノード)が判断に達したときに、ノードは、上述したようにしきい値署名方式による部分的な署名の追加によって有効な署名のトランザクションが生成されると、メインチェーン上で(動作1308において)ブロードキャストされるトランザクションを構築するために協力する。このトランザクション自体は他者間計算であるため、このトランザクションに寄与するノードは、このトランザクションに参加することに関して、報酬を受け取ることがある。ただし、トランザクションは署名される前に指定されるため、署名に参加することに関する報酬(トランザクションを介したゴーストチェーンへの部分的な署名の送信、及びブロックの実際のマイニングを含む)は、更なるゴーストチェーンが展開されるまで延期される場合がある。そのような延期は、動作1310で提供され得る。より具体的には、末端ブロックは、ゴーストチェーンの将来の展開中にジェネシス支払を処理可能にする情報を含んで構築され得る。このような情報は、最終トランザクションの署名中に作成されたブロック等の、最終トランザクションの構築後に作成されたブロックに起因し得るマイニング手数料の記録であり得る。つまり、ジェネシス支払は、最終トランザクションの署名に寄与したノードに報酬を与えるように規定できる。ゴーストチェーンの末端ブロックは、次のゴーストチェーンの実行の(つまり、ゴーストチェーンが次に展開されるとき)ジェネシス・ブロックになる。従って、将来のジェネシス支払のために、末端ブロックに記録が作成される。直ぐ上で示した実施態様によると、メンバーは、ゴーストチェーンの実行中に登録/登録解除を行うが、これは異議申立てによってトリガーされ得ることに留意されたい。代替の実施態様では、定期的な間隔又は他の条件下での登録/登録解除も可能である。これには、この目的専用のゴーストチェーンのスケジュール調整された実行が含まれる場合があり、これは、裁定及び判断段階がないことを除いて、上述したゴーストチェーン展開と同様である。この場合に、マイニング手数料は、登録の見返りとして必要となる「登録手数料」から少なくとも部分的に支払われ得る。
【0162】
また、上述した方法1300では、最初のゴーストチェーンの実行ではないゴーストチェーンの実行について説明していることに留意されたい。つまり、方法1300は、過去のある時点で展開されていたゴーストチェーンの展開を説明しており、ゴーストチェーンに対してジェネシス支払を含む末端ブロックが既に存在する。方法1300は、第1のゴーストチェーンを展開できるように修正することができる。例えば、ゴーストチェーンが初めて展開されるとき、別の方法でジェネシス・ブロックを確立できる。例えば、ジェネシス・ブロックは、最初に信頼された関係者によって提供され得る。
【0163】
プルーフオブステークベースのブロックチェーンを使用して異議申立てを仲裁することにより、ゴーストチェーンの解は、プルーフオブステークにより、より定期的なブロック生成が可能になり、且つ高い頻度でブロック生成を可能にするように構成できるため、プルーフオブワーク・ブロックチェーン・ネットワーク自体でそのような仲裁を行うよりも速い解決策を提供できる。さらに、メインブロックチェーン自体ではなくゴーストチェーン上でこのような仲裁操作を実行することにより、メインブロックチェーン・ネットワークからタスクが押し出されるため、メインブロックチェーン・ネットワークの負荷が軽減される。
【0164】
さらに、ゴーストチェーンの一時的な性質(つまり、ゴーストチェーンが本質的に一時的なものであり、終了するという事実)は、典型的に、プルーフオブステーク・ブロックチェーン・ネットワークに影響を与える出資時に何もしない(nothing-at-stake)問題のリスクを回避又は軽減し得る。ゴーストチェーン・ネットワークの一時的な性質により、コングレスは、ゴーストチェーンが終了するまで、ゴーストチェーンのマイナーに対して、預託金を所定の場所に残しておくよう要求することができる。つまり、ゴーストチェーンの実行中に、コングレス・メンバーが自分の出資金を引出しできないようにコングレスを構成できる。
【0165】
上述した例ではビットコインで利用可能な命令コードについて言及しているが、本明細書で説明する方法は、他のタイプのブロックチェーン・ネットワークでも使用できる。
【0166】
上述した方法は、一般にノードで実行されるものとして説明してきたが、この方法の機能は、他のノードとの協働に依存しており、他の場所で実行できる。
【0167】
コングレス及びゴーストチェーンからのイベントロック暗号化
コングレス及びゴーストチェーンを使用してイベントロック暗号化を行う手法について以下に説明する。
【0168】
イベントロック暗号化は、イベントの発生に応じて暗号操作を行うメカニズムを指し得る。例として、タイムロック暗号化は、所与の暗号文が将来の特定の時点に又はそれ以降に復号化されるように、メッセージを「未来に」送信するメカニズムを指す特定のタイプのイベントロック暗号化である。この場合に、イベントは(恐らくランダムな)時間の経過である。従って、イベントの発生を条件とする暗号操作のパフォーマンスを確保するために、イベントロック暗号化を使用できる。実行できる暗号操作の例には、暗号文の復号化、デジタル署名されたメッセージ又はデータの認証等が含まれる。例えば、本明細書で説明する技術を利用して、例えば、Bitanksyらの、“Time-Lock Puzzles from Randomized Encodings”で議論されたように、知識型暗号化(witness
encryption)の文脈で提示される問題を解く効率を改善できる。
【0169】
例示の目的で、
図9及び
図10に関連して説明したイベントロック暗号化の一部として実行される暗号操作は、イベントの発生の判定を条件とする暗号文の復号化である。しかしながら、様々な実施形態では、
図9及び
図10に示されるものに関連して説明したものの代わりに、又はそれに加えて、他の暗号操作を行ってもよい。一般的に言えば、イベントが発生したと判定すると、そのような暗号操作等の1つ又は複数の操作(演算)が実行され得る。
【0170】
イベントロック暗号化を容易にするために使用されるイベントは、オンチェーン・イベント及びオフチェーン・イベントに分類できる。オンチェーン・イベントとは、ブロックチェーンの検査を通じて確認できるイベントを指し、オフチェーン・イベントとは、オンチェーン・イベントではないイベントを指し得る。メッセージが、アイデンティティベースの暗号化方式に従って公開キーAに暗号化され得る。公開キーAは、暗号化を行うエンティティがアクセスできる、対応する暗号秘密キーSkAを有する暗号公開キーであってもよい。コングレス公開キーは、
図1に関連して等、他の箇所で説明したものに従ってもよい。暗号化メッセージ、公開キーA、及び秘密キーSkAによってデジタル署名されたイベント(例えば、時間しきい値)は、フラグ付きトランザクションを介してブロックチェーンに送信され得る。イベントがコングレスによって確認されると、ゴーストチェーンがインスタンス化され、復号化キーを作成できるため、暗号化メッセージの復号化が容易になる。イベントがいつ発生したかを検出するための様々な手法を以下で議論する。
【0171】
図4に関連して等、他の箇所で説明したように、エンティティは、デジタル資産をコングレスプールに預託し、それに応じて、コングレス110への秘密キーシェアを受け取ることができる。いくつかの実施形態では、エンティティが受け取るシェアは、預託したデジタル資産の金額及び/又は価値に比例し得る。秘密キーシェアは、コングレスがコングレスに関連する公開キーによって制限されたデジタル資産を管理するしきい値署名方式で利用され得る。コングレス公開キーは、秘密キーシェアと引き換えにコングレス110のメンバーがコングレスプールに預託したデジタル資産、及びコングレス110のメンバー又は非メンバーが秘密キーシェアの取得以外の理由で預託したコングレスプールに関連するアドレスに預託された(つまり、コングレスの全体的、部分的、又は条件付き管理下に置かれた)デジタル資産とを制限する。非メンバー又はメンバーは、様々な理由でコングレスに関連するアドレスにデジタル資産を預託する場合がある。例えば、コングレスに関連するアドレスにデジタル資産を預託する理由は、イベントの発生を検出した際に1つ又は複数の命令の実行に関する手数料を提供するためである。
【0172】
ゴーストチェーンのマイナーは協力して復号化キーを作成できる。一般に、ゴーストチェーン904は、紛争を単に解決するだけでなく、何らかの理由で展開できる。ゴーストチェーンはインスタンス化され、復号化キーの作成に使用される情報を共有するための追加専用の掲示板として機能する。コングレスのメンバーは、ゴーストチェーンのマイナーになり得る。
【0173】
いくつかの実施形態では、しきい値暗号化及び復号化を行うための方法は、本明細書に記載した技術に従って説明され得る。エンティティは、アイデンティティベースの暗号化方式に従って暗号化を行うことができる。例えば、エンティティは、メッセージをエンティティに関連する暗号公開キーに暗号化でき、この暗号化は、コングレス公開キーをアイデンティティベースの暗号化方式のシステム全体の公開キーとして利用する。アイデンティティベースの暗号化方式(scheme:スキーム)は、「Weilペアリングによるアイデンティティベースの暗号化」においてBoneh及びFranklinによって説明されたものに一致し得る。従って、エンティティは、システム全体の公開キーを使用してメッセージを暗号公開キーに暗号化できる。エンティティは、対応する暗号秘密キーにアクセスでき、システム全体の公開キーはコングレス公開キーになり得る。
【0174】
トランザクションを、プルーフオブワーク・ブロックチェーン・ネットワークにブロードキャストでき、このトランザクションは、アイデンティティベースの暗号化方式に従った暗号化メッセージ、メッセージ公開キーA(つまり、アイデンティティベースの暗号化方式の下で、メッセージを暗号化した暗号公開キー)、暗号化メッセージの復号化をトリガーするイベント、及び手数料を含み得る。いくつかの実施形態では、メッセージ公開キーAは、署名キーSkAにアクセスするエンティティに関連付けられ、メッセージ公開キーA及び署名キーSkAは、それぞれ非対称キーペアの公開キー及び秘密キーである。トランザクションには、秘密署名キーSkAを使用してデジタル署名されたデータがさらに含まれる場合がある。例えば、暗号化メッセージを復号化するための条件のセットは、秘密署名キーSkAを使用してデジタル署名され、(例えば、メッセージ公開キーA及び秘密署名キーSkAが非対称キーペアを形成する場合に)復号化キーを導出する前にメッセージ公開キーAを使用してデジタル署名の有効性が検証される。一般的に言えば、条件のセットには、(例えば、時間ベースのイベントに応答して)復号化をいつ行うべきか等の情報や復号化を行うべき方法が含まれ得る(例えば、公開キーのセットSに対応する秘密キーのセットへのアクセス権を有する1つ又は複数のエンティティが復号化キーを利用できるように、公開キーのセットSの下で復号化キー自体への寄与(contributions)の有無を暗号化する必要がある)。イベントは、満たされたときに、復号化キーを利用可能にすることによって暗号化メッセージを復号化可能にすることを示すイベント又は条件であり得る。手数料は、コングレス110の公開グループアドレスに関連するアドレスへのデジタル資産の転送のためであり得る。手数料は、暗号化メッセージのイベントロック復号化の実行に協力し参加するコングレスのメンバー間で分配され得る。
【0175】
場合によっては、イベントの発生の検証時に、暗号化メッセージを復号化及び/又は復号化可能にすることが暗黙的に理解され得る。他の場合では、トランザクションは、暗号化メッセージに関連して1つ又は複数の操作(演算)を行うための命令をさらに含む場合がある。例えば、命令は、メッセージの復号化及び復号化されたコンテンツの認証を行うことであり得る。他の実施形態において、命令は、資産を所有者に効果的に転送する所有権情報(例えば、秘密キー)を含み得るメッセージの復号化を行うことであり得る。
【0176】
メインブロックチェーン上でイベントが発生したというコンセンサスに達したときに、ゴーストチェーンを展開して、暗号化メッセージを復号化するために使用され得る復号化キーを生成できる。一般に、オンチェーン・イベントの場合に、イベントが発生したときにコンセンサスに達するが、オフチェーン・イベントの場合に、しきい値数の証明が確認されたときにコンセンサスに達し得る。従って、ゴーストチェーンを展開できる。ゴーストチェーンは、
図9~
図13に関連して説明したもの等、本開示の他の箇所で説明したものに一致し得る。ゴーストチェーン904は、ゴーストチェーンの以前のインスタンス化による最終ブロックであるジェネシス・ブロックでインスタンス化され得る。多くのブロックがマイナーによってゴーストチェーンに追加され、復号化キーが導出される。
【0177】
ゴーストチェーンに追加されたブロックを使用して、暗号化メッセージを復号化するために使用可能な復号化キーを作成できる。必要な量をゴーストチェーンブロックに含めると(例えば、復号化キーを生成できる場合)、メインブロックチェーン902に資金を分配する効果がある最終トランザクションを構築して署名することができる(例えば、ゴーストチェーンのマイニングに参加するノードには、復号化キーを作成するために支払われる場合がある)。場合によっては、復号化キーは、目的の受信者に関連する公開キーを使用して暗号化され、暗号化された形式でゴーストチェーン904に送信され得る。対象の受信者は、対応する秘密キーを使用して、復号化キーを暗号手法によって導出できる。場合によっては、この情報はメインブロックチェーンに公開される場合がある。
【0178】
最終トランザクションが構築及び署名された後に、ゴーストチェーン904は終了し、構築されたトランザクションがメインブロックチェーン902にマイニングされる。ゴーストチェーン904が終了するため、典型的なブロックチェーンとは異なり、ゴーストチェーン904は末端ブロックを有する。ゴーストチェーン904の最後のブロックであるこの末端ブロックは、復号化キーを導出するか、指定された他の操作の完了時に発生し、メインブロックチェーン902上で資金を分配し、ゴーストチェーンのマイナーに報酬を与えるために資金を分配する結果のトランザクションは、有効に署名される。
【0179】
一実施形態では、代替的に、復号化キーは、サイドチェーンを使用して導出してもよい。サイドチェーンとは、継続的に実行されるプルーフオブステーク・ブロックチェーンを指し、復号化キーの導出時に終了するようには構成されていない。サイドチェーンは、引き続き動作し、復号化キーの導出以外の様々なタスクを実行するように構成できる。一実施形態では、サイドチェーンは、暗号キーの導出を含むがこれに限定されない複数の活動を促進するように構成されたプルーフオブステーク・ブロックチェーンである。マイナーによって多くのブロックがサイドチェーンに追加され、復号化キーが導出される。サイドチェーンに追加されたブロックを使用して、暗号化メッセージを復号化するために使用可能な復号化キーを作成できる。必要な量をサイドチェーンブロックに含めると、復号化キーを取得できる場合がある。
【0180】
イベントは、一般に、オンチェーン・イベント又はオフチェーン・イベントに分類され得る。オンチェーン・イベントとは、ブロックチェーンから取得可能な情報に基づいて発生又は非発生となり得るイベントを指すことができる。例えば、ブロックチェーンから取得できる情報には、1つ又は複数のトランザクションの発生に関する情報(例えば、特定の関係者から別の関係者へのデジタル資産の転送、特定数の転送、転送される特定の金額等)、トランザクションが発生したときのタイムスタンプ等のトランザクションに含まれる情報を含めることができ、又はブロックの高さ等のブロックヘッダーの情報を含めることができる。一般的に言えば、オンチェーン・イベントに関するコンセンサスは、コングレスのメンバーによって迅速且つ効率的に達することができる。オンチェーン・イベントの場合に、TEEは、ブロックチェーン上の確認済みブロックにおいて必要なイベントを確認した場合に、内部に保持されているキーシェアを使用して復号化キーの作成に寄与する。
【0181】
オフチェーン・イベントとは、ブロックチェーンの外部の情報に基づいて発生又は非発生となり得るイベントを指し得る。オフチェーン・イベントには、コングレスのメンバーが決定を下すことができる情報が含まれ得る。例えば、オフチェーン・イベントは、人が死亡したという判定を下す場合がある。イベントが発生したとの判定に応じて、復号化キーが生成される(又は、暗号化メッセージの復号化が発生する)。一般的に言えば、TEEは、オフチェーン・イベントが発生したかどうかを評価しない。代わりに、コングレスのノードが、イベントが発生したかどうかを評価し、イベントの発生又は非発生に対する証明書を発行し、且つノードのみがアクセスできる秘密キーを使用してその証明書に署名することにより、イベントの発生又は非発生を検証したことを証明することができる。例えば、メンバーの保証金が転送されたアカウントに対応する公開キーを使用して、証明書にデジタル署名し、暗号によって検証できる。しきい値の証明書の確認に関してコンセンサスに達し、上述したようにトランザクションが構築され、署名され得る。
【0182】
一実施形態では、イベントロック暗号化は、例えば、上述した様々な実施形態に関連して、メインチェーン及びブロックチェーンを少なくとも部分的に使用して実施され得る。サイドチェーンを使用して1つ又は複数の暗号操作(例えば、復号化キーの導出)を行うように構成された実施形態では、復号化キーの作成をトリガーするオンチェーン・イベントは、メインブロックチェーン又はサイドチェーンに関するイベントであり得る。例えば、しきい値時間で復号化キーを使用可能にするタイムロック暗号化の場合に、しきい値時間の経過は、メインブロックチェーン又はサイドチェーンにマイニングされたブロックで検出されたタイムスタンプに基づいて検出され得る。さらに、サイドチェーンの場合に、オフチェーン・イベントの発生に関する証明書をメインチェーン又はサイドチェーンのいずれかにマイニングできる。場合によっては、証明書がメインチェーン又はサイドチェーンに送信されるかどうかは、メインチェーン又はサイドチェーンが、より高速でより定期的なブロック生成をしているという判断に基づき得る。より高速でより定期的なブロックを生成する利点は、ブロックの確認にかかる時間が短縮されることである。さらに、ゴーストチェーンを使用して復号化キーを作成する様々な実施形態では、証明書がメインチェーンに送信され、ゴーストチェーンは、十分な証明書が確認されたことに応じてインスタンス化され得ることに留意されたい。
【0183】
ここで
図14を参照すると、
図1400は、本開示の様々な手法を実行するために利用され得るブロックチェーン1402を示している。いくつかの実施形態では、ブロックチェーン902は、ブロックベースのプルーフオブワーク分散型台帳である。
【0184】
いくつかの実施形態では、メッセージ1404は、データ、情報等を含むことができ、これらは、デジタル形式であり、且つ送信者がイベントロック暗号化方式の下で暗号化し、イベントの発生時にメッセージが復号化可能及び/又は復号化されるようにする。メッセージ1404は、コングレス公開キー1406を利用するアイデンティティベースの暗号化方式に従って暗号公開キー1408に暗号化され得る。暗号公開キー1408は、イベントロック・メッセージを生成するエンティティにアクセス可能な対応する暗号秘密キー1422を有し得る。コングレス公開キー1406は、
図14に示されるコングレス1410に関連する非対称公開キーであってもよい。
図14に示されるコングレス1410は、本開示の他の箇所で説明したコングレスに一致し得る。このコングレスは、オンチェーン・イベント及びオフチェーン・イベントの発生を検証するために利用できる。メッセージ1408は、コングレス公開キー1406を利用するアイデンティティベースの暗号化方式に従って暗号公開キー1408に暗号化され、それにより暗号化メッセージ1414を生成することができる。
【0185】
トランザクション1416は、ブロックチェーン1402にブロードキャストされ、このトランザクションは、暗号化メッセージ1414、送信者公開キー1408、及びイベント1412を含み得る。トランザクションは、メタデータとして、特定の目的に役立つトランザクションとして認識可能にする識別子を含むフラグ付きトランザクションであり得る。イベント1412は、満たされると、暗号化メッセージ1414を復号化可能にすべきことを示すイベント又は条件であり得る。イベント1412は、オンチェーン・イベント又はオフチェーン・イベント、或いはそれらの任意の組合せであり得る。イベントは、本開示の他の箇所で説明したオンチェーン・イベント及びオフチェーン・イベントに一致し得る。イベント1412は、TRUE(真)又はFALSE(偽)ステートメントに評価され得る述語としての表現等、様々な形式でエンコードしてもよい。例えば、イベント1412は、指定された時間の経過であり得、その後、暗号化メッセージ1414は受信者1420によって復号化可能でなければならない。イベント1412は、メッセージを暗号化するエンティティによってデジタル署名され得る。デジタル署名は、暗号化メッセージ1414の生成に使用される送信者公開キー1408に対応する、非対称秘密キーである送信者秘密キー1422を使用して生成され得る。送信者公開キー1408は、トランザクション1416に含めてもよく、イベント1412で生成されたデジタル署名が本物であることを暗号によって検証するために利用され得る。いくつかの実施形態では、トランザクション1416は手数料も含む。手数料は、コングレスの公開グループアドレスに関連するアドレスへのデジタル資産の転送1410のためであり得る。手数料は、暗号化メッセージのイベントロック復号化の実行に協力し参加するコングレスのメンバー間で分配され得る。イベントロック・メッセージを生成するための方法及びプロセスは、
図15に関連してより詳細に説明する。
【0186】
コングレスのメンバー1410が、イベントが満たされたことを検出すると、ゴーストチェーンを展開して復号化キーを作成できる。ゴーストチェーンは、
図9~
図13に関連して議論したもの等、本開示の他の箇所で説明したものに一致し得る。ゴーストチェーンは、イベントロックされた暗号化メッセージを復号化すべきであることを示すイベントが発生したことをノード(例えば、コングレスのメンバー)が判定した後にインスタンス化できる。ゴーストチェーン904は、ゴーストチェーンの以前のインスタンス化による最終ブロックであるジェネシス・ブロックでインスタンス化され得る。マイナーによって多くのブロックがゴーストチェーンに追加され、復号化キーの作成が容易になる。
【0187】
復号化キーが作成されると、トランザクションが、構築され、ゴーストチェーンで署名される。トランザクションは、メインブロックチェーン902に資金を分配する効果を有するトランザクションであり得る。例えば、ゴーストチェーンのマイニングに参加するノードは、イベントが発生したと判定されると、1つ又は複数の操作(例えば、復号化キー1418の作成及び/又は分配)を行うために支払いを受ける。場合によっては、復号化キー1418は、1人又は複数の特定の関係者に利用可能にされ得る。例えば、暗号化メッセージを目的の受信者のみが復号化できるようにする場合を考える。コングレス1410のメンバーに属するTEEは、イベントの発生を検出すると、復号化キーのそれぞれのシェアを生成し、それらのシェアを目的の受信者に関連する公開キーで暗号化し、それらの暗号化されたシェアをゴーストチェーンに含めることができる。従って、目的の受信者は、対応する秘密キーを利用して、復号化キーへのアクセスを得ることができる。受信者1420は、復号化キー1418を受信するエンティティに代わって、エンティティ又はコンピューティング・エンティティを参照することができる。復号化キー1418を利用して暗号操作を行い、受信者1420が、ブロックチェーン1402を介して受信者1420に利用可能になる暗号化メッセージ1414を復号化できる。場合によっては、受信者は、ユーザグループやさらに一般社会等の複数のエンティティを参照することができる。例えば、復号化キーはメインチェーンに公開され、だれでも復号化キーを取得し、暗号化メッセージを復号化できる。復号化キーを取得し、且つ復号化キーを使用して暗号化メッセージの復号化を行うための方法及びプロセスは、
図16に関連してより詳細に説明する。
【0188】
ここで
図15を参照すると、イベントの発生に基づいて復号化可能になり得るイベントロック・メッセージを作成する例示的な方法1500が示されている。方法1500は、ブロックチェーン・ネットワーク100が動作するブロックチェーン・プロトコルのインスタンスを実行するコンピュータ装置等、任意の適切なシステムによって実行され得る。この方法は、ノード104によって実行され得る。この方法を使用して、例えば、メッセージが暗号化され、指定された時間に達するか又は経過すると、暗号化メッセージが復号化可能になる/又は復号化されるタイムロック暗号化を行う手法を実施することができる。
【0189】
システムは、暗号公開キー及び対応する暗号秘密キーを取得することができる(1502)。システムは、Boneh-Franklinのアイデンティティベースの暗号化方式等のアイデンティティベースの暗号化方式に従って、メッセージを暗号公開キーに暗号化することができる(1504)。暗号化は、「Weilペアリングによるアイデンティティベースの暗号化」においてBoneh及びFranklinによって説明された手法に従って実行され得る。暗号化は、以下に説明する方法等の楕円曲線暗号を使用して実行され得る。メッセージを暗号化すると、暗号化メッセージ又は暗号文が生成され得る。
【0190】
システムは、復号化の1つ又は複数の条件を指定するイベントに関してデジタル署名を生成することもできる(1506)。条件は、例えば、(タイムロック暗号化において)復号化をいつ行うべきかの時間を示し得る。場合によっては、TEEが出力する前に復号化キーへの寄与を暗号化する必要があるかどうか、及びその場合に暗号化に使用すべきキーのセットを条件で指定することもできる。復号化キーへの寄与を含むトランザクションは、アイデンティティベースの暗号化方式に従って、メッセージを暗号化するために利用される暗号公開キーに対応する暗号秘密キーを使用してデジタル署名してもよい。デジタル署名の真正性は、暗号公開キーを使用して暗号によって検証でき、暗号公開キーは、トランザクションの一部としてプルーフオブワーク・ネットワークに送信され得る。いくつかの実施形態では、デジタル署名は、ノンス(nonce)等の追加データを介して生成してもよい。
【0191】
いくつかの実施形態では、システムは、暗号化メッセージ、メッセージを暗号化した公開キー、暗号化メッセージを復号化すべき条件を示すイベント、少なくともイベントに関する対応するデジタル署名、及び手数料を含む1つ又は複数のトランザクションをプルーフオブワーク・ブロックチェーン・ネットワークに送信する(1506)。イベントは、イベントが発生したかどうかに関してコングレス110がコンセンサスに達することができるように、オンチェーン・イベント又はオフチェーン・イベントであり得る。オフチェーン・イベントの場合に、イベントの発生に対するしきい値数の証明書が確認されたというコンセンサスに応じて、復号化が発生し得る。(例えば、撤回が可能なシステムにおいて)一定の期間に亘って、しきい値を維持することを要求する等、復号化を行うための追加条件があり得る。条件は要求者によって指定され、上述した1つ又は複数のトランザクションにおいてエンコードされ得る。例えば、タイムロック暗号化の場合に、イベントは(恐らくランダムな)時間の経過であり得、これは、オンチェーン情報を使用して判定及び検証可能である。手数料は、コングレス110の公開グループアドレスに関連するアドレスへのデジタル資産の転送のためであり得る。手数料は、暗号化メッセージのイベントロック復号化の実行に協力し参加するコングレスのメンバー間で分配され得る。場合によっては、1つ又は複数のトランザクションは、復号化に加えて又は復号化の代わりに、1つ又は複数の操作(演算)を行う必要があることを示す場合がある。
【0192】
いくつかの実施形態では、方法1500は、「Weilペアリングによるアイデンティティベースの暗号化」においてBoneh及びFranklinによって説明されているようなアイデンティティベースのしきい値スキームに従って実施され、方法1500に関連して説明した手法及び本開示の他の箇所で説明した手法を使用して向上した効率性及び信頼性を提供し得る。いくつかの実施形態では、方法1500は、双線形マッピングe:G
1×G
1→G
2及びG
1のジェネレータPを含むG
1及びG
2が存在すると仮定し得る。一実施形態では、G
1及びG
2は両方とも同じ素数位数qの有限巡回群であり、離散対数問題はG
1及びG
2上で困難であると想定される。さらに、コングレス公開キーP
pub及び対応する秘密キー
【数4】
(つまり、sは、P
pub=s×Pとなるように、セット{1,2,…,q}からランダムに引き出される)を想定する。イベントロック暗号化のパフォーマンスを(例えば、ユーザに代わって)要求するシステムは、システムがアクセスできる対応する秘密キーを有する公開キーAを指定できる。従って、メッセージmを公開キーAに暗号化する暗号化関数は次のようになり得る。
【数5】
従って、暗号文c=(u,v)を生成できる。
【0193】
ここで
図16を参照すると、この図は、イベントロック復号化の例示的な方法1600を示している。
図16の方法1600は、コングレスのノード等の1つ又は複数のコンピュータシステムが協力して実行することができる。方法1600は、
図15に関連して説明したトランザクションが、送信され、ブロックチェーン・ネットワークで確認された後のある時点で実行することができる。1つ又は複数のトランザクションには、暗号化メッセージ、目的の受信者に関連する公開キー等の暗号キー等が含まれ得る。例えば、第1のトランザクションには、暗号化メッセージ、暗号キー、暗号化メッセージをいつ復号化可能にすべきかを示すイベント又は条件が含まれ、第2のトランザクションには、第1のトランザクションで指定されたイベント又は条件の発生時に、復号化キーの生成に関連して分配され得るコングレスへの手数料が含まれ得る。
【0194】
コングレスのメンバー、又はより一般的にはブロックチェーン・ネットワークのノード等のシステムは、上述したトランザクションに関連するイベントの発生を検出することができる(1602)。イベントは、オンチェーン・イベント又はオフチェーン・イベントであってもよい。オンチェーン・イベントの場合に、TEEは、ブロックチェーンにおいて要求されたイベントを確認した場合に、内部に保持されているキーシェアを利用して、復号化キーの作成に寄与する。場合によっては、確認済みトランザクションでオンチェーン・イベントを監視する必要がある。オフチェーン・イベントの場合に、オフチェーン・イベントが実際に発生したことを示す信頼できる指標であると考えられるコンセンサスがオンチェーン・イベントで得られる場合がある。例えば、対応するオンチェーン・イベントは、特定のフラグ付きトランザクションをブロックチェーンに送信することによって、オフチェーン・イベントが発生したと信じているしきい値のコングレス・メンバーが通知を受けたことであり得る。場合によっては、コングレス・メンバーが、オフチェーン・イベントが発生していないと後で判定した場合に、これらの通知(信号)が撤回される場合がある(例えば、ノードが、後で及び/又は追加情報に基づいて、オフチェーン・イベントが実際には発生していないと判定し得る)。そのようなシステムでは、コンセンサスに達するには、フラグ付きトランザクションが一定期間撤回されないままであることがさらに必要であり得る。
【0195】
オフチェーン・イベントが発生したかどうかを判定するための代替方法として、ノードは、イベントが発生したという指標を送信し、デジタル資産の預託金を含めることができる。預託金は、コングレスが、イベントが発生したと判断した場合に(イベントロック・メッセージを復号化するための報酬として預託金された手数料の少なくとも一部の支払いとと同様に)に返却され、コングレスが、イベントが発生しなかったと判定する場合に没収され得る。場合によっては、ノードによって提供される解に異議を申立てることができ、オフチェーン・イベントが発生したかどうかの解決は、イベントが発生した又は発生していないこと受け入れるかどうかに関して、コングレスのメンバーに投票させることによって決定できる。
【0196】
図15に関連して説明したようなトランザクションには、暗号化メッセージ、メッセージがアイデンティティベースの暗号化方式に従って暗号化される公開キーA、及びデジタル署名されたイベントが含まれ得る。イベントに対するデジタル署名の有効性は、公開キーAを使用して検証され得る(1604)。場合によっては、ゴーストチェーンによる復号化キーの作成は、デジタル署名が有効であることを条件とする場合がある。タイムロック暗号化方式では、イベントは、暗号化メッセージをいつ復号化可能にすべきかを示すタイムスタンプであり得る。タイムスタンプに対するデジタル署名の真性を検証することにより、公開キーAに対応する秘密署名キーSkAにアクセスできないエンティティが、復号化キーの作成を早期にトリガーできないようにする。トランザクションに含まれる公開キーAで暗号によって検証可能なデジタル署名を生成することにより、例えば、このトランザクションを、復号化時間より前で、公開キーAに暗号化される任意の暗号文を含む別のトランザクションで「フロントランニング(front running:先立って実行する)」することにより、敵は、復号化キーを早期にリリースするようコングレスを誘導することができなくなる。トランザクションに有効な署名を含めることを要求することにより、トランザクションが公開キーAに対応する秘密署名キーSkAを使用して生成された有効なデジタル署名を含まない限り、コングレスが進行することがないので、「フロントランニング」攻撃は不可能になる。
【0197】
ゴーストチェーンを展開することができ(1606)、コングレスのメンバーがグループの他のノードと協力して、ゴーストチェーンのジェネシス・ブロックを作成又は取得することができる。ジェネシス・ブロックは、以前のゴーストチェーン展開による最終ブロック(例えば、ゴーストチェーンが実行された最後のインスタンスによる末端ブロックであり、以前の実行は、例えば過去の異議申立て又は以前のイベントロック復号化に応じて行われ得る)であり得る。このブロックには、ジェネシス支払に関する情報が含まれる場合がある。ジェネシス支払は、ゴーストチェーンの以前の展開に基づいて、未だ行われていないデジタル資産の転送である。ゴーストチェーンは、
図13に関連する等、他の箇所で説明した手法を使用して展開され得る。
【0198】
少なくともしきい値の秘密キーシェアを保持するグループ間でコンセンサスが得られると、コングレスのノードは、暗号化メッセージを復号化するために使用され得る復号化キーを作成することができる(1608)。復号化キーは、ゴーストチェーンブロックに必要な量を含めることで作成できる。例えば、これは、その数量をトランザクションを介してゴーストチェーンに送信するか、上述したようにその数量をゴーストチェーンに直接マイニングすることで実現できる。例えば、楕円曲線上のペアに基づく方式によれば、復号化キーdA=sQAであり、ここで、QAはメッセージの暗号化に使用される暗号キーから導出可能であり、復号化キーは、しきい値のシークレットシェア(secret sharing)方式に従って、少なくともしきい値数の秘密キーシェア所有者(つまり、コングレスのメンバー)協力によって導出可能である。
【0199】
いくつかの実施形態では、平文形式で復号化キーをメインブロックチェーンに公開することにより、復号化キーを公開することができる。場合によっては、所与の秘密キーのセットを保持しているグループのみが復号化キーにアクセスできるようにし得る。例えば、いくつかのシステムでは、イベントロック・メッセージは、公開キーのセットSに対応する秘密キーのセットの所有者によって復号化可能にすることができる。一例では、復号化キーへの各寄与は、TEEによって出力される前に公開キーのセットSのそれぞれを使用して暗号化され、これらの暗号はブロックチェーンに送信される。公開キーのセットSに対応する秘密キーのセットの所有者が暗号文をどの様に復号化可能にするかの第2の例として、イベントロック・メッセージを含むトランザクションが確認された後に、署名キーSkAが、公開キーのセットSの各公開キーを使用して暗号化され、公開キーのセットSに対応する秘密キーの個々の所有者に分配できる(例えば、これらの暗号化は、別のトランザクションに含めてブロックチェーンにマイニングできる)。さらに、イベントロック・メッセージを含むトランザクションは、TEEによって出力されてブロックチェーンに送信される前に、公開キーA(つまり、署名キーSkAに対応する公開キー)を使用して復号化キーdAへの寄与を暗号化すべきことを規定する場合がある。これが完了すると、署名キーSkAの暗号化の受信者は復号化キーを作成できる。
【0200】
ゴーストチェーンは終了する(1608)。つまり、タスク(例えば、復号化キーの作成)が完了すると、ゴーストチェーンは終了する。ゴーストチェーンが終了すると、復号化キーがプルーフオブワーク・ブロックチェーン・ネットワークに記録され得る。ゴーストチェーンは、
図13に関連する等、他の箇所で説明した手法を使用して終了させることができる。
【0201】
図15に関連して説明した前の例の説明を続ける。暗号化メッセージに対応する暗号文c=(u,v)を復号化する復号化関数は、上述している。秘密キーは、d
A=sQ
Aとして導出することができ、Q
Aは上記のQ
A=H
1(A)として規定される。従って、暗号文cを復号化する復号化関数は次のようになり得る。
【数6】
【0202】
「Weilペアリングによるアイデンティティベースの暗号化」においてBoneh及びFranklinが述べたように、上記は、特に効率的なしきい値復号化方式につながる。暗号文c=(u,v)の復号化は、e(s
iQ
A,u)をブロードキャストすることにより、しきい値の参加者によって実現でき、各参加者はシステム全体の秘密キーにシェアs
iを保持する。次に、マッピングeの基本的特性から次のようになる。
【数7】
ここで、L
iは適切なラグランジュ係数である。e(d
A,u)は、上記のDec(u,v,d
A)演算の2行目に挿入できるようになる。
【0203】
上述した実施形態は、本発明を限定するのではなく例示するものであり、当業者は、添付の特許請求の範囲によって規定されるような本発明の範囲から逸脱することなく、多くの代替実施形態を設計できることに留意されたい。特許請求の範囲において、括弧内に置かれた参照符号は、特許請求の範囲を限定するものとして解釈してはならない。「備える、有する、含む(comprising, comprises)」等の語は、特許請求の範囲又は明細書全体に列挙されているもの以外の要素又はステップの存在を排除するものではない。本明細書において、「備える、有する、含む(comprises, comprising)」は、「含む、有する(includes,including)」又は「から構成される(consists of, consisting of)」を意味する。要素の単数形の参照は、そのような要素の複数形の参照を除外するものではなく、その逆も同様である。本発明は、いくつかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施され得る。いくつかの手段を列挙する装置クレームでは、これらの手段のいくつかは、ハードウェアの同一のアイテムによって具現化され得る。特定の手段が互いに異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せが有利に使用できないことを示すものではない。
【0204】
以下に、出願当初の特許請求の範囲について、実施例として記載しておく。
[実施例1]
コンピュータで実施される方法であって、当該コンピュータで実施される方法は、
アイデンティティベースの暗号化方式に従って、少なくともコングレス公開キーを使用して平文メッセージを暗号公開キーに暗号化して暗号化メッセージを生成するステップであって、前記コングレス公開キーはコングレスのメンバーに関連付けられ、コングレスの各メンバーは、しきい値復号化方式で使用可能な秘密キーシェアへのアクセスを有しており、前記しきい値復号化方式において、少なくともしきい値の秘密キーシェアが、前記コングレスに代わって復号化キーへの部分的な寄与の組合せによって前記復号化キーを導出するのに十分である、生成するステップと、
前記暗号公開キーに対応する暗号秘密キーを少なくとも使用して、イベントの発生時に暗号操作を行うための第1の命令セットに対するデジタル署名を生成するステップと、
暗号化メッセージ、暗号公開キー、少なくとも前記第1の命令セット、第2の命令セットを含む1つ又は複数のトランザクションを、プルーフオブワーク・ブロックチェーン・ネットワークにブロードキャストするステップと、を含み、
前記第2の命令セットは、前記デジタル署名が本物であることを条件として前記イベントの発生についてコンセンサスに達したことに応じて、前記コングレスのメンバーに協力してゴーストチェーンを展開して第1の命令セットを実行するように命令し、前記第1の命令セットの実行には、前記しきい値を満たす複数の秘密キーシェア及び暗号キーから前記復号化キーを少なくとも導出することが含まれ、該復号化キーは、前記暗号化メッセージから前記平文メッセージを得るのに十分な暗号化素材である、
コンピュータで実施される方法。
[実施例2]
前記復号化キーは、楕円曲線上のペアリングに基づくスキームに少なくとも部分的に基づいて導出可能である、請求項1に記載のコンピュータで実施される方法。
[実施例3]
前記アイデンティティベースの暗号化方式は、ボン・フランクリン(Boneh-Franklin)のアイデンティティベースの暗号化方式に従う、請求項1又は2に記載のコンピュータで実施される方法。
[実施例4]
前記1つ又は複数のトランザクションは、前記コングレスに関連する公開グループアドレスへの手数料を含むトランザクションを含み、前記手数料は、前記復号化キーを導出するのに協力する、前記ゴーストチェーンのマイナーの少なくともいくつかに分配される、請求項1乃至3のいずれか一項に記載のコンピュータで実施される方法。
[実施例5]
前記ゴーストチェーンのマイナーが、前記プルーフオブワーク・ブロックチェーンから取得可能な情報に基づいて、前記イベントに関してコンセンサスに達する、請求項1乃至4のいずれか一項に記載のコンピュータで実施される方法。
[実施例6]
前記プルーフオブワーク・ブロックチェーンから取得可能な前記情報は、前記プルーフオブワーク・ブロックチェーンへのトランザクション送信のタイムスタンプである、請求項5に記載のコンピュータで実施される方法。
[実施例7]
前記プルーフオブワーク・ブロックチェーンから取得可能な前記情報は、少なくとも特定の高さの有効なブロックの検出である、請求項5に記載のコンピュータで実施される方法。
[実施例8]
前記コングレスのメンバーが、前記イベントが発生したという少なくともしきい値の証明書を発行することを少なくとも部分的に検出することに基づいて、前記コンセンサスに達し、前記イベントの発生は、前記プルーフオブワーク・ブロックチェーンの外部の情報に少なくとも部分的に基づいて決定され、さらに、前記証明書の真正性は、前記コングレスのそれぞれのメンバーに関連する暗号公開キーを使用して暗号によって検証可能である、請求項1乃至4のいずれか一項に記載のコンピュータで実施される方法。
[実施例9]
前記証明書は、所定の期間に亘って発行される、請求項8に記載のコンピュータで実施される方法。
[実施例10]
前記暗号操作には、1つ又は複数の復号化操作が含まれる、請求項1乃至9のいずれか一項に記載のコンピュータで実施される方法。
[実施例11]
前記暗号操作には、1つ又は複数の認証操作が含まれる、請求項1乃至10のいずれか一項に記載のコンピュータで実施される方法。
[実施例12]
前記コングレスのメンバーのそれぞれの秘密キーシェアが生成され、該秘密キーシェアは、前記メンバーに関連するノード内の信頼できる実行環境内で暗号操作を行うために使用される、請求項1乃至11のいずれか一項に記載のコンピュータで実施される方法。
[実施例13]
実行されると、請求項1乃至12のいずれか一項に記載の方法を実施するようにプロセッサを構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体。
[実施例14]
電子装置であって、当該電子装置は、
インターフェイス装置と、
該インターフェイス装置に結合されたプロセッサと、
該プロセッサに結合されたメモリと、を有しており、
該メモリは、実行されると、請求項1乃至12のいずれか一項に記載の方法を実施するようにプロセッサを構成するコンピュータ実行可能命令を記憶する、
電子装置。
[実施例15]
前記プロセッサは、信頼できる実行環境を含み、前記コンピュータ実行可能命令は、前記信頼できる実行環境内で実行される、請求項14に記載の電子装置。
【外国語明細書】