比特币如何防止双重支付?
在现实生活中,我们听说过双重支付的问题,比如一个人在卖房子的时候,同时和两个人签合同;再比如一个人只有一万块钱,但他私下向不同的人宣称会给对方一万块钱。
针对这类问题,比特币设计了一套机制来防御。这套机制首先是对交易信息提到的余额进行检查,如果余额数量合理,那么矿工就会将此交易信息打包并链入比特币区块链。
问题1:如何检查余额?
比如网络收到了一条信息:A转给B 十个比特币。
此时全网会下载比特币区块链所有的信息,追溯A的所有历史交易记录。如果区块链交易信息显示,A的余额足以支持这次10个BTC的交易,那么这条信息会被全网所接受,否则不会被接受。
问题2:如果同时支付给两个人,以哪条交易记录为准?
比如A向全网广播:转10个比特币给B,但同时他又发了一条,转10个比特币给C,而此时A的总余额只有10个。该哪条交易记录为准呢?
这时,有些人会先收到A给B十个比特币的消息,他们检查余额之后会自动忽略另外一条消息;同样,那些先收到A给C十个比特币消息的人,在检查余额之后也会自动忽略另外一条消息。
不管接收到的是哪条交易信息,接下来,网络上的矿工都会对自己收到的消息进行打包,计算区块当中所包含的随机数,也就是挖矿,第一个计算出随机数的矿工,就会将这个区块放到主链当中,这条交易记录也就会被全网承认。如果放入主链的交易信息是A转给B十个比特币,那么B将会获得这些比特币,另外一边的矿工也就自动停止计算了;如果放入主链的交易信息是A转给C十个比特币,那么C将会获得这些比特币。
以上就是比特币防双重支付的方法。
结语
1、 在防止双重支付问题上,比特币区块链会首先检查所有的交易记录,追溯交易信息;
2、 在确保余额正确的情况下,首先被放入主链的交易信息将会被全网接受。