美文网首页
比特币的标准交易

比特币的标准交易

作者: 红叶本 | 来源:发表于2017-10-14 10:18 被阅读62次
    比特币的交易数据结构比特币的交易是遵循统一的交易格式的。比特币的交易数据结构如下图:
    理解交易我们来解析一下这个比特币交易数据结构中的主要要素,来理解比特币的交易。输入
    • 引用被花费的UTXO (“交易”与“输出索引”)
    • 输入脚本 - 公钥与签名(”解锁脚本“)
    输出
    • 转账数量 (“总量”)
    • 输出脚本 - 检查公钥和验证签名 (“锁定脚本”)

    比特币如何交易的呢?通过执行输入脚本和输出脚本,如下:
    • 执行输入脚本:先把签名压入栈,再入栈公钥
    • 执行输出脚本:
      • 复制栈里的公钥,得到公钥副本 (公钥来源于输入脚本)
      • 计算公钥副本的哈希值,得到公钥哈希 PH(公钥哈希最终来源于输入脚本)
      • 将输出脚本里的公钥哈希入栈 PH1(来源于输出脚本)
      • 检查PH和PH1是否相等。是则继续,否则中断执行
      • 使用栈里留下的公钥和签名校验签名 (都来源于输入脚本)。成功则返回成功,否则返回失败
    这样,比特币交易就完成了。
    附:1. 输入脚本(长成这样,例子):
    • 3045022100efe12e2584bbd346bccfe67fd50a54191e4f45f945e3853658284358d9c062ad02200121e00b6297c0874650d00b786971f5b4601e32b3f81afa9f9f8108e93c752201
    038b29d4fbbd12619d45c84c83cb4330337ab1b1a3737250f29cec679d7551148a
    • 这么一长串其实只有2个元素,签名(sig) 和公钥 (pubkey)

    2. 输出脚本(长成这样,例子):
    • OP_DUP OP_HASH160 be10f0a78f5ac63e8746f7f2e62a5663eed05788 OP_EQUALVERIFY OP_CHECKSIG
    • be10f0a78f5ac63e8746f7f2e62a5663eed05788 这串是公钥哈希,用来检查与后笔交易输入中的公钥被哈希后是否一致

    Reference:
    • blog.sina.com.cn/s/blog_d66494300102wzyt.html







    相关文章

      网友评论

          本文标题:比特币的标准交易

          本文链接:https://www.haomeiwen.com/subject/kldxuxtx.html