目次
6 セキュリティに関する考慮事項 (SECURITY CONSIDERATIONS)
Qubicネットワークの設計と運用において、セキュリティは最も重要です。このセクションでは、ネットワークのセキュリティを支える暗号学的基盤を掘り下げ、潜在的な攻撃ベクトルとそれらを軽減するために採用されている戦略を検討します。
堅牢な暗号アルゴリズムを活用し、包括的なセキュリティプロトコルを実装することで、Qubic は AIGarth を通じたAGI開発に関連するものを含む、分散型の取引と計算のための安全な環境を提供することを目指しています。
6.1 暗号学的基盤 (Cryptographic Foundations)
Qubic ネットワークのセキュリティは、確立された暗号アルゴリズムとプロトコルに依存しています。このサブセクションでは、データの完全性、真正性、機密性、および否認防止を保証するために採用されている暗号プリミティブとメカニズムの詳細を説明します。
6.1.1 暗号学的ハッシュ関数 (Cryptographic Hash Functions)
使用アルゴリズム: KangarooTwelve
- 目的:
- KangarooTwelve は、ティック投票、ティックデータ、取引、ならびにスペクトラム、ユニバース、スマートコントラクト状態のメルクルツリーを含む、ネットワーク内のハッシュ操作に使用されます。
- これは Keccakアルゴリズムファミリー(SHA-3のベース)のバリアントですが、速度とスケーラビリティのために最適化されています。
- KangarooTwelve のスケーラビリティと速度は、高スループット環境に理想的です。その衝突耐性と効率性は、ネットワーク全体のデータ完全性を確保しながら、Qubic のリアルタイムコンセンサスのニーズをサポートします。
特性:
- 衝突耐性 (Collision Resistance):
- 同じハッシュ出力を生成する2つの異なる入力を計算で見つけることは事実上不可能です。
- 原像耐性 (Preimage Resistance):
- 与えられたハッシュ出力から、そのハッシュを生成する入力を計算で見つけることは事実上不可能です。
- 第2原像耐性 (Second Preimage Resistance):
- 与えられた入力とそのハッシュから、同じハッシュを持つ異なる入力を見つけることは不可能です。
Qubicにおける役割:
- ティックハッシュ:
- 事前に定義された一連のキーのハッシュを通じて各ティックを前のティックにリンクさせることで、効率的な計算のためにKangarooTwelveを使用し、ティックの完全性を保証します。
- Computor 状態の一貫性の確保:
- スペクトラム、ユニバース、スマートコントラクト状態のハッシュを計算し、それらをコンセンサスプロトコルに含めることで、Computor は各ティックにおける自身の状態の合意(アライメント)を確保します。
- 取引の識別:
- 取引を識別するために、KangarooTwelve を使用して各取引のハッシュ(ダイジェストとも呼ばれる)が計算されます。
- メルクルツリー:
- スペクトラムやユニバースのような大規模なデータ構造のハッシュを、効率的かつ安全に計算するために利用されます。
6.1.2 デジタル署名 (Digital Signatures)
使用アルゴリズム: FourQ (改変版)
FourQ は Microsoft Research によって開発された楕円曲線です。これは鍵合意スキーム(楕円曲線Diffie–Hellman)とデジタル署名(Schnorr署名)のために設計されており、約128ビットのセキュリティを提供します。
- 目的:
- ネットワーク内の取引とメッセージを認証し、許可された当事者のみがアクションを開始できるようにするために、署名/検証が採用されています。
- 特性:
- 真正性 (Authenticity):
- 送信者の身元を確認します。
- 否認防止 (Non-Repudiation):
- 送信者が自身の署名の真正性を否定することを防止します。
- 完全性 (Integrity):
- メッセージが改ざんされていないことを保証します。
- Qubicにおける役割:
- 取引署名:
- ユーザーは秘密鍵で取引に署名し、Computorは対応する公開鍵を使用して署名を検証します。
- コンセンサスメッセージ:
- Computor はコンセンサスプロセス中に自身の投票と提案に署名し、説明責任と追跡可能性を維持します。
6.1.3 鍵管理 (Key Management)
- 生成:
- 予測不能性を確保するため、安全な乱数生成器を使用して鍵が生成されます。
- 保管:
- 秘密鍵はユーザーによって安全に保管されなければなりません。
- Qubicは鍵の保管にハードウェアウォレットやセキュアエンクレイブの使用を推奨しています。
6.1.4 セキュア通信プロトコル (Secure Communication Protocols)
メッセージ署名:
- 目的:
- 真正性と完全性の確保。
- 実装:
- Qubicで送信されるメッセージは、送信者によって署名されます。これにより、受信者はメッセージの真正性と完全性を検証できます。
6.2 攻撃ベクトルと対策 (Attack Vectors and Mitigations)
このサブセクションでは、Qubicネットワーク内の潜在的な脆弱性を特定し、それらを軽減するために採用されている戦略の概要を説明します。これらの脅威に先制的に対処することで、Qubicは悪意のあるアクターやネットワークの中断に対する回復力を高めます。潜在的なシビル攻撃や51%攻撃の軽減において、Qubicのモデルはビザンチン障害耐性(BFT)の原則を取り入れています。
6.2.1 (Sybil Attacks)
- 説明:
- シビル攻撃 攻撃者が複数のアイデンティティ(シビルノード)を作成し、不釣り合いな影響力を獲得しようとします。
- 対策:
- 有用なプルーフ・オブ・ワーク (uPoW):
- UPoWは計算能力をAIトレーニングなどの有用なタスクに向けさせ、シビル攻撃を成功させるために必要な計算リソースを蓄積することを攻撃者にとってコスト的に不可能にします。
- 適切な署名:
- Qubicでは、選ばれた676台のComputorのみが投票権を持ちます。対応する秘密鍵を持たなければ、シビル攻撃は不可能です。
6.2.2 フォーキング攻撃 (Forking Attacks)
- 説明: 悪意のあるComputorが代替チェーンを作成し、ネットワークを混乱させたり分裂させたりします。
- 対策:
- 強力な確定性 (Strong Finality): ティックがクォーラムによって承認されると、それは最終的なものと見なされ、後続のティックはその上に構築されます。
- チェーン選択ルール: 正当なComputorは、クォーラム投票による累積的な支持が最も高いチェーンに従います。
6.2.3 共謀攻撃 (Collusion Attacks)
- 説明:
- 悪意のあるComputorのグループが共謀してコンセンサスの決定を操作します。
- 対策:
- 障害耐性閾値: アルゴリズムは、共謀するComputorの数が226台未満である限り、共謀を許容します。
- ランダムなクォーラム選定: 各クォーラムに対するComputorの予測不可能な選定は、持続的な共謀の可能性を低下させます。
6.2.4 リプレイ攻撃 (Replay Attacks)
- 説明:
- 攻撃者が有効な取引を再送信してネットワークを混乱させます。
- 対策:
- 重複の無視: すでに既知の取引はComputorによって無視されます。
6.2.5 51%攻撃 (51% Attacks)
脅威の説明: * 攻撃者がネットワークの計算リソースまたは投票権の50%以上を支配し、取引を差し戻したり新しい取引の確定を阻止したりすることでブロックチェーンを操作します。
対策戦略:
- ビザンチン障害耐性:
- コンセンサスメカニズムは最大
f ≦ (N-1)/3の故障Computorを許容するため、攻撃者がネットワークの大部分を支配せずに成功することは不可能です。
- Computorの分散化:
- 広範な参加を促すことで、中央集権化のリスクを軽減します。
- Qubicにおける要件:
- Qubicでネットワークを乗っ取るには、全ネットワークの約3分の2にあたる451票以上が必要です。
- 経済的抑止力:
- 51%攻撃を実行するために十分なリソースを獲得するコストが、潜在的な利益を上回ります。
6.2.6 エクリプス攻撃 (Eclipse Attacks)
脅威の説明:
- 攻撃者がノードまたはノードのグループのすべての着信・発信接続を制御することでそれらを隔離し、被害者のネットワークビューを操作できるようにします。
対策戦略:
- 多様なピア選定:
- ノードは多様なピアのセットとの接続を維持し、すべての接続が攻撃者によって制御される可能性を減らします。
- 接続制限:
- 単一のIPアドレスまたはサブネットからの接続数を制限します。
- 発信・着信接続の分離:
- ノードが発信接続から遮断されることはありません。
- 定期的なピアのリフレッシュ:
- 長期的な隔離を防ぐために、ピア接続を定期的にランダムに更新します。
6.2.7 スマートコントラクトの脆弱性 (Smart Contract Vulnerabilities)
脅威の説明:
- スマートコントラクトコードの欠陥が、意図しない動作、セキュリティ侵害、または攻撃者による悪用を招く可能性があります。
対策戦略:
- コード監査:
- 展開前に信頼できる第三者によるスマートコントラクトの強制的な監査を行います。
- 制限された言語機能:
- スマートコントラクトにおける複雑またはリスクの高い言語機能の使用を防止します。
6.2.8 量子コンピューティングの脅威 (Quantum Computing Threats)
脅威の説明:
- 量子コンピューティングの出現により、従来の暗号アルゴリズムが解読され、ネットワークのセキュリティが侵害される可能性があります。
対策戦略:
- 量子耐性暗号:
- 研究開発:
- 量子コンピューティングの進歩を監視し、量子耐性のある暗号スキームを開発します。
- アルゴリズムのアジリティ (柔軟性):
- 新しい暗号アルゴリズムが利用可能になった際に統合できるようにプロトコルを設計します。
- ポスト量子アルゴリズム:
6.2.9 マルウェアとノードの侵害 (Malware and Node Compromise)
脅威の説明:
- マルウェアへの感染や不正アクセスによってノードが侵害され、データ漏洩や悪意のある活動への参加を招く可能性があります。
対策戦略:
- 安全なソフトウェアプラクティス:
- コードセキュリティのベストプラクティスの実装と、定期的なセキュリティ評価を行います。
- 隔離技術:
- Qubicは基盤となるオペレーティングシステムを必要とせず、ベアメタル上で動作します。
- 定期的な更新とパッチ適用:
- 既知の脆弱性を軽減するために、ソフトウェアと依存関係を最新の状態に保ちます。