Epoch 197
文書の過去の版を表示しています。
計算作業に依存してネットワークを保護するNakamoto (2008) のプルーフ・オブ・ワーク(PoW)モデルとは異なり、Qubicのコンセンサスは、ティック(Tick)と取引を確定させるためのComputor間のクォーラム選定と投票に依存しています。このアプローチは、マイナーが暗号パズルを解く必要性を排除し、代わりに分散投票と障害耐性を介して、Computorを通じてセキュリティと回復力を保証します。
Qubicはマイナーの計算能力を役立つAIタスクに活用するために有用なプルーフ・オブ・ワーク(UPoW)に依存していますが、コンセンサスメカニズムは技術的に独立しています。UPoWはネットワークのAI関連の目標に対して計算能力を寄与させるインセンティブを与え、クォーラムベースのコンセンサスはブロックチェーンの状態に関する合意形成に機能します。これら二つを分離することで、QubicはPoWベースのコンセンサスモデルに特有の計算オーバーヘッドを強制することなく、コンセンサスにおける高い効率を達成できます。
このセクションでは、その効果と堅牢性を実証する数学的モデルと証明を含め、Qubic のコンセンサスアルゴリズムをステップバイステップで説明します。
Qubicのコンセンサスメカニズムは、ビザンチン障害を許容しながら、分散されたComputorのセット間で合意を形成するように設計されています。このアルゴリズムは、エポック(Epoch)と呼ばれる離散的な期間で動作し、その間に取引が提案、検証、およびブロックチェーンにコミットされます。エポック内には、ティック(Tick)と呼ばれるコンセンサスラウンドの連続したシーケンスがあり、Computorは独立して取引を検証・実行し、結果についての合意に達します。
主要な構成要素:
<COMPUTORINDEX> = <TICKNUMBER> % 676
Q = 451台のComputor(全N = 676台のうち)
コンセンサスプロセスは以下の通りです:
与えられたティックTに対するティックリーダーは、インデックスCを持つComputorであり、T modulo 676によって与えられます。すなわち:
C = T % 676
TICK_TRANSACTIONS_PUBLICATION_OFFSET
ティック投票にはティック番号、エポック、Computorインデックス、タイムスタンプ、および送信Computorの暗号学的状態が含まれます。理想的には各Computorは(自身のものを含め)676の投票を確認しますが、受信した投票はクォーラムルールを適用するために内容ごとに継続的にグループ化されます。少なくとも451の投票が一つのグループで一致した場合、それは「整列した状態(aligned state)」と呼ばれ、Computorは進行に同意します。BFTの原則(Lamport et al., 1982; Castro & Liskov, 1999)に基づき、ネットワークの安定性を維持するために3分の2の多数派にあたる少なくとも451台のComputorが同じ見解を持ったときにのみ、ネットワークはティックを継続できます。もし225台を超えるComputorが「空のティック」に投票した場合、他のどのグループも451票を超えることはありません。その結果、ネットワークはそのティックをスキップすることを決定し、計画された取引を破棄します(226+ ルール)。
故障状態 (Faulty State): 故障状態は、疑わしい行動をとるComputorをマークするために使用されます。もしComputor Aが、Computor Bから送信された2つの異なるバージョンのTickData(またはTickVote)を検知した場合、Computor AはComputor Bを「故障(faulty)」としてマークします。Arbitratorはこの情報を使用して、故障したComputorを交換する可能性があります。
取引の送信とネットワークへの伝播: Qubicの取引は単なるコインの送金に留まらず、スマートコントラクトの実行やComputor間の通信も促進します。他のブロックチェーンと同様に、Qubicの取引は、送信元・送信先アドレス、および送金額といういくつかの必須フィールドで構成されます。これらの標準フィールドに加え、取引を含めたいティック番号を指定する「Tick」フィールド、送信先スマートコントラクトのプロシージャ番号を指定する「InputType」フィールドがあります。「InputData」フィールドは、指定されたスマートコントラクトプロシージャに提供される入力データを提供します。ノードにブロードキャストされた取引は、デフォルトで DISSEMINATION_MULTIPLIER パラメータによって設定された通り、追加で6つのノードに伝播されます。
DISSEMINATION_MULTIPLIER
オペレーターによる手動介入: 投票は次のティックに対してのYES/NOを意味しますが、オペレーターがカスタムコードを実行していたり、互換性のないハードウェアによるバグがあったりしてノード状態のダイジェストが不一致となった場合、投票が2つ以上のグループに分かれる可能性があります。コンセンサスに達することができないという万が一の分裂事態においては、ティックの進行を確実にするためにComputorからの手動介入が必要になる場合があります。