本文へ移動

ブロックチェーン:状態、コンセンサス、検証

ブロックチェーンは、複数の複製ノードが状態遷移を順序付けて検証するためのバージョン化されたプロトコルです。ハッシュ連結は一要素にすぎず、信頼性はコンセンサス、権限、独立検証、データ可用性、ガバナンス、復旧にも左右されます。

更新日

プロトコルを学ぶための分析です。ブロックチェーンという名称、有効なハッシュチェーン、成功した取引だけでは、分散性、入力の真実性、データ可用性、ファイナリティ、法的所有権、投資価値は証明できません。

直接の答え

ブロックチェーンは、複数のレプリカが提案されたトランザクションを順序付けし、状態遷移を検証し、規定されたコンセンサスとネットワークの仮定の下で受け入れられた履歴に収束できるようにするバージョン管理されたプロトコルです。ブロックは、トランザクションまたはその他のデータに加えて、以前の履歴とその結果の状態へのコミットメントを含むプロトコルで定義されたコンテナーです。チェーンまたは指示された履歴は、暗号化コミットメントを通じて受け入れられたコンテナーをリンクします。

ハッシュ リンクにより、不正な履歴変更が検出可能になりますが、それ自体がシステムを分散化、不変、または正確なものにするわけではありません。これらのプロパティは、誰が提案および検証できるか、ユーザーが独立して検証できるかどうか、フォーク選択とファイナリティのルール、データの可用性、クライアントの多様性、ガバナンス、キー制御、インセンティブ、および回復手順によって異なります。

ブロックチェーンは、UTXO、アカウント、オブジェクト、またはアプリケーション固有の状態モデルを使用できます。プルーフ・オブ・ワーク、プルーフ・オブ・ステーク、ビザンチンフォールトトレラント投票または許可されたコンセンサス。そして確率的またはチェックポイントベースのファイナリティ。したがって、「ブロックチェーン」という言葉は、1 つのセキュリティ保証や 1 つのデータベース製品ではなく、幅広いアーキテクチャ ファミリーを指します。

1
作成

ウォレットが宛先、金額、手数料、使用済み入力や nonce などのリプレイ防止情報を指定します。

仕組み

  1. チェーン、ネットワーク、プロトコル バージョン、許可モデル、状態モデル、テスト対象のクレームを固定します。生成または信頼できるチェックポイント、チェーン識別子、クライアント実装、およびアップグレード権限を記録します。
  2. 正確なトランザクション バイトと認証を構築します。ブロードキャストの前に、送信者または入力の所有権、ノンスまたは未使用の出力参照、金額、宛先、料金制限、有効期間、署名、およびアプリケーション呼び出しを確認します。
  3. ピアまたはゲートウェイを介してトランザクションを伝播します。ローカルアドミッションとメンプールポリシーをコンセンサスの有効性から区別します。ノードは、ブロック内で有効である可能性のあるトランザクションを拒否、遅延、置換するか、まったく受信しない可能性があります。
  4. プロポーザーは、トランザクションを選択して候補ブロックに順序付けし、親、トランザクション、レシート、状態、データ ルートなどのプロトコル フィールドにコミットします。注文は約定結果、手数料、清算、抽出可能な価値に影響を与える可能性があります。
  5. 独立したノードは、ブロックを逆シリアル化し、コンセンサス認可とすべての必要な状態遷移を検証し、コミットメントを再計算し、ルールに従って無効または使用できない入力を拒否します。プロデューサーの署名や作業証明は、失敗した検証をオーバーライドしません。
  6. フォーク選択では、競合する有効な履歴の中から選択しますが、確認、投票、またはチェックポイントでは、時間の経過とともに再編リスクが変化します。 「Included」、「safe」、および「finalized」は異なる状態であり、プロトコル固有のままです。
  7. プロトコルの状態をアプリケーションの意図、保管、ブリッジまたは会場のアカウンティングおよびアーカイブの要件と調整します。トランザクション バイト、ブロック ハッシュ、高さまたはスロット、レシート、ログ、状態証明、ファイナリティ ステータス、クライアント バージョン、および独立したエンドポイント証拠を保存します。

