(本文根据观看李永乐老师的视频讲解编写)
现实生活中,我们听说过双重支付的问题,比如一个人在卖房子的时候,同时和两个人签订合同;再比如一个人只有1万元,却私下向不同的人宣称,会给对方1万元。
比特币设计了一个机制来防止这种问题,这个机制首先检查交易信息中提到的余额,如果余额合理,矿工就会把交易信息打包,链接到比特币区块链中。
问题一:如何查询余额?
比如网络收到一条消息:A给B转了10个比特币。
此时全网会下载比特币区块链上的所有信息,追溯A所有的历史交易记录,如果区块链交易信息显示A的余额足以支撑这10个BTC的交易,那么这个信息就会被全网接受,否则就不会被接受。

问题2:若同时向两人付款,以哪笔交易记录为准?
比如A向全网广播:转10个比特币给B,但同时又发送了另外一条消息,要求转10个比特币给C,而此时A的总余额只有10个,应该以哪条交易记录为标准呢?
这时候,有些人会先收到A给B十个比特币的消息,在检查了自己的余额后就会自动忽略另一条消息;同样,先收到A给C十个比特币的消息的人,在检查了自己的余额后,也会自动忽略另一条消息。
不管收到哪笔交易信息,网络上的矿工随后都会将收到的消息打包,计算出区块中包含的随机数,这就是挖矿。第一个计算出随机数的矿工会将区块放入主链,这笔交易记录就会被全网认可。如果放入主链的交易信息是 A 转 10 个比特币给 B,那么 B 就会得到这些比特币,另一边的矿工会自动停止计算;如果放入主链的交易信息是 A 转 10 个比特币给 C,那么 C 就会得到这些比特币。