Hermes: Low Tail-Latency Via Prefix Consensus
Hermesは、のプロセスを対象とした2ラウンド・ローテーティング・リーダー型のBFTプロトコルであり、プレフィックス合意を利用して任意の個の投票から最も重い共通プレフィックスを確定させることで、ビューが失効した場合でも進行を保証し、遅い、あるいはクラッシュしたリーダーに起因するテールレイテンシの停滞を排除する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
想像してみてください。あるグループの友人たちが、一緒に観る映画を決めようとしています。しかし、彼らは世界中に散らばっており、中にはインターネット接続が不安定な人もいれば、偽のリンクを送ったりオフラインのふりをしたりして、決定を妨害しようとするいたずら好きな友人もいます。これが、**ビザンチン故障耐性(BFT)**コンセンサスの世界です。コンピュータサイエンスにおいて、これはネットワーク上のコンピュータ群が、中央のボスを信頼することなく、単一の真実(ブロックチェーンにおけるトランザクションの順序など)にどのように合意するかという仕組みです。目標は、一部のコンピュータがクラッシュしたり悪意のある行動をとったりしても、迅速に(低レイテンシで)合意に達することです。
長年、これらのシステムは「リーダー」が次のステップを提案することに依存してきました。もしリーダーが速く、誠実であれば、全員が素早く合意できます。しかし、もしリーダーが遅かったりクラッシュしたりすると、グループ全体はタイマーが切れるのを待ち、そのリーダーを諦めて新しいリーダーを選び直さなければなりません。これにより、「タイムアウトのジレンマ」が生じます。タイマーを長く設定すれば、壊れたリーダーのために永遠に待つことになり、短く設定すれば、単に少し遅れているだけのリーダーを放棄して時間を無駄にしてしまいます。このジレンマが、システムの末端(テールエンド)を遅らせるボトルネックとなります。
本論文では、この特定の悩みを解決するために設計された新しいプロトコル、Hermesを紹介します。Hermesは、リーダーが遅いからといって諦めるのではなく、グループが合意できる範囲の作業を完了させる方法を提案します。これにより、タイムアウトによる無駄を生産的な決定へと変え、何が起きても、すでに積み上げた進捗を失うことなく、システムが前進し続けることを保証します。
問題点: 「タイムアウトの罠」
リレーレースを想像してみてください。チームのキャプテン(リーダー)は、次のランナーにバトンを渡す役割を担っています。キャプテンが速ければレースはスムーズに進みます。しかし、もしキャプテンが転んだりバトンを落としたりすると、チーム全体は審判の笛(タイムアウト)を待って停止し、新しいキャプテンを選んでやり直さなければなりません。
従来のシステムにおいて、この笛はギャンブルです。もし審判が早すぎるタイミングで吹けば、少し遅れているだけで完走できたはずのキャプテンを止めてしまうかもしれません。逆に待ちすぎれば、壊れたキャプテンが回復しようとしている間、チームは長い間立ち往生することになります。いずれにせよ、費やされた時間は「デッドタイム(死に時間)」であり、進捗は作られず、レースは停滞します。これが「テールレイテンシ」の問題であり、最悪のシナリオがシステム全体の足を引っ張るのです。
解決策: Hermesと「共通の基盤」
Hermesはゲームのルールを変えます。スローなリーダーを完全な失敗として扱うのではなく、グループによる部分的な合意を一つの勝利として扱います。
その仕組みを、創造的な比喩で説明しましょう。チームがブロックを使って長い塔を建てようとしていると考えてください。
- 従来の方法: リーダーがブロックを置きます。全員が待ちます。もしリーダーが止まったら、チームはタイムアウトを待ち、塔全体を一度捨てて、新しいリーダーと共に新しい塔を建て直します。
- Hermesの方法: リーダーがブロックを置き始めますが、同時に全員も自分自身のブロックを置き始めます。もしリーダーが速ければ、チームはリーダーの作る塔を完璧に構築します。もしリーダーが詰まってしまったとしても、チームは塔を捨てません。代わりに、全員が置いたブロックを確認し、全員がブロックの順序について一致している最も長いセクションを見つけ出し、そのセクションを「完了」と宣言します。
これが核心となる革新技術、**プレフィックス・コンセンサス(接頭辞合意)**です。かつては、二人がわずかに異なる塔に対して投票した場合、それらの票は不一致とみなされ破棄されていました。しかしHermesはこう言います。「待って、彼らは塔の下部90%については一致している!その部分を確定させて、先に進もう。」
Hermesの仕組み: 二段階のダンス
Hermesは「ビュー(View)」(ラウンド)ごとに動作し、各ラウンドには指定されたリーダーが存在します。これは巧妙な二段階のダンスを用います。
- ラウンド1(提案): 全員が、次の塔の形がどうあるべきかという自分自身のアイデアを放送します。リーダーのアイデアは、多くのアイデアの中の一つに過ぎません。
- ラウンド2(投票):
- リーダーが速い場合: 全員がリーダーの提案を確認し、同意して、それに投票します。塔は、わずか2回のメッセージ遅延(2δ)で、リーダーのフルブロック分だけ成長します。
- リーダーが遅い、またはクラッシュした場合: タイマーが切れます。ラウンドを「キャンセル」するために投票する代わりに、全員は受け取った提案の中で見つけられる「可能な限り最善の合意」に対して投票します。彼らは「最重量共通プレフィックス(Heaviest Common Prefix: HCP)」を探します。つまり、たとえ提案の末端で意見が分かれたとしても、全員が同意している最も長い一連のブロックのシーケンスを見つけ出すのです。
これは、リーダーが失敗しても、グループはビュー(視点)を失わないことを意味します。彼らは共通の部分を確定させ、即座に次のラウンドを開始します。かつては行き止まりだった「タイムアウト」の経路が、今や結果を生み出すようになるのです。
「プレフィックス」と「スキップ」の魔法
これを複数のデータレーン(多くの車線がある高速道路のようなもの)で機能させるために、Hermesは**親相対デルタ・チップカット(parent-relative delta tipcuts)**と呼ばれる特別なエンコーディングを使用しています。
これは、すべてのページが前のページを参照している「選択型ゲームブック(Choose Your Own Adventure)」のようなものです。もし交通レーンに車(ブロック)が欠けている場合、Hermesは「エラー」とは言いません。その箇所を明示的に「スキップ」としてマークし、次の車へと進みます。これにより、システムは異なるピースが欠けている場合でも、異なる提案同士を比較できるようになります。それは、二つの物語を比較するようなものです。たとえ一方の物語が一段落を飛ばし、もう一方がそれを記述していたとしても、両者は始まりと終わりにおいて一致させることができ、システムはその合意を確定させることができます。
結果: スピードと安全性
本論文は、Hermesが安全(二人の正直な人間が確定した部分について決して意見を違えない)であり、かつライブ(システムは常に動き続ける)であることを数学的に証明しています。
- 好ましいケース: リーダーが誠実で速い場合、Hermesは既存の最高水準のシステムと同様に、2δ(二度のメッセージ遅延)で確定します。
- 好ましくないケース: リーダーが遅い、あるいはクラッシュした場合、Hermesは共通の合意を2∆ + δ(∆はタイムアウト、δはネットワーク遅延)で確定させます。重要なのは、これが従来の「ビュー変更(view change)」を待つ方法よりも速いということです。なぜなら、ビューを破棄するという「無駄な」時間をスキップできるからです。
著者らは、消失訂正符号(erasure coding)(データを断片に分解することで、一部が失われても再構成できるようにする手法)を使用することで、多くのデータレーンを扱う場合でも通信コストを低く抑えられることを示しています。
なぜこれが重要なのか
Hermesは、タイムアウト自体を生産的なものにすることで、「タイムアウトのジレンマ」を解決します。失敗の瞬間を、前進の瞬間に変えるのです。「リーダーは間に合ったか?」と問い、結果を待つのではなく、「私たちは何に合意したか?」と問い、前へ進むのです。
好奇心旺盛なティーンエイジャーに向けて言えば、これはグループチャットでみんなが計画を立てようとしているようなものです。いつも計画を提案してくれる人が返信できなくなったとき、従来の方法では、彼からの返信を待つか、新しいリーダーを決めてチャットをやり直すしかありませんでした。Hermesはこう言うようなものです。「よし、彼は返信してこなかったけれど、みんなが送ったアイデアを見てみよう。最初の3ステップについては全員一致しているね。これらを確定させて、ステップ4の計画を始めよう。」これは、誰かがボールを落としたとしても、グループを動かし続けるための、よりスマートで弾力性のある方法なのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。