什么是双花问题(双重支付)呢?
双花问题是指一笔数字现金在交易过程中被重复使用的现象。
比如,我只有两百块钱,想要把这笔钱支付两次,于是我同时给甲、乙转200元钱。
遇到这种问题,比特币是怎么解决的呢?
大家请仔细想一想,这笔钱是固定的,如何保证这笔钱在交易过程中,只支付了一次呢?
比特币的创始人中本聪在《比特币白皮书》中写道,比特币的支付步骤是这样说的:
1.有一个新的交易,要向全网公布广播。
2.每一个节点,都要将收集到的交易信息,放入一个区块中。
3.每一个节点都要试着在自己的区块中,找到一个足够难的工作量证明。
4.当一个节点找到了自己的工作量证明,都要对全网进行公布广播。
5.当且仅当这个区块中的所有交易是有效且之前从未有过,其他的节点才承认这个交易过程的有效性。
6.其他节点表示承认这个区块,表示认可的方法就是,根据这个区块的编码,往后延长这个链接。
有了上述的步骤,我们就能保证交易的唯一性和确定性。
这样说来,在交易发生的时刻,比特币的交易数据就被盖上了一个时间戳;而在这笔交易数据被打包到区块中这个过程中,就完成了第一次确认,在连续地进行了六次确认之后,这个记录就不能被轻易篡改了。
在这种情况下,当我尝试进行两次支付交易时,由于确认时间较长,后一交易几乎不可能与前一次交易同时确认。在第一次交易确认后,资金在第二次交易中无法确认。区块链的全网记账需要在整个网络中达成共识,就无法产生双花问题。
领取专属 10元无门槛券
私享最新 技术干货