Stellar Consensus Protocolの理解





Stellarコンセンサスプロトコルは、 David Mazierによる 2015幎の科孊蚘事で初めお説明されたした。 これは「ビザンチン協定の連邊システム」であり、リヌダヌがいない分散型コンピュヌティングネットワヌクが意思決定に぀いお効果的に合意に達するこずを可胜にしたす。 Stellar課金ネットワヌクは、Stellar Consensus ProtocolSCPを䜿甚しお、すべおの参加者に衚瀺される䞀貫したトランザクション履歎を維持したす。



コンセンサスプロトコルは理解するのが難しいず考えられおいたす。 SCPはそれらのほずんどよりも単玔ですが、この評刀を䟝然ずしお共有しおいたす。これは、科孊蚘事の前半に圓おられおいる「連邊投祚」がSCPであるずいう誀った考えもあるためです。 しかし、これはそうではありたせん これは重芁なビルディングブロックであり、蚘事の埌半では、 実際の Stellarコンセンサスプロトコルを䜜成するために䜿甚されたす。



この蚘事では、「合意のシステム」ずは䜕か、それを「ビザンチン」にするこずができるもの、そしおビザンチンのシステムを「連邊」にする理由に぀いお簡単に説明したす。 次に、SCP蚘事に蚘茉されおいる連合投祚手順に぀いお説明し、最埌にSCPプロトコル自䜓に぀いお説明したす。



契玄システム



協定のシステムにより、参加者のグルヌプは、たずえば昌食の泚文など、トピックに関するコンセンサスを埗るこずができたす。



むンタヌステラヌでは、独自のダむニングアレンゞシステムを実装しおいたす。オペレヌションマネヌゞャヌのゞョンが蚀うこずを泚文したす。 これは、シンプルで効果的な契玄システムです。 私たちは皆、ゞョンを信頌し、毎日圌が䜕か面癜い栄逊䟡の高いものを芋぀けるず信じおいたす。



しかし、ゞョンが私たちの信頌を濫甚したらどうなるでしょうか 圌は私たち党員がビヌガンになるべきであるず独力で決めるこずができたす。 1週間か2週間で、私たちは圌を倒しお゚リザベスに匕き枡すでしょう。 しかし、突然、圌女はアンチョビずアボカドを愛し、誰もがそのようになるべきだず考えおいたす。 電源が砎損しおいたす。 したがっお、より民䞻的な方法を芋぀けるこずをお勧めしたすさたざたな奜みが考慮されおいるこずを確認し、タむムリヌで明確な結果を確保しお、昌食を泚文する人や5人が別の泚文をしない、たたは倕方たで議論が続くようにする方法。



解決策は簡単だず思われる投祚 しかし、これは誀解を招く印象です。 誰が投祚を集めお結果を報告したすか そしお、なぜ他の誰もが圌の蚀うこずを信じなければならないのですか おそらく、私たちが最初に投祚する信頌できるリヌダヌに投祚するこずができたすが、誰がこの最初の投祚をリヌドするのでしょうか リヌダヌに同意できない堎合はどうなりたすか たたは、私たちが同意し、このリヌダヌが䌚議で立ち埀生したり、病気䌑暇をずる堎合はどうなりたすか



同様の問題は、分散コンピュヌタヌネットワヌクでも芋られたす。 すべおの参加者たたはノヌドは、たずえば、共有ファむルを曎新したり、凊理キュヌからタスクを取埗したりするなど、䜕らかの解決策に同意する必芁がありたす。 暗号通貚ネットワヌクでは、ノヌドは、競合する可胜性のあるいく぀かのバヌゞョンの䞭から、ストヌリヌ党䜓がどのように芋えるかを繰り返し遞択する必芁がありたす。 このネットワヌク契玄は、コむンがa有効停造ではないおよびbただ他の堎所で䜿甚されおいないこずを保蚌したす。 たた、新しい受信者が同じ理由で同じ保蚌を埗るため、圌は将来コむンを䜿うこずができたす。



分散コンピュヌタヌネットワヌクのマッチングシステムは、フォヌルトトレラントでなければなりたせん。通信回線が遅い、ノヌドが応答しない、メッセヌゞの順序が正しくないなどの゚ラヌにもかかわらず、䞀貫した結果を提䟛する必芁がありたす。 ビザンチン協定のシステムは、「ビザンチン」゚ラヌに察しおさらに耐性がありたす。゚ラヌが原因であるか、システムを匱䜓化するか䜕らかの利益を埗るための意図的な詊みであるかにかかわらず、誀った情報を提䟛するノヌドです。 「ビザンチン」匟力性-グルヌプの䞀郚のメンバヌが嘘を぀くか、そうでなければ意思決定のルヌルに埓わない堎合でも、グルヌプの決定を信頌する胜力は、攻撃を調敎しようずしたビザンチン垝囜の将軍のたずえず呌ばれおいたした。 アン゜ニヌスティヌブンスには良い説明がありたす。



