使用区块链怎么解决比特币的双重支付问题?
总之,一笔钱花了两次,这个问题主要发生在数字货币的世界里,因为在这个世界上,你的钱只是一串数字,很容易复制。
在现实世界中,纸币有非常严格的防伪标识,很难复制,而且银行等中央机构也确保了交易的独特性,因此,除非中央机构的数据存在问题,否则几乎没有这样的问题。
双重支付是如何产生的?
首先,比特币系统是基于分布式块链的。可以理解,很多人同时保存一本书。交易的有效性实际上取决于图书的一致性,也就是大多数人的认可。
当付款发生时,你实际上是向别人广播,而我则向商人支付300元。每个人都会听到这个消息,所以他们会把它写在小本上,你会付给商人300元。
但这并不排除,出于各种原因和目的,你将在向商人发送广播的同时,向你的妻子发送广播,声称你已经向妻子支付了300元。因此,双倍付费就应运而生了。
但每个人只会记录其中一条信息,如果他们先收到这条信息,他们就会记录下哪条信息。这是因为,对于其中一个人来说,如果你首先收到一条给你妻子的信息,你会认为另一条信息是非法的。
换句话说,有些人记录你对商人的付款,有些人记录你对你妻子的付款,总的来说,有不同之处,但不管是谁的账簿,都只会记录其中一项记录。
如何解决双重支付
在数字货币中,比特币签署上一笔交易的数字签名和下一位所有者的公开密钥,并将签名附加到比特币的末尾并发送给下一位所有者。由于没有第三方监管机构,需要有一种机制来确保比特币的所有者没有签署早期交易。比特币如何解决这个问题:
1.所有交易都向整个网络开放:历史交易是公开的,因此每个账户中有多少比特币不是由一个数据表示的,而是根据历史交易来表示的。这一历史交易链被整个网络所识别,以确保它不会被伪造。
2.需要时间戳,所有事务按顺序排列:所有事务按顺序添加时间戳。上一次交易成功后,整个交易链被识别,下一次交易是基于上一次交易,整个交易是一个交易链,这样就不会有双倍支付。
3.需要投资计算资源来确认交易:交易的确认需要计算资源的投资来确认。比特币引入了工作负载证明,矿工投资于计算能力来打包交易,如果需要修改块上的交易,则需要重新计算自该块的所有块。
比特币网络中有无数个节点,每个节点都可以知道每一个交易的发生,每个交易都有一个交易序列,有一个公认的交易序列。只有当大量节点同意交易是第一次发生时,交易才能发生。