BitCoin

一条持续增长的基于哈希的工作量证明链来给交易打上时间戳,形成一条除非重做工作量证明否则不能更改的记录

目的

比特币(Bitcoin)的核心目标是创建一个去中心化的电子现金系统,解决传统金融体系中的几个关键问题:

  • 去中心化:无需信任第三方(如银行或政府),由网络中的所有参与者共同维护
  • 抗审查:没有任何机构可以冻结账户或阻止交易
  • 稀缺性:总量固定为 2100 万枚,避免通货膨胀
  • 透明可验证:所有交易记录公开可查,任何人都可以验证

原理

1. 区块链结构

比特币采用区块链作为底层数据结构,每个区块包含:

  • 区块头(包含时间戳、难度目标、默克尔根等)
  • 交易列表(第一笔是coinbase交易,即区块奖励)

2. 工作量证明(PoW)

矿工通过SHA-256哈希运算竞争记账权:

1
Hash(区块头) < 难度目标

矿工不断调整 nonce 值,直到找到符合条件的哈希值。这个过程需要消耗大量算力,确保了网络的安全性。

3. 共识机制

比特币使用中本聪共识

  1. 最长链原则:最长的工作量证明链被视为正确链
  2. 经济激励:矿工获得区块奖励和交易手续费
  3. 51% 攻击门槛:控制超过50%算力才能篡改历史

4. 椭圆曲线加密

比特币使用 ECDSA(椭圆曲线数字签名算法)

  • 私钥 → 生成公钥 → 生成比特币地址
  • 私钥用于签名,公钥用于验证
  • 地址是公钥的哈希值,保护公钥隐私

交易流程

1
用户A → 发起交易 → 网络广播 → 矿工打包 → 区块确认 → 用户B收到

1. 交易构建

  • 输入(Inputs):引用之前交易的输出
  • 输出(Outputs):指定收款地址和金额
  • 签名:用发送者的私钥签名

2. 广播网络

  • 交易通过 P2P 网络 传播
  • 每个节点验证交易有效性
  • 未确认交易进入 内存池(mempool)

3. 区块打包

  • 矿工选择内存池中的交易
  • 计算默克尔根
  • 竞争 PoW 求解

4. 确认机制

  • 交易确认数 = 所在区块之后的区块数
  • 6 个确认通常认为不可逆转
  • 大额交易建议等待更多确认

对象解释

私钥(Private Key)

  • 256 位随机数
  • 绝对保密,是比特币所有权的证明
  • 丢失 = 永久失去对应比特币

公钥(Public Key)

  • 由私钥通过椭圆曲线乘法生成
  • 用于生成比特币地址
  • 可以公开,用于验证签名

地址(Address)

1
Base58Check(P2PKH) = Version + PubKeyHash + Checksum

常见地址格式:

  • Legacy (P2PKH):以 1 开头
  • SegWit (P2SH):以 3 开头
  • Native SegWit (P2WPKH):以 bc1q 开头

区块(Block)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
┌─────────────────────────────────┐
│         区块头 (80 bytes)        │
│  • 版本号                        │
│  • 上一区块哈希                  │
│  • 默克尔根                      │
│  • 时间戳                        │
│  • 难度目标                      │
│  • Nonce                        │
├─────────────────────────────────┤
│         交易列表                  │
│  • coinbase 交易                 │
│  • 普通交易                      │
└─────────────────────────────────┘

挖矿难度

  • 每 2016 个区块自动调整(约 2 周)
  • 目标:保持出块时间约 10 分钟
  • 难度 = 目标值 / 当前目标值

总结

比特币通过巧妙的密码学设计和共识机制,实现了无需信任第三方的价值转移。作为第一个成功的去中心化加密货币,它奠定了整个区块链行业的基础。

Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……