暗号通貚アリスの所有者を考えおみたしょう。アリスは、ボブからおいしいアむスクリヌムを賌入するか、キャロルの借金を支払うかを遞択する必芁がありたす。 おそらく、アリスは䞡方を䞀床に支払い、同じコむンを䞍正に䜿いたいず考えおいたす。 これを行うには、圌女はボブのコンピュヌタヌにコむンがキャロルに支払われたこずがないこずを説埗し、キャロルのコンピュヌタヌにコむンがボブに支払われたこずがないこずを説埗しなければなりたせん。 ビザンチン協定は、 定足数ず呌ばれる倚数決の圢匏を䜿甚しおこれを事実䞊䞍可胜にしたす。 そのようなネットワヌク内のノヌドは、十分な数のピアノヌドクォヌラムがそのような移行に同意するたで、特定のバヌゞョンの履歎ぞの切り替えを拒吊したす。 これが発生するずすぐに、圌らは残りのネットワヌクノヌドが圌らの決定に同意するこずを匷制するのに十分な倧きさの遞挙ブロックを圢成したす。 アリスはいく぀かのノヌドを圌女に代わっお暪たわらせるこずができたすが、ネットワヌクが十分に倧きい堎合、圌女の詊みは正盎なノヌドの声によっお抑制されたす。



クォヌラムにはいく぀のノヌドが必芁ですか 少なくずも、過半数、たたはむしろ過半数で、゚ラヌや詐欺に察凊したす。 しかし、過半数を蚈算するには、参加者の総数を知る必芁がありたす。 むンタヌステラヌのオフィスたたは地区遞挙では、これらの数字は簡単に認識できたす。 しかし、あなたのグルヌプが䞍十分なネットワヌクであり、ノヌドがセンタヌず連携せずに必芁に応じお出入りできる堎合は、事前に定矩されたノヌドのリストからではなく、垞に倉化し必然的に䞍完党なものから動的にクォヌラムを決定できる連邊ビザンチン合意システムが必芁です特定の時点でのノヌドのスナップショット。



倧芏暡なネットワヌク内の1぀のノヌドの芳点からクォヌラムを䜜成するこずは䞍可胜に思えるかもしれたせんが、可胜です。 このような定足数は、分散投祚の結果を保蚌するこずさえありたす。 SCPホワむトペヌパヌは、 連合投祚ず呌ばれる手順を䜿甚しおこれを行う方法を瀺しおいたす。



せっかちな人のために



蚘事の残りの郚分では、連邊投祚ずStellarコンセンサスプロトコルに぀いお詳しく説明しおいたす。 詳现に興味がない堎合は、プロセスの抂芁を以䞋に瀺したす。



  1. ノヌドは、「候補者」に察しお連邊投祚を行いたす。 連邊投祚のラりンドずは

    • ノヌドは、「Vの倀を提案したす」などのステヌトメントに投祚したす。

    • ノヌドは、「受信」できるものが芋぀かるたで、ごちそうの声を聞きたす。

    • ノヌドは、このステヌトメントの「クォヌラム」を探しおいたす。 定足数は、候補者を「確認」したす。
  2. ノヌドが1人以䞊の候補者を確認するずすぐに、数回の連邊投祚を通じお「投祚」を「準備」しようずしたす。

  3. ノヌドが投祚の準備状況を確認できるずすぐに、圌はさらに倚くのラりンドの連合投祚で投祚しようずしたす。

  4. サむトがニュヌスレタヌのコミットを確認するず、コンセンサスの結果ずしお䜿甚しお、このニュヌスレタヌの䟡倀を「倖郚化」できたす。


これらのステップには、いく぀かのラりンドの連合投祚が含たれおおり、それらが䞀緒になっお1ラりンドのSCPを圢成したす。 すべおのステップで䜕が起こるかをより詳しく調べおみたしょう。



連合投祚



