在【第二章比特币概述】中,我们使用区块浏览器查看了Alice曾经在Bob的咖啡店支付咖啡的交易(图6-1)。

区块浏览器应用程序显示从Alice的“地址”到Bob的“地址”的交易。 这里显示的是交易内容的简化视图。 实际上,正如我们将在本章中看到的,所显示的大部分信息都是由区块浏览器构建的,并不在交易中。

6.2_交易细节 - 图1

图6-1 Alice与Bob咖啡店的交易

6.2.1 交易 - 幕后细节

在幕后,实际的交易看起来与典型的区块浏览器提供的交易非常不同。 事实上,我们在各种比特币应用程序用户界面中看到的大多数高级结构并不存在于比特币系统中。

我们可以使用Bitcoin Core的命令行界面(getrawtransaction和decodeawtransaction)来检索Alice的“原始”交易,对其进行解码,并查看它包含的内容。 结果如下:

Alice的交易被解码后是这个样子:

{
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "txid":"7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18",
      "vout": 0,
      "scriptSig": "3045022100884d142d86652a3f47ba4746ec719bbfbd040a570b1deccbb6498c75c4ae24cb02204b9f039ff08df09cbe9f6addac960298cad530a863ea8f53982c09db8f6e3813[ALL] 0484ecc0d46f1918b30928fa0e4ed99f16a0fb4fde0735e7ade8416ab9fe423cc5412336376789d172787ec3457eee41c04f4938de5cc17b4a10fa336a8d752adf",
      "sequence": 4294967295
    }
 ],
  "vout": [
    {
      "value": 0.01500000,
      "scriptPubKey": "OP_DUP OP_HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 OP_EQUALVERIFY OP_CHECKSIG"
    },
    {
      "value": 0.08450000,
      "scriptPubKey": "OP_DUP OP_HASH160 7f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a8 OP_EQUALVERIFY OP_CHECKSIG",
    }
  ]
}

您可能会注意到这笔交易似乎少了些什么东西,比如:Alice的地址在哪里?Bob的地址在哪里? Alice发送的“0.1”个币的输入在哪里? 在比特币里,没有具体的货币,没有发送者,没有接收者,没有余额,没有帐户,没有地址。为了使用者的便利,以及使事情更容易理解,所有这些都构建在更高层次上。

你可能还会注意到很多奇怪和难以辨认的字段以及十六进制字符串。 不必担心,本章将详细介绍这里所示的各个字段。