mcpField
M
midnight-cryptography

midnight-cryptography

github.com/kali-decoderセキュリティ18123 回インストール1 日前に更新
リポジトリ

midnight-cryptography について

Midnightのノード層で使われる暗号プリミティブを解説するスキルです。コンセンサス、状態遷移、ネットワーク通信の方式を扱い、ノードの暗号技術とLedgerのZK証明を区別します。

主な機能

  1. 01ブロックハッシュ用のBlake2-256
  2. 02AURA署名用のsr25519
  3. 03Partnerchainメッセージ用のECDSA
  4. 04GRANDPAとlibp2p用のEd25519
  5. 05ストレージキー用のtwoxhash

活用シーン

  1. 01コンセンサスで使う方式の特定
  2. 02ノードとLedgerの暗号技術の区別
  3. 03Trieストレージキーのハッシュ方式の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kali-decoder/midnight-skills --skill midnight-cryptography

インストール後、Claude Code で/midnight-cryptographyを入力して読み込まれたか確認します。

詳細

Midnight ノードの暗号技術

Midnight Ledger(独自の ZK 回路を備えています)を除き、Midnight ノードは、コンセンサス、状態遷移の完全性、ネットワーク通信を実現する基盤となる暗号アルゴリズムに依存しています。

アルゴリズムの概要

flowchart TB
  subgraph Hash["Hashing"]
    B2["Blake2-256 — cryptographic"]
    T2["twoxhash — non-cryptographic storage keys"]
  end

  subgraph Sign["Signature schemes"]
    SR["sr25519 — AURA block authorship"]
    ECDSA["ECDSA — Partnerchain consensus messages"]
    ED["Ed25519 — GRANDPA finality + libp2p"]
  end

  subgraph Use["Used for"]
    B2 --> Blocks["Block hashes, state transitions"]
    T2 --> Trie["Patricia-Merkle trie key generation"]
    SR --> AURA["AURA block production"]
    ECDSA --> PC["Partnerchain coordination"]
    ED --> GRANDPA["GRANDPA votes"]
    ED --> P2P["libp2p protocol messages"]
  end

Blake2-256(主要なハッシュ関数)

Blake2-256 は、Midnight の主要な暗号学的ハッシュ関数です。

  • ブロックハッシュや、状態遷移関数での汎用ハッシュ処理に使用されます。
  • ランタイムの重要な処理において、パフォーマンスとセキュリティのバランスを取ります。

署名方式

Midnight では、役割に応じて3 種類の異なる方式を使用します。

方式構成/基盤用途
sr25519Schnorrkel + Ristretto x25519AURA ブロックの生成者メッセージへの署名
ECDSA標準的な楕円曲線 ECDSAPartnerchain 関連のコンセンサスメッセージへの署名(外部との相互運用性)
Ed25519Edwards 曲線 EdDSAGRANDPA ファイナリティメッセージおよびlibp2pプロトコルメッセージ
flowchart LR
  subgraph Consensus
    AURA["AURA slot"] -->|sr25519| BA["Block authorship"]
    GRANDPA["GRANDPA vote"] -->|Ed25519| FV["Finality message"]
    PC["Partnerchain signal"] -->|ECDSA| PM["Cross-chain message"]
  end

  subgraph Network
    L2P["libp2p handshake"] -->|Ed25519| PI["Peer identity separate from consensus keys"]
  end
sr25519
  • 効率的な鍵導出と署名集約が可能です。
  • Substrate 形式のブロック生成に強力なセキュリティ保証を提供します。
ECDSA
  • ECDSA が標準となっているシステム(Partnerchain/Cardano エコシステムのブリッジ)との相互運用性を確保します。
Ed25519
  • ファイナライズ時における、高頻度のバリデーター通信を高速に検証できます。
  • libp2p ピア IDにも使用されます(コンセンサス署名鍵とは別の鍵ペアです)。

twoxhash(ストレージキー)

twoxhash は、Patricia-Merkle トライでストレージキーを生成するために使用される非暗号学的なハッシュ関数です。

  • 高速性と低い衝突率を重視して最適化されています。
  • セキュリティが重要なハッシュ処理には適していません。
  • トライの検索パフォーマンスを大幅に向上させます。

twoxhash が ParityDB と状態コミットメントにどのように組み込まれているかについては、midnight-storage/ を参照してください。


Ledger とノードの暗号技術

レイヤー暗号技術
Midnight LedgerZK 証明、ZSwap 回路、コントラクト証明の検証
Midnight NodeBlake2-256、sr25519、ECDSA、Ed25519、twoxhash

Ledger の証明検証(pallet-midnight が処理)と、ノードレベルのコンセンサスおよび P2P プリミティブを混同しないでください。


関連スキル

  • midnight-consensus/ — AURA、GRANDPA、Partnerchain の各メッセージにどの方式で署名するか
  • midnight-storage/ — トライのキー生成における twoxhash
  • midnight-p2p-networking/ — libp2p における Ed25519 のピア ID

コメント