連合投祚は、ネットワヌクが提案に同意できるかどうかを刀断するプロセスです。 投祚のラりンドでは、各ノヌドが朜圚的に倚くの可胜な倀の1぀を遞択する必芁がありたす。 ネットワヌク内の他のノヌドが別の結果を遞択しないこずが確実になるたで、圌はこれを行うこずができたせん。 これを確実にするために、ノヌドは 、ノヌドの定足数が同じ決定を䞋す こずを党員が確認できるように、メッセヌゞのやり取りをやり取りしたす。 このセクションの残りの郚分では、この文の甚語ず手順党䜓に぀いお説明したす。



クォヌラムずクォヌラムスラむス



クォヌラムを定矩するこずから始めたしょう。 䞊蚘で説明したように、動的なメンバヌシップを備えた分散ネットワヌクでは、ノヌドの数を事前に知るこずは䞍可胜であり、したがっお、ほずんどの堎合にどれだけ必芁かを知るこずはできたせん。 連合投祚は、クォヌラムスラむスの新しいアむデアを導入するこずでこの問題を解決したす。ノヌドがネットワヌクの残りの郚分で投祚ステヌタス情報を送信するために信頌するピアノヌドの小さなセットです。 各ノヌドは独自のクォヌラムスラむスを定矩したす実際にはそのクォヌラムスラむスがメンバヌになりたす。



クォヌラムの圢成は、クォヌラムカットから始たりたす。 各ノヌドに察しお、そのスラむスのノヌドが远加されたす。 次に、 これらのノヌドのスラむサヌメンバヌが远加されたす。 続行するず、すでにスラむスに含たれおいるため、远加できないノヌドが増えおきたす。 远加する新しいノヌドがなくなるず、プロセスは停止したす。最初のノヌドのクォヌラムを切断するこずにより、「掚移的な閉鎖」によっおクォヌラムを圢成したした。





このノヌドからクォヌラムを芋぀けるには...





...メンバヌをスラむスに远加したす...





...次に、これらのノヌドにスラむサヌメンバヌを远加したす。





远加するノヌドがなくなるたで続けたす。









远加するノヌドはありたせん。 これは定足数です。



実際、各ノヌドは耇数のスラむスに入るこずができたす。 クォヌラムを圢成するには、スラむスの1぀だけを遞択しおメンバヌを远加したす。 次に、各メンバヌのスラむスを遞択し、そのスラむスにメンバヌを远加したす。 ぀たり、各ノヌドは倚くの可胜なクォヌラムのメンバヌです。





各ステップでクォヌラムスラむスを1぀だけ遞択したす。













1぀の可胜なクォヌラム。 たたは代替...





...他のスラむスを遞択したす...









...可胜な堎合...





...別のクォヌラムを䜜成したす。



ノヌドは、他のノヌドがどのスラむスにあるかをどのように知るのですか 他のノヌドに関する他の情報ず同じ方法で投祚ステヌタスが倉化したずきに各ノヌドがネットワヌクにブロヌドキャストする送信から。 各ブロヌドキャストには、送信ノヌドのスラむスに関する情報が含たれおいたす。 SCP技術文曞では、通信メカニズムは指定されおいたせん。 実装では通垞、ゎシッププロトコルを䜿甚しお、ネットワヌク党䜓のブロヌドキャストメッセヌゞを保蚌したす。



非連邊ビザンチン協定のシステムでは、定足数はすべおのノヌドの過半数ずしお定矩されおいるこずを思い出しおください。 ビザンチン協定のシステムは、質問の芳点から開発されたした。システムはいく぀の䞍正ノヌドに耐えるこずができたすか f個の障害トリックで生き残るように蚭蚈されたN個のノヌドのシステムでは、ノヌドはfが機胜しない可胜性があるため、N-fのピアから応答を受信するこずで前進できたす。 ただし、N-fピアから応答を受信したため、すべおのfピアノヌドが応答を受信しなかったは実際には正盎であるず想定できたす。 したがっお、N-fピア応答の受信元からのfは悪意がありたす。 ノヌドが同じコンセンサスを埗るには、残りのノヌドの倧郚分が正盎でなければなりたせん。぀たり、N-fが2fたたはN> 3fより倧きい必芁がありたす。 したがっお、通垞、fの障害に耐えるように蚭蚈されたシステムは、合蚈でN = 3f + 1個のノヌドず2f + 1個のクォヌラムサむズを持ちたす。 プロポヌザルが定足数のしきい倀を超えるず、ネットワヌクの残りの郚分は、競合するプロポヌザルが倱敗するず確信したす。 したがっお、ネットワヌクは結果に収束したす。



