草根站长
老司机 路子野 随时超车
比特币双重支付是什么?应该怎么解决?如果同一笔钱(数字货币)被重复支付两次,就是双重支付问题,解决这个问题就相当于数字货币的防伪技术。这个问题在物理货币世界并不存在,因为你无法复制黄金。在纸币中,由于纸币由造币厂发行的,设计有复杂的防伪技术,如果有人制造了假币,可以通过法律来制止这些行为。但在数字货币中,比特币会对前一次的交易和下一位拥有者的公钥签署一个数字签名,将这个签名附加在比特币的末尾发送给下一位所有者。而由于没有第三方机构去做监控,所以需要一个机制去确保比特币之前的所有者没有对更早发生的交易实施签名。比特币是怎样解决这个问题的呢:
1、 所有的交易全网公开:历史交易全网公开,那么每个账号里面有多少比特币,并不是由一个数据来表示的,而是根据历史交易得出来的。而这个历史交易链是经过全网公认的,才能保证不被造假。
2、 需要有时间戳,所有交易有先后顺序:所有交易,要按照先后顺序,给其加上时间戳,前面一笔交易成功后,整个交易链被公认后,下一笔交易是基于上一笔交易来生成的,整个交易就是一个交易链,这样才能保证不被双重支付。
3、 需要投入计算资源对交易进行确认:交易的确认,需要投入计算资源来确认,比特币引入了工作量证明,矿工投入计算力来打包交易,若需修改某个区块上的交易,需重新计算自区块以来所有区块,参考比特币网络目前的算力,这在数学上几乎是不可能的。
整个比特币系统中的每一个节点都获知每一笔交易的发生,且它们是有时间顺序的,有一个公认的交易序列。那么,只有当大部分节点都认同这笔交易是首次出现时,这笔交易才能发生。唯一可能造成这个系统崩溃的是,有一个人拥有超过整个系统51%的计算能力,那么他就能随意更改每笔交易记录,这就是所谓的"51%攻击",但这几乎是无法实现的。
说白了就是这笔钱被多次重复支橡神困付,例如A将被销毁的银行卡通过支付宝将5000块钱转到自己另外一个支付宝账户,瞎仔同时A将这5000通过微信转账给自己另外一个微信账户(注意这里说的是同时,不是从支付宝转回到银行卡后再转微信),这就出现了双重支付问题,不过中心化数据库不存在这个问题,因为你将卡里面的钱转到自己另外一个支付宝账户的时候,银行卡余额梁念会被修改,从而避免了同时转到自己另外一个微信账户的可能。
如果一个恶意用户试图将拿如竖同一笔比特币同时支付给两个不同的收款人,这就是双重支付。比特币挖矿消大和区块链就是用来在网络橡祥上共同工作,来确定哪个交易将会被确认
POW算法是唯一经过时间检验运行较为稳定的算法,这从比特币诞生到现在的较稳定的运行就可以看出。 上次说到POW的共识算法的部分运作原理。把上次所讲的内容简单总结一下,那就是POW通过哈希加密算法解决了“凭什么帮你记账”的问题。 其实,POW共识算法的目的,是可以保证任意节点被入侵、篡改,其数据信息不会被其它节点所接受,换句话说,POW要通过运行机制保障主链的安全性。 因此,仅仅解决“凭什么帮你记账”的问题对一个成熟稳定的共识毕斗算法来讲还是远远不够的,它还需要解决其它一些问题,比如双花问题。 双花问题(Double Spending)即双重支付,是指一笔数字现金在交易中被重复使用的现象。我们都知道,数字现金的走敬运向只能是线性的,也就是同一笔钱一次只能转给一个人,不能同时转给两个或者以上的人。一旦数字现金的走亮数梁向发生了偏差,离开了线性轨道的约束,成为发散状态,那么双花问题就会出现。 举个例子,小明一早出门只带了10元钱,他来到肯德基吃早餐,点了10元的套餐,把钱付给了肯德基的收银员,这10元钱得到收银员的确认。小明吃完早餐出门,发现自己并没有吃饱(小明饭量有点大),抬头一看有个麦当劳,于是他走进麦当劳,想再点一个10元的汉堡。这时候,如果小明想用之前买肯德基套餐的那10元钱买麦当劳汉堡,可能吗?当然不可能。因为那10元钱是独一无二的(有编号),已经被花出去了。 但如果小明使用的不是现金,而是数字货币呢?这就另当别论。这是因为现金的复制成本太高(法律成本、制作成本等等),而数字货币则不然,它具有十分经济的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复利用的问题。 双花问题在有中介的前提下是不容易发生的,因为每次消费都要经过第三方(中介方)的确认才会完成,比如支付宝。 而比特币作为一个去中心化的点对点现金系统,是没有中介和第三方的,它主要依靠未花费的交易输出(UTXO)和时间戳两大利器来解决双花问题。 未花费的交易输出(UTXO)可以被简单地理解为一个用户拥有的比特币的余额。这个余额是无法伪造的,因为一个用户拥有的比特币实际上会被当作UTXO分散到数百个交易和数百个区块中。 双花问题是这样解决的: 首先每笔交易都要先确认对应的比特币之前的情况,要检查它是否存在于付款人的UTXO中。 其次,同一笔UTXO付出去,系统节点按照时间戳只会确认先接收到的那一笔。 最后,当两笔时间上很近的交易被不同节点确认,区块链将发生分叉。当其中一笔交易被6个节点确认后,它将获得最终的确认,成为最长链。 本文仅供学习参考之用,不构成任何投资建议。
版权声明:本文标题:比特币双重支付是什么|比特币双重支付是什么意思内容由互联网整理发布,该文观点仅代表作者本人,转载请联系作者并注明出处:http://www.0792jiaju.com/post/3500.html,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。
发表评论