todayonchain.com

核心议题:libsecp256k1,比特币的密码学核心

Bitcoin Magazine
libsecp256k1是处理比特币secp256k1椭圆曲线密码学的关键、高质量且高性能的C语言库。

内容摘要

文章详细介绍了libsecp256k1的历史、演变及其关键重要性,该库是使用secp256k1椭圆曲线进行比特币数字签名的软件基础。最初,比特币使用OpenSSL,但由于可能导致链分裂的解析不一致性,它被libsecp256k1取代(始于Bitcoin Core v0.12,2016年)。该库源于Pieter Wuille对利用Hal Finney讨论的内同态技术优化签名验证的好奇心,首次采用时使速度提高了2.5到5.5倍,并在2020年专利过期后完全启用内同态优化,又实现了约16%的额外加速。

libsecp256k1专注于secp256k1操作,使其更快、更易于审查且无依赖项,甚至适用于硬件钱包。它保持接近100%的测试覆盖率并采用详尽测试。一个主要里程碑是为Taproot引入了Schnorr签名(BIP340)。该库尤其重视签名操作的安全性,通过实施恒定时间代码来缓解侧信道攻击,并确保秘密材料从内存中被正确擦除。该库在Pieter Wuille、Gregory Maxwell、Jonas Nick和Tim Ruffing等“全栈密码学家”的指导下发展,还促成了外部发现,例如发现了OpenSSL中的一个错误。该库仍在不断发展,纳入了MuSig2等新标准,并为Silent Payments做准备。

(来源:Bitcoin Magazine)