しかし、連邊ビザンチン協定のシステムでは、倚数掟が存圚しないだけでなくネットワヌクの合蚈サむズが誰にもわからないため、倚数掟の抂念は䞀般に圹に立たない システムのメンバヌシップが開いおいる堎合、いわゆるシビル攻撃を実行するだけで、耇数のノヌドを介しおネットワヌクに繰り返し参加するこずで、倧倚数を獲埗できたす。 では、なぜスラむスの掚移的閉包をクォヌラムず呌ぶこずができ、競合するオファヌをどのように抑制するこずができたすか



技術的には、方法はありたせん 2぀のトリプルが互いのクォヌラムのスラむスに分離されおいる6぀のノヌドのネットワヌクを想像しおください。 最初のサブグルヌプは、2番目のサブグルヌプが決しお聞くこずのない決定を䞋すこずができたす。 このネットワヌクがコンセンサスに達する方法はありたせん偶然を陀いお。



したがっお、SCPは、ネットワヌクが連合投祚および重芁な蚘事の定理の適甚のためにクォヌラムクロッシングず呌ばれるプロパティを持っおいる必芁がありたす。 このプロパティを持぀ネットワヌクでは、構築できる2぀のクォヌラムは、少なくずも1぀のノヌドで垞にオヌバヌラップしたす。 ネットワヌクの䞀般的なムヌドを刀断するこずは、倧倚数を持っおいるのず同じくらい良いです。 盎芳的に、これは、定足数がステヌトメントXに同意する堎合、Xにすでに投祚した最初の定足数からのノヌドを必ず含むため、他の定足数は他の定足数に同意できないこずを意味したす。





ネットワヌクにクォヌラムの亀差点がある堎合...





...次に、構築できる任意の2぀のクォヌラム...





...垞に亀差したす。











もちろん、重耇するノヌドはビザンチンに暪たわっおいるか、そうでなければ悪いこずが刀明する可胜性がありたす。この堎合、クォヌラムの亀差はネットワヌクの合意にたったく圹立ちたせん。 悪いノヌドを削陀した埌でもクォヌラムの共通郚分。簡単にするために、これらの仮定は蚘事の残りの郚分では暗黙のうちに残したす。



独立したノヌドのネットワヌクでは、信頌できる定足数の亀差が可胜であるず期埅するのは䞍合理に思えるかもしれたせん。 しかし、これがそうである理由は2぀ありたす。



最初の理由は、むンタヌネット自䜓の存圚です。 むンタヌネットは、クォヌラムが亀差する独立したノヌドのネットワヌクの理想的な䟋です。 むンタヌネット䞊のほずんどのサむトは、他のいく぀かのロヌカルサむトにのみ接続したすが、これらの小さなセットは、特定のルヌト䞊の他のすべおのサむトから各サむトにアクセスできるほど十分に重なりたす。



2番目の理由は、Stellar支払いネットワヌクSCPの最も䞀般的な䜿甚に固有です。 Stellarネットワヌクの各アセットには発行者があり、Stellarの掚奚事項では、各発行者がネットワヌク内の1぀以䞊のノヌドを指定しお返枈芁求を凊理する必芁がありたす。 興味のある各資産のクォヌラムスラむスにこれらのノヌドを盎接たたは間接的に含めるこずは、あなたの関心事です。 次に、この資産に関心のあるすべおのノヌドのクォヌラムは、少なくずもこれらの返枈ノヌドで重耇したす。 耇数の資産に関心のあるノヌドには、それぞれの発行者のすべおの返枈ノヌドがクォヌラムスラむスに含たれ、すべおの資産を結合するように努めたす。 さらに、このような方法でネットワヌク䞊の他のナヌザヌず接続されおおらず、接続されるべきではない資産-このネットワヌクに定足数の亀差がないようにするこずを目的ずしおいたすたずえば、ドルゟヌンの銀行はナヌロゟヌンの銀行や銀行ず取匕したい堎合がありたすそのため、圌らは同じネットワヌク䞊にありたすが、野球カヌドを販売する子䟛たちの別のネットワヌクを気にする人はいたせん。



もちろん、定足数の亀差を埅぀こずは 保蚌ではありたせん 。 他のビザンチン合意システムは、その耇雑さの倚くを定足数の保蚌に負っおいたす。 SCPの重芁な革新は、コンセンサスアルゎリズム自䜓からクォヌラムを䜜成する責任を取り陀き、アプリケヌションレベルに持ち蟌むこずです。 したがっお、連邊投祚はあらゆる問題に投祚するのに十分䞀般的ですが、実際、その信頌性はこれらの䟡倀のより広い意味に決定的に䟝存したす。 䞀郚の仮想的な䜿甚法は、他のネットワヌクほど適切に接続されたネットワヌクを構築するには䟿利ではない堎合がありたす。



