Ed25519 签名是什么?为什么钱包之外的链都在用这条曲线 图 1
Ed25519 签名是什么?为什么钱包之外的链都在用这条曲线 · 图 1

一句话先说清

Ed25519 是一种数字签名算法:32 字节公钥、64 字节签名,签名里不再需要独立传输的随机数,验签快、实现陷阱少。它由 Daniel Bernstein 基于他早年的 Curve25519 曲线设计,2017 年以 RFC 8032 的名义进入 IETF 标准(名为 EdDSA 框架下的 Ed25519)。区块链圈里,比特币与以太坊坚守 secp256k1,而 Solana、Polkadot 等新链普遍换到了 Ed25519 或其近亲,这个分野不是审美差异,是取舍清单不同。

它和 ECDSA 在结构上差在哪

比特币式 ECDSA 每次签名要挑一个随机数 k,k 泄露或重复,私钥就能被解出来——历史上钱包、游戏、交易所热钱包多次因此翻车。Ed25519 是确定性签名:把待签消息和私钥一起哈希,派生出这次的“随机数”,没有随机源就没有随机源事故。代码里也少了一大类漏洞:曲线参数硬编码了 Edwards 曲线的形状,签名格式不留自由空间,连“验证小 subgroup 公钥”这类检查都被设计消解掉了——不是要求实现者小心,是让这些坑不存在。

快与简单在哪

Ed25519 的验签用批量验证友好得多:多个签名可以共享运算,这对每区块要验上千笔签名的链是实打实的吞吐。密钥长度上它是 32 字节对 secp256k1 的 33 字节压缩公钥,签名 64 字节对 ECDSA 的 64 到 72 字节且带格式歧义。注意 EdDSA 的“快”主要在验签和批量,签名生成对普通设备完全够用;它没有直接提供比特币生态那种成熟的算术性质利用(比如schnorr之前 ECDSA 上的部分批量聚合),迁移从来不是无痛的。

区块链为什么各选各家

secp256k1 属于 NIST 之外的“私人定制”曲线,比特币当年选它有躲避标准信任的立场,也换来一整套围绕它的工具链(Schnorr 改造、MuSig2 聚合都长在这条线上)。新链没有历史包袱,更看重:实现简单不出事、验签便宜、抗侧信道、审计友好。Ed25519 恰好每条都踩中。另一条线是隐私链和 ZK 系统偏爱别的曲线——签名用的曲线和证明系统里配对友好曲线往往不是同一条,一个协议里多算法共存是常态,不是怪事。

对用户意味着什么

对持币者,算法名字不改变“助记词即资产”的规则;但跨生态时要记住派生标准不同:同一句助记词,在比特币套 BIP44 派生,在 Solana 走 Ed25519 风格的 SLIP-0010 分支,地址对不上不是钱包坏了,是两条完全不同的树。备份时把派生路径记下来,比什么都值钱。

一条直觉线

选签名算法像选地基:ECDSA 是老牌标准、生态厚但施工事故多;Ed25519 是把施工安全写进图纸的新地基,代价是旁边的老楼都不在它的地基上。看清一个链的签名算法,就能大致猜出它的工程哲学。

批量验证为什么值钱

Ed25519 的验证等式建立在 Edwards 曲线上,天生允许把多个签名的验证运算合并成一次标量乘法组合。对普通用户这毫无感觉,对链却是生死线:Solana 这类以吞吐为卖点的链,每个区块要核对成千上万笔签名,验签速度直接决定节点硬件门槛,硬件门槛又反过来决定去中心化程度。这也是为什么签名算法的选择从来不是密码学审美题,而是“整条链的经济模型题”。

快速问答

问:Ed25519 比 ECDSA 安全多少?答:没有“多少”可比。两者都建立在离散对数难题上,安全量级相当;差异在实现事故面和设计洁癖,不在数学强度。

问:比特币会换成 Ed25519 吗?答:现有脚本体系长在 secp256k1 上,全链换曲线等于换链。Schnorr(BIP340)已经给比特币补上批量与聚合能力,换曲线的动力很小。

常见误区

一是把 64 字节签名当成“更短更安全”的全部卖点,它真正的优势是消灭随机数依赖和减少可出错代码;二是认为确定性签名“没有随机性所以可预测”——派生用的随机性来自私钥与消息的哈希,不可预测性并未丢失;三是看到不同链用不同算法就断言有的不安全,算法代际和工程取舍不同,不等于对错。

风险提示:本文为密码学机制科普,不构成任何投资建议。