モデル
IntentionBFTは、総ステークの3分の1までを支配するビザンチン攻撃者を許容します。したがって正直なステークは常に3分の2を超え、標準的なクォーラムは、合計ステークが3分の2を超えるバリデータの任意の集合です。これらのページではこれを**ステーク加重クォーラム**と呼びます。ネットワークは部分同期です。安定化点より前では遅延は任意で、それ以降は正直なバリデータ間の遅延に上限があります。オラクルsidecarバリデータごと
バリデータが検証し署名設定されたしきい値に対する鮮度も含めて
バリデータ間へgossipコンセンサスネットワークメッセージ
認証済み価格エポック・ラウンドごと
価格の可用性がブロック生成の前提バリデータがブロックを提案できるのは、現在のラウンドについて有効な価格観測を提示できる場合だけです。そのため、トランザクションをコミットする署名は、それらのトランザクションが決済される価格も同時にコミットします。
保証しないこと価格をトランザクションに結び付けますが、価格が正しいことは保証しません。コンセンサスが認証するのは、バリデータのクォーラムがこのラウンドでこの観測を提出した事実だけです。
順序のコミット
ブロック内のトランザクション順序は、実行の副産物として放置されるのではなく、コンセンサスがコミットするオブジェクトへ引き上げられます。ブロックハッシュは順序づけられたペイロードを対象に含むため、コンセンサス後に並べ替えれば、それをコミットした署名は無効になります。 その効果はこうです。ブロックがファイナライズされた時点で、ステーク加重クォーラムがその順序そのものへのコミットに署名しており、同じラウンドで同じトランザクションの別の順序に署名した正直なバリデータは存在しません。コミットされたその順序に沿った逐次実行と組み合わせることで、決定的なリプレイは実装上の慣習ではなく、誰でも検証できる性質になります。単一の提案の中でリーダーに残る裁量(利用可能なバッチのどれを含め、どう並べるか)は、残存する攻撃面です。リーダー評判と、有効な価格観測がなければリーダーはそもそもブロックを生成できないという事実によって緩和されています。より強いフェアオーダリング構成は、将来のアップグレード候補として検討が続いています。
バッチの可用性
素朴なプロトコルでは、リーダーがそのラウンドの全トランザクションをペイロードに載せたブロックを提案するため、コンセンサスのメッセージサイズがスループットに直結します。IntentionBFTはデータの伝播と順序づけを分離します。 バリデータはバックグラウンドでトランザクションのバッチを継続的に伝播します。各バッチは、発信元がステーク加重の可用性を証明できるまで受領確認され、そこではじめて提案がそれを参照できます。参照するのは内容ではなくダイジェストです。スループットにかかわらずコンセンサスメッセージは小さいままで、コミット済みブロックは常にリプレイ可能です。ビザンチンな少数派だけが保持していたデータをブロックが参照することは、ありえないからです。価格の認証
バリデータは価格の観測者でもあり、ブロックは、それが実行された際の価格を運びます。バリデータコンセンサス · メモリプール · オラクルsidecar · カーネル · ストレージ
投票する唯一の参加者
バリデータ用フルノードコミット済みブロックを追跡・実行、投票はしない
遮断。公開の読み取りトラフィックとピア接続を引き受け、バリデータがインターネットに直接さらされないようにする
パブリックフルノード誰でも運用可能。追跡・実行し、読み取りに応答
開放されたティア
クライアントフロントエンド · 取引エージェント · マーケットメイカー · インデクサー
接続先はフルノードで、バリデータではありません。最も低遅延で完全なビューが必要なクライアントは、自分でフルノードを運用します。
コンセンサスから外へ、四つのティア
そのティアが存在する理由
リーダー評判
リーダーはラウンドごとに、決定的なステーク加重ローテーションで選ばれ、スライディングウィンドウ上の評判ヒューリスティックで補正されます。提案の失敗を繰り返すバリデータは、可用性の欠如か敵対的な振る舞いの表れとみなされ、以降の選出で降格されます。そのスロットは、最近応答しているバリデータへ再配分されます。応答しないバリデータが、割り当てられたスロットのリーダー権を主張して進行を止めてしまわないようにするためです。 価格観測が提案資格の条件になっている以上、評判の仕組みは、市場データ接続性に最も恵まれたバリデータへリーダー権が集中することも避けなければなりません。取引所の多様性要件(銘柄ごとに複数の独立したソースから観測を取ること)が、その経路を塞ぎます。エポックと再構成
時間はエポックに区切られます。エポック内では、バリデータ集合とほとんどのパラメータは一定です。エポックの境界では、ガバナンスが承認した再構成によってそれらが変わることがあります。バリデータ集合の変更、コンセンサスパラメータの変更、リスクパラメータの更新、緊急対応です。遷移はアトミックで、どの正直なバリデータも同じブロック高で同じ遷移を見ます。ネットワークトポロジー
リーダー
バリデータ
チェーン
2f+1ステーク加重の集約
順序と価格が不変になる
ブロック提案:バッチダイジェストと認証済み価格
可用性・順序・価格を検証
投票
ラウンドを認証
コミット
次に読む
メモリプール
何がどの順序でコンセンサスに到達し、何が破棄されるのかです。
IntentionKernel
順序と価格がコミットされたあと、ブロックに何が起きるのかです。
オラクル
バリデータが署名する前に、インデックス価格がどう作られるのかです。
ノードを運用する
バリデータ集合が閉じている理由と、参加について問い合わせる方法です。