>

比特币的交易

  • 比特币的脚本
  • 比特币脚本的应用
  • 比特币的区块
  • 比特币网络
  • 限制与优化

如何储存和使用比特币

  • 简单的本地储存
  • 热储存与冷储存
  • 密钥分存和密钥共享
  • 在线钱包和交易所
  • 支付服务
  • 交易费
  • 货币兑换市场

比特币挖矿

  • 比特币矿工的任务
  • 挖矿所需硬件
  • 能源消耗和生态环保
  • 矿池
  • 挖矿的激励和策略

比特币区块验证 -> 交易验证

提交区块时,必须先验证区块,在验证区块时,先验证区块中包含的交易。

1)CheckBlock()

(1)CheckBlockHeader() -> pow
(2)CheckMerkleRoot
(3)check tx size 交易数量限制
(4)最大输出 OpSig

2) CheckTransaction()

(1)验证输入和输出
交易必须有输入(Input)和输出(Output)

(2)输出的数值合法
不能是负数,也不能超过比特币总量 2100 万

(3)输入不能重复

(4)coinbase tx

对于 coinbase 的 tx,其 scriptSig 的 size 范围限制 2-100
如果是普通 tx,则检测每笔 input 的 prevOut 是否为 Null