ECDSAの基盤となっているのは楕円曲線暗号です。RSAなど従来の方式と同等のセキュリティを、はるかに小さい鍵サイズで実現します。この効率性により、数千のノードがすべてのトランザクションを検証する必要があるブロックチェーンでも実用的に利用できます。
ECDSAの処理は3つのステップに分かれています。最初のステップは鍵生成です。ランダムな数値を秘密鍵として生成し、この秘密鍵から楕円曲線乗算という計算手法を用いて公開鍵を導出します。秘密鍵は誰にも知られないよう、厳重に管理する必要があります。
公開鍵は自由に共有できます。両者の間には、一方向の数学的な関係があります。秘密鍵から公開鍵を計算するのは容易ですが、その逆の計算は事実上不可能です。
最後のステップは検証です。公開鍵とメッセージ、署名があれば、誰でもその署名が対応する秘密鍵によって生成されたものかを確認できます。この検証プロセスで秘密鍵が明らかになることはありません。パブリックブロックチェーンではすべてのノードが独立してトランザクションを検証する必要があり、ECDSAが適しているのはこのためです。
ECDSAは支払い以外の場面でも利用され、認証のためのメッセージ署名や、複数の当事者による署名を必要とするマルチシグ方式などにも利用されています。
正しく実装されたECDSAは、現在の計算能力では破ることが極めて困難です。ただし、その安全性はノンスの質に大きく依存します。同じノンスで2つの異なるメッセージに署名すると、その2つの署名から秘密鍵が数学的に復元されてしまいます。
これは理論上の話にとどまりません。2013年には、Androidの乱数生成器にあった不具合により一部のビットコインウォレットで同じノンスが生成され、攻撃者はそこから秘密鍵を復元して資金を盗み出しました。
ノンスの生成方法が不十分な場合、完全に同じ値を再利用していなくても秘密鍵が漏えいする可能性があります。そこで現在のウォレットの多くは、秘密鍵とメッセージからノンスを一意に導出する決定論的ノンス生成(RFC 6979)を採用し、偶発的な再利用のリスクをなくしています。
将来的には、ECDSAが耐量子署名方式に置き換えられる可能性があります。量子コンピューターが実用化されれば、ECDSAの安全性の根拠である楕円曲線離散対数問題は、理論上解読できてしまうためです。とはいえ現時点では、ECDSAがビットコインとイーサリアムのトランザクション承認における標準として使われています。
検証目的で生成される、一度だけ使用される任意の文字列または数値。過去のトランザクションの再利用を防ぎます。
Guido Bertoni、Joan Daemen、Michaël Peeters、Gilles Van Asscheによって設計された多目的暗号化関数。
デジタル署名とは、デジタルデータの真正性と整合性を検証し、データ通信や暗号資産トランザクションのセキュリティを確保する暗号ツールです。