比特币系统与传统的银行和支付系统不同,是基于去中心化的信任。在比特币中,信任不是通过中央权威机构授权而来,而是通过比特币系统中不同用户相互交互自发达成,这是比特币的一个显著特性。
在本章中,我们将通过较高层面跟踪比特币系统中的一笔交易,观察交易如何通过比特币分布式共识机制变得“可信”,被接受,并且最终记录在区块链,这个区块链就是所有交易的分布式账簿。
随后的章节将深入探讨交易、网络和挖矿背后的技术。
2.1.1 比特币概述
如图2-1所示的概览图中,我们可以看到比特币系统由 用户、交易 和 矿工 组成,其中用户主要使用密钥控制钱包,交易会被广播到整个比特币网络,矿工通过算力竞争生产出具备所有节点共识的区块链,这个区块链是一个分布式的公开权威账簿, 包含了比特币网络发生的所有的交易。
本章中的每个示例都基于在比特币网络上进行的实际交易,通过将资金从一个钱包发送到另一个钱包来模拟用户(Joe,Alice,Bob和Gopesh)之间的交互。 我们将使用一个区块链浏览器来显示比特币网络中交易进入区块链的每个步骤。 区块链浏览器是一个类似比特币搜索引擎的Web应用程序,它允许您搜索地址,交易和区块,并查看它们之间的关系和流程。
常见的区块链数据查询网站包括:
- blockchain.info
https://blockchain.info/
[状态: 可用] - BlockCypher Explorer
https://live.blockcypher.com/
[状态: 可用] - BitPay Insight
https://insight.bitpay.com/
[状态: 未知] - Bitcoin Block Explorer
https://blockexplorer.com/
[状态: 未知]
以上每一个查询网站都有搜索功能,可以在比特币网络和区块链中通过地址、交易哈希值或区块号,搜索到对应的数据。针对每个交易和区块都会提供一个URL链接,方便做深入研究。
2.1.2 买一杯咖啡
在之前章节里,Alice是一名刚刚获得第一枚比特币的新用户。在【1.4.3 得到你的第一个比特币】中,Alice和她的朋友Joe会面时,用现金换取了比特币。由Joe产生的这笔交易使得Alice的钱包拥有了0.10比特币。现在Alice将第一次使用比特币在加利福尼亚州帕罗奥图的Bob咖啡店买一杯咖啡。
注:
在【1.4.2 快速开始】节时,Alice创建的新比特币地址为 1Cdid9KFAaatwczBwBttQcwXYCpvK8h7FK
Bob咖啡店刚开始接受比特币支付,销售系统新增加了一个比特币支付选项,价格单上列的是当地货币(美元)的售价,在收银台,顾客可以选择用美元或比特币支付。此时,Alice点了杯咖啡,然后Bob将交易输入到收银机,销售系统按照当前市场汇率把美元总价转换为比特币,然后同时显示两种货币的价格:
总价:
$1.50 USD
0.015 BTC
中文意思:
Bob说 “总共 1.50 美元,或 0.015 BTC比特币”
Bob的销售系统还自动创建一个包含付款请求的二维码。
与简单包含目的比特币地址的二维码不同,当前支付请求是一个包含URL的二维码,它包含有收款地址、付款金额 和像“Bob咖啡”这样的交易描述。这使比特币钱包应用可以预先填好一些特定信息,方便用户识别。你可以用比特币钱包扫描这个二维码来看Alice看到的信息。
提示 尝试用你的钱包扫描这个,看看地址和金额,但不要发送货币。
根据BIP-21的定义,这个付款二维码包括的URL的意思是:
bitcoin:1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA?
amount=0.015&
label=Bob%27s%20Cafe&
message=Purchase%20at%20Bob%27s%20Cafe
//上面二维码URL字符串的意思如下:
比特币地址: "1GdK9UzpHBzqzX2A9JFP3Di4weBwqgmoQA"
付款金额: "0.015"
接收者地址标签: "Bob's Cafe"
付款描述: "Purchase at Bob's Cafe"
Alice用她的智能手机扫描了这个二维码,显示有一笔给Bob咖啡店的0.0150比特币的支付请求,然后她按下发送键授权了这笔支付。在几秒钟时间内(大约与信用卡授权所需时间相同)Bob将会在收银台看到这笔交易,并完成交易。在接下来的章节中,我们将更详细地观察这笔交易,观察Alice的钱包是怎样构建交易,交易又是怎样在网络中广播、怎样被验证,以及Bob在后续交易中怎样消费那笔钱。
注意 从千分之一比特币(1毫比特币)到一亿分之一比特币(1聪比特币),比特币网络可以处理任意小额交易。在本书中,我们将用“比特币”这个术语来表示任意数量的比特币货币,从最小单元(1聪)到可被挖出的所有比特币总数 (21,000,000)。
你可以像下面例1那样使用区块链浏览器站点来检查Alice与Bob’s Cafe的交易:
例1-1 查看Alice的交易