todayonchain.com

コアな問題:libsecp256k1、ビットコインの暗号学的心臓部

Bitcoin Magazine
libsecp256k1は、ビットコインのsecp256k1楕円曲線暗号を扱う、極めて重要で高品質かつ高性能なC言語ライブラリです。

概要

この記事は、ビットコインのデジタル署名を支えるsecp256k1楕円曲線暗号のソフトウェアライブラリであるlibsecp256k1の歴史、進化、およびその重要性を詳述しています。当初、ビットコインはOpenSSLを使用していましたが、チェーンスプリットを引き起こしかねない解析の一貫性の問題があったため、2016年のBitcoin Core v0.12以降、libsecp256k1に置き換えられました。このライブラリは、Hal Finneyが議論した内同態(endomorphism)技術を利用して署名検証を最適化したいというPieter Wuilleの関心から始まり、最初に採用された際に2.5倍から5.5倍の速度向上をもたらし、2020年に特許失効後に内同態最適化が完全に有効化されたことで、さらに約16%の速度向上が達成されました。

libsecp256k1はsecp256k1の操作のみに焦点を当てることで、より高速でレビューが容易、かつ依存関係がないため、ハードウェアウォレットにも適しています。テストカバレッジはほぼ100%を維持し、網羅的なテストを採用しています。主要なマイルストーンは、TaprootのためのSchnorr署名(BIP340)の導入です。このライブラリは、特に署名操作のセキュリティを重視しており、サイドチャネル攻撃を軽減するために定数時間コードを実装し、秘密情報がメモリから意図せず残らないよう細心の注意を払っています。Wuille、Maxwell、Nick、Ruffingといった「フルスタック暗号学者」の指導の下で開発が進められ、OpenSSLのバグ発見など外部での発見にもつながりました。このライブラリは、MuSig2などの新しい標準を取り入れ、Silent Paymentsへの準備を進めるなど、進化を続けています。

(出典:Bitcoin Magazine)