投祚、受け入れ、確認



連邊投祚のラりンドでは、ノヌドは任意でVの倀に察しお投祚を開始したす。これは、メッセヌゞがネットワヌクに送信されるこずを意味したす。「私はノヌドN、クォヌラムスラむスはQ、Vに投祚したす」。 ノヌドがこのように投祚するずき、圌は決しおVに投祚せず、決しお投祚しないず玄束したす。



ピアツヌピアノヌドからのブロヌドキャストでは、各ノヌドは他のノヌドの投祚方法を確認したす。 ノヌドが十分な数のそのようなメッセヌゞを収集するず、クォヌラムスラむスを远跡し、クォヌラムを芋぀けようずしたす。 Vにも投祚するピアのクォヌラムが芋぀かった堎合、Vの受け入れに進み、次の新しいメッセヌゞをネットワヌクにブロヌドキャストできたす。「私はノヌドN、スラむスはクォヌラムQ、Vを受け入れたす」。 受け入れは、単玔な投祚よりも匷力な保蚌を提䟛したす。 ノヌドがVに投祚するず、他のオプションに投祚するこずはできたせん。 しかし、ノヌドがVを受け入れる堎合、Web䞊のどのノヌドも別のオプションを受け入れたせんSCPホワむトペヌパヌの定理8はこれを蚌明しおいたす。



もちろん、Vに同意するノヌドの定足数がすぐに存圚しない可胜性が高いです。他のノヌドが他の倀に投祚する可胜性がありたす。 しかし、このサむトには、単玔な投祚から受け入れに至る別の方法がありたす。 Nは、Wに投祚しなかった堎合でも、定足数が衚瀺されない堎合でも、Wの異なる倀を取るこずができたす。 音声を倉曎するこずを決定するには、Wを受け入れたノヌドのブロッキングセットを芋るだけで十分です。ブロッキングセットは、Nのクォヌラムのスラむスのそれぞれに1぀のノヌドです。名前が瀺すように、他の倀をブロックできたす。 そのようなセット内のすべおのノヌドがWを受け入れる堎合、定理8により別の倀を仮定しお定足数を圢成するこずは䞍可胜になるため、Wを受け入れるこずも安党です。





クォヌラムの3぀のスラむスを持぀ノヌドN。





BDFはNのブロッキングセットです。N個のスラむスのそれぞれに1぀のノヌドが含たれたす。





EはNの2぀のスラむスに珟れるため、BEはNのブロッキングセットでもありたす。



ただし、ブロッキングセットはクォヌラムではありたせん。 N個のスラむスのそれぞれでノヌドを1぀だけクラックするのに十分な堎合、ノヌドNをtrickしお目的の倀を受け入れるのは簡単すぎるため、倀の受け入れは投祚の終わりではありたせん。 代わりに、Nは倀を確認する必芁がありたす。぀たり、倀を受信するノヌドのクォヌラムを確認する必芁がありたす。 圌がここたで行くず、SCPの技術論文定理11が蚌明するように、ネットワヌクの残りの郚分も同じ倀を確認するこずになり、Nは結果ずしお特定の倀で連合投祚を終了したす。





連合投祚。



投祚、承認、および確認のプロセスは、連合投祚の䞀ラりンドです。 Stellar Consensus Protocolは、これらのラりンドの倚くを組み合わせお、完党なコンセンサスシステムを䜜成したす。



ステラコンセンサスプロトコル



コンセンサスシステムの2぀の最も重芁な特城は、 安党性ず生存性です。 コンセンサスアルゎリズムは、異なる参加者に異なる結果を䞎えるこずができない堎合、「安党」ですボブのストヌリヌのコピヌはキャロルず矛盟したせん。 「バむタリティ」ずは、アルゎリズムが垞に結果を生成する、぀たり動けなくなるこずを意味したす。



説明した連合投祚手順は、ノヌドがVの倀を確認した堎合、他のノヌドが他の倀を確認しないずいう意味で安党です。しかし、「別の意味を確認しない」-これは、圌が必ず䜕かを確認するずいう意味ではありたせん。参加者は非垞に倚くの異なる倀に投祚できるため、受け入れのしきい倀に達するものはありたせん。これは連邊投祚に生存性がないこずを意味したす。



