Solana/私钥, 公钥与地址/私钥的密码学解释(二)
在我们深入探讨 solana 的私钥之前, 首先需要了解一种称为"公私钥密码学"的技术. 这是一种被广泛应用于现代信息安全领域的核心技术, 也是 solana 安全运行的基础. 公私钥密码学, 也被称为"非对称加密", 是一种基于数学算法的加密方法. 其核心在于使用一对密钥: 公钥和私钥.
公钥
- 公钥是可以公开使用的密钥, 它的主要作用是加密数据或验证签名.
- 有了公钥, 其他人可以安全地加密信息或对你的数据进行认证.
私钥
- 私钥是只有你一个人知道的密钥, 它的主要作用是解密信息或创建签名.
- 如果别人用你的公钥加密的数据, 只有你才能用你的私钥来解开并读取内容.
公私钥密码学的数学基础可以追溯到 20 世纪 70 年代. 最早的尝试之一是 diffie 和 hellman 在 1976 年提出的 "关键密钥交换协议", 但当时并没有广泛应用于实际系统. 随后, rsa 加密算法在 1977 年由 ron rivest, adi shamir 和 len adleman 提出, 成为公私钥密码学的经典方案. 该方案基于数论中的大质数分解难题, 被认为是安全的加密方法之一. 椭圆曲线密码学则是 rsa 的一种替代方案, 其优势在于使用更短的密钥长度即可达到相同的安全水平, 它的数学基础是椭圆曲线离散对数问题.
得益于比特币的发展, 比特币所采用的 secp256k1 椭圆曲线以及 ecdsa 签名算法在全球变得广为人知, 并产生了非常巨大的影响: 包括 ethereum, ckb 等众多区块链项目在内, 都采用了和比特币相同的密码学算法. 但 solana 在这方面有点不一样, 它采用的是一种新型的椭圆曲线数字签名算法, 其曲线名称 ed25519, 签名算法为 eddsa.
我们不禁要思考, 促成 solana 改变的原因是什么? 为什么要和比特币不一样?
为了解释这方面的原因, 在接下来的几小节中, 我将带领读者深入学习比特币的 secp256k1 + ecdsa 签名方案, 以及更重要的: 该方案背后所隐藏着的巨大的安全性问题.