ECDSA 每次签名都要用一个一次性的秘密随机数 k,同一把私钥的两次签名一旦用了相同的 k,两条线性方程就能解出私钥本身。本文推演这个被称为“密钥盗窃的代数课”的机制,复盘安卓钱包偏差随机数与游戏主机固件固定 k 值等公开案例,并解释 RFC 6979 确定性签名如何从根上消除这类风险。
汇总与「密码学」相关的文章,帮助你系统了解该主题。
ECDSA 每次签名都要用一个一次性的秘密随机数 k,同一把私钥的两次签名一旦用了相同的 k,两条线性方程就能解出私钥本身。本文推演这个被称为“密钥盗窃的代数课”的机制,复盘安卓钱包偏差随机数与游戏主机固件固定 k 值等公开案例,并解释 RFC 6979 确定性签名如何从根上消除这类风险。
secp256k1上的公钥是曲线上的一个点,数学上由横坐标和奇偶性就能唯一还原,因此可以省掉整个纵坐标:这就是33字节压缩公钥的原理。本文解释02与03前缀、65字节非压缩格式的来历、两种序列化哈希出不同地址的原因,以及Taproot时代BIP-340的32字节x-only公钥。
2017 年定稿的 EIP-198 给以太坊加了一个地址 0x05 的预编译合约:输入三个大整数,返回底数的指数次幂对模数取余,按输入长度分段计费。提案解决的痛点写在摘要里——当时的 EVM 里跑大数模幂,一次 2048 位 RSA 验签的 Gas 成本高到不可用,预编译把整个运算搬进客户端原生代码,费用按「大数次数乘比特平方、再除以奖励常数」的公式测算。本文拆解这条公式如何把非对称密码学带进智能合约,以及它后来成为零知识验证栈地基的来路。
同一把钥匙同一句话,ECDSA 本来可以签出无数个合法签名,k 值泄露就是其中一条暗道。2026 年 8 月立项的 BIP-461 规定确定性签名算法:nonce 由 HMAC 链导出、低 r 打磨、低 s 归一,签名最长 70 字节。本文拆解它的算法与「可检测性」逻辑。
付给合约(P2C)把一条外部承诺藏进公钥里,花钱时签名设备必须知道那个承诺值,否则签不出有效签名。BIP-372 为 PSBT 增加专门字段,把原始密钥与 tweak 值的对应关系随交易一起分发。本文拆解它想解决的离线签名困境和字段设计思路。
Ergo 的花费条件不是先算布尔值再验签,而是被解释器归约成一条 Sigma 命题,再用 Fiat-Shamir 变换生成证明。本文按官方文档拆解承诺—挑战—响应骨架、AND/OR 与 k 取 n 组合,以及归约必须封顶的最大成本。
零知识证明、后量子签名这些新密码学要把数算到768位,可EVM的寄存器只有256位宽。EIP-6690提出一套带虚拟寄存器的模运算扩展指令。本文拆解字段上下文、宽数搬运和按模数分档计费的三层设计。
以太坊虚拟机原生只会 secp256k1 和 alt_bn128 两条曲线的定点运算,验别的曲线只能靠 EVM 手搓,甚至出现过在 EVM 里算椭圆曲线比预编译还便宜的反常。2019 年 3 月提出的 EIP-1829 提议加一条预编译,输入曲线方程和一组点,一次算出整条线性组合。该提案处于 Stagnant。本文拆解它的接口、按点计费的 Gas 模型,以及为什么多倍乘比单倍乘更划算。
EIP-152引入的blake2f预编译自2019年伊斯坦布尔上线以来调用量极低,EIP-7266提议把0x09地址改为调用即异常中止,并把它当作预编译淘汰机制的首次试验。本文复盘这个插槽七年的使用数据、预编译为何只进不出的惯性,以及移除操作对存量应用的影响评估。
输入序号越界时旧实现返回常数 1 当待签消息,等于可复用图章。从 2012 年警告、SegWit v0 全零输出哈希到 Taproot 直接拒绝,看共识缺陷如何分层修补。