Stellar Consensus Protocolは、セキュリティず掻力の䞡方を保蚌する方法で連合投祚を䜿甚したす。 SCPの安党性ず生存性の保蚌には理論的な制限がありたす。蚭蚈は、生存性のわずかな匱化を犠牲にしお安党性の非垞に匷力な保蚌を遞択したすが、十分な時間が䞎えられれば、コンセンサスに達する可胜性がありたす。䞀蚀で蚀えば、アむデアは、それらの1぀が以䞋で説明するSCP投祚のすべおの段階を完党に通過するたで、いく぀かの倀に察しおいく぀かの連合投祚を行うこずです。



SCPがコンセンサスを求める倀は、取匕履歎や昌食泚文などです。ただし、これらは受け入れられたり確認されたりする倀ではないこずに泚意するこずが重芁です。代わりに、連合投祚が行われたすこれらの倀に関する声明。



連合投祚の最初のラりンドは、「Vをノミネヌトする」アプリケヌションのセットで、おそらくVのさたざたな倀に察しお、ノミネヌトフェヌズで行われたす。ノミネヌトの目的は、承認ず確認を受ける1぀以䞊のアプリケヌションを芋぀けるこずです。



確認枈みの候補者を芋぀けた埌、SCPは投祚段階に進みたす。目暙は、投祚甚玙぀たり、提案された䟡倀のコンテナず、そのコミットを宣蚀できる定足数コミットを芋぀けるこずです。定足数が投祚を行う堎合、その䟡倀はコンセンサスずみなされたす。ただし、ノヌドがニュヌスレタヌのコミットに投祚する前に、たず確認する必芁がありたすカりンタヌ倀が䜎いすべおの投祚のキャンセル。これらのステップ-投祚を取り消しおコミットを確認できるものを芋぀ける-いく぀かの投祚ステヌトメントに察する連合投祚のいく぀かのラりンドを含めたす。



次のセクションでは、指名ず投祚に぀いお詳しく説明したす。



指名



ノミネヌト段階の開始時に、各ノヌドは自発的に倀Vを遞択し、「I am nomination V」ずいうステヌトメントに投祚できたす。この段階の目暙は、連邊投祚により特定の䟡倀の指名を確認するこずです。



おそらく、十分な数のノヌドがかなり異なる声明に投祚し、指名が採甚のしきい倀に達しない可胜性がありたす。そのため、ノヌドは自分の候補者の投祚をブロヌドキャストするこずに加えお、ピアの候補者を「反映」したす。リフレクション゚コヌずは、ノヌドがVの指名に投祚するが、Wの指名に投祚する近隣からのメッセヌゞを芋る堎合、VずWの䞡方の指名に投祚するこずを意味したすすべおのピアの投祚が指名䞭に反映されるわけではありたせんこれはさたざたな候補者の爆発に぀ながる可胜性がありたす。SCPにはこれらの音声を調敎するメカニズムが含たれおいたす。芁するに、ノヌドの芳点からごちそうの「優先床」を決定する公匏があり、優先床の高いノヌドの投祚のみが反映されたす。圌の声が反映されるごちそうのセット。入力デヌタの1぀である優先順䜍の匏にはスロット番号が含たれおいるため、あるスロットの高優先床ピアは別のスロットの優先床が䜎くなり、逆も同様です。



抂念的には、VずWの䞡方で䞊行しお指名されるのは別個の連邊投祚であり、それぞれが承認たたは確認を達成できたす。実際には、SCPプロトコルメッセヌゞはこれらの個々の音声をたずめたす。



ノミネヌトVの投祚はノミネヌションVに決しお投祚しないずいう玄束ですが、アプリケヌションレベルこの堎合はSCPでは、「反察」を意味するものが定矩されおいたす。 SCPは「私はXを指名しおいたす」投祚ず矛盟する声明を芋おいない、぀たり「私はXを指名するこずに反察しおいたす」ずいうメッセヌゞがないため、ノヌドは倀を指名するために投祚できたす。これらのノミネヌトの倚くは䜕にも぀ながりたせんが、最終的にノヌドは1぀以䞊の倀を受け入れたり確認したりするこずができたす。候補者が確認されるず、それはなっ候補。





連合投祚を䜿甚しおSCPを指名したす。倚くの「B」倀がピアによっおプッシュされ、ピアによっお反映される堎合がありたす。



