正文
如果钱包软件监控的地址有交易发出,它会检查最近添加到比特币区块链的交易。区块链的数据用来更新显示在钱包中的余额。
下图就是一个例子。Alice 正在给 Bob 支付 1.0 btc(为了简化,先不提发交易要给矿工手续费的事)。在图的左边,Alice 的钱包有一个地址(第三个地址)有 1.0 btc,那么她就把这个数量支付给了 Bob 的第三个地址,有 5.15 btc 余额的那个。Bob 告诉 Alice 自己的第三个地址是什么(即发出一个付款请求),而 Alice 的钱包生成了一笔描述了发起地址、收账地址和转账数额的交易。
然后她把这笔交易公开到了比特币网络中(也即是把数据发给了一个节点,节点做了广播,一个矿工把这个数据放到了区块中,然后这个区块被挖出,并发回给了节点,逐步完成全网的传播)。双方的钱包都基于区块链的数据更新余额(它们通过互联网向节点请求数据)。
在图的右边是两人的钱包在交易完成(上链)之后钱包的显示状态。Alice 的第三个地址的余额变成了 0,而 Bob 的收账地址的余额变成了 6.15 个。那么 Bob 就得到了一笔支付。
挖矿
要理解比特币是怎么工作的,实际上并不需要理解比特币挖矿的内部过程。也用不着做梦作为个人去挖比特币,赚不到什么钱。只有能拿到便宜的电(低于居民用电价格)的大企业才能从挖矿中赚到利润。下图就是一个小型的挖矿 “矿场” 的照片:
要理解比特币的工作原理,只需大概知道有挖矿这个事就行了 —— 就像你想囤黄金并不需要知道怎么挖黄金一样。
挖矿就像一个回合制游戏,每个区块是一个回合,所有矿工都在竞争挖出下一个区块。主要就是使用计算机暴力穷举一个特殊的数字。它里面其实无所谓 “计算”(只是不断试错而已),虽然一般大家都这么说。这个过程会消耗电力(因为要运行计算机)。
当某个矿工为自己打包好的区块找出这样一个数字,TA 就能获得这个区块增发的比特币。在区块中除了其他人发起的比特币转账交易,这个矿工还会发起一笔新的交易,意思等同于 “我的地址里面多了 6.25 个新挖出的比特币啦”。区块中的所有其它交易都只涉及比特币的转移,不涉及比特币的增发。
这份奖励也使比特币能按区块生产的速度
规律地
增发。因为矿工发现了这样的特殊数字,就证明了自己做了一些功,这样当这个区块发送给节点时,节点就会接受这个区块创建的比特币是有效的。不管是谁第一个发现的区块,TA 都能拿到奖励。而第二个找到的人就颗粒无收。一个区块挖出后,所有矿工就都开始寻找下一个区块。
想要欺骗整个网络的人注定失败,因为他们没有正确的数字,会被识破。这样的数字是很难试出来的,但节点要检验其有效性却非常快、非常容易。
这些投入在试错中的运算力
并不是在浪费能源
!这是一种防御机制。矿工们花费能源以求得比特币奖励。任何攻击者,要想欺骗比特币网络,都必须花费比整个世界的挖矿算力加起来更多的能源,而且一旦失败就
血本无归
。矿工花费的能源越多,攻击比特币的成本就越高。
全世界的所有挖矿算力
共同
保卫整个比特币系统的完整性。算力保护区块链,使得没人能动摇比特币的规则,也不能盗窃。
除了这种整体安全,还有个体层面的安全。当你用私钥控制比特币时,你的 “控制权” 是由你自己的保管措施决定的。如果他人拿到了你的私钥,他们就能偷走你的钱,而且完全不违反比特币的规则。