公链地址生成曲线和算法
在区块链公链中,除了 ECDSA(基于 secp256k1 曲线) 和 EdDSA(基于 Ed25519 曲线) 之外,还有其他一些加密算法和椭圆曲线被用于生成公私钥对、签名验证或地址生成。这些算法和曲线的选择通常基于安全性、性能、兼容性和特定区块链的设计目标。以下是目前在公链中使用的其他主要算法和曲线,以及它们的具体应用场景:
1. 其他加密算法和曲线
以下是除 ECDSA 和 EdDSA 外,区块链公链中常用的算法和曲线:
(1) Schnorr 签名算法
- 曲线:通常基于 secp256k1(与 ECDSA 相同)。
- 特点:
- Schnorr 签名是一种基于椭圆曲线的数字签名算法,相比 ECDSA 具有更小的签名大小(64 字节 vs ECDSA 的 70-72 字节)、线性数学特性(支持签名聚合)和更高的安全性(抗某些侧信道攻击)。
- 支持多重签名(multisig)和批量验证,减少链上存储和计算开销。
- 应用公链:
- 比特币(Bitcoin):
- 通过 BIP-340(Schnorr Signatures) 和 Taproot 升级(2021 年 11 月激活),比特币引入 Schnorr 签名,用于增强隐私性(隐藏复杂脚本)和降低多重签名交易的成本。
- Schnorr 签名与 secp256k1 曲线结合,保持与 ECDSA 的兼容性。
- 其他链:一些基于比特币代码的分叉链(如 Bitcoin Cash)或支持 Taproot 的链也可能使用 Schnorr 签名。
- 比特币(Bitcoin):
- 原因:
- 签名聚合(例如,多个签名合并为一个)减少交易大小,降低费用。
- 更高的隐私性和效率,适合复杂脚本(如多重签名、闪电网络)。
(2) BLS 签名(Boneh-Lynn-Shacham)
- 曲线:通常基于 BLS12-381 或其他配对友好曲线(如 BN254)。
- 特点:
- BLS 签名支持签名聚合(多个签名合并为一个固定大小的签名,通常 48 字节)和批量验证,极大地优化了区块链的存储和验证效率。
- 基于配对密码学(pairing-based cryptography),适合零知识证明(ZKP)和跨链协议。
- 签名大小小(48 字节),但验证速度较慢(相比 Ed25519 或 Schnorr)。
- 应用公链:
- 以太坊 2.0(Ethereum Beacon Chain):
- 使用 BLS 签名(基于 BLS12-381 曲线)进行验证者签名,特别是在 PoS(权益证明)共识中。
- BLS 签名聚合允许多个验证者的签名合并为一个,减少链上数据量。
- Filecoin:
- 使用 BLS 签名验证存储提供者的证明,优化存储和计算效率。
- Dfinity(Internet Computer):
- 使用 BLS 签名支持其共识机制和身份管理。
- Zcash:
- 部分零知识证明(zk-SNARKs)场景使用 BLS 曲线(如 BN254)支持高效验证。
- 其他链:如 Algorand、Chia 等也使用 BLS 签名优化共识和验证。
- 以太坊 2.0(Ethereum Beacon Chain):
- 原因:
- 签名聚合和短签名长度适合大规模验证者网络(如 PoS 共识)。
- 与零知识证明的兼容性,适合隐私和扩展性应用。
(3) RSA(Rivest-Shamir-Adleman)
- 曲线:不基于椭圆曲线,而是基于大整数分解问题。
- 特点:
- RSA 是一种传统的公钥加密算法,密钥长度通常为 2048 位或 4096 位,签名和公钥大小较大(数百字节)。
- 签名生成和验证速度较慢,计算开销高。
- 在区块链中应用较少,主要用于早期或特定场景。
- 应用公链:
- 少数早期公链:如某些实验性区块链或侧链可能使用 RSA,但主流公链(如比特币、以太坊)不使用。
- Hyperledger Fabric(企业级区块链,非典型公链):
- 支持 RSA 用于证书颁发和身份管理(与 ECDSA 可选搭配)。
- 原因:
- RSA 在区块链中应用有限,因其签名和密钥大小大、性能低,不适合高吞吐量场景。
- 主要用于传统密码学场景或与外部系统的互操作。
(4) Dilithium(后量子签名算法)
- 基础:基于格密码学(Lattice-based cryptography),不使用椭圆曲线。
- 特点:
- Dilithium 是一种抗量子攻击的签名算法,设计用于抵御量子计算机的威胁(如 Shor 算法破解椭圆曲线)。
- 签名大小较大(2-4 KB),公钥约 1-2 KB,验证速度较快,但签名生成较慢。
- 应用公链:
- 实验性公链:目前主流公链(如比特币、以太坊)尚未广泛采用 Dilithium,但一些新兴公链或侧链开始探索后量子密码学。
- 以太坊(未来可能):以太坊社区在研究后量子密码学(如 Dilithium、Falcon)以应对量子计算威胁,可能在未来升级中引入。
- QANplatform:一个专注于抗量子安全的公链,计划支持 Dilithium 或类似算法。
- 原因:
- 抗量子安全,适合未来量子计算时代。
- 目前应用有限,因签名和密钥大小较大,性能不如椭圆曲线算法。
(5) Falcon(后量子签名算法)
- 基础:基于格密码学(NTRU 或环学习同态问题)。
- 特点:
- 类似 Dilithium,Falcon 是抗量子签名算法,签名大小较小(约 600-1200 字节),但公钥和签名生成复杂。
- 适合需要高安全性和紧凑签名的场景。
- 应用公链:
- 实验性公链:与 Dilithium 类似,Falcon 主要在抗量子区块链项目中测试,如 QANplatform 或某些研究性链。
- 以太坊(潜在):以太坊社区也在研究 Falcon 作为后量子备选方案。
- 原因:
- 抗量子安全,签名大小比 Dilithium 小,适合未来区块链升级。
- 目前应用较少,因生态尚未成熟。
(6) XMSS(扩展 Merkle 签名方案)
- 基础:基于哈希的密码学(Hash-based cryptography),抗量子。
- 特点:
- XMSS 是一种状态哈希签名方案,抗量子攻击,签名大小适中(约 2-3 KB)。
- 限制:密钥对只能用于有限次数的签名(状态管理复杂)。
- 应用公链:
- 少数实验性公链:如某些专注于后量子安全的链(未广泛普及)。
- IOTA(早期):IOTA 早期版本使用了基于哈希的签名(如 Winternitz OTS),与 XMSS 类似,但后来转向其他方案。
- 原因:
- 抗量子安全,适合高度安全需求的场景。
- 状态管理和签名次数限制使其在公链中应用较少。
2. 常用曲线的总结
以下是区块链公链中常见的椭圆曲线和其他密码学基础:
- secp256k1(ECDSA、Schnorr):
- 公链:比特币、以太坊、EOS、部分 Cosmos 链。
- 特点:256 位安全性,压缩公钥 33 字节,签名 70-72 字节(ECDSA)或 64 字节(Schnorr)。
- Ed25519(EdDSA):
- 公链:Solana、TON、Polkadot、Near、Cardano、Stellar、Monero。
- 特点:256 位安全性,压缩公钥 32 字节,签名 64 字节,高效且抗侧信道攻击。
- BLS12-381(BLS):
- 公链:以太坊 2.0、Filecoin、Dfinity、Algorand、Chia。
- 特点:支持签名聚合,签名 48 字节,适合 PoS 和零知识证明。
- BN254(BLS 或 ZKP):
- 公链:Zcash(zk-SNARKs)、某些以太坊 Layer 2。
- 特点:配对友好,适合零知识证明,安全性稍低于 BLS12-381。
- 格密码学(Dilithium、Falcon):
- 公链:QANplatform、实验性链。
- 特点:抗量子,签名和公钥较大,尚未广泛普及。
- 哈希签名(XMSS):
- 公链:IOTA(早期)、实验性链。
- 特点:抗量子,状态管理复杂,应用有限。
3. 为什么选择不同算法和曲线?
- 安全性:
- secp256k1 和 Ed25519 提供约 128 位安全性,足以应对当前经典计算机攻击。
- BLS12-381 和 BN254 适合配对密码学和零知识证明。
- 后量子算法(如 Dilithium、Falcon)针对未来量子计算威胁。
- 性能:
- Ed25519 提供最快的签名和验证速度,适合高吞吐量公链。
- Schnorr 和 BLS 支持签名聚合,优化多签名和共识场景。
- RSA 和后量子算法性能较低,应用受限。
- 存储和传输:
- Ed25519(32 字节公钥,64 字节签名)和 BLS(48 字节签名)优于 ECDSA(33 字节公钥,70-72 字节签名)。
- 后量子算法签名较大(1-4 KB),对链上存储要求高。
- 兼容性:
- secp256k1 是比特币和以太坊生态的标准,兼容性强。
- Ed25519 是新兴公链的标准,得到广泛支持。
- BLS 和后量子算法在特定场景(如 PoS、ZKP)中应用。
4. 总结
除了 ECDSA(secp256k1)和 EdDSA(Ed25519),区块链公链中还使用以下算法和曲线:
- Schnorr(secp256k1):比特币(Taproot)、分叉链。
- BLS(BLS12-381、BN254):以太坊 2.0、Filecoin、Dfinity、Zcash、Algorand、Chia。
- RSA:少数企业级链(如 Hyperledger)。
- 后量子算法(Dilithium、Falcon、XMSS):QANplatform、实验性链,IOTA(早期)。
这些算法和曲线的选择取决于公链的性能、隐私、安全性和量子抗性需求。