作業例

  • アカウントと状態の調整。 アカウントは 10 ETH とノンス 41 で始まります。ノンス 41 での有効なトランザクションは 2 ETH を転送し、手数料として 0.00042 ETH を消費するため、簡略化された事後状態は 10 - 2 - 0.00042 = 7.99958 ETH となり、受信者は 2 ETH を獲得し、送信者のノンスは 42 になります。有効な署名だけでは、状態前の残高や実行の成功を証明することはできません。
  • UTXO 保全。 トランザクションは 0.80 BTC0.35 BTC の入力を消費し、合計 1.15 BTC になります。 1.00 BTC0.1496 BTC の出力の合計は 1.1496 BTC。差額は手数料 1.15 - 1.1496 = 0.0004 BTC です。ノードは、参照されているすべての出力が存在し、未使用であり、その使用条件を満たしていることも検証する必要があります。
  • コミットメントプルーフサイズ。 8 leaves を使用したバランスのとれたバイナリマークルツリーの例では、包含パスには log2(8) = 3 sibling hashes が必要です。 256-bit = 32-byte ハッシュの場合、これらの兄弟はインデックスとエンコードの前に 3 * 32 = 96 bytes を占有します。証明は、主張されたルートに葉を結び付けます。ソース データが真実であること、または現在利用可能であることを証明するものではありません。
  • 重みはノード数ではありません。 ファイナリティ閾値を重みの >= 2/3 と明示した例示的な投票プロトコルで、バリデーターの重みを 30%, 25%, 20%, 15%, 10% とします。最初の三者は合計 30 + 25 + 20 = 75% で閾値を超えますが、最初の二者は 55% で届きません。実際の閾値、相関、二重投票、復旧ルールは対象プロトコルで確認する必要があります。

リスク

  • 間違ったチェーン、ネットワーク、フォーク、チェックポイント、またはチェーン識別子の使用。
  • ブランド名を完全なプロトコルまたは信頼モデルの仕様として扱う。
  • ハッシュ リンクだけでは、承認された、またはコンセンサスで承認された書き換えが防止されると仮定します。
  • プロデューサーのブロック提案と独立したノードの検証を混同します。
  • メンプールの受け入れ、ブロードキャスト、包含、実行の成功、およびファイナリティを 1 つの状態として扱います。
  • インターフェイス表示と異なるバイト列、ドメイン、宛先に署名すること。
  • nonce の再利用、古い UTXO の使用、料金と小銭の計算ミス。
  • プロトコル識別子や状態ではなく、トークン シンボル、ラベル、イベント、またはエクスプローラーの解釈を信頼します。
  • 署名されたオラクル、ブリッジ、または文書入力をオフチェーンの主張が真実である証拠として扱う。
  • トランザクションの順序、検閲、最前線での提案者または構築者の集中を無視します。
  • 共通の運用主体、重み、インフラを特定せずにノードやバリデーターを数えること。
  • クライアント、クラウド、地理、ガバナンス、主要なソフトウェア サプライ チェーンの集中を無視します。
  • すべてのコンセンサス モデルが同じ障害しきい値またはファイナリティ セマンティクスを持っていると仮定します。
  • ネットワーク分断、ファイナリティ遅延、再編成、二重投票、復旧手順を無視すること。
  • 必要なデータの可用性を前提とせずに、ブロック ヘッダーまたはプルーフを受け入れる。
  • 信頼できる情報源として、1 つの RPC、エクスプローラー、ウォレット、インデクサー、または保管プラットフォームに応じて異なります。
  • プロトコルの所有または管理と、法的所有権、求償権、または回収可能性を混同します。
  • 状態の増加、アーカイブの損失、同期コスト、ハードウェアの障壁を過小評価しています。
  • アップグレード キー、緊急一時停止、ソーシャル リカバリ、議論の多いフォークは無視します。
  • ブロックチェーンのラベルからプライバシー、スケーラビリティ、投資価値、またはアプリケーションの安全性を推測します。

よくある誤解

  • すべてのブロックチェーンは分散化されており、不変です。 許可、オペレーターの独立性、フォークの選択、ガバナンス、およびリカバリにより、誰が履歴を変更または拒否できるかが決まります。
  • オンチェーンに記録されるデータは真実である必要があります。 コンセンサスは、虚偽の価格、偽造文書、または悪意のあるアプリケーションの入力を忠実に記録することに同意できます。
  • 有効なトランザクションは、意図した結果を証明します。 間違ったアドレスをターゲットにしたり、手数料を消費した後に元に戻ったり、誤解を招くイベントを発行したり、後のブリッジや保管手順に依存したりする可能性があります。
  • レプリカを増やすと常にセキュリティが向上します。 1 つのオペレーター、クライアント、クラウド、またはキーの下にあるレプリカは同時に失敗する可能性があり、独立した検証が提供されない可能性があります。
  • ブロックチェーンは常に従来のデータベースよりも優れています。 信頼できるオペレーター、必要な削除、高スループット、またはシンプルな紛争解決により、従来のシステムをより適切なものにすることができます。

関連トピック

情報源

ナビゲーション

Wiki を検索...