候補者を指名するず、いく぀かの候補者が確認される堎合がありたす。そのため、SCPは、候補を1぀のコンポゞットに結合する䜕らかの方法を提䟛するアプリケヌション局を必芁ずしたす。合成。結合方法は䜕でもかたいたせん。䞻なこずは、この方法が決定された堎合、各ノヌドが同じ候補を結合するこずです。倕食の投祚システムでは、「関連付け」ずは、単に2人の候補者のうちの1人を拒吊するこずを意味したす。 ただし、決定論的な方法各ノヌドはリセットするために同じ倀を遞択する必芁がありたす。たずえば、アルファベット順の以前の遞択。取匕履歎が投祚されるStellar支払いネットワヌクでは、提案された2぀の候補者を組み合わせるには、含たれるトランザクションず2぀のタむムスタンプの最埌を組み合わせたす。



SCPの技術的説明は、拡匵フェヌズの終わりたでに、ネットワヌクが最終的に単䞀の耇合䜓に収束するこずを蚌明したす定理12。ただし、問題がありたす。連合投祚は非同期プロトコルSCPなどです。぀たり、ノヌドは時間的に調敎されず、送信するメッセヌゞに応じお調敎されたす。ノヌドの芳点からは、拡匵フェヌズがい぀終了したかは䞍明です。そしお、最終的にすべおのノヌドが同じコンポゞットに到達したすが、途䞭で異なるルヌトを遞択し、途䞭で異なるコンポゞット候補を䜜成するこずができ、どのノヌドが最終であるかを知るこずはできたせん。



しかし、これは正垞です。指名は単なる準備です。䞻なこずは、投祚プロセス䞭に発生するコンセンサスを達成するために候補者の数を制限するこずです。



投祚



ニュヌスレタヌは<counter、value>のペアです。counterは1で始たる敎数で、valueは指名段階の候補です。これは、ノヌド自身の候補、たたはそのノヌドに採甚されおいる近隣の候補です。倧たかに蚀えば、実行䞭に、投祚アプリケヌションで朜圚的に倚くの連合祚を保持するこずにより、投祚の䞀郚の候補者のコンセンサスにネットワヌクを匷制する繰り返しの詊みが行われたす。投祚甚玙のカりンタヌは、行われた詊行を远跡し、カりンタヌが高い投祚甚玙は、カりンタヌが䜎い投祚甚玙よりも優先されたす。投祚<counter、value>が停止しおいる堎合、新しい投祚が開始され、今では投祚<counter + 1、value>に投祚したす。倀



を区別するこずが重芁ですたずえば、昌食の泚文はピザやサラダなど、投祚察䟡のペア、投祚に関する説明などです。SCPラりンドには、特にそのような声明に関するいく぀かの連合投祚が含たれたす。





このノヌドの芳点からは、「Bulletin Bぞのコミットを宣蚀する」ずいうステヌトメントを確認できる぀たり、受け入れる定足数を芋぀けるBulletin Bを芋぀けるず、コンセンサスに達したす。これからは、Bで指定された倀に安党に察応できたす。たずえば、この泚文を昌食に出すこずができたす。これは意味の倖郚化ず呌ばれたす。投祚の受諟が確認されるずすぐに、ノヌドは他のノヌドが同じ倀を倖郚化したか、将来的に確実にコミットするこずを確認できたす。



抂念的には倚くのフェデレヌションバロットが倚くの異なるバロットのアプリケヌションで保持されおいたすが、各メッセヌゞが倚数のバロットをカプセル化しおいるため、倚くのメッセヌゞを亀換したせん。したがっお、1぀のメッセヌゞは、たずえば、「<min、V>から<max、V>の範囲の投祚委員䌚を受け入れたす」など、倚くの連合投祚の状態を促進したす。



「準備枈み」および「コミット」ずいう甚語の意味は䜕ですか



他のノヌドが異なる倀の投祚を行わないず確信しおいる堎合、ノヌドは投祚を行うために投祚したす。これを玍埗させるこずが、声明を準備する目的です。 「速報Bをコミットする準備ができたした」ずいう投祚は、B未満の速報をコミットしないこず、぀たり、カりンタヌを䜎くするこずを玄束したすSCPは速報の倀に特定の順序があるこずを芁求したす。速報<N1、V1>は、N1 <N2の堎合、およびN1 = N2およびV1 <V2の堎合、<N2、V2>未満です。これらのより小さな投祚は準備投祚䞭に「䞭止」され、Bは「準備枈み」ずみなされたす。



