一、密码学基础

196 阅读2分钟

比特币中用到密码学的两个功能:哈希和签名


一、哈希

1. 基本概念

  • Crypto-currency(加密货币) :通过密码学保障交易和系统安全。
  • Cryptographic hash(加密哈希) :一种将任意长度数据映射为固定长度哈希值的函数。
  • Hash Digest(哈希摘要) :哈希函数的输出值(结果)。

2. 比特币中哈希函数的三大性质

  1. Collision resistance(抗碰撞性) 很难找到两个不同的输入得到相同的哈希值。
  2. Hiding(隐藏性/不可逆性) 无法通过哈希值反推出原始数据。
  3. Puzzle friendly(适合解谜) 哈希值无法预测,只能通过暴力计算逐个尝试,挖矿过程中没有捷径。

3. 组合性质

  • 抗碰撞性与隐藏性结合可形成:

    • Digital commitment(数字承诺) : 又称 Digital equivalent of a sealed envelope(数字版密封信封) ,用于承诺某一数据但暂时不公开。

4. Proof of Work(工作量证明)

  • 通过计算哈希值证明一定量的工作(即挖矿)。

  • 特性

    • Difficult to solve, but easy to verify(难以求解但易于验证)

5. 比特币中的哈希函数

  • 使用的是 SHA-256(Secure Hash Algorithm,安全哈希算法)

二、签名

1. 签名的作用

  • 发布交易时标明身份,确保交易的真实性和不可抵赖性。

2. 公钥与私钥

  • Public Key(公钥) : 用于验证签名,公开可共享。

  • Private Key(私钥) : 用于创建签名,需严格保密。

  • Asymmetric encryption algorithm(非对称加密体系)

    • 公钥加密,私钥解密。
    • 示例:A 给 B 发消息,A 用 B 的公钥加密,B 用自己的私钥解密。
  • 对称加密的弱点

    • 密钥分发难以保证安全。
  • 非对称加密的优点

    • 消除密钥传输问题,公钥公开即可。

3. 随机源

  • A good source of randomness(好的随机源) : 生成公钥时需要高质量的随机数。

4. 比特币中的签名过程

  • 步骤

    1. 对交易信息(Message)进行哈希,得到哈希摘要。
    2. 用私钥对哈希摘要签名。
    3. 其他人用公钥验证签名的正确性。

5. 特性

  • 签名用私钥,验证签名用公钥
  • 交易的签名确保了数据的完整性和来源的合法性。

总结

  • 哈希功能:用于数据完整性验证、工作量证明。
  • 签名功能:用于交易身份验证,确保安全性和不可篡改性。
  • 比特币系统通过将哈希与签名结合,实现了去中心化、可信、安全的交易机制。