公链地址生成曲线和算法

在区块链公链中,除了 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 签名。
  • 原因
    • 签名聚合(例如,多个签名合并为一个)减少交易大小,降低费用。
    • 更高的隐私性和效率,适合复杂脚本(如多重签名、闪电网络)。
(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 签名优化共识和验证。
  • 原因
    • 签名聚合和短签名长度适合大规模验证者网络(如 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(早期)。
    这些算法和曲线的选择取决于公链的性能、隐私、安全性和量子抗性需求。
相关推荐
阿雄不会写代码15 小时前
长安链智能合约命令解析(全集)
区块链
星鑫会IP1 天前
动态IP与区块链:重构网络信任的底层革命
网络·tcp/ip·区块链
穗余1 天前
WEB3——区块链留言板(留言上链),查看web3日志-入门项目推荐
区块链
红烧61 天前
Chainlink:连接 Web2 与 Web3 的去中心化桥梁
web3·去中心化·区块链
Galdradraumur1 天前
DApp 开发架构梳理
web3·区块链
星释1 天前
互联网向左,区块链向右
区块链·比特币
TechubNews2 天前
2025 年 Solana 生态全景分析:它如何从以太坊「高速替代方案」成长为成熟的基础设施?
区块链
MetaverseMan2 天前
LevelDB、BoltDB 和 RocksDB区块链应用比较
区块链
weixin_442316982 天前
北京大学肖臻老师《区块链技术与应用》公开课:06-BTC-网络
区块链