【第一阶段1-理论入门】(4) 区块的生成和连接

版权声明:未经本人同意不能转载。可联系 ( [email protected] ) https://blog.csdn.net/jaryn_fang/article/details/90205227

交易的传播验证

  • 交易包含两个部分,n输入和m输出,n>=0,m>0。(挖矿时n=0)
    • 输入==要花费的UTXO+解锁脚本
    • 输出==UTXO(币值+锁定脚本)
  • 钱包软件生成交易,并向临近节点传播
  • 节点对收到的交易进行验证,并丢弃不合法交易
    • 交易的size要小于区块size的上限
    • 交易输入的UTXO是存在的
    • 交易输入UTXO没有被其他交易引用-防止双花(Double Spending)
    • 输入总金额 > 输出总金额
    • 解锁脚本验证
  • 将合法的交易加入到本地的Transaction数据库中,并将合法交易转给临近的节点

区块的生成

区块的验证链接

  • 相邻节点收到新区块后,立即做一下检查
    • 验证POW的nonce值是否符合难度值
    • 检查时间戳是否小于当前时间2小时
    • 检查Merkle树根是否正确
    • 检查区块size要小于区块size的上限
    • 第一笔交易必须是coinbase交易
    • 验证每个交易
    • 源代码:http://btc.yt/lxr/satoshi/ident?_i=CheckBlock

Merkle Tree


猜你喜欢

转载自blog.csdn.net/jaryn_fang/article/details/90205227