(57)【要約】ブロックチェーン上で選出を証明するための方法、システム、およびコンピュータ読取可能な媒体が提供される。ある態様によれば、方法、システム、およびコンピュータ読取可能な媒体は、以下を含む：ａ）ブロックチェーンネットワーク上にブロックを公開すること、ここで、上記ブロックは、一意の選出立候補に基づいて選出アクタを選択するための少なくとも１つの基準を含む；ｂ）１つまたは複数のアクタから選出確認メッセージを受信すること、ここで、上記選出確認メッセージは、一意の選出立候補と、上記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを含む；ｃ）一意の選出立候補に基づいて選出アクタを検証するために少なくとも１つの基準を適用すること；ｄ）ブロックチェーンネットワーク上に後続ブロックを公開すること、ここで、上記後続ブロックは、選出アクタから受信された選出確認メッセージ中の１つまたは複数のトランザクションを含む。【選択図】  図４Ａ
2021533708.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ａ）複数のアクタを備えるブロックチェーンネットワーク上にブロックを公開することと、ここで、前記ブロックは、前記アクタの各々に関連する一意の選出立候補に基づいて前記複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を備える、
ｂ）１つまたは複数のアクタから選出確認メッセージを受信することと、ここで、前記選出確認メッセージは、前記１つまたは複数のアクタの各々に関連する前記一意の選出立候補と、前記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを備える、
ｃ）前記選出確認メッセージに含まれる前記一意の選出立候補に基づいて前記１つまたは複数のアクタの中の選出アクタを検証するために前記少なくとも１つの基準を適用することと、
ｄ）前記ブロックチェーンネットワーク上に後続ブロックを公開することと、ここで、前記後続ブロックは、前記選出アクタから受信された前記選出確認メッセージ中の前記１つまたは複数のトランザクションを備える、
を備える方法。
【請求項２】
前記選出確認メッセージは、前記ブロックチェーンネットワーク上の通信を介して受信される、請求項１に記載の方法。
【請求項３】
前記選出確認メッセージは、前記ブロックチェーンネットワークとは別個の通信プロトコルを介して受信される、請求項１に記載の方法。
【請求項４】
前記選出確認メッセージは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）接続を介してウェブサーバによって受信される、請求項３に記載の方法。
【請求項５】
前記ウェブサーバを介して前記選出確認メッセージを受信したことに応答して、前記１つまたは複数のアクタの代わりに前記ブロックチェーンネットワーク上に選出確認メッセージを公開することをさらに備える、請求項３または４に記載の方法。
【請求項６】
前記少なくとも１つの基準は、任意の所与のアクタが選出される確率を定義する難易度因子を備える、請求項１から５のうちのいずれか一項に記載の方法。
【請求項７】
ステップｃ）は、前記選出アクタの中から主要選出アクタを決定することを備え、ステップｄ）において、前記後続ブロックは、前記主要選出アクタによってのみ指定された前記１つまたは複数のトランザクションを備える、請求項１から６のうちのいずれか一項に記載の方法。
【請求項８】
ステップｄ）は、複数の選出アクタによって選択されたトランザクションをマージすることと、前記マージされたトランザクションを含むように前記後続ブロックを公開することとを備える、請求項１から７のうちのいずれか一項に記載の方法。
【請求項９】
ステップｂ）において、前記選出は、ステップａ）において公開された前記ブロックが所定の成熟時間後に成熟した場合にのみ開始される、請求項１から８のうちのいずれか一項に記載の方法。
【請求項１０】
前記成熟時間は、ステップａ）で公開された前記ブロックに指定されている、請求項９に記載の方法。
【請求項１１】
前記成熟時間は、ブロック高さとして定義される、請求項９または１０に記載の方法。
【請求項１２】
ステップｄ）は、前記選出の前記開始に続いて顕在猶予期間が満了した後にのみ実行される、請求項９から１１のうちのいずれか一項に記載の方法。
【請求項１３】
前記顕在猶予期間は、ステップａ）で公開された前記ブロックにおいて指定されている、請求項１２に記載の方法。
【請求項１４】
前記顕在猶予期間は、ブロック高さとして定義される、請求項１２または１３に記載の方法。
【請求項１５】
ステップｃ）は、前記選出アクタのアイデンティティを検証することと、検証に失敗したアクタからの選出確認メッセージを無視することとをさらに備える、請求項１から１４のうちのいずれか一項に記載の方法。
【請求項１６】
前記選出アクタの前記アイデンティティを検証することは、選出立候補レジストリを維持することと、前記選出アクタが前記選出立候補レジストリ内にあるかどうかを決定することとを備える、請求項１５に記載の方法。
【請求項１７】
前記選出立候補レジストリを維持することは、新しいアクタから、少なくとも１つの一意識別子を含む暗号化された選出参加要求を受信することと、前記選出参加要求を解読して、前記少なくとも１つの一意識別子を、前記新しいアクタに関連付けて前記選出立候補レジストリに記憶することとを備える、請求項１６に記載の方法。
【請求項１８】
前記選出立候補レジストリを維持することは、前記ブロックチェーンネットワークとは別個の通信プロトコルを介して新しいアクタから選出参加要求を受信することと、ここで、前記選出参加要求は、少なくとも１つの一意識別子を含む、前記少なくとも１つの一意識別子を、前記新しいアクタに関連付けて前記選出立候補レジストリに記憶することとを備える、請求項１６に記載の方法。
【請求項１９】
前記選出参加要求は、ＨＴＴＰ接続を介してウェブサーバによって受信される、請求項１８に記載の方法。
【請求項２０】
前記選出アクタの前記アイデンティティを検証することは、前記少なくとも１つの一意識別子を介して前記選出アクタと通信しようと試みることを備え、前記アイデンティティは、前記通信が成功した場合、検証される、請求項１６から１９のうちのいずれか一項に記載の方法。
【請求項２１】
前記少なくとも１つの一意識別子は、前記選出アクタのＩＰアドレスを備える、請求項２０に記載の方法。
【請求項２２】
前記少なくとも１つの一意識別子は、暗証番号またはコードを備え、前記アイデンティティは、検証された前記選出アクタが前記暗証番号またはコードで応答する場合、検証される、請求項２０または２１に記載の方法。
【請求項２３】
ステップａ）からｄ）は、中央信頼ノードまたはアクタによって実行される、請求項１から２２のうちのいずれか一項に記載の方法。
【請求項２４】
ステップａ）からｄ）は、１つまたは複数のパブリックアクタによって実行される、請求項１から２２のうちのいずれか一項に記載の方法。
【請求項２５】
システムであって、
−ブロックチェーンネットワーク上の複数のアクタと通信するように構成された通信モジュールと、
−前記通信モジュールに動作可能に接続された処理モジュールと
を備え、前記処理モジュールは、
○前記通信モジュールを介して前記ブロックチェーンネットワーク上にブロックを公開することと、ここで、前記ブロックは、前記アクタの各々に関連する一意の選出立候補に基づいて前記ブロックチェーンネットワーク上の前記複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を備える、
○前記通信モジュールを介して１つまたは複数のアクタから選出確認メッセージを受信することと、ここで、前記選出確認メッセージは、前記１つまたは複数のアクタの各々に関連する前記一意の選出立候補と、前記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを備える、
○前記選出確認メッセージに含まれる前記一意の選出立候補に基づいて前記１つまたは複数のアクタの中の選出アクタを検証するために前記少なくとも１つの基準を適用することと、
○前記通信モジュールを介して前記ブロックチェーンネットワーク上に後続ブロックを公開することと、ここで、前記後続ブロックは、前記選出アクタから受信された前記選出確認メッセージ中の前記１つまたは複数のトランザクションを備える、
を行うように構成される、システム。
【請求項２６】
命令が記憶されている非一時的なコンピュータ読取可能な媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
ａ）複数のアクタを備えるブロックチェーンネットワーク上にブロックを公開することと、ここで、前記ブロックは、前記アクタの各々に関連する一意の選出立候補に基づいて前記複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を備える、
ｂ）１つまたは複数のアクタから選出確認メッセージを受信することと、ここで、前記選出確認メッセージは、前記１つまたは複数のアクタの各々に関連する前記一意の選出立候補と、前記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを備える、
ｃ）前記選出確認メッセージに含まれる前記一意の選出立候補に基づいて前記１つまたは複数のアクタの中の選出アクタを検証するために前記少なくとも１つの基準を適用することと、
ｄ）前記ブロックチェーンネットワーク上に後続ブロックを公開することと、ここで、前記後続ブロックは、前記選出アクタから受信された前記選出確認メッセージ中の前記１つまたは複数のトランザクションを備える、
のステップを実行させる、非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術分野は一般に、ブロックチェーン技術に関し、より具体的には、ブロックチェーン上での選出証明のための方法およびシステムに関する。
【背景技術】
【０００２】
ブロックチェーンは、順次追加専用データベースフォーマットに結合された一連の動作またはトランザクションである。ブロックチェーンを可能にする重要な技術は、ハッシュ化アルゴリズムである。暗号学的ハッシュとは、任意の入力値をとり、各一意の入力値に対して常に一意の出力を生成するアルゴリズムである。同じ入力は常に同じ出力を作成するが、異なる入力が同じ出力を作成することはない。このように、ハッシュは、特定のコンテンツに対して一意識別子を作成する方法であり、このハッシュを生成した元のコンテンツが、結果として得られたハッシュだけから推定されることはないであろう。
【０００３】
各トランザクションは、ブロックに含まれることによってブロックチェーンデータベースに入ることが確認される。各ブロックは、暗号学的に有効であると確認された複数のトランザクションを含むであろう。新しいブロックが作成されると、そのコンテンツは、チェーンにおける前のブロックのハッシュを組み合わせてハッシュ化される。これは、ブロックのチェーンを形成しながらブロックチェーンが成長するつれ、延々と行われる。アタッカがブロックチェーンにおいて何も変更することができないため、この技術は興味深い。データを破損させようとしてそれを改ざんすると、最小の桁であってもハッシュ化チェーンの和を完全に変更してしまい、リンクを破損させる。ハッシュのチェーンを合計することによって、インターネット上の信頼できないコンピュータから受信されたデータが有効であることを確実にすることができるため、これは重要なことである。
【０００４】
ブロックチェーンデータベースは、その暗号学的なハッシュのチェーンにより、そのデータの改ざんが不可能であることを確実する。このように、いくらかランダムに互いに接続されたコンピュータは、自己回復式のピアツーピアネットワークを作成することができる。各コンピュータはネットワーク上の他のノードに接続し、それら自身が他のノードに接続して、通信メッシュを形成する。万一１つのピアが応答しなくなった場合でも、ネットワークは、他の接続を使用して自然にバランスを取り直すため影響を受けることはない。このネットワーク上のピアは、互いを一度も信頼することなくブロックチェーンデータを交換して同期させる。暗号学的ハッシュにより、各ピアが、データを合計し、それが目的どおりに送受信されたことを確認することができる。
【０００５】
ピアツーピアネットワークによって確立されたネットワークトポグラフィの上にはゴシップメッセージングプロトコルが構築されている。このプロトコルは、メッセージ反復（エコー）を最小限に抑えつつ、すべてのノードがネットワーク上で送られたメッセージのコピーを受信することを確実にするようにｐ２ｐネットワーク上の各ピア間でメッセージが交換される方法を決定する。ブロックチェーンに挿入すべき新しいトランザクションが作成されると、ノードは、それが接続されている複数のピアにこのトランザクションをゴシップメッセージとして送り、次に、それらのピアがそれを自身のピアに転送し、ネットワーク全体がメッセージを受信するまでこれが続く。新しいトランザクションは、各アクタによって検証されて、一時的なトランザクションプールに追加され、確認ブロックによって確認されるまで無期限に滞在する。確認されると、それはトランザクションプールから除かれ、永遠に最後のブロックチェーンに追加される。
【０００６】
ピアツーピアブロックチェーンネットワーク上で克服すべき主な困難のうちの１つは、ネットワーク上で真実（truth）であると考えられるものについてのコンセンサスをどのように確立するかである。数百万以上のノードを有する大規模なネットワークでは、多くのアクティビティが同時に発生し、潜在的な悪意のあるアクタが存在するとき、誰が正しいのかを確立することが困難になる。例えば、誰かがネットワークの両端から同時に同じ口座のお金を２回使用するとする。メッセージがネットワーク上を移動するとき、いくつかのノードは１つ目のトランザクションを見るが、２つ目のトランザクションには気づかない。それと同時に、他のノードは、２つ目のトランザクションを見るが、１つ目のトランザクションには気づかない。２つのセットのノードは両方とも、同じ時点で異なるバージョンの真実を見る。これらのトランザクションが衝突し始めると、別のグループのノードが両方を見る。これら３つのグループの中で、問題となるのは、誰が正しいのか？２つのトランザクションの組合せにより借越口座になったらどうなるのか？例外をどのように処理するか？である。
【０００７】
これらの問題に答えるために、ブロックチェーンシステムは、様々なコンセンサスメカニズムを実装して、特定の時間にネットワーク上で真実を確立するのを助ける。コンセンサスとは、ブロックチェーンにおけるタイムスライスの間、真実として確立されることとなるトランザクションを選択するために、権限者が決定され、相互に合意するメカニズムである。理想的には、毎回、異なるノードが予測不可能な方法で選択されて、指定の権限者となる。
【０００８】
唯一のコンセンサスメカニズムではないが、この記述の時点で群を抜いて最も一般的なものは、プルーフオブワーク（ＰＯＷ）と呼ばれるコンセンサス方法である。その仕組みは、ネットワークが、ネットワーク上のノードに、非常に困難な数学的問題に対するソリューションをすべて同時に見つけるように求めるというものである。特定の期間の後に出現する勝者が１つだけになることを確実にするために、すべてのノードは、いわば数学的な「干し草の山の中の針」を探索する。最終的に幸運なノードがこの数学的問題に対する答えを見つけると、それは１つのターンを先導し、ブロックに入れられることとなるトランザクションを選択して、そのブロックをネットワークに公開する。ネットワーク上の他のアクタがそのソリューションを検証して承認すると、それは真実として認められ、ネットワークは次のブロックに進む。本質的に、プルーフオブワークアルゴリズムは、このターンにブロックチェーンがどこに行くかを選ぶためにネットワーク上の誰かを選ぶという目的を果たす。これらの計算（calculation）は非常に困難であるため、次に誰が選ばれるかについて特定のエントロピーを確実にし、したがって、誰もチェーンが次にどこに進むかを決める計画を立てることができず、計算される破損からの保護を確実にする。
【０００９】
ＰＯＷアルゴリズムは、その哲学的目的では非常にうまく機能し、ブロックチェーン技術の大部分の基礎となっている。ＰＯＷの問題点は、コンピュータハードウェアおよび電気のコストをその不正制限要因として使用することで不正を防止することである。コンピュータが非常に強力であれば、ブロックソリューションを毎回瞬時に見つけることができ、ネットワークエントロピーをゼロに低減することができる。しかしながら、コンピュータには電力制限があり、電気は高価であるため、人々が持っている、ネットワーク上で無限に動作する能力は制限される。
【００１０】
これの問題は、ブロックチェーン技術がより一般的になるにつれて、人々はますます強力なコンピュータを使用することとなり、より多くのブロックソリューションを見つけるためのエネルギー需要が増加することである。これにより、ネットワーク難易度は絶えず増加し、それにより、エネルギーの使用はかつてないほど多くなり、これは、日々増加し続けている。地球温暖化の脅威が迫っている今日では、この絶え間ない軍拡競争は非常に憂慮すべきことである。
【００１１】
したがって、改善の余地は大きい。
【発明の概要】
【００１２】
ある態様にしたがって、方法が提供される。方法は、次のステップを含む：ａ）複数のアクタを含むブロックチェーンネットワーク上にブロックを公開すること、ここで、上記ブロックは、上記アクタの各々に関連する一意の選出立候補に基づいて複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を含む；ｂ）１つまたは複数のアクタから選出確認メッセージを受信すること、ここで、上記選出確認メッセージは、上記１つまたは複数のアクタの各々に関連する一意の選出立候補と、上記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを含む；ｃ）選出確認メッセージに含まれる一意の選出立候補に基づいて１つまたは複数のアクタの中の選出アクタを検証するために少なくとも１つの基準を適用すること；ｄ）ブロックチェーンネットワーク上に後続ブロックを公開すること、ここで、上記後続ブロックは、選出アクタから受信された選出確認メッセージ中の１つまたは複数のトランザクションを含む。
【００１３】
ある態様にしたがって、システムが提供される。システムは、ブロックチェーンネットワーク上の複数のアクタと通信するように構成された通信モジュールと、この通信モジュールに動作可能に接続された処理モジュールとを含む。処理モジュールは、次を行うように構成される：通信モジュールを介してブロックチェーンネットワーク上にブロックを公開すること、ここで、上記ブロックは、上記アクタの各々に関連する一意の選出立候補に基づいてブロックチェーンネットワーク上の複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を含む；通信モジュールを介して１つまたは複数のアクタから選出確認メッセージを受信すること、ここで、上記選出確認メッセージは、上記１つまたは複数のアクタの各々に関連する一意の選出立候補と、上記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを含む；選出確認メッセージに含まれる一意の選出立候補に基づいて１つまたは複数のアクタの中の選出アクタを検証するために少なくとも１つの基準を適用すること；通信モジュールを介してブロックチェーンネットワーク上に後続ブロックを公開すること、ここで、上記後続ブロックは、選出アクタから受信された選出確認メッセージ中の１つまたは複数のトランザクションを含む。
【００１４】
ある態様にしたがって、非一時的なコンピュータ読取可能な媒体が提供される。コンピュータ読取可能な媒体は、命令が記憶されており、この命令は、プロセッサによって実行されると、プロセッサに、次のステップを実行させる：ａ）複数のアクタを含むブロックチェーンネットワーク上にブロックを公開すること、ここで、上記ブロックは、上記アクタの各々に関連する一意の選出立候補に基づいて複数のアクタの中から選出アクタを選択するための少なくとも１つの基準を含む；ｂ）１つまたは複数のアクタから選出確認メッセージを受信すること、ここで、上記選出確認メッセージは、上記１つまたは複数のアクタの各々に関連する一意の選出立候補と、上記１つまたは複数のアクタによって選択された１つまたは複数のトランザクションとを含む；ｃ）選出確認メッセージに含まれる一意の選出立候補に基づいて１つまたは複数のアクタの中の選出アクタを検証するために少なくとも１つの基準を適用すること；ｄ）ブロックチェーンネットワーク上に後続ブロックを公開すること、ここで、上記後続ブロックは、選出アクタから受信された選出確認メッセージ中の１つまたは複数のトランザクションを含む。
【図面の簡単な説明】
【００１５】
【図１Ａ】ある実施形態による、ブロックチェーンネットワークに参加しているアクタを例示する概略図である。
【図１Ｂ】ある実施形態による、ブロックチェーンネットワークに参加しているアクタを例示する概略図である。
【図２Ａ】第１の実施形態による、ブロックチェーン上に発行されたブロックのコンテンツを例示する概略図である。
【図２Ｂ】第２の実施形態による、ブロックチェーン上に発行されたブロックのコンテンツを例示する概略図である。
【図３】ある実施形態による、発行されたブロックに含まれる選出結果を例示する概略図である。
【図４Ａ】第１の実施形態による、ブロックチェーン上での選出証明のための例示的なプロセスを例示するフローチャートである。
【図４Ｂ】第２の実施形態による、ブロックチェーン上での選出証明のための例示的なプロセスを例示するフローチャートである。
【図５】ある実施形態による、顕在猶予期間（manifestation grace period）を実装する選出証明プロセスを例示する概略図である。
【図６Ａ】第１の実施形態による、アクタが選出されたかどうかを決定するためのプロセスを例示するフローチャートである。
【図６Ｂ】第２の実施形態による、アクタが選出されたかどうかを決定するためのプロセスを例示するフローチャートである。
【図７】ある実施形態による、主要選出アクタを選択するためのフィルタを例示する概略図である。
【図８】ある実施形態による、ブロックチェーンネットワークにパブリックアクタを登録するためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【００１６】
以下は、ブロックチェーン上での選出証明のためのシステムおよび方法の例示的な実施形態を説明し、システム構成要素およびプロセスを含む可能な実装形態の例を提供する。これらは、多くの異なる可能な実装形態のうちの１つにすぎない。そのため、提供される実施例は、いかなるようにも本発明の範囲を限定するものと解釈されるべきではない。
【００１７】
図１Ａを参照すると、ある実施形態による、選出証明プロセスを含むブロックチェーンを実装するためのブロックチェーンネットワーク１００が示されている。ネットワーク１００は、ピアツーピア方式で接続され、ゴシッププロトコルを使用して通信する複数のノードまたはアクタ１０１を備える。アクタ１０１は、プロセッサと、メモリと、通信モジュールとを備える任意のタイプのコンピューティングデバイスであり得、この通信モジュールは、コンピューティングデバイスがピアツーピアネットワークにおいて他のコンピューティングデバイスと通信することおよびブロックチェーンに関するアクションの実行に参加することを可能にする。いくつかの実施形態では、通信モジュールはさらに、コンピューティングデバイスが、ピアツーピアまたはブロックチェーンネットワークの外側で通信プロトコルを介して他のコンピューティングデバイス（サーバなど）と通信することを可能にすることができる。
【００１８】
認識され得るように、各アクタ１０１は、ブロックチェーンネットワーク１００において異なる機能または役割を実行するように構成され得る。本実施形態では、アクタは、２つのサブグループ、すなわち信頼できるアクタ１０３、１０７、およびパブリックアクタ１０５にさらに分けられる。信頼できるアクタおよびパブリックアクタの主な機能については、以下でより詳細に説明する。しかしながら、認識され得るように、信頼できるアクタは、信頼できるエンティティによって動作されるノードに対応し得、ブロックチェーンネットワークにおけるそのアクションは、ほとんどまたは全く監督を受けない。例えば、そのようなノードは、とりわけ、他のノードのアクションを実証することおよび／またはブロックチェーンネットワークに関して権威ある決定を行うことが任され得、例えば、モデレータ１０３の役割（例えば、ブロックチェーン上で行われるアクションを加減するための）および／またはＩＰ検証アクタ１０７の役割（例えば、ネットワークに登録するノードのＩＰアドレスを検証するための）を担う。他方で、パブリックアクタ１０５は、ブロックチェーンネットワークに参加している任意のエンティティに対応し得、そのアクションは、信頼できるアクタ１０３、１０７によっておよび／または複数のパブリックアクタ１０５のコンセンサスによって検証および／または認可される必要がある。任意の所与の時間に、ネットワーク１００上に異なる数の信頼できるアクタおよび／またはパブリックアクタが存在し得る。しかしながら、本明細書で説明される実施形態では、少なくとも１つのモデレータ１０３、少なくとも１つのＩＰ検証アクタ１０７、および少なくとも２つのパブリックアクタ１０５を含む、最低４つのアクタが必要とされる。
【００１９】
大まかに説明すると、モデレータ１０３は、信頼できるノードおよび／またはブロックチェーン上で行われるアクションを認可するための予約された機能を有する特別に指定されたノードである。モデレータ１０３は、単一のコンピューティングデバイスに対応し得、および／または協働して加減機能を実行する複数のコンピューティングデバイス（例えば、ウェブサーバおよびバックエンドサーバを含む１つまたは複数のサーバなど）を含むことができる。１つよりも多くのモデレータ１０３を有する実施形態では、モデレータ１０３は互いに協調し、ブロックチェーンネットワーク１００上で単一の統合された音声として機能する。本実施形態では、図１Ｂに示すように、モデレータ１０３は、例えばジェネシスブロックのような特別なブロックで公開され得る暗号学的に安全な公開署名鍵を通してブロックチェーン１００上で識別される。対応する秘密鍵署名へのアクセスを有するモデレータ１０３だけが、ブロックチェーンネットワーク１００上で信頼できる音声になりすますことができる。モデレータの音声は暗号によって保護されているため、パブリックアクタ１０５は、モデレータ１０３が発行するメッセージおよびブロックが信頼できるソースから送られたものであることを認識して信頼することができる。
【００２０】
ＩＰ検証ノード１０７は、信頼できるノードおよび／またはブロックチェーンネットワーク１００に参加しているアクタ１０５のアイデンティティを検証するための予約された機能を有する特別に指定されたノードである。本実施形態では、これらのノードは、例えばアクタ１０５が選出されるときに、それらのＩＰアドレスを確認することによってアクタ１０５の一意のアイデンティティを検証するという点で、「ＩＰ検証」ノードと呼ばれる。しかしながら、アクタ１０５の一意のアイデンティティが他のパラメータを介しても実証され得ることは認識される。本実施形態では、ＩＰ検証ノード１０７は、アクタ１０５のＩＰアドレスを検証する唯一の機能を有する専門ノードであり、モデレータ１０３および／またはブロックチェーンネットワーク１００の残りの部分を用いてそのような検証を確認する。しかしながら、いくつかの実施形態では、ＩＰ検証ノード１０７の機能がモデレータ１０３によって実行され得ることは認識される。
【００２１】
パブリックアクタ１０５は、ブロックチェーンネットワーク１００上の他のアクタに対応する。本実施形態では、すべてのパブリックアクタ１０５は、アカウント番号とも呼ばれる、割り当てられたグローバル一意識別子を有する。認識され得るように、同じアカウント番号を所有するアクタは２つとして存在せず、識別子は、一意であること、および、アクタだけが制御する１つまたは複数の暗号学的署名公開鍵と組み合わせて、一意のアカウント番号をブロックチェーンに公開することによって、作成時に一意に管理されることが保証され得る。いくつかの実施形態では、この一意のアイデンティティは、それがブロックチェーン上で一意であり、それらが単独で秘密鍵を制御する限り、公開暗号化鍵であり得る。
【００２２】
信頼できるノードを使用した選出証明プロセス４００の第１の例示的な実施形態が図４Ａに例示される。大まかに説明すると、ブロック２００のチェーンは、ネットワーク負荷に応じて様々な間隔でモデレータによって発行される。特定のブロック２００が成熟（maturity）に達すると、どのトランザクションを成熟したブロック２００に含めるべきかを選択するために、２つ以上のパブリックアクタ１０５が選出される。選出されたパブリックアクタ１０５は、選出確認メッセージ３００をモデレータ１０３に提出し、それらのアイデンティティを確認して、それらの選択されたトランザクションを提出する。続いて、モデレータ１０３は、選出アクタ１０５のアイデンティティを検証することができ、モデレータ１０３によって発行された後続ブロック２００は、選出アクタ１０５によって提出されたトランザクションを確認することができる。本実施形態では、モデレータ１０３とアクタ１０５との間のすべての通信は、ブロックチェーンネットワーク上で実行される。しかしながら、いくつかの実施形態では、いくつかの通信が異なるメカニズムを使用して行われ得ることは認識される。例えば、選出確認メッセージは、ブロックチェーンネットワーク上に公開される代わりに、アクタ１０５からモデレータ１０３に直接および／または間接的に送られ得る。そのようなメッセージは、例えば、アクタ１０５とモデレータとの間のダイレクトＰ２Ｐ接続を介して、および／または、クライアント・サーバ関係を使用して、および／またはハイパーテキスト転送プロトコル（ＨＴＴＰ）または他の通信プロトコルを使用するなどの異なるプロトコルを介して送られ得る。
【００２３】
より詳細には、図２Ａに例示するように、ブロック２００が作成されるたびに、少なくとも２つの異なるセクション、すなわち選出コンテキスト２０１および選出結果２０３を含むことができる。しかしながら、他の実施形態では、特定の機能要件に応じて、より多くのセクションが各ブロック２００に設けられることは認識される。選出コンテキストセクション２０１は、所与のブロックについて成熟時間に達したときに開催される選出に対してパブリックアクタが使用することとなる必要なパラメータおよび一般合意済みのルールを決定することができる。本実施形態では、コンテキストセクション２０１で提供されるパラメータは、選出アクタの間で分配される報酬額を定義するための報奨金額と、選択フィルタの強度を決定する難易度因子と、いつ選出が行われる予定であるかを決定する成熟度の高さ（maturity height）と、選出されたノード間で報奨金を配分する方法を決定する配分方法とを含む。例示される実施形態では、配分方法は、「あまりグリーディでない（less greedy）」に設定されるが、例えば、ノードが実行することとなる選択に影響を与え、ブロックチェーンエコシステムを健全に保つために必要とされ得る特定の挙動を助長することによってブロックチェーンにおいて異なる目標を達成するために、異なる配分方法が配分方法の所定のリストから選択され得ることは認識される。本実施形態では特定の因子が提供されているが、例えばランダムナンス値のような選択の複雑性を増大させるための他の因子も追加され得ることは認識される。
【００２４】
選出結果セクション２０３は、現在のブロック高さで成熟に達するブロックの最後の選出結果を公開するために使用され得る。したがって、選出結果セクション２０３は、このブロックにおいて選出されたノードを示すリストと、ノードの各々に配分される報奨金の割当て分（portion）とを含むことができる。報奨金の配分は、必要な任意の方法によって決定され得る。例えば、すべての選出されたノードの間で均等に分配してもよく、または特別なアルゴリズムを使用して値のよりスマートな配分を確立してもよい。例えば、選出アクタごとに選択されたトランザクション手数料が合計され得、ブロックチェーンプールからより低い支払い額のトランザクションをクリアしようとするインセンティブとして、より低い手数料を提供したトランザクションを選んだ選出アクタにより高い報奨金が割り当てられ得る。
【００２５】
上述したように、パブリックアクタ１０５が選出されると、それらは、現在のブロックに真実として追加したいと望むトランザクションを選択する機会を有する。そのようなトランザクションは、未完のトランザクション（すなわち、他のパブリックアクタ１０５によってネットワークにブロードキャストされたが、まだ処理されておらず、ブロックチェーンに追加されていない提案されたトランザクション）のプールから選択され得る。したがって、選出結果セクション２０３は、選出された代表者がブロックに含めたいと望む任意のトランザクションを示すためにも使用され得る。図３に例示されるように、様々な選出されたノードによって選択された確認されたトランザクションは、各選出されたノードに提供されるトランザクション手数料の割当て分とともに、選出結果セクション２０３にリストされ得る。認識され得るように、トランザクション手数料の配分は、多くの異なる方法で実行され得る。例えば、公平に分配してもよく、すべての選出されたノードの間でランダムに割り当ててもよく、または特殊な式を使用してもよく、例えば、どのトランザクションが最初に受信されたか、どれが特定の期間内に最も低い頻度で選出されたか、などの因子を使用する特殊な式を使用する。
【００２６】
認識され得るように、選出されるパブリックアクタ１０５の数は、ブロックごとに異なり得る。ブロック２００が作成されるたびに、モデレータ１０３は、選出コンテキストセクション２０１内の選出コンテキストパラメータを指定し、これらのパラメータは、所与の数のパブリックアクタ１０５が最終的に選出されるルールを決定するために使用される。したがって、選出アクタ１０５の数は、パラメータがどのように設定されるかに応じて、より多くまたはより少なくなり得る。
【００２７】
選出ルールを設定するために、いくつかの異なる要因を提供することができる。本実施形態では、選出因子は、少なくとも、選出アクタ１０５の数を制御するための難易度制御因子を含む。難易度因子は、選出され得るアクタの数を絞り込む任意のフィルタリング条件に対応し得る。例えば、難易度因子は、任意の所与のアクタが選出され得る確率を備える。いくつかの実施形態では、これは、選出されるべきアクタ１０５が、提供された難易度番号（difficulty number）より低いアカウントおよびハッシュの組合せを有するアクタであることを示すルールを設定することによって達成され得る。代替的に、同様のルールを、難易度番号に最も近いアカウントおよびハッシュの組合せを有するアクタ１０５を選出することによって設定することができる。
【００２８】
認識され得るように、多数のパブリックアクタ１０５が任意の所与の時間にネットワーク１００に参加することができ、同時にトランザクションを選択するためにそれらのノードのすべてを選出することは望ましくないであろう。したがって、難易度因子は、選出アクタの数を管理可能な量に制限するように働き、ネットワーク１００に過度の負荷がかからないようにすることができる。いくつかの実施形態では、難易度因子は、比較的一定数のアクタ１０５が各ブロックに対して選出されるように設定され得る。例えば、難易度因子は、各ブロックに平均で１０個の選出アクタ１０５が存在するように設定され得る。しかしながら、選出アクタ１０５の最適な数は、他の因子の中でもとりわけ、ネットワークに参加しているアクタ１０１の総量および／または未確認のトランザクションプールのサイズにより異なり得ることが認識される。したがって、難易度因子は、必要に応じて選出アクタ１０５の期待数を調整するためにブロックごとに調整され得る。
【００２９】
いくつかの実施形態では、例えば、前のブロックにおける選出からのフィードバックに基づいて、理想的な難易度因子を決定するために、統計的方法論が採用され得る。認識され得るように、これにより、ブロックチェーン上のアクタ１０１の総量に対する、選出された代表１０５の割合は比較的一定になり得る。そのような実施形態では、モデレータ１０３は、前のブロックにおける選出アクタ１０５の数を監視し、選出アクタの数を固定の所定量の近くに保つために難易度因子を上下に調整することができる。
【００３０】
特定の量のエントロピーをシステムに追加して、将来のターンにおいてどのアクタが選出されることとなるかを予測することをより困難にすることができる。本実施形態では、このようなエントロピーは、各ブロック２００の成熟時間を定義することによって追加される。上で説明したように、モデレータ１０３によって発行されるブロック２００は、選出コンテキストセクション２０１において成熟時間を指定することができる。成熟時間は、ブロック２００が発行されてから、対応する選出が実行されるべきとき（すなわち、ブロックが「成熟する」とき）までを強制的に遅らせるように働くことができる。例えば、成熟時間は、ブロック数の増加（block number increase）として定義され得、すなわち、所与のブロックは、所定数の後続ブロックが発行された後にのみ成熟する。そのような実施形態では、成熟時間は、動的変数として提供され得るか、またはブロックチェーンコードで定義される固定の相互に合意した定数であり得る。選出を遅延させるための他のメカニズムも可能であることが認識される。他のメカニズムを介して、例えばランダムなナンス値（nonce  values）または他のデータを追加することによって、さらなるエントロピーが追加され得ることは認識される。
【００３１】
所与のブロック２００がその特定の選出コンテキストにしたがって成熟に達すると、アクタ１０５は、それらが選出されたかどうかを決定するために一連のアクションを実行しなければならない。アクタ１０５が選出されたかどうかを決定するための例示的な方法６００が図６Ａに示されている。本実施形態では、方法６００は、一意の選出立候補を確立する第１のステップ６０１を備える。一意の立候補は、ブロックチェーン上の前のブロックの一意のハッシュをそれ自体の一意のＩＤとともにハッシュし、それによって新しい一意のハッシュを作成することによってアクタ１０５によって確立される。認識され得るように、一意の立候補を生成するためのメカニズムは、ブロックチェーン全体で合意された所定のルールに基づき得るため、異なる方法で計算されることおよび／または異なる因子を組み込むことができる。さらに、選出コンテキストで宣言されたナンスなどの追加情報も使用することができる。
【００３２】
一意の選出立候補が計算されると、第２のステップ６０３は、一意の立候補がフィルタリング式によって決定された範囲内に入るかどうかを決定することを伴うことができる。例えば、アクタ１０５は、難易度因子を考慮し、一意の立候補を定義するハッシュが難易度因子によって定義されるしきい値を下回るかどうかを決定することができる。
【００３３】
要求される範囲内に入らないとアクタ１０５が決定した場合、アクタ１０５は選出されていないこととなり、それ以上のアクションがとられる必要はない。したがって、アクタ１０５は、次のブロックが選出される別の機会を得るのを待ち得る。アクタ１０５がフィルタリング範囲内に入っている場合、アクタ１０５は選出されていることとなり、どのトランザクションが現在のブロックに含まれるかについての決定に参加する機会を有することとなる。より具体的には、これは、ネットワーク１００に選出確認を公開するステップ６０５を伴う。選出確認は、ブロックに含めるためにアクタ１０５が選んだトランザクションを、それが実際に選出されたことを証明するためにアクタの一意の立候補を定義するハッシュとともに示すことができる。選出確認は、なりすましを回避するために、アクタ１０５の秘密鍵で署名され得る。
【００３４】
モデレータノード１０３は、選出確認メッセージを受信して収集し、アカウント番号、署名、および選出証明を検証する。適切に検証された場合、モデレータ１０３は、選出確認メッセージで選択されたトランザクションを、次に発行されるブロック２００に含めることができる。いくつかの実施形態では、モデレータ１０３は、すべての選出アクタ１０５からのトランザクションを次のブロックにマージすることができるが、他の実施形態では、モデレータ１０３は、特定のアクタ１０５に、特権を与えられたまたは主要選出アクタステータスを与えることを選び、それにより、特権を与えられたアクタに次のブロックのコンテンツを自分で決定させることができる。認識され得るように、次のブロックでは、モデレータ１０３は、代表アクタ１０５が選出される割合が比較的一定であることを保証するために、前のブロックから選出アクタ１０５の量に基づいて難易度を調整することができる。次いで、同じプロセスをすべての後続ブロックに対して繰り返すことができる。
【００３５】
本実施形態では、選出確認メッセージは、選出アクタ１０５によってブロックチェーンネットワーク１００上に公開される。したがって、モデレータ１０３は、ブロックチェーンネットワーク１００上の通信を監視することによって、選出確認メッセージを受信する。しかしながら、選出確認メッセージを通信するための他のメカニズムも可能であることが認識される。例えば、いくつかの実施形態では、アクタ１０５が、それが選択されたと決定した場合、それは、ブロックチェーンネットワーク１００とは別個のチャネルを介して、および／または異なる通信プロトコルを使用して、１つまたは複数のモデレータ１０３と直接または間接的に通信することができる。例えば、アクタ１０５は、ＨＴＴＰまたは他の通信プロトコルを介してその選出確認メッセージを送るために、１つまたは複数のモデレータ１０３によって制御されるウェブサーバ（または他のコンピューティングデバイス）と通信することができる。メッセージを受信すると、モデレータ１０３は、アクタ１０５のアイデンティティを（例えば、ＨＴＴＰ接続を介してまたは別の通信プロトコルを介して取得されたアクタ１０５のＩＰに基づいて）確認し、次に発行されるブロック２００において選出確認メッセージのコンテンツを使用することができる。いくつかの実施形態では、モデレータ１０３は、受信した選出確認メッセージを、選出アクタ１０５の代わりにブロックチェーンネットワーク１００に公開することができる。この方法では、モデレータ１０３は、アクタ１０５およびブロックチェーンネットワーク１００を介した通信を容易にするための中央接続ポイントとして機能することができる。
【００３６】
選出証明プロセス４００’の第２の例示的な実施形態を図４Ｂに示す。この実施形態では、プロセス４００’の一般のステップは、ブロック２００がモデレータ１０３によって発行され、成熟すると、成熟したブロック２００に含めるべきトランザクションを決定するために１つまたは複数のパブリックアクタ１０５が選出されるという点で、上で説明した第１の実施形態４００に類似している。選出アクタ１０５は、ブロックチェーンネットワーク１００を介しておよび／または別のチャネルを介して直接および／または間接的にモデレータ１０３に選出確認メッセージ３００を提出し、それらのアイデンティティを確認し、それらの選択されたトランザクションを提出する。続いて、モデレータ１０３は、選出アクタ１０５のアイデンティティを検証することができ、モデレータ１０３によって発行された後続ブロック２００は、選出アクタ１０５によって提出されたトランザクションを確認することができる。本実施形態の特徴（particularity）は、数学的フィルタを使用して、任意の所与のブロックに対して選出され得るアクタ１０５の数を制限することである。したがって、追加情報は、選出コンテキストおよび選出確認の一部として提供される。
【００３７】
より具体的には、図２Ｂに例示されるように、ブロック２００の選出コンテキスト２０１は、難易度範囲および暗号化されたナンス番号を含むことができる。認識され得るように、ナンス番号は、ブロックを発行するエンティティ（この場合は、モデレータ１０３）によって難易度範囲からランダムに選択され得、難易度範囲は、ネットワークが適切に動作するために必要とされるエントロピーのレベルに基づいて予め決定され得る。したがって、選出コンテキスト２０１は、ナンス番号が生成された範囲と、将来的に明らかにすることができるように対称暗号化鍵を使用して暗号化されたナンス番号とを示すことができる。
【００３８】
選出コンテキスト２０１は、１つまたは複数のフィルタリング数式またはプログラムスクリプトをさらに含むことができる。これらのスクリプトは、選出の候補となるためにアクタが遵守する必要があるフィルタを決定するのを助ける。認識され得るように、フィルタリング式は、選出されるべきアクタの数を絞り込むことを可能にし得る複雑性を変動させる任意の数式であり得る。例として、式は、ハッシュフィルタメカニズムを備え得、それによって、モデレータは、１２８のうち、アクタがそれらのハッシュにおいて「１」と設定する必要があるビット数を公開する。例えば、モデレータは、ビット位置３および１２２に１を持つハッシュを有するアクタが選出に対して資格があること、および他のすべてのアクタが除外されることを指定することができる。これは、いくつのアクタが選出されるべきかに基づいて、選出されるプールをさらに絞り込むために、後続のラウンドでも続けられ得る。選出アクタの数を絞り込むために、各ラウンドで指定されるビット数を調整することもできる。認識され得るように、これは、多くの異なる可能なアルゴリズムのうちの１つにすぎない。いくつかの実施形態では、複数のそのようなアルゴリズムが予め決定され、例えば関数１、関数２、関数３などとしてブロックチェーンコードにプログラミングされ得、モデレータは、選出コンテキスト２０１において関数を示すことによって、これらの関数のうちの１つまたは複数を選択することができる。いくつかの実施形態では、新しい関数がモデレータ１０３によって作成され得、それらの関数に関するルールが選出コンテキスト２０１の一部として指定され得る。
【００３９】
認識され得るように、数学的フィルタの使用を考慮すると、アクタ１０５は、それが選出されたかどうかを確認するために追加のステップを実行する必要があり得る。数学的フィルタを使用してアクタ１０５が選出されたかどうかを決定するための例示的な方法６００’を図６Ｂに示す。例示される実施形態では、方法６００’は、一意の選出立候補を確立する第１のステップ６０１を備える。一意の立候補は、ブロックチェーン上の前のブロックの一意のハッシュをそれ自体の一意のＩＤとともにハッシュし、それによって新しい一意のハッシュを作成することによってアクタ１０５によって確立され得る。認識され得るように、一意の立候補を生成するためのメカニズムは、ブロックチェーン全体で合意された所定のルールに基づき得るため、異なる方法で計算されることおよび／または異なる因子を組み込むことができる。
【００４０】
一意の選出立候補が計算されると、第２のステップ６０３は、アクタ１０５が選出に対して資格があるかどうかを決定することを伴うことができる。これは、選出資格を決定するために、その一意の立候補に対して一連のプログラムフィルタを実行するサブステップ６０２を伴うことができる。
【００４１】
アクタ１０５が、フィルタスクリプトによって除外されていると決定した場合、アクタ１０５は選出されていないこととなり、それ以上のアクションがとられる必要はない。したがって、アクタ１０５は、次のブロックが選出される別の機会を得るのを待ち得る。アクタ１０５が、フィルタリング範囲内に入っていると決定した場合、それは選出候補であるとみなされ、選出プロセスにさらに参加することができる。ステップ６０４において、続いて、アクタ１０５は、選出コンテキストにおいて定義された範囲内の乱数を選択することができ、ステップ６０５において、ブロックに含めるためにアクタ１０５が選んだトランザクションと、実際に選出されたことを証明するためのアクタの一意の立候補を定義するハッシュとともに、選出確認メッセージ３００の一部として乱数を提出する。選出確認は、なりすましを回避するために、アクタの秘密鍵で署名され得る。
【００４２】
モデレータ１０３は、進み出たすべての候補から選出確認メッセージを受信して収集する。次いで、ステップ６０７において、モデレータ１０３は、選出候補のうちのどのアクタ１０５が選出アクタ１０５として選択されるかを決定する。これは、暗証ナンス番号を使用して、例えば、ナンスフィルタを適用することによって行われ得る。認識され得るように、ナンスフィルタは、任意の適用可能な式を使用することができ、この式は、選出コンテキストにおいて公開され、および／またはブロックチェーンコードで予め決定され得る。例えば、ナンスフィルタは、所定のナンス番号に最も近い、またはナンス番号から最も遠い乱数を提出したアクタ１０５を選択するように構成され得る。選出アクタ１０５が決定されると、ステップ６０９において、モデレータ１０３は、ネットワーク１００上の他のすべてのノードが、隠されたナンスを明らかにし、選出された候補が有効であることを確認することができるように、選出された候補および秘密のナンスの復号鍵を示す次のブロックを発行することができる。
【００４３】
いくつかの実施形態では、ブロックチェーン上でアクティブ状態を維持し、実証すべき新しい選出をリッスンするようアクタ１０５に働き掛けるために、選出確認には時間制限または猶予期間が設けられ得る（subject to）。例えば、猶予期間は、選出ブロック番号（election block number）に続く所定の数のブロックに対応し得るが、猶予期間が経過時間のような他のパラメータを使用して定義され得ることは認識される。猶予期間が満了すると、モデレータ１０３は、猶予期間中に受信した選出確認からのトランザクションを組み込んだブロックを公開することができる。猶予期間が満了した選出に関する任意の選出確認は、モデレータ１０３によって単に無視され得る。この方法では、選出アクタ１０５がそれらの選出に続いて十分に速く行動しない場合、それらは、トランザクションを選択する機会を逃し、潜在的な報奨金を失うこととなる。
【００４４】
場合によっては、例えば、フィルタリングが過度に攻撃的である場合、ブロック中にアクタ１０５が選出されない可能性がある。そのような場合、モデレータ１０３は、選出ラウンドの放棄を宣言する前に、所定の期間待つことができる。いくつかの実施形態では、選出が放棄されると、これを反映するように難易度を調整することができ、後続ブロックは、新しい選出をトリガすることとなる新たに調整された選出コンテキストとともに発行され得る。いくつかの実施形態では、選出が放棄されると、モデレータ１０３は、トランザクションがブロックチェーン上で確認され続けることを確実にし、健全なエコシステムを確実にするために、どのトランザクションを現在のブロックに含めるかを決めることが任され得る。
【００４５】
例として、図５は、３つのブロックの成熟時間および２つのブロックの顕在猶予期間を有する例示的なプロセス５００を例示する。特定の難易度および成熟時間を含む第１のブロック、ブロック１、がモデレータによって発行される。このブロックの発行は、３つのブロックが成熟時間に達すると選出が行われこととなることを効果的に宣言する。続いてブロック２および３が発行されるが、アクタが選出されていないため、難易度は補償するために低減される。ブロック４が発行されると、ブロック１が成熟に達し、選出が実行される。したがって、選出アクタは、モデレータによって受信され、確認されるそれらの選出確認メッセージを提出する。その間に、いくつかのアクタが選出されたことを考慮するために難易度を上げてブロック５が発行される。ブロック６が発行されると、顕在猶予期間が満了する。したがって、選出アクタによって選択された選出結果および対応するトランザクションがブロック６に含まれ、それによって、トランザクションをブロックチェーンに結合する。続いて、ブロック４で開始された選出に関する任意の選出確認は、顕在猶予期間の満了により、無視される。
【００４６】
本明細書で説明される実施形態では、選出プロセスは、各アクタ１０５にそれらが選出されたか否かを実証するタスクが課されるという点で実質的に分散される。しかしながら、いくつかの実施形態では、例えば、各選出アクタ１０５によって送られる選出確認メッセージを除外することによってネットワーク１００上のノイズを低減させるために、選出プロセスはがより集中化され得ることは認識されるべきである。そのような実施形態では、モデレータ１０３は、それらがどのアクタ１０５が選出されるべきかを決定することと、ブロック２００を発行するときにアクタ１０５にそれらが選出されたことを通知することとを担い得る。認識され得るように、モデレータ１０３は、チェーン上のすべてのアカウント番号へのアクセスを有し、現在チェーンに存在するすべてのアクタ１０５のアカウントに対して選出条件自体をチェックすることによって、どのアクタ１０５が選出されたかを決定することができる。続いて、モデレータ１０３は、アクタ１０５にそれらが選出されたことを通知するために、選出アクタ１０５のリストを次のブロック２００に含めることができる。代替的に、モデレータ１０３は、例えば異なる通信プロトコルを使用して、ブロックチェーンネットワーク１００の外側で直接および／または間接的に選出アクタ１０５と通信することによって、選出アクタ１０５に通知することができる。アクタ１０５は、選出条件を満たすことを自分自身で確認することができるため、選出を有効として認めることができる。アクタ１０５が選出されたことをアクタ１０５が確認すると、それは、ネットワーク１００上でトランザクションメッセージを送信することによって、および／またはネットワーク１００の外側で別のチャネルを介してモデレータ１０３に直接および／または間接的にメッセージを送信することによって、次のブロック２００に含めるトランザクションを選択し続けることができる。モデレータ１０３は、トランザクションメッセージを受信し、その発信元を検証し、トランザクションを将来のブロック２００に追加してトランザクションを確認する。認識され得るように、このアプローチは、ネットワークメッセージを介してトランザクション選択を持って進み出るように求める前に、選出アクタ１０５のリストを最小限まで減らすことによって、ネットワーク負荷を大幅に低減させることができる。このようなアプローチは、特にネットワーク上のアクタの量が非常に多くなる場合に、リソースを節約するのに有用であり得る。
【００４７】
本選出証明方法の実施形態の特殊性は、特に選出コンテキストが低い難易度を含む場合および／またはネットワーク１００上に多数のアクタ１０５が存在する場合に、複数のアクタ１０５が任意の所与のブロック選出において選出され得ることである。認識され得るように、複数の選出アクタの各々は自身の声を有することができ、各々は、所与のブロックに含めるために、別個のおよび／または潜在的に重複するトランザクションを選択することができる。したがって、方法は、非常に多数の（multiplicity of）選出アクタ１０５に対処するためのメカニズムを含むことができる。例えば、いくつかの実施形態では、本方法は、選ばれたすべてのトランザクションが次のブロックに含まれることができるように、非常に多数のアクタ１０５のそれぞれの選択をマージするステップを含むことができ、ここでは、各選出アクタ１０５は、共同決定者（co-decider）として扱われる。しかしながら、他の選出アクタ１０５が次のブロックにおいて排他性を有することを可能にしつつ、現在のブロックにおいて特定の選出アクタ１０５に排他性を与えるなどの異なる方法で非常に多数のアクタ１０５が対処され得ることは認識される。
【００４８】
いくつかの実施形態では、非常に多数の選出アクタ１０５は、すべての選出アクタの中から主要選出アクタを選択することによって対処され得る。この選択は、例えば、モデレータ１０３によって実行され得る。認識され得るように、選出結果が受信された後、モデレータ１０３は、その結果を使用して、すべての選出アクタの中から単一の主要選出アクタを選択することができる。主要選出アクタには、次のブロックにどのトランザクションを含めるかについての排他的に決定する機会が与えられ得る。選出プロセスと同様に、任意のタイプのフィルタが使用され得る。例えば、主要選出アクタは、最も高いハッシュを有するアクタ、最も多くの資金を保有するアクタ、最も古い登録日を有するアクタなどに基づいて選択され得る。いくつかの実施形態では、例えば図７に例示されるように、フィルタは、どのアクタがランダムに生成された数に最も近いハッシュを有するかに基づくことができる。そのような基準は、すべてのアクタがルールを認識することができるように、そしてモデレータ１０３がそれらの選択に対して責任を負うように、初期の選出コンテキストにおいて公開され得る。
【００４９】
例として、主要選出アクタが使用される実施形態では、モデレータ１０３は、選出のためのパラメータと主要選出のためのパラメータの両方を指定する選出コンテキストを有するブロックを公開することができる。続いて、モデレータ１０３は、選出アクタ１０５からの選出確認メッセージを監視し、このメッセージを分析／比較して、どれが唯一の選出アクタひいては次のブロックのコンテンツの唯一の決定者になるかを決定することができる。主要選出アクタの基準がブロックの一部として公開されるため、ブロックチェーンネットワーク１００上のすべてのアクタ１０５がルールを知ることになる。さらに、選出確認メッセージもネットワーク１００上のすべてのアクタ１０５が入手可能であるため、すべてのアクタ１０５は、誰が選出されたかおよび誰が主要選出アクタとして選択されたかを正確に確認することができる。この方法では、すべてのアクタ１０５は、モデレータ１０３が定義されたルールに従っていること、およびモデレータが本来の挙動をしていることを実証することができる。これは、モデレータ１０３がそれらの決定に対して責任を負うことを確実にする能力をパブリックアクタ１０５に与え、一方で、悪い挙動は、証拠としてブロックチェーンの不変台帳を使用して証明され得る。
【００５０】
本明細書で説明した実施形態では、ネットワーク１００上のアクタ１０５のサブセットは、どのトランザクションが次のブロックの一部となるかを選択するために選出される。ブロックチェーンに参加し、トランザクションを選択するようアクタ１０５に働き掛けるために、選出プロセスは、例えばトランザクションの完了に対する報奨金および／またはトランザクション手数料などを介して、選出アクタ１０５にそれらの作業に対する報酬を与えることができる。これらの報奨金および／またはトランザクション手数料は、トランザクションを介してネットワーク１００上で交換されるものと同じ暗号トークンの形態であり得る。そのような報酬を提供することにより、ブロックチェーン上で「マイニング」が実行され得る。
【００５１】
報奨金は、（すなわち、暗号トークンの新しい単位を作成し、それらを選出アクタ１０５に配分することによって）トランザクションの完了に対してネットワーク１００によって選出アクタ１０５に支払われる報酬を備え得る。報奨金は、例えば、作成されるすべての新しいブロックにおいて、例えば選出コンテキストセクションにおいて、指定され、公開され得る。トランザクション手数料は、トランザクションを開始するアクタによって支払われる報酬であり得る。トランザクション手数料は、例えば、アクタ１０５がトランザクション要求をネットワーク１００にブロードキャストするときに指定され、公開され得る。認識され得るように、選出アクタ１０５は、可能な限り最も高いリターンを得るために、より高いトランザクション手数料を提供するトランザクションを優先することを選ぶことができる。
【００５２】
モデレータ１０３が選出アクタ１０５からトランザクション選択を受信すると、モデレータ１０３は、報奨金および／またはトランザクション手数料が選出アクタ１０５間でどのように分配されるかを決定することができる。いくつかの実施形態では、報奨金がすべての選出アクタ１０５の間で平等に分けられ得るのに対して、トランザクション手数料は、対応するトランザクションを選んだすべての選出アクタ１０５の間で均等に分配され得る。他の実施形態では、どのようにおよびどの割合で報奨金および／またはトランザクション手数料が分配（distributed）されるかを決定するために、数学的フィルタリングが適用され得る。例えば、複数の選出アクタ１０５が、最も高いトランザクション手数料を提供していたためにトランザクションＡＡＡを選択した場合、（例えばタイムスタンプに基づいて）最初に選択を送ったアクタ１０５が、トランザクション手数料を与えられるように選択され得る。代替的に、乱数に最も近いタイムスタンプで選択を送ったアクタ１０５が選択され得る。認識され得るように、異なるフィルタリングアルゴリズムが適用され得る。フィルタリングアルゴリズムのパラメータは、例えば、選出コンテキストにおいて、および／またはブロックチェーンプロトコルのプログラムコードにおける一般ルールとして指定され得る。
【００５３】
本明細書に記載の方法の実施形態は、比較的少ない処理能力で実行され得る。他のブロックチェーン方法とは対照的に、アクタ１０５は、トランザクションを選択する特権を与えられるために計算集約的な計算を実行する必要がない。したがって、本方法では、処理能力および電気は、ブロックチェーンに参加するための制限要因ではない。したがって、本方法を採用するブロックチェーンネットワークの実施形態は、ＩＯＴデバイスのような低電力デバイスで構成することができる。それらの処理能力にかかわらず、各デバイスは、ブロックに含まれるべきトランザクションを選択する公平で均等な機会を与えられ得る。
【００５４】
本方法のこの態様は、特に有利であり得るが、単一のエンティティ（例えば単一の強力なコンピュータ）がそれ自体をネットワーク１００上の複数のアクタ１０５として提示して、その結果、より高い確率で選出される可能性があることは認識される。実際に、ネットワーク上の全体的なアクタ１０５の数に応じて、単一のエンティティは、それがネットワークの有意に十分高い割合を表す場合、ほとんどまたはすべてのトランザクションを決定する立場になり得る。したがって、そのような状況を回避するために、本方法のいくつかの実施形態は、多重身分詐称、すなわち、単一のエンティティまたはコンピュータがそれ自体をネットワーク上の複数のアクタ１０５として提示することを防止するために、１つまたは複数の制限要因を導入するためのメカニズムを備えることができる。
【００５５】
例えば、いくつかの実施形態では、方法は、参加したいと望む新しいアクタ１０５をネットワーク１００に登録して、検証するための登録プロセスを備えることができる。登録プロセスは、例えば、参加したいと望む新しいアクタ１０５のＩＰアドレスを、それらが一意に識別され得るようにネットワークに登録することと、同じＩＰアドレスを有する別のエンティティが複数回登録するのを防ぐこととを含むことができる。まだ登録されていないアクタ１０５からのネットワーク１００上のメッセージは単に無視され得るため、ネットワーク１００に正当に登録されたアクタ１０５だけが参加することができる。
【００５６】
図８を参照すると、ある実施形態による、ネットワークに登録するための例示的なプロセス８００が示されている。例示される実施形態では、モデレータノード１０３は、公開非対称暗号化鍵８０１をネットワークのすべてのメンバに公開する。モデレータ１０３だけが、対応する秘密鍵８０２を有し、公開鍵８０１で暗号化されたメッセージを解読することができる。パブリックアクタ１０５が、登録を希望し、かつ、選出プロセスに参加する資格がある場合、それは、そのＩＰアドレス、ランダムな暗証番号（すなわちパスワード）、および一意のアカウント番号を含むことができる選出参加要求８０３を準備する。次いで、この情報は、モデレータの公開鍵８０１を使用して暗号化され、暗号化されたメッセージ８０５としてネットワーク１００に公開される。
【００５７】
ネットワーク１００上のメッセージを監視するため、モデレータ１０３は、暗号化されたメッセージ８０５を受信し、その秘密鍵８０２を使用してそれを解読することができる。モデレータは、そこに含まれる情報を候補レジストリまたはデータベース８０７に登録することができ、したがって、パブリックアクタ１０５を、メッセージ８０５で指定されたＩＰアドレスにおいて選出に対してアクティブなものとして登録する。したがって、その時点以降、登録されたパブリックアクタ１０５から受信された選出確認メッセージは、モデレータによって認識され、処理される。
【００５８】
本実施形態では、登録はブロックチェーンネットワーク１００上で実行されるが、他のメカニズムも可能であることが認識される。例えば、いくつかの実施形態では、登録は、ウェブサーバまたは他のタイプの登録サーバもしくはコンピューティングデバイスを介して実行され得る。そのような実施形態では、アクタ１０５は、ＨＴＴＰおよび／または別の通信プロトコルを介して、モデレータ１０３によって制御される他のコンピューティングデバイスまたはウェブサーバに登録要求を送ることができる。登録要求は、一意のアカウント名／番号およびパスワードを含むことができる。要求を受信すると、モデレータ１０３は、ＨＴＴＰ接続を用いてまたは別の通信プロトコルを介してアクタのＩＰアドレスを取得し、候補レジストリまたはデータベース８０７を備えるバックエンドサーバに登録情報をプッシュすることができる。続いて、この情報は、ブロックチェーンネットワーク１００上のアクタ１０５からの通信を識別および検証するために使用され得る。この情報は、他の接続およびプロトコルを介してアクタ１０５と直接および／または間接的に通信し、そのような通信中にアクタのアイデンティティを検証するために使用され得ることがさらに認識される。
【００５９】
いくつかの実施形態では、選出確認メッセージを送信する選出アクタのＩＰアドレスは、選択されたトランザクションをブロックに含めて、選択されたトランザクションをブロックチェーンに結合する前に確認され得る。例えば、ネットワーク１００は、機能が選出アクタ１０５の正当性を確認するためのものである信頼できるノードに対応するＩＰ検証ノード１０７を備えることができる。認識され得るように、ＩＰ検証ノード１０７は、別個のノードであり得るか、またはＩＰ検証ノード１０７の機能は、モデレータノード１０３に統合され得る。ＩＰ検証ノード１０７は、正当性実証メッセージ８０９を介して、その対応する登録されたＩＰアドレスにおいてアクタ１０５にコンタクトするように構成され得る。この通信は、異なる通信プロトコルを使用してブロックチェーンネットワーク１００の外側で行われ得る。正当性実証メッセージ８０９は、アクタ１０５によって登録された暗証番号を含むことができる。実証メッセージ８０９を受信すると、アクタ１０５は、暗証番号を実証することができ、それが正しい場合、アクタ１０５は、選出のために現在使用しているアカウント番号を含むメッセージで応答することができる。ＩＰ検証ノード１０７が、ＩＰアドレスに関連付けて候補レジストリ８０７に登録されたアカウント番号に対応するアカウント番号を受信すると、アクタ１０５が有効であると確認され得る。有効であると確認されたアクタ１０５からのトランザクション選択は、後続ブロックに含められ得、検証に失敗したアクタ１０５からのトランザクションは無視され得る。
【００６０】
認識され得るように、上で説明した検証プロセスは、ブロックチェーンの機能要件に応じて異なる周波数および／または間隔で実行され得る。例えば、いくつかの実施形態では、検証プロセスは、選出確認メッセージがモデレータ１０３によって受信されるたびに実行され得る。他の実施形態では、検証プロセスは、一定の間隔でおよび／またはランダムな間隔で実行され得る。いくつかの実施形態では、検証プロセスは、新しいアクタ１０５が選出候補としてネットワーク１００に登録するときに実行され得る。
【００６１】
さらに認識され得るように、この方法でアクタ１０５を検証することは、１つのＩＰアドレスにつき１つのアクタ１０５またはアカウントだけが存在することを確実にし得る。したがって、ＩＰアドレスは制限要因として使用される。このようなアドレスを得ることが困難であるため、１つのエンティティがそれ自体を多くのアクタ１０５または選出候補として提示する能力を効率的に制限することができる。ＩＰアドレスを潜在的な制限要因として説明してきたが、他の制限要因も使用され得ること、およびアクタ１０５が同様の方法で検証され得ることは認識される。例えば、デバイスのＭＡＣアドレスを使用して、アクタ１０５、および／または中央機関によって発行された暗証番号、および／または上の要因の組合せを識別することができる。
【００６２】
本明細書で説明された実施形態では、選出プロセスは、選出確認を検証し、どの情報がブロックに含まれるかを立証するために信頼できるモデレータ１０３が必要であるという点で、実質的に集中化されたモデル上で動作する。いくつかの実施形態では、選出プロセスは、例えば、モデレータノード１０３なしで動作する実質的に分散されたモデル上で動作することができることが認識される。
【００６３】
例えば、いくつかの実施形態では、ジェネシスブロックにおける第１の選出は、非常に容易な難易度因子を含むことができる。ブロックチェーンの始めに現れる複数の選出アクタの間で、すべて（the lot）の中から１つの主要選出アクタだけを選ぶためにフィルタが適用され得る。例えば、複数の選出アクタは、他のすべてのアクタがバイラル方式で受信することができるように、それらの選出立候補をブロードキャストすることができる。続いて、主要選出アクタは、フィルタを適用することによって、すべてのアクタによって識別され得る。例えば、すべての選出アクタの中で最も小さいハッシュを有するアクタが、指定された主要選出アクタとして選ばれ得る。各アクタは、それが選出アクタであると信じるのが誰であるかを決定するためにフィルタを個々に適用することができ、選出アクタは、ネットワーク上のすべてのアクタ、すなわちネットワーク上のアクタの５１％以上によって得られたコンセンサスに基づいて指定されることができる。次いで、主要選出アクタは、次のブロックのコンテンツを選び、後続の選出のための条件を設定することができる。後続の選出のための条件を設定するとき、主要選出アクタは、ネットワークの選択された割合が、選出された候補において公平に表されることを確実にするために、前の選出に基づいて、新たに提案された難易度因子を提供することができる。ネットワーク上の他のアクタは、前の選出のそれら自身の評価に基づいて、所定の範囲内に入ることを確実にするために、提案された難易度因子を検証することができる。他のアクタが提案された難易度を拒否する場合、フィルタを使用して、例えば、２番目に小さいハッシュを有する選出アクタを選ぶことによって、別の主要選出アクタが選ばれ得る。これは、有効な選出アクタがコンセンサスによって選ばれるまで、すなわち、選出アクタが所定の範囲内に入っている有効な難易度を選択したことにネットワークの大部分が同意するときまで続き得る。有効なアクタが最終的に選ばれると、ブロックが承認され、このプロセスは、将来のブロックでも継続し得る。いくつかの実施形態では、ブロック中にアクタが選出されなかった場合、最後の主要選出アクタが、新たな選出をトリガすることになる調整された難易度を有する空のブロックを発行することができる。新しい選出は、新しい主要選出アクタを選出すると確認され得、このプロセスは通常通り、後続ブロックでも継続し得る。
【００６４】
本発明の特定の利点および用途は本明細書に明示的に記載されているが、本開示を読むと、他の利点および用途が当業者に明らかとなり得る。本発明は、記載された実施形態および用途に限定されるものではなく、当業者は、本発明の範囲から逸脱することなく数多くの修正が行われ得ることを理解するであろう。
【図１Ａ】
2021533708.tif 000003
【図１Ｂ】
2021533708.tif 000004
【図２Ａ】
2021533708.tif 000005
【図２Ｂ】
2021533708.tif 000006
【図３】
2021533708.tif 000007
【図４Ａ】
2021533708.tif 000008
【図４Ｂ】
2021533708.tif 000009
【図５】
2021533708.tif 000010
【図６Ａ】
2021533708.tif 000011
【図６Ｂ】
2021533708.tif 000012
【図７】
2021533708.tif 000013
【図８】
2021533708.tif 000014
【国際調査報告】
2021533708.tif 000015
2021533708.tif 000016
2021533708.tif 000017