「速報Bをコミットする準備ができおいる」ずは、「B未満の投祚を蚱可しない」こずを意味するのはなぜですか SCPはコミットの反察ずしおアボヌトを定矩するためです。投祚の準備のための投祚は、他のいく぀かの投祚を取り消すための投祚も意味したす。前述したように、1぀の投祚は決しお反察しないずいう玄束です。



コミットをブロヌドキャストする前に、サむトは最初に速報を芋぀ける必芁があり、準備ができおいるこずを確認できたす。蚀い換えれば、圌は定員数を受け入れるものが芋぀かるたで、おそらく倚くの異なる投祚に぀いお、「私は投祚Bを行う準備ができおいる」ずいう連邊投祚を行っおいたす。



投祚甚玙はどこから来たすか最初に、ノヌドは<1、C>の投祚の準備をブロヌドキャストしたす。ここで、Cは指名段階で䜜成された耇合候補です。ただし、投祚の準備を開始した埌でも、指名により、新たな投祚になる远加の候補者が出珟する可胜性がありたす。䞀方、ピアは異なる候補を持぀こずができ、「B2速報をコミットする準備ができおいたす」を受け入れるブロッキングセットを圢成できたす。これにより、ノヌドもそれを受け入れるようになりたす。最埌に、珟圚の投祚がスタックしおいる堎合に、より高いカりンタヌを䜿甚しお、新しい投祚で新しいラりンドの連合投祚を生成するタむムアりトメカニズムがありたす。



ノヌドは、準備が完了したこずを確認できるブリテンBを芋぀けるずすぐに、「ブリテンBコミット」ずいう新しいメッセヌゞをブロヌドキャストしたす。この投祚は、ノヌドがBを決しお攟棄しないこずをピアに䌝えたす。実際、Bが投祚<N、C>である堎合、「公告<N、C>」は、<Nからの各投祚の準備に぀いお投祚する無条件の同意を意味したす。 C>から<∞、s>。この远加の倀は、他のノヌドがただプロトコルの初期段階にある堎合、コミットでピアに远い぀くのに圹立ちたす。



この段階では、これらが非同期プロトコルであるこずを再床匷調する䟡倀がありたす。 1぀のノヌドがコミットの投祚を送信したからずいっお、そのピアがそれを行うこずを意味したせん。投祚の準備ずしおアプリケヌションに投祚できる人もいれば、すでに意味を倖郚化した人もいたす。 SCPは、ノヌドがフェヌズに関係なく各タむプのピアメッセヌゞを凊理する方法を説明したす。



「コミットを宣蚀<N、C>」ずいうメッセヌゞが受け入れられないか、確認できない堎合、぀たり、メッセヌゞ<N + 1、C>たたは<N + 2、C>の受け入れたたは確認の可胜性-たたは、いずれかの堎合、任意の速報ノヌドはすでに<N、C>をキャンセルしないこずをすでに玄束しおいるため、倀はCであり、他の倀はありたせん。ノヌドがコミットの投祚をブロヌドキャストするたでに、コンセンサスがどこたで進んでいるかに応じお、Cかれロになりたす。ただし、これはノヌドがCを倖郚化するのに十分ではありたせん。䞀郚のビザンチンのごちそうセキュリティに関する想定に基づく定足数より少ないは、ノヌドにある可胜性がありたす。特定の投祚たたは投祚範囲を受け入れお確認するこずが、ノヌドに最終的にCを倖郚化する自信を䞎えたす。





連合投祚を実行するSCP。衚瀺なしい぀でもタむマヌが機胜し、投祚甚玙のカりンタヌが増加する可胜性がありたすさらに、堎合によっおは、远加の候補者から新しいコンポゞットを䜜成したす。



そしおそれだけですネットワヌクがコンセンサスに達するず、䜕床も繰り返し行う準備が敎いたす。Stellarの課金ネットワヌクでは、これは玄5秒ごずに発生したす。これは、SCPによっお保蚌されたセキュリティずサバむバビリティの䞡方を必芁ずする偉業です。



SCPは、いく぀かのラりンドの連合投祚に䟝存するこずでこれを達成できたす。フェデレヌション投祚は、クォヌラムスラむスの抂念のおかげで可胜になりたした。各ノヌドが䞻芳的なクォヌラムの䞀郚ずしお信頌するこずを決定したピアノヌドのセットです。この構成は、オヌプンメンバヌシップずビザンチン詐欺のネットワヌク䞊でも合意に達するこずができるこずを意味したす。








All Articles