第二章 比特币的原理
比特币系统与传统银行和支付系统不同,没有中心化权威来做信任背书,而是以去中心化信任为基础。本章通过追踪一笔交易,来说明比特币交易是如何在这个系统中“被信任”、“被接受”及“被记账”的。
比特币系统由用户、交易和矿工组成。
用户通过钱包发起交易请求,该交易请求包括:支付多少金额比特币给某个地址的比特币钱包,并可以备注这笔交易的收取人标签和交易描述。
这一笔交易中包含了支付方地址、收取方地址、交易金额、交易备注,同时收取金额与支付金额的差额作为矿工费支付给负责记账的矿工。这一笔交易中还包含了交易的比特币对应的所有权说明,该所有权通过数字签名/秘钥来保障。
比特币钱包在用户下达交易指令时,检索用户的“未消费交易输出”小型数据库,确认有足够的比特币余额来发起交易。当确认余额足够时,钱包正式发起交易,其中包含一个脚本:“谁能拿出一个签名/私钥和收取方的公开地址匹配上,这笔金额就支付给谁”。
钱包创建好交易数据之后,会向整个比特币网络(一个P2P网络)广播,广播在几秒内就会被大多数网络节点接收到。这时收取方钱包也会收到这笔交易的广播信息,这时虽然还没有被记账,但对于小额交易来说,此时收取方就可以免确认来接受这笔交易了。
交易在网络广播后,还需要一个环节才能完成记账,就是挖矿。比特币的挖矿也被称为工作量证明,指的是使用计算机算力不断地对区块头和一个随机数字进行哈希计算,直到出现一个和预设值相匹配的解。
挖矿类似于一个多人参加的数独解谜比赛,参加者就是“矿工”,这种比赛的特点是很难解出谜底,但是很容易验证解出来的谜底是否正确。
解谜游戏会根据参加的具体算力来自动调整难度,保证每次解谜成功的时间约10分钟。随着比特币的价格不断增长,加入矿工队伍的算力不断增加,使挖矿越来越专业化。
矿工们参加解谜游戏的目的是什么呢?是抢夺“记账权”。当有矿工解谜成功后,矿工会将自上一个区块以来发生的所有交易记账生成一个新的区块,并加入到总的区块链中。作为报酬,这名矿工获得12.5枚比特币。(书中所举案例为2013年,当时奖励为25枚)
矿工们发现新的区块已经产生后,意识到自己输掉了上一个区块的解题竞赛,他们将新产生的交易和新区块的数字指纹放在一起构建新的区块并开始解谜。