(57)【要約】コンピュータ実施方法を提供することができる。コンピュータ実施方法は、ｉ）プルーフ・オブ・ステークトークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後、プルーフ・オブ・ステークトークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと、ｉｉ）ノードのグループから、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、プルーフ・オブ・ワーク・ブロックチェーンに基づくステップと、ｉｉｉ）識別されたノードによって提出されたブロックを、プルーフ・オブ・ステーク・ブロックチェーンに含めるステップとを含む。
2020530958.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実施方法であって：
プルーフ・オブ・ステーク・トークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後に、プルーフ・オブ・ステーク・トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと；
ノードのグループから、前記プルーフ・オブ・ステーク・ブロックチェーンへブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、前記プルーフ・オブ・ワーク・ブロックチェーンに基づく、ステップと；
前記識別されたノードによって発行されたブロックを前記プルーフ・オブ・ステーク・ブロックチェーンに含めるステップと；
を含む、コンピュータ実施方法。
【請求項２】
前記ノードを識別するステップは、ネットワークの他のノードが共通ノードを識別するように、所定の基準に従って決定論的に実行される、
請求項１に記載のコンピュータ実施方法。
【請求項３】
前記識別するステップは、暗号仕分けを用いて実行される、
請求項１又は２に記載のコンピュータ実施方法。
【請求項４】
前記ノードのグループは、前記決定されたタイプのアドレスにプルーフ・オブ・ステークトークンを転送した少なくともいくつかのノードを含むが、プルーフ・オブ・ステークトークンの転送の、プルーフ・オブ・ワーク・ブロックチェーンにおける登録に関連付けられる承認期間がまだ経過していない場合、前記決定されたタイプのアドレスにそのプルーフ・オブ・ステークトークンを転送したノードを除外する、
請求項１乃至３のいずれか一項に記載のコンピュータ実施方法。
【請求項５】
前記承認期間は、前記プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである、
請求項４に記載のコンピュータ実施方法。
【請求項６】
前記ブロックは、新たなトークンを生成し、前記トークンの前記転送のレコードを前記プルーフ・オブ・ワーク・ブロックチェーンに追加したノードに、前記新たなトークンの制御を転送する、
請求項１乃至５のいずれか一項に記載のコンピュータ実施方法。
【請求項７】
前記ブロックは、新たなトークンを生成し、前記識別されたノードに前記新たなトークンの制御を転送する、
請求項１乃至６のいずれか一項に記載のコンピュータ実施方法。
【請求項８】
ノードによって発行された払い戻し要求を識別するステップと、前記払い戻し要求を発行した前記ノードを前記ノードのグループから除外するステップとを更に含む、
請求項１乃至７のいずれか一項に記載のコンピュータ実施方法。
【請求項９】
前記払い戻し要求は、前記プルーフ・オブ・ワーク・ブロックチェーンに関連付けられるトランザクションのメタデータから識別される、
請求項８に記載のコンピュータ実施方法。
【請求項１０】
払い戻し要求に関連付けられるアンボンディング期間の後に、前記払い戻し要求を発行したノードに前記払い戻し要求に関連付けられるプルーフ・オブ・ステーク・トークンを返すように、前記プルーフ・オブ・ステーク・ブロックチェーンを更新するステップを更に含む、
請求項８に記載のコンピュータ実施方法。
【請求項１１】
前記アンボンディング期間は、前記プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである、
請求項１０に記載のコンピュータ実施方法。
【請求項１２】
前記識別されたノードではないノードによって提出されたブロックを拒否するステップ、
を更に含む、請求項１乃至１１のいずれか一項に記載のコンピュータ実施方法。
【請求項１３】
前記ブロックを前記プルーフ・オブ・ステーク・ブロックチェーンに含める前に、前記ブロックがバリデータノードのグループによって妥当性確認されているかどうかを検証するステップを更に含み、前記バリデータノードのグループは、前記ノードのグループのサブセットであり、前記バリデータノードは、前記プルーフ・オブ・ワーク・ブロックチェーンに基づいて識別される、
請求項１乃至１２のいずれか一項に記載のコンピュータ実施方法。
【請求項１４】
前記バリデータノードのグループは、前記ブロックを妥当性確認するためにビザンチンアルゴリズムを実行するように構成される、
請求項１３に記載のコンピュータ実施方法。
【請求項１５】
最大の作業量を含む二次ブロックチェーンを識別し、該識別された二次ブロックチェーンからのプルーフ・オブ・ステーク・トークンの分布を、一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次ブロックチェーンと二次ブロックチェーンを前記一次ブロックチェーンと前記二次ブロックチェーンの真のコピーとして識別するステップ、
を更に含む、請求項１乃至１４のいずれか一項に記載のコンピュータ実施方法。
【請求項１６】
実行されると、請求項１乃至１５のいずれか一項に記載の方法を実行するようにプロセッサを構成する、コンピュータ実行可能命令を含む、コンピュータ読取可能記憶媒体。
【請求項１７】
インタフェースデバイスと；
前記インタフェースデバイスに結合されるプロセッサと；
前記プロセッサに結合されるメモリであって、実行されると、請求項１乃至１５のいずれか一項に記載の方法を実行するように前記プロセッサを構成するコンピュータ実行可能命令を記憶したメモリと；  
を備える電子デバイス。
【請求項１８】
前記メモリは、プルーフ・オブ・ワーク・ブロックチェーンとプルーフ・オブ・ステーク・ブロックチェーンとを含むバイナリブロックチェーンを記憶する、
請求項１７に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、分散台帳に関し、より詳細には、まとめてバイナリブロックチェーンと呼ばれ得る、一対の結合ブロックチェーンを提供するための方法及びシステムに関する。本発明は、特に、純粋なプルーフ・オブ・ステーク（ＰＯＳ：proof-of-stake）ベースのブロックチェーンと比較して安全性及び信頼性を向上させながら、従来の純粋なプルーフ・オブ・ワーク（ＰＯＷ：proof-of  work）ベースのブロックチェーンに対して、ブロック生成におけるより高い規則性及び／又はより高い頻度のブロック生成を達成することに適しているが、これに限定されない。したがって、本発明は、新規で有利なブロックチェーン実装のための安全かつ暗号が実施された解決策を提供する。
【背景技術】
【０００２】
本明細書において、「ブロックチェーン」という用語は、電子的なコンピュータベースの分散型台帳のすべての形式を包含するように使用される。これらは、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、コンセンサス（合意）ベースの台帳、共有台帳及びそれらの変形を含むがこれらに限定されない。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され、開発されている。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中型の分散システムとして実装されるコンセンサスベースの電子台帳であり、ブロックはトランザクション及び他の情報により構成される。ビットコインは、ブロックチェーン上の取引を容易にするために、マイナー（minor）が高価な計算を行うプルーフ・オブ・ワーク・ブロックチェーンの一例である。プルーフ・オブ・ワークベースのブロックチェーンは、動作に大量の電力消費を必要とする大規模な計算資源を必要とし、またブロック生成が不規則で遅いという事実のために批判されている。さらに、所与のブロックが承認される（すなわち、復帰（revert）する可能性が十分に低い）とみなされる前に、その所与のブロックの上にいくつかのブロックが構築されなければならない。
【０００４】
プルーフ・オブ・ワーク・ブロックチェーンの代替として、プルーフ・オブ・ステークベースのブロックチェーンが提案されている。ストック・オブ・ステーク・ブロックチェーンネットワークでは、ブロックチェーンは、プルーフ・オブ・ワークではなく、ストック・オブ・ステークによって保護される。プルーフ・オブ・ステークの下では、マイナーは、特別な口座（special  account）にステークを保有する（いくつかのトークンを預ける）。このステークは保証金（security  deposit）と呼ばれることがあり、ブロックをマイニングするためのノードとして選択される確率は、保証金として提供されるデジタル資産の量に比例する。プルーフ・オブ・ステーク・ブロックチェーンネットワークを使用して、プルーフ・オブ・ワーク・ブロックチェーンにおいてマイニングするのに必要とされる計算費用とエネルギーを回避することができる。さらに、プルーフ・オブ・ステーク・ブロックチェーンは、プルーフ・オブ・ワーク・ブロックチェーンよりも、より高頻度かつより規則的なブロック生成を可能にする。また、少なくともいくつかのプルーフ・オブ・ステーク・ブロックチェーンは、フォーク（forking）の可能性が低く、ブロックは、ブロックチェーンに追加されるとすぐに有効に承認され得る。しかしながら、プルーフ・オブ・ステークの単純な実装には、「ｎｏｔｈｉｎｇ  ａｔ  ｓｔａｋｅ」という問題がある。ブロックチェーン内にフォークが存在する場合、ノードのトークンはフォークの両方の部分（すなわち、競合するブロックチェーン）で重複する可能性がある。ブロックを生成するためにランダムに選択されるマイナーは、フォークの両方の部分にブロックを生成することができる。なぜなら、マイナーにとってそうすることが容易であるからであり、また、フォークのどちらの部分が優勢であろうと、マイナーは報酬を受け取るからである。このような曖昧さは、ブロックチェーンネットワークのセキュリティにとって有害であろう。なぜなら、これは、単一のブロックチェーン上でコンセンサスが得られる速度を低下させ、したがって、ブロック内のトランザクションが承認されたと見なされ得るまでに必要な時間を長くするからである。
【０００５】
Ａｌｇｏｒａｎｄは、プルーフ・オブ・ステーク・ブロックチェーンに関連付けられるｎｏｔｈｉｎｇ  ａｔ  ｓｔａｋｅ問題に対処するとされているプルーフ・オブ・ステーク・ブロックチェーンネットワークの一例である。Ａｌｇｏｒａｎｄでは、ブロックを生成するために、コミッティ（committee）が選択される。より具体的には、リーダー（提案者とも呼ばれることがある）及び検証者が、暗号仕分け（cryptographic  sortation）を実行することによって、すべての公開鍵のセットから自己選択される。提案者はブロックを提案し、検証者は、ネットワーク全体の代わりにビザンチン（Byzantine）コンセンサスアルゴリズムを実行して、ブロックを受け入れるべきかどうかを判断する。Ａｌｇｏｒａｎｄを提案しているＭｉｃａｌｉ氏は、（Ｍｉｃａｌｉ，Ｓ．（２０１６）Ａｌｇｏｒａｎｄ：The  efficient  and  democratic  ledger.  axXiv:1607.01341v9（２０１７）［ｃｓ．ＣＲ］“Ｍｉｃａｌｉ”を参照されたい）は、Ａｌｇｏｒａｎｄブロックチェーンに関連するトークンの３分の２以上が誠実なユーザによって保有されている限り、フォークが発生する確率は無視することができ、ブロックチェーンは安全であることを示した。しかしながら、Ａｌｇｏｒａｎｄのセキュリティは、メッセージに署名した後に一時的な秘密鍵（ephemeral  private  keys）が削除されることを条件とする。しかしながら、そのような一時的な秘密鍵の保有者は、そのような鍵を保有することに個人的な経済的利害を有し、Ａｌｇｏｒａｎｄを攻撃に対して潜在的に脆弱にする。さらに、一時的な鍵の使用は、計算費用を導入する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ブロックチェーンの安全性及び信頼性を危険にさらすことなく、フォークを最小化又は除去するとともに、高い頻度で規則的なブロック生成を可能にするようにブロックチェーンを改良することが望ましい。したがって、これらの態様の１つ以上においてブロックチェーン技術を改善する、改善された方法、システム及びデバイスを提供することが望ましい。
【課題を解決するための手段】
【０００７】
本発明は、添付の特許請求の範囲において定義される。したがって、本発明によれば、添付の特許請求の範囲に定義される方法が提供される。
【０００８】
以下により詳細に説明するように、バイナリブロックチェーンが提供され得る。より具体的には、２つのブロックチェーンが維持されてよい。プルーフ・オブ・ステーク・ブロックチェーンは、ノードが一次ブロックチェーンに様々な種類のトランザクションを追加させることを可能にするよう一次ブロックチェーンとして用いられる。これらのトランザクションは、様々なノード間のトークンの転送を可能にすることができ、スマートコントラクトコード等を含んでもよい。ノードは、一次ブロックチェーンに関連付けられる特別なタイプのリポジトリに１つ以上のトークンを保有する（すなわち、一次ブロックチェーン上の特別なリポジトリ内に「ステーク」を保有する）ことによって、一次ブロックチェーン上にブロックを生成する資格を有することができる。特別なリポジトリは、参照の容易性のために、以下では「口座（account）」と呼ばれることがあり、この特別なタイプのアカウントは、保証金口座と呼ばれることもある。
【０００９】
一次ブロックチェーンに加え、二次ブロックチェーンが使用される。二次ブロックチェーンは、プルーフ・オブ・ワーク・ブロックチェーンであり、二次ブロックチェーンは、一次ブロックチェーンより限られたタイプのトランザクションに使用される。例えば二次ブロックチェーンは、保証金（すなわち、プルーフ・オブ・ステーク・トークン）及び／又は一次ブロックチェーンの保証金口座に関連付けられる残高（balance）を記録するために使用されてよく、二次ブロックチェーン上のそのようなレコードは、一次ブロックチェーン上にブロックを生成する（すなわち、マイニングする）資格を有するノードを識別するために使用されてよい。
【００１０】
一次ブロックチェーン上のトランザクションは、二次ブロックチェーン上のトランザクションよりも規則的で大幅に高い頻度で発生する可能性がある。二次ブロックチェーンのプルーフ・オブ・ワークの性質は、一時的な鍵の使用に関連付けられるセキュリティの懸念事項に対処するため、バイナリブロックチェーンは、Ａｌｇｏｒａｎｄのような純粋なプルーフ・オブ・ステーク・ブロックチェーンよりも強化されたセキュリティと信頼性を提供することができる。
【００１１】
したがって、本発明によれば、コンピュータ実施方法が提供され得る。本方法は、同一の基礎となるブロックチェーン・プロトコル、例えばプルーフ・オブ・ステーク・プロトコル及びプルーフ・オブ・ワーク・プロトコルを共有しない複数のブロックチェーン又はブロックチェーントランザクションの結合、組合せ、関連付け及び／又はリンクを可能にするように構成され得る。
【００１２】
コンピュータ実施方法は、ｉ）プルーフ・オブ・ステーク・トークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後に、プルーフ・オブ・ステーク・トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと、ｉｉ）ノードのグループから、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、プルーフ・オブ・ワーク・ブロックチェーンに基づく、ステップと、ｉｉｉ）識別されたノードによって発行されたブロックをプルーフ・オブ・ステーク・ブロックチェーンに含めるステップとを含む。
【００１３】
いくつかの実装では、ノードを識別するステップは所定の基準に従って決定論的に実行される。決定論的識別は、ネットワークの他のノードが共通ノードを識別するように実行されてよい。いくつかの実装では、識別するステップは、暗号仕分けを使用して実行される。
【００１４】
いくつかの実装では、ノードのグループは、決定されたタイプのアドレスにプルーフ・オブ・ステークトークンを転送した少なくともいくつかのノードを含むが、プルーフ・オブ・ステークトークンの転送の、プルーフ・オブ・ワーク・ブロックチェーンにおける登録に関連付けられる承認期間がまだ経過していない場合、決定されたタイプのアドレスにそのプルーフ・オブ・ステークトークンを転送したノードを除外する。
【００１５】
いくつかの実装では、承認期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである。
【００１６】
いくつかの実装では、ブロックは、新たなトークンを生成し、トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加したノードに、新たなトークンの制御を転送する。
【００１７】
いくつかの実装では、ブロックは、新たなトークンを生成し、識別されたノードに新たなトークンの制御を転送する。
【００１８】
いくつかの実装では、コンピュータ実施方法は、ノードによって発行された払い戻し要求を識別するステップと、払い戻し要求を発行したノードを前記ノードのグループから除外するステップとを更に含む。
【００１９】
いくつかの実装では、払い戻し要求は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられるトランザクションのメタデータから識別される。
【００２０】
いくつかの実装では、コンピュータ実施方法は、払い戻し要求に関連付けられるアンボンディング期間（unbonding  period）の後に、払い戻し要求を発行したノードに、払い戻し要求に関連付けられるプルーフ・オブ・ステーク・トークンを返すように、プルーフ・オブ・ステーク・ブロックチェーンを更新するステップを更に含む。
【００２１】
いくつかの実装では、アンボンディング期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである。
【００２２】
いくつかの実装では、コンピュータ実施方法は、識別されたノードではないノードによって提出されたブロックを拒否するステップを更に含む。
【００２３】
いくつかの実装では、コンピュータ実施方法は、ブロックをプルーフ・オブ・ステーク・ブロックチェーンに含める前に、ブロックがバリデータノード（validator nodes）のグループによって妥当性確認（validate）されているかどうかを検証する（verifying）ステップを更に含み、バリデータノードのグループは、ノードのグループのサブセットであり、バリデータノードは、プルーフ・オブ・ワーク・ブロックチェーンに基づいて識別される。
【００２４】
いくつかの実装では、バリデータノードのグループは、ブロックを妥当性確認するためにビザンチンアルゴリズムを実行するように構成される。
【００２５】
いくつかの実装では、コンピュータ実施方法は、最大の作業量を含む二次ブロックチェーンを識別し、該識別された二次ブロックチェーンからのプルーフ・オブ・ステーク・トークンの分布を、一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次ブロックチェーンと二次ブロックチェーンを一次ブロックチェーンと二次ブロックチェーンの真のコピーとして識別するステップを更に含む。
【００２６】
本発明によれば、電子デバイスが提供されてもよい。電子デバイスは、インタフェースデバイスと、インタフェースデバイスに結合されるプロセッサと、プロセッサに結合されるメモリとを含む。メモリは、実行されると、本明細書で説明される方法を実行するようにプロセッサを構成するコンピュータ実行可能命令をその上に記憶している。
【００２７】
いくつかの実装では、メモリは、プルーフ・オブ・ワーク・ブロックチェーンとプルーフ・オブ・ステーク・ブロックチェーンとを含むバイナリブロックチェーンを記憶する。
【００２８】
本発明によれば、コンピュータ読取可能記憶媒体が提供されてもよい。コンピュータ読取可能記憶媒体は、実行されると、本明細書で説明される方法を実行するようにプロセッサを構成するコンピュータ実行可能命令を含む。
【図面の簡単な説明】
【００２９】
本発明のこれら及び他の態様は、本明細書で説明される実施形態から明らかであり、それに関連して解明されるであろう。次に、本発明の一実施形態を、単なる例示として、添付の図面を参照して説明する。
【図１】例示的なバイナリブロックチェーンネットワークのブロック図である。
【図２】例示的なバイナリブロックチェーンのブロック図である。
【図３】ノードとして機能し得る例示的な電子デバイスのブロック図である。
【図４】バイナリブロックチェーンプロトコルに従って実行される例示的な方法のフローチャートである。
【図５】デジタル資産を没収する例示的な方法のフローチャートである。
【図６】候補ノードがブロックの生成に参加する資格があるかどうかを判断する例示的な方法のフローチャートである。
【発明を実施するための形態】
【００３０】
ブロックチェーンネットワーク
まず、バイナリブロックチェーンに関連付けられる例示のブロックチェーンネットワーク１００をブロック図の形で図示する図１を参照する。ブロックチェーンネットワーク１００は、公開ブロックチェーンネットワークであってよい。公開ブロックチェーンネットワークは、招待なしに又は他のノードからの合意なしに、誰でも参加することができるピアツーピアのオープンメンバーシップネットワークである。ブロックチェーンネットワーク１００が動作するブロックチェーン・プロトコルのインスタンスを実行する分散型電子デバイスは、ブロックチェーンネットワーク１００に参加することができる。そのような分散型電子デバイスをノード１０２と称することができる。ブロックチェーン・プロトコルは、本明細書で説明されるタイプのバイナリブロックチェーンプロトコルであってよい。
【００３１】
ブロックチェーン・プロトコルを実行し、ブロックチェーンネットワーク１００のノード１０２を形成する電子デバイスは、例えばデスクトップコンピュータ、特定用途向け集積回路（ＡＳＩＣｓ）ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイルデバイス、スマートウォッチのようなウェアラブルコンピュータ又は他の電子デバイスといったコンピュータを含む、様々なタイプのものであってよい。
【００３２】
ブロックチェーンネットワーク１００のノード１０２は適切な技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられるプロトコルに従う。より具体的には、この例では、通信はバイナリブロックチェーンプロトコルに従って起こる。
【００３３】
ノード１０２は、２つのブロックチェーン、すなわち一次ブロックチェーンと二次ブロックチェーンから構成されるバイナリブロックチェーンを維持する。一次ブロックチェーンは、バイナリブロックチェーンのトランザクションの大部分が記録され、それらが含む任意のコードが実行されるブロックチェーンである。例えば一次ブロックチェーンは、あるノードから別のノードにトークンの制御を移すトランザクションを含み、かつ／又はスマートコントラクトを提供するトランザクションを含み得るブロックを含んでよい。トークンは、デジタル資産又は他の電子的又はネットワーク資源であり、例えば将来のコンピュータ資源又は他のタイプの資源の制御を表してよい。スマートコントラクトは、一次ブロックチェーン上に記憶され、かつブロックチェーンネットワーク１００内のノードによって実行され得る、コンピュータプロトコルである。
【００３４】
一次ブロックチェーンは、プルーフ・オブ・ステークによってセキュアにされる。すなわち、ノードが一次ブロックチェーンにブロックを追加する（すなわち、ブロックを「マイニング」する）資格を有するためには、ノードは確かに特定のトークンを「ステーク（掛け金）」として保有しなければならない。これらのトークンは、プルーフ・オブ・ステーク・ブロックチェーンに関連付けられるトークンであるので、保証金又は保証金トークン又はプルーフ・オブ・ステーク・トークンと呼ばれることがある。バイナリブロックチェーンプロトコルは、保証金（すなわち、プルーフ・オブ・ステーク・トークン）を特別なアドレス（すなわち、保証金アドレス）に入れたノードのみ、一次ブロックチェーン上のブロックをマイニングすることを許可する。供託がなされるアドレスは、そのアドレスが所定の又は指定されたタイプのものであるという意味で特別なものとすることができる。例えばアドレスは特別なフラグ、構文、フォーマット等を有してよく、これらは、保証金トークン（すなわち、プルーフ・オブ・ステーク・トークン）を保有するアドレスに使用されるが、他の目的のためにトークンを保有するために使用される他のアドレスには使用されない。一次ブロックチェーンに保証金を預けたノードは、他の基準が満たされている場合（例えばそれらのノードが、それらのノードの保証金（すなわち、以前に預けたそれらのプルーフ・オブ・ステーク・トークン）の払い戻しを要求していないこと）には、一次ブロックチェーンのマイナーとしての役割を果たすことを許容されてよい。
【００３５】
二次ブロックチェーンは、多くの側面で一次ブロックチェーンと異なる。例えば二次ブロックチェーンは、プルーフ・オブ・ワークによってセキュアにされる。すなわち、ノード１０２は、二次ブロックチェーン上のトランザクションを容易にするために、高価な計算を実行することによって、二次ブロックチェーンのマイナーとしての役割を果たすことができる。例えばプルーフ・オブ・ワークの二次ブロックチェーンは、暗号問題を解決するようにマイナーに要求する可能性がある。例えば二次ブロックチェーンのマイナーは、ブロックヘッダが、現在の難しさによって定義される値より小さい数にＳＨＡ−２５６でハッシュするようなナンス（nonce）を見つける可能性がある。プルーフ・オブ・ワークアルゴリズムに必要とされるハッシュパワーは、トランザクションが、それの上にある特定の数のブロックがマイニングされた後は実際に不可逆であると考えられることを意味する。暗号問題を解決するノードは、二次ブロックチェーンのための新たなブロックを生成し、その新たなブロックを他のノード１０２にブロードキャストする。他のノード１０２は、マイナー１０４が実際に暗号問題を解決し、したがって、ブロックが二次ブロックチェーンに追加されるべきであることを受け入れる前に、十分なプルーフ・オブ・ワークを証明したことを検証する。ブロックは、ノード１０２のコンセンサスによって、二次ブロックチェーンに追加される。
【００３６】
また、二次ブロックチェーンは、該二次ブロックチェーンが一次ブロックチェーンよりもブロック生成の頻度が少ないという点でも、一次ブロックチェーンとは異なる可能性がある。以下でより詳細に説明されるように、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上の限られたトランザクションのみを含むようにノードを構成する。例えば一次ブロックチェーン上の必ずしもすべてのトランザクションが、二次ブロックチェーン上で重複されるわけではない。むしろ、バイナリブロックチェーンプロトコルは、限られた目的のために二次ブロックチェーンを使用するようノードを構成する。二次ブロックチェーンは保証金口座残高を記録してよい。
【００３７】
１つ以上のトークンが、二次ブロックチェーン上のブロックのマイニングの成功に対する報酬として、二次ブロックチェーンのマイナーに提供されてもよい。二次ブロックチェーンは限定的に使用されるブロックチェーンであるため、報酬は一次ブロックチェーンに対して行われてよい。すなわち、複数のトークンが、二次ブロックチェーン上のブロックをマイニングしたノードによって制御される一次ブロックチェーン上の口座に、そのブロックのマイニングに対する報酬として追加されてよく、一次ブロックチェーン上の口座残高のこの更新は、二次ブロックチェーン上の関連するブロックが承認された後にのみ起こり得る。さらに、一次ブロックチェーンの容量が大きいことにより、一次ブロックチェーンの取引手数料が低くなる可能性がある。
【００３８】
次に、図２を参照すると、例示的なバイナリブロックチェーン２００が示されている。バイナリブロックチェーン２００は、一次ブロックチェーン２０２と二次ブロックチェーン２０４の両方を含む。図２に図示されるように、一次ブロックチェーン２０２は、二次ブロックチェーン２０４よりも単位時間当たりのブロック数が多い。なぜなら、一次ブロックチェーン２０２は、二次ブロックチェーンよりも高い頻度でブロックを生成するからであり、また、いくつかの実装では、一次ブロックチェーン内のブロックは、（圧倒的な確率で）出現するとすぐに承認されると考えられるためである。すなわち、一次ブロックチェーンは、フォークしないように構成され得る。一次ブロックチェーン２０２は、トランザクションの大部分（少なくともいくつかの実施例では、すべてのトランザクション）を記録するために使用されるが、二次ブロックチェーン２０４は、供託口座残高及び報酬情報（例えば二次ブロックチェーン上でマイニングされたブロックに対するブロック報酬）を記録するためだけに使用される。例えば図２に示される期間では、一次ブロックチェーンは、ＰＢｉ〜ＰＢｉ＋６と示される７つのブロックを追加し、二次ブロックチェーンは、ＳＢｉ及びＳＢｉ＋１と示される２つの二次ブロックを追加する。これらの数字は単に説明の目的で使用され、一次及び／又は二次ブロックチェーン内のブロック数は、図２に示されるものとは異なってよい。一次ブロックチェーン２０２のブロックは一次ブロック（ＰＢ）と呼ばれ、二次ブロックチェーン２０４のブロックは二次ブロック（ＳＢ）と呼ばれることがある。
【００３９】
一次ブロックチェーン２０２は、一般的なトランザクションが高い確率で発生し得るように、即時承認と高頻度のブロック生成を可能にし、一方、二次ブロックチェーン２０４は、一次ブロックチェーン２０２の予想されるマイナーによってなされる保証金のレコードを（プルーフ・オブ・ワークを使用して）セキュアにすることによって、一次ブロックチェーン２０２のフォークを防止する。
【００４０】
Ａノードとして動作する電子デバイス
図３は、バイナリブロックチェーンネットワーク１００（図１）内のノード１０２（図１）として機能し得る例示的な電子デバイス３００の構成要素を示すブロック図である。例示的な電子デバイス３００は、処理デバイスと呼ばれることもある。電子デバイスは、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイルデバイス、スマートウォッチのようなウェアラブルコンピュータ又は別のタイプの形態を含む様々な形態をとってよい。
【００４１】
電子デバイス３００は、プロセッサ３１０、メモリ３２０及びインタフェースデバイス３３０を含む。これらの構成要素は、互いに直接的又は間接的に結合されてよく、互いに通信することができる。例えばプロセッサ３１０、メモリ３２０及びインタフェースデバイス３３０は、バス３４０を介して互いに通信してもよい。メモリ３２０は、本明細書で説明される機能を実行するための機械読取可能な命令及びデータを含むコンピュータソフトウェアプログラムを記憶する。例えばメモリは、プロセッサ３１０によって実行されると、電子デバイスに本明細書で記載される方法を実行させるプロセッサ実行可能命令を含んでもよい。プロセッサ実行可能命令は、プロセッサ３１０によって実行されると、電子デバイスにブロックチェーンネットワーク１００（図１）に関連付けられるバイナリブロックチェーンプロトコルを実装させる命令を含んでもよい。
【００４２】
プロセッサ３１０は、例えば特定用途向け集積回路（ＡＳＩＣ）として実装されてよい。
【００４３】
メモリ３２０は、一次ブロックチェーン２０２及び／又は二次ブロックチェーン２０４又はその一部を記憶することができる。すなわち、メモリ３２０は、一次ブロックチェーン及び二次ブロックチェーンのすべてのブロック又は最新のブロックのようなブロックの一部又はいくつかのブロック内の情報の一部を記憶することができる。
【００４４】
メモリ３２０は、図３では単一のブロックで図示されているが、実際には、電子デバイス３００は、複数のメモリ構成要素を含んでもよい。メモリ構成要素は、例えばＲＡＭ、ＨＤＤ、ＳＳＤ、フラッシュドライブ等を含む種々のタイプのものであってよい。異なるタイプのメモリは異なる目的に適合し得る。さらに、メモリ３２０は、プロセッサ３１０とは別に示されているが、プロセッサ３１０は、組み込みメモリを含んでもよい。
【００４５】
電子デバイス３００は、バイナリブロックチェーンネットワーク１００（図１）内のノード１０２（図１）として機能する。電子デバイス３００は、例えば他のノードによって提出されたブロックを検証すること、一次又は二次ブロックチェーンへの追加のためのブロックを提案すること等のような、バイナリブロックチェーンプロトコルの種々の機能を実行することができる。
【００４６】
バイナリブロックチェーンプロトコル
バイナリブロックチェーンネットワーク１００のノード１０２は、バイナリブロックチェーンプロトコルに従って動作するように構成される。バイナリブロックチェーンプロトコルは、バイナリブロックチェーンプロトコルの活動を管理するルール・セットを定義する。ノードは、他のノードがバイナリブロックチェーンプロトコルに準拠しているかどうかを、例えばバイナリブロックチェーンネットワークの他のノードによって提出されたブロックの妥当性確認をすることによって評価することになる。ノードのうちの１つ以上に関連付けられるプロセッサは、バイナリブロックチェーンプロトコルに従って動作するようにプロセッサを構成するコンピュータ実行可能命令を用いて構成されてよい。
【００４７】
バイナリブロックチェーンプロトコルによると、ノードが一次ブロックチェーンに対してブロックを「マイニング」する資格を有するためには（すなわち、バイナリブロックチェーンネットワーク内で他のノードによって受け入れられることになる、一次ブロックチェーンに追加するためのブロックを提出することを可能にするために）、ノードはまず、保証金（すなわち、プルーフ・オブ・ステーク・トークン）を保証金口座と呼ばれる特別な口座に入れなければならない。保証金は、１つ以上のトークン（これは、供託トークン又はプルーフ・オブ・ステーク・トークンと呼ばれることがある）であり、特別な口座は、決定されたタイプのアドレスを有する口座であってよい。例えばブロックチェーンネットワークに関連付けられる特定の口座が保証金口座であってもよく、他の口座は通常の口座（すなわち、非供託口座）であってよい。保証金口座は、一次ブロックチェーンのマイナーノードのステークを保有するためだけに使用される口座であり、通常の口座は他の目的のために使用されてよい。バイナリブロックチェーンプロトコルは、一次ブロックチェーンのすべてのマイナーが１つ以上のトークンを自分の供託口座に保有することを要求し、一次ブロックチェーンのマイナーになるために、ノードは、トークンを通常の供託口座から保証金口座に移すことができる。
【００４８】
以下に説明されるように、バイナリブロックチェーンプロトコルによれば、一旦、保証金口座への保証金（すなわち、少なくともいくつかのプルーフ・オブ・ステーク・トークン）の移動のレコードを含むブロックが一次ブロックチェーンに追加されると、バイナリブロックチェーンプロトコルを実行するノードは、二次ブロックチェーンに追加された保証金の移動のレコード（すなわち、保証金口座に移されたプルーフ・オブ・ステーク・トークン）を有するように構成される。二次ブロックチェーンに保証金の移動のレコードを追加するノードは、二次ブロックチェーンをマイニングするノードであってもよい。したがって、保証金口座のステータスは、プルーフ・オブ・ワークのブロックチェーンである二次ブロックチェーン上で追跡される。
【００４９】
ノードが、保証金口座への保証金（すなわち、少なくともいくつかのプルーフ・オブ・ステーク・トークン）の移動の後に一次ブロックチェーンにおいてマイニングする資格を有するようになる前に、まず承認期間が経過しなければならない。承認期間は十分に長いので、プルーフ・オブ・ワーク（すなわち、二次）ブロックチェーン上の再編成のリスクは小さい。より正確には、承認期間は、保証金が記録されている二次ブロックチェーンの深さまでの再編成が小規模であるように、十分に長い。承認期間は、二次ブロックチェーンに関連付けられる一定数のブロックであってよい。すなわち、保証金の移動のレコードを含んだブロックの上に、一定数のブロックが二次ブロックチェーンに追加されていると、承認期間が経過したといえる。承認期間が経過すると、保証金の移動を記録したトランザクションは、二次ブロックチェーンで承認されたといわれ、この保証金の所有者は、その後、一次ブロックチェーンでブロックをマイニングする資格を有する。
【００５０】
上述のように、特別な口座（すなわち、保証金口座）は、決定されたタイプのアドレスを有する口座であってよい。例えば保証金口座のアドレスは、通常の口座に使用されず、保証金口座としてのステータスを示すフラグ又は識別子を含んでもよい。
【００５１】
バイナリブロックチェーンプロトコルは、保証金口座と通常の口座に異なるルールを適用するように構成されてもよい。例えば通常の口座に保有されているトークンは、口座保有者の許可があれば直ちに他の口座に移されてよい。しかしながら、保証金口座に保管されているトークンは、払い戻し要求が発行され、払い戻し要求に関連付けられるアンボンディング期間が経過した後にのみ移動させることができる。アンボンディング期間は、二次ブロックチェーン上の所定の数のブロックである。アンボンディング期間の長さは、（二次ブロックチェーン内の）この長さのフォークが無視できる確率で生じるように選択される。したがって、保証金口座に保有されている供託トークンは、払い戻し要求に続いてアンボンディング期間が経過したときにのみ供託者ノードに返される。
【００５２】
ノードが、一次ブロックチェーン上の関連する保証金口座に保証金を預け、二次ブロックチェーンが、保証金口座ステータスを反映するように更新された後（すなわち、保証金の移動のレコードが二次ブロックチェーンにおいて承認された後）、当該ノードは、通常口座への保証金の返却を要求する当該ノードからの払い戻し要求が受け取られるまで、一次ブロックチェーン上でマイニングを行う資格を有する。ノードがマイニングする資格を有するとき、それらはマイニングする資格を有するノードのグループに含まれると考えられてよく、そのグループの所与のノードがブロックをマイニングするために選択される確率は、グループが預けた保証金の総額に対する当該マイナーが預けた保証金の額（すなわち、そのマイナーの保証金口座に保有されているプルーフ・オブ・ステーク・トークンの額）に比例し得る。したがって、より多額の保証金（例えばより多くのプルーフ・オブ・ステーク・トークン）を預けているノードは、より少額の保証金を預けているノードよりも、一次ブロックチェーンのマイナーとして選ばれる可能性が高い。
【００５３】
したがって、一次ブロックチェーンにおいてマイニングする（すなわち、ブロックを生成し、それらのブロックを他のノードに受け入れられるようにする）資格は、保有する保証金の額に基づく。より多くの保証金は、所与のノードがマイナーとして選ばれる見込みを高めるが、ステークを預けている（すなわち、保証金口座に保証金を保有している）ノードは、任意の所与のブロックをマイニングするために選ばれる機会がある。マイナーの選択は、一次ブロックチェーンに対する宝くじ（lottery）で行われるといわれることがある。
【００５４】
バイナリブロックチェーンネットワーク１００の任意のノードは、保証金を預けていない場合（すなわち、それらが何らかのプルーフ・オブ・ステーク・トークンを特別な保証金口座に移していない場合）であっても、二次ブロックチェーン上でマイニングする資格を有してよい。二次ブロックチェーンはプルーフ・オブ・ワーク・ブロックチェーンであるため、二次ブロックチェーンでマイニングする権利は、プルーフ・オブ・ワークを提供することから生じる。すなわち、どのノードも、二次ブロックチェーンのブロックを生成することができ、二次ブロックチェーンの他のノードに対して、それらが暗号パズルを成功裏に解いたことを証明することによって、新たなブロックをマイニングする権利を与えられたことを証明することができる。
【００５５】
一次ブロックチェーンのマイナーは、一次ブロックチェーンにおける報酬を生成する権利を有することができる。例えば一次ブロックチェーン上にブロックをマイニングするマイナーは、新たなトークンを生成することができ、他のノードは、そのマイナーがバイナリブロックチェーンプロトコルに従って動作していると判断した場合に、その新たなトークンが有効であると受け入れるであろう。また、二次ブロックチェーンのマイナーは、報酬を生成するか又は他の方法で受け取る権利を有してもよく、一次ブロックチェーンにおいて報酬を得ることがある。例えば二次ブロックチェーンのマイナーは、一次ブロックチェーン上で（一次ブロックチェーン上でマイナーとして機能する別のノードによって、あるいは二次ブロックチェーン上でマイニングして、一次ブロックチェーン上でもマイニングするノードによって）生成された新たなトークンによって報酬を得ることができる。
【００５６】
いくつかの実装では、ブロックマイニングの報酬は、新たなトークンの形で、一次ブロックチェーンのマイナーに提供されないことがある。代わりに、マイナーは、そのようなマイナーによって作成されたブロックに含まれるトランザクションを行うノードからのみ取引手数料を受け取ることができる。
【００５７】
バリデータノード及び／又はマイナーノードは、バイナリブロックチェーンプロトコルが遵守されていることを確認する。すなわち、上述のプロトコルの違反は、マイナー（トランザクションをブロックに含める前に、それらのトランザクションを検証する者）及び／又は非マイニングのバリデータノード（トランザクションとブロックをブロックチェーンに含める前に、それらのトランザクションとブロックを検証する者）によって検出されることになる。したがって、バイナリブロックチェーンネットワーク１００のノードは、一次ブロックチェーン又は二次ブロックチェーンにブロックを追加すべきであることを受け入れる前に、バイナリブロックチェーンプロトコルが遵守されていることを保証するように構成される。例えばノードは、一次ブロックチェーンのために生成されたブロックが、マイニングする資格のあるマイナー（例えば１）ステークを預けており；２）二次ブロックチェーンに追加され、かつ二次ブロックチェーンで承認されたステークの供託（保証金）のレコードを有しており；３）保証金の返還を試みる払い戻し要求をまだ発行していなかったノード）によって生成されたかどうかを決定することができる。ノードはまた、一次ブロックチェーンに追加するためにブロックを提出したノードが、マイナーとしての役割を果たす資格のあるノードであるかどうかを決定することができる。
【００５８】
不適格なマイナーによって生成されたブロック又はバイナリブロックチェーンプロトコルの他のルールに違反して生成されたブロックは、バイナリブロックチェーンネットワーク１００の他のノードによって拒否されることになる。
【００５９】
次に、図４を参照すると、図４は、バイナリブロックチェーンプロトコルに従って動作するノード１０２によって実行され得る例示的な方法４００を示している。図４の方法４００は、バイナリブロックチェーンネットワーク１００のノード１０２によって実行されるコンピュータ実施方法であってよい。例えばノード１０２のプロセッサは、プロセッサによって実行されると、図４の方法４００を実行するようにプロセッサを構成するコンピュータ実行可能命令（すなわち、プロセッサ実行可能命令）を有するように構成されてよい。
【００６０】
方法４００の動作４０２において、方法４００を実行するノード１０２は、保証金口座に保証金を移すことができ（すなわち、１つ以上のプルーフ・オブ・ステーク・トークンを移すことができ）、あるいは別のノードが保証金口座に保証金を移したことを検出することができる。すなわち、ノード１０２は、通常の口座から、保証金口座に関連付けられる所定のタイプのアドレスに保証金を移すことができ、あるいは他のノードによって行われたそのような移動を検出することができる。移動は、プルーフ・オブ・ステーク・ブロックチェーンである一次ブロックチェーンにおいて行われる。移動は、通常の口座から供託口座に保証金を移すトランザクションＴｐが、一次ブロックチェーンに追加されるブロックに含まれるときに行われる。トランザクションＴｐは、方法４００を実行するノードによって又は別のノードによって準備されたものであってよい。次いで、トランザクションは、一次ブロックチェーンのためのマイナーとして機能するノードによって生成されたブロックに含まれてよい。
【００６１】
トランザクションＴｐを含むブロックを生成するノードは、マイニングする資格を有するノード及び暗号仕分けを通してブロックを生成する機会を割り当てられ得るノードである。マイニングする資格は、特に図５を参照して、以下でより詳細に議論される。マイニングする資格を有するノードのグループの中で、単一のノードが、暗号仕分けと呼ばれるプロセスを通して所与のブロックをマイニングする権利を有するノードとして（動作４０３において）効果的に識別され得る。暗号仕分けの間、ノードは、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するために識別される。このような識別は、バイナリブロックチェーンネットワークの他のノードがすべて共通ノードを識別することができるように、所定の基準に従って決定論的に実行される。例えば暗号仕分けの間に、１つ以上のノードが、マイニングする資格を有するノードのグループからランダムに選択される。より詳細には、リーダーは、前のブロックのような公開データにおける暗号化機能を使用して識別される。検証器セット（verifier  set）は、暗号仕分けを使用して、例えば前のブロックのような公開データにおける暗号化機能を使用して選択されてもよい。暗号仕分けは、Ｍｉｃａｌｉ，Ｓ．，氏による「Algorand:  The  efficient  and  democratic  ledger.  axXiv:1607.01341v9  (2017)  [cs.CR]」に説明されており、その内容は参照によって本明細書に組み込まれる。
【００６２】
識別されたリーダーは、マイニングすべき新たなブロックを提案するので、マイナーと呼ばれることがある。
【００６３】
（動作４０３における）マイナーの識別とバリデータセット（validator  set）は、Ｍｉｃａｌｉ氏によって説明される方法と同様の方法で行われてよいが、適格なマイナーのグループは限られる。特定のノードが、マイニングする資格のあるノードのグループに含まれるかどうかを決定するために、例えば図５の方法５００が動作４０３で実行されてよい。具体的には、適格なマイナーのグループは、１）保証金を預けており（すなわち、１つ以上のプルーフ・オブ・ステークトークンを特別な供託口座に移した）、２）二次ブロックチェーンに追加され、二次ブロックチェーンで承認された、保証金のレコードを有しており、３）保証金の返還を試みる（すなわち、保証金口座に預けた任意のプルーフ・オブ・ステーク・トークンを通常の供託口座に戻すことを試みる）払い戻し要求をまだ発行していないノードのみを含む。通常の口座にトークンを保有している少なくともいくつかのノードは、一次ブロックチェーンのマイナーとして機能する資格を有していないことがある。
【００６４】
また、一次ブロックチェーンにブロックを追加することに参加するノードを識別する際に、二次ブロックチェーンを参照する。すなわち、一次ブロックチェーンの保証金口座にプルーフ・オブ・ステークの形で保証金を保有することだけでは、一次ブロックチェーンでマイニングする資格を有するには不十分であり、二次ブロックチェーンは、保証金がなされたこと（そして、このような指示があるブロックが承認されたこと）も示さなければならない。したがって、動作４０３が実行される時点では、動作４０２において保証金を移動させたノードは、まだ、マイニングする資格を有するノードのグループには含まれない（二次ブロックチェーンは、方法４００のその後の動作において保証金の移動を反映するようにのみ更新されるため）。方法４００を実行するノードが、トークンを一次ブロックチェーン上の保証金口座に移したノードによって生成されたブロックを検出した場合、二次ブロックチェーンが移動を記録するようまだ更新されていない場合（あるいは、レコードを含むブロックがまだ承認されていない場合）、そのブロックは、不適格なノードによって提案されたものとして拒否されるであろう。
【００６５】
動作４０３は、例えば一次ブロックチェーンにブロックを受け入れるかどうかを判断するときに、方法４００を実行するノード１０２による検証動作の一部として実行されてもよい。ブロックが成功裏に検証された場合（例えばブロックが動作４０３で識別されたノードによって提出された場合）、そのブロックは、一次ブロックチェーンに含まれてもよい。例えばこの方法を実行するノードは、この方法を実行するノード１０２に記憶された一次ブロックチェーンのコピーに（動作４０４で）ブロックを追加してもよい。
【００６６】
保証金（すなわち、プルーフ・オブ・ステーク・トークン）が、一次ブロックチェーン上の保証金口座に移された後、動作４０８において、保証金のレコードが二次ブロックチェーンに追加され得る。例えばノード（一次ブロックチェーンをモニタリングしている二次ブロックチェーンのマイナーであってよい）は、保証金の移動のレコードを準備することができ、そのレコードを二次ブロックチェーンのブロックに追加することができる。保証品を移したノードは、そのレコードが二次ブロックチェーンで承認された後にのみ、一次ブロックチェーンでマイニングする資格を有する。すなわち、ノードは、プルーフ・オブ・ワーク・ブロックチェーン上の記録に関連付けられる承認期間が経過した後に、マイニングする資格を有する。承認期間は、二次ブロックチェーンに関連付けられる所定数のブロックである。より具体的には、承認期間は、その後、発生している二次ブロックチェーンの保証金のレコードの深さまでの再編成の可能性が受容可能な程度に小さくなる期間である。二次ブロックチェーンのプルーフ・オブ・ワークの性質により、所定数のブロックが、レコードを含むブロックの上に追加された後、レコードは実際上不可逆になる。保証金の振替のレコードが二次ブロックチェーンに不変的に追加されたことを確実にするために、バイナリブロックチェーンネットワークのノードは、保証金に関連付けられるノードが一次ブロックチェーンでマイニングする資格を有する前に承認期間が経過することを要求してよい。
【００６７】
二次ブロックチェーンのブロックに保証金の場所（placing）のレコードを作るマイナーは、図４の方法４００を実行するノードであってもよく、あるいはバイナリブロックチェーンネットワーク１００内の別のノードであってもよい。方法４００を実行するノードが、二次ブロックチェーンのブロックに保証金の場所のレコードを追加しないか又はレコードを含むブロックを生成しない場合、方法４００を実行するノードは、それにもかかわらず、検証者として参加してもよく、そのレコードが適切にブロックに含まれること及び／又はそのブロックが適切に生成されたこと（例えばマイナーがそのブロックを生成する権利を有することを証明するためにマイナーが提出したプルーフ・オブ・ワークが有効であること）を確実にする。
【００６８】
保証金の場所のレコードが二次ブロックチェーンに追加された後、承認期間が経過した後に、動作４０２においてトランザクションＴｐ内の保証金を移したノードは、一次ブロックチェーンのブロック生成に参加する資格を有する。したがって、動作４１０において、一次ブロックチェーンに更なるブロックを追加することができ、また、更なるブロックを追加する際に、更なるノードは、マイナーとして参加する資格を有するノードのグループから識別されてもよい。動作４１０は、保証金の場所のレコードが二次ブロックチェーンに追加されて承認されているので、動作４０２において保証金を移動させたノードが、動作４１０に参加する資格を有する点を除いて、動作４０３と同様に実行されてよい。（マイニングノード及び／又はバリデータセットの複数のノードのような）一次ブロックチェーン上のブロックの追加に参加するノードを識別するために、暗号仕分けが再び実行されてよい。しかしながら、動作４１０では、暗号仕分けは、異なるノードが動作４１０で選択される可能性が高くなるように、動作４０３とは異なる公開データに基づいて実行される。動作４１０におけるノードを識別する際に、方法４００を実行するノードは二次ブロックチェーンを参照し、識別されたノードが一次ブロックチェーン上の適所に保証金を有することを二次ブロックチェーンが示すこと、そしてこれが二次ブロックチェーンに記録され、その記録が行われたブロックが承認されることを確実にする。したがって、動作４１０における識別は、少なくとも部分的には、プルーフ・オブ・ワーク・ブロックチェーンに基づいている。
【００６９】
動作４１０においてノードを識別する際に、方法４００を実行するノード１０２は、適格なノードのグループを識別してもよく、あるいは所与のノードが適格なノードのグループに含まれるかどうかを判断してもよい。例えば図５の方法５００が動作４１０で実行されてもよい。上述のように、適格なノードのグループは、決定されたタイプのアドレスに（例えば保証金口座に）に保証金を移した少なくともいくつかのノードを含むが、プルーフ・オブ・ワーク・ブロックチェーン上の保証金の移動のレコードに関連付けられる承認期間がまだ経過していない場合に、決定されたタイプのアドレスに保証金を移したノードは除外する。承認期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定数のブロックであってよい。
【００７０】
動作４１２において、方法４００を実行するノード１０２は、一次ブロックチェーン内の識別されたノードによって提出されたブロックを含む。例えばこの方法を実行するノードは、この方法を実行するノード１０２に記憶された一次ブロックチェーンのコピーにブロックを追加してもよい。
【００７１】
図４には図示されていないが、ブロック生成の所与の反復に対して識別されたノードではない他のノードが、ブロックの生成を試みてもよい。この方法を実行するノードは、ブロック生成の所与の反復に対して、識別されたノードではないノードによって提出されたブロックを拒否するように構成される。
【００７２】
さらに、図４には図示されていないが、一次ブロックチェーンにブロックを含める前に、この方法を実行するノードは、ビザンチン合意（ＢＡ：Byzantine  agreement）バリデータセットとも呼ばれるバリデータノードのグループによって、このブロックが検証されたことを確かめることができる。バリデータノードのグループは、マイニングする資格を有するノードのグループのサブセットであってよく、マイニングする資格を有するノードのグループは、二次ブロックチェーンに基づいて識別され得る。すなわち、ノードは、１）保証金を預け、２）二次ブロックチェーンに追加され、かつ二次ブロックチェーンで承認された保証金のレコードを有し、３）預けた保証金を返還するよう試みる払い戻し要求をまだ発行していなかった場合にのみ、ノードはＢＡバリデータセットに包含するための資格を有する。
【００７３】
ＢＡバリデータセットは、Ｍｉｃａｌｉ（２０１７）と同様に動作し、例えばブロックを検証するためにビザンチンアルゴリズムを実行することができる。すなわち、ＢＡバリデータセットのメンバーのみがビザンチンアルゴリズムに参加する。
【００７４】
バイナリブロックチェーンプロトコルは、ブロックを生成するノード（すなわち、マイナーとして機能するノード）が新たなトークンを生成し、その新たなトークンの制御を自分自身に移すことを可能にすることができる。例えば動作４０４又は動作４１２において一次ブロックチェーンに含まれるブロックが、そのブロックをマイニングしたノードに対する報酬を含んでよい。報酬が所定の基準（報酬の量に関する基準等）を満たす場合、報酬は、他のノードがブロックを検証することを妨げない。しかしながら、他のノードは、ブロックを検証するときに、報酬（例えば報酬の量）を評価してもよい。
【００７５】
二次ブロックチェーンは、公開データ記録の限られた目的に使用されるため、二次ブロックチェーン上のブロックのマイナーは、二次ブロックチェーン上でのマイニングにより、一次ブロックチェーン上で報酬を受け取ることができる。例えば一次ブロックチェーンに追加されたブロック（動作４０４又は動作４１２で追加されたブロック等）は、新たなトークンを生成し、その新たなトークンの制御を、二次ブロックチェーン上でマイニングしたノードに移転してもよい。例えば新たなトークンの制御は、二次ブロックチェーンに保証金の振替のレコードを追加したノードに移転されてもよい。任意で、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上のマイニング活動に対する報酬として一次ブロックチェーン上で生成された新たなトークンが、報酬を受け取るノードによってのみ生成されることを要求することがある。これは、一次ブロックチェーンに多額のステークを預ける更なるインセンティブを与え、バイナリブロックチェーンネットワークに対する協調的な攻撃に参加する一次ブロックチェーンのマイナーのインセンティブを低下させるであろう。なぜなら、これは彼らのステークの価値を低下させるからである。また、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上のマイニング活動に対する報酬の一部のみが、一次ブロックチェーン上でマイニングされた任意の所与のブロックにおいて生成され得るように変更されることも可能である。これは、マイナーが任意の所与の時間に彼らの報酬の一部を要求することのみを必要とし、一次ブロックチェーンにおいてより少数のマイナーが、二次ブロックチェーンで成功裏にマイニングした後に、特にブロック報酬を要求する目的のために、トークンを交換することのインセンティブを減らすことになるだろう。さらに、このように報酬の償還を制限することは、合理的なマイナー（rational  miner）のマイニングによって二次ブロックチェーンに配置されることになる保証金の額について、効果的なフロアを作り出す可能性がある。二次ブロックチェーンのマイナーは、十分な保証金を有していない場合に一次ブロックチェーンにおいて報酬を要求し得るよりも早い速さで、二次ブロックチェーンブロックの報酬を得る可能性がある。したがって、合理的なマイナーは、二次ブロックチェーン上のハッシュパワーに比べて十分に大きな保証金を預けることがある。
【００７６】
次に、図５を参照すると、候補ノードが、一次ブロックチェーン上のブロックの生成に参加する（例えばマイニングする）資格を有するかどうかを判断する例示的な方法５００が示されている。候補ノードは、例えば一次ブロックチェーンに追加されるブロックを提案し、そしてその際に、そのようにする資格を有すると主張したノードであってもよい。したがって、方法５００は、一次ブロックチェーン上にブロックを受け入れる前に、妥当性確認又は検証プロセスの一部として実行され得る。方法５００は、例えば図４の方法４００の動作４０３及び／又は動作４１０において実施されてよい。この方法は、図４の方法４００を実行するノード１０２のような、バイナリブロックチェーンネットワーク上のノードによって実行されてよい。
【００７７】
動作５０２において、ノードは、候補ノードが一次ブロックチェーン上で保証金を供託したかどうかを判断する。候補ノードが一次ブロックチェーンに保証金を供託していない場合、候補ノードは（動作５０４に示されているように）一次ブロックチェーン上でマイニングする資格を有さない。動作５０６において、ノードは、保証金のレコードが、プルーフ・オブ・ワーク・ブロックチェーンである二次ブロックチェーン上で承認されたかどうかを判断する。より具体的には、ノードは、供託のレコードを含むブロックが承認されたかどうか（すなわち、承認期間が経過したどうか）を判断する。この判断は、保証金のレコードを含んだブロックの上に追加されたブロックの数に基づいて行われてよい。
【００７８】
レコードが承認されていない場合、候補ノードは（動作５０４で示されるように）一次ブロックチェーン上でマイニングする資格を有さない。
【００７９】
動作５０８において、ノードは、候補ノードから払い戻し要求を受け取ったかどうかを判断する。払い戻し要求は、保証金口座に以前に移された保証金の返還を求める要求である。払い戻し要求が受け取られると、候補ノードは（動作５０４で示されるように）一次ブロックチェーン上でマイニングする資格を有しない。
【００８０】
ノードが、候補ノードが保証金を供託しており、保証金のレコードが二次ブロックチェーン上で承認されており、そして払い戻し要求が受け取られていないと判断した場合、候補ノードは、動作５１０において、一次ブロックチェーン上でマイニングする資格を有すると判断される。
【００８１】
次に、図６を参照すると、払い戻し要求を処理する例示的な方法６００が示されている。方法６００は、図４の方法４００及び／又は図５の５００を実行するノード１０２のような、バイナリブロックチェーンネットワーク１００のノードによって実行されてよい。
【００８２】
動作６０２において、方法６００を実行するノード１０２は、バイナリブロックチェーンネットワークのノードによって発行された払い戻し要求を識別する。払い戻し要求は、一次ブロックチェーンの保証金口座に保証金を以前に移したノードによって発行されるものであり、保証金の返還を求める要求である。払い戻し要求は、一次ブロックチェーンのブロックに含まれるトランザクション又は二次ブロックチェーンのブロックに含まれるトランザクションで検出され得る。例えばトランザクションは、取り消し要求としてトランザクションを識別するメタデータを含み得る。したがって、払い戻し要求は、動作６０２において、プルーフ・オブ・ワーク・ブロックチェーンである二次ブロックチェーンに関連付けられるトランザクション又はレコードのメタデータから識別されてよく、あるいは払い戻し要求は、一次ブロックチェーンに関連付けられるトランザクションのメタデータから識別されてよい。
【００８３】
払い戻し要求が発行された後、ノード１０２は、（動作６０４において）払い戻し要求を発行したノードを、一次ブロックチェーン上のマイニングから除外してよい。すなわち、払い戻し要求を発行したノードは、一次ブロックチェーンでマイニングする資格を有するノードのグループから除外される。払い戻し要求が発行された後、払い戻し要求を発行したノードによって提案された一次ブロックチェーンのすべてのブロックが無視される。
【００８４】
方法４００を実行するノードが、払い戻し要求に関連付けられるアンボンディング期間が経過したと判断した後、ノード１０２は、動作６０６において、払い戻し要求に関連付けられる保証金を、払い戻し要求を発行したノードに返却することを許可することができる。例えば一次ブロックチェーンは、払い戻し要求に関連付けられる保証金を、払い戻し要求を発行したノードに返すために更新され得る。例えばアンボンディング期間の後、払い戻し要求を発行したノードは、一次ブロックチェーンのマイナーに、保証金を通常のアドレスに戻す（言い換えると、保証金を所有者によって使用可能にする）トランザクション案をブロードキャストすることができる。一次ブロックチェーンのマイニングするノード及び／又は検証するノードは、トランザクションが、一次ブロックチェーンに追加されるブロックに含まれることを可能にする前に、アンボンディング期間が実際に経過していることを保証することができる。アンボンディング期間は、二次ブロックチェーンに関連付けられる所定の数のブロックであってよい。例えば払い戻し要求を発行したノードは、保証金が返却されるまでに所定の数のブロックを待つように要求されることがある。
【００８５】
場合によっては、保証金のレコードが二次ブロックチェーンで承認される前に、払い戻し要求を受けることがある。これが発生すると、方法４００を実行するノードは、アンボンディング期間のクロックを開始する前に、保証金のレコードが承認されるまで待機してよい。
【００８６】
ブロックチェーンネットワークに新規であるノード（これらのノードが、ブロックチェーンネットワークに以前に接続されていなかった、あるいはアンボンディング期間よりも長い間オフラインであったという意味で）は、最も多くの作業量を含む二次ブロックチェーンを識別し、識別された二次ブロックチェーンからの保証金の分布を一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次及び二次ブロックチェーンを、一次及び二次ブロックチェーンの真のコピーとして識別することができる。２つ以上の一次ブロックチェーンが存在する場合、そのようなノードは、分布が最も密接に一致するようなものを選択してよい。
【００８７】
上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替実施形態を設計することができることに留意されたい。特許請求の範囲においては、括弧内に付した任意の参照符号は、請求項を限定するものと解釈されるべきではない。「備える（comprising）」及び「備える（comprises）」等の語は、いずれかの請求項又は明細書全体に列挙されるもの以外の要素又はステップの存在を除外するものではない。本明細書において、「備える（comprise）」は、「含む（includes）又は構成される（consist  of）」を意味し、「備える（comprising）」は「含む（including）又は構成される（consisting  of）」を意味する。単数形の要素の言及は、そのような要素の複数形の言及を除外するものではなく、その逆もまた同様である。本発明は、いくつかの別個の要素を含むハードウェアによって及び適切にプログラムされたコンピュータによって実装されてよい。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のうちのいくつかが、１つの同じのハードウェアのアイテムによって具体化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に利用することができないことを示すものではない。
【図１】
2020530958.tif 000003
【図２】
2020530958.tif 000004
【図３】
2020530958.tif 000005
【図４】
2020530958.tif 000006
【図５】
2020530958.tif 000007
【図６】
2020530958.tif 000008
【国際調査報告】
2020530958.tif 000009
2020530958.tif 000010