デジタル署名

特定の秘密鍵保有者がメッセージを作成し、改ざんされていないことを証明する暗号化の仕組み — 秘密を共有することなく認証、完全性、否認防止を提供します。

BLS12-381署名(イーサリアムのコンセンサス層で使用)は署名集約を可能にし、数千のバリデーター署名を1つのコンパクトな証明にまとめられます。これにより合意プロセスの効率が大幅に向上します。

        graph LR
  Center["デジタル署名"]:::main
  Rel_digital_asset_security["digital-asset-security"]:::related -.-> Center
  click Rel_digital_asset_security "/terms/digital-asset-security"
  Rel_digital_forensics["digital-forensics"]:::related -.-> Center
  click Rel_digital_forensics "/terms/digital-forensics"
  Rel_digital_certificate_management["digital-certificate-management"]:::related -.-> Center
  click Rel_digital_certificate_management "/terms/digital-certificate-management"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5歳でもわかるように説明

あなたが手紙を書いて、あなただけが持っているユニークな蝋のスタンプで封をするとします。手紙を受け取った人はあなたのスタンプを確認して、(1) 本当にあなたから来たもの、(2) 誰も封を破って手紙を変更していない、ということを確かめられます。デジタル署名も同じように機能します — 秘密鍵はユニークなスタンプで、公開鍵はあなたのスタンプが本物かどうかを確認するための参照書です。

🤓 Expert Deep Dive

ECDSAとnonceの再利用による壊滅的な脆弱性: ECDSAは各署名に対してランダムなnonce k が必要です。同じ k が2つの異なるメッセージに使用された場合、秘密鍵を代数的に復元できます。これがまさに2010年にPlayStation 3のマスターキーが抽出された方法です。EdDSA (Ed25519、RFC 8032): nonceは k = H(privKey || msg) として決定論的に導出され、再利用が構造的に不可能です。ブロックチェーン: イーサリアムアドレス = keccak256(pubKey)[12:]。後量子脅威: ECDSAとRSAはShorのアルゴリズムで破られます。NISTはML-DSAを標準化しました。

❓ よくある質問

What three properties does a digital signature guarantee?

Authentication (proves identity of the signer), Integrity (proves the message was not altered after signing), and Non-repudiation (the signer cannot later deny having signed).

Why is ECDSA dangerous if you reuse the nonce?

The ECDSA math allows anyone who observes two signatures with the same nonce to algebraically compute the private key. This exact flaw was used to extract the Sony PlayStation 3 master signing key.

Why does Ethereum use ECDSA secp256k1 instead of Ed25519?

Bitcoin chose secp256k1 when Ed25519 did not yet exist as a standard. Ethereum inherited Bitcoin's choice. Ed25519 is widely considered the superior modern algorithm and is used for Ethereum's consensus layer validator signing.

📚 出典