[比特币]比特币中的密码学原理

比特币又称加密货币,但其实加密货币并没有加密:区块链中的所有信息都是公开的,包括交易的内容、交易的金额以及交易账户的地址。之所以称之为加密货币,主要是因为交易的双方在不与真实世界发生关联的情况下,双方的身份是无法获知的。

比特币中主要用到了密码学中的“哈希”和“签名”。

密码学中用的哈希被称作Cryptographic Hash Function,它有两个重要的性质:

  • Collision resistance:抗碰撞性。哈希碰撞是指给定xy,但经过哈希运算后,H(x)=H(y),这种情况被称为“哈希碰撞”。哈希碰撞是不可避免的,输出空间是有限的,但输入空间是无限的。假如一个256位的哈希值,那么它的输出空间为2256,即它的输出有2256种可能,但它的输入空间是无限大的。按照“鸽笼原理”(又称抽屉原理),必然会出现不同输入映射到同一输出的情况。Collision resistance并不是说不会出现哈希碰撞,而是说没有高效的方法来人为地制造哈希碰撞,即给定一个x,没有高效的方法找到一个y,使H(x)=H(y)。这一性质可以防止消息被篡改。
  • Hiding:隐匿。即哈希函数的计算过程是单向、不可逆的。给定一个x,可以计算出H(x),但无法从H(x)逆推出x。其成立的条件是输入空间必须足够大且均匀分布的。与Collision resistance性质结合,可以实现digital commitment(数字承诺)。

鸽笼原理:如果有5只鸽子笼,养鸽人养了6只鸽子,那么当鸽子飞回笼中后,至少有一个笼子中有2只鸽子。

除了上述的两个性质之外,比特币中的哈希函数还要求:

  • Puzzle friendly:即哈希值的计算是不可预知。Difficult to solve, but easy to verify.

BTC中用的哈希函数:SHA-256

BTC中账户的创建与现实中创建银行账户不同。在BTC中,任何人都可以随时随地地创建账户,用户只需在本地创建一个公私钥对,即一个公私钥对即为一个账户。公私钥对是非对称加密算法中的概念。公钥加密,私钥解密是常见的公私钥加密用法。私钥加密,公钥解密就是“签名”的过程。

在BTC系统中,用户的公钥即为其地址,发布交易时,用户需要用其私钥对交易进行签名,其他用户可以用其公钥对该交易进行验证。生成公私钥时需要有个好的随机源,否则容易造成私钥泄露。


声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。


posted @   落雷  阅读(867)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示