30元数字货币背后的“双花”问题(图)

资讯 6个月前 manoon
0

图片来自简书App

先问一个问题:

小明在星巴克点了一杯拿铁,付了30元现金给漂亮的收银姐姐。喝完咖啡,小明走进隔壁的花店,给女朋友买了一束玫瑰花。他摸了摸口袋,发现最后30元现金已经用来买咖啡了。这时候小明要是想用星巴克小姐的30块钱买花。是否可以?

不可能的。除非他偷了小妹妹的钱。

如果小明用数字货币代替现金怎么办?

要回答这个问题,您需要了解“双花”问题。

01 什么是“双花”问题?

“双花”,即双重支付,是指在数字货币系统中,由于数据的可复制性,系统可能会因操作不当而导致同一数字资产被重复使用。


30元数字货币背后的“双花”问题(图)

“双花”是任何数字货币都必须解决的问题。为什么?

如果某种数字货币可以被人们重复使用,同样数量的钱被花费两次或两次以上,它就没有价值。

在上述星巴克买咖啡的情况下,小明用的30元现金,小姐姐很容易就确认了。但如果小明使用的是某种数字货币,小姐姐想确认就不是那么容易了。其实30元数字货币背后的数据是一样的,造假数据的成本远低于造假现金。

02 “支付宝”如何解决“双花”问题?

那你可能要问了,我天天在淘宝上买买买,不用现金。支付宝如何解决“双花问题”?

事实上,支付宝里的钱在数字世界里是不存在的。相反,它仍然存在于现实世界的银行中。小明在淘宝下单并付款卖家的时候,小明实际做的是:

您将钱支付给支付宝;

支付宝将您的钱存入他们的银行账户;


30元数字货币背后的“双花”问题(图)

在您确认收到货物后,支付宝会从他们的银行账户中取款并支付给卖家。

更简单的说,支付宝只是一个第三方中介。当你走进任何一家商店,无论是星巴克还是花店,如果你想使用数字货币进行支付,你必须把钱交给第三方中介,可以是支付宝或微信。此类机构对数据进行集中管理比特币为什么可以交易,通过实时修改账户余额,防止出现“双花”。只有经过第三方确认后,女士们才会将咖啡和玫瑰花送给小明。

这有什么问题吗?

人类需要为交易中的第三方验证支付巨额费用。

虽然每笔交易的“中介费”并不高,但如果交易量很大怎么办?要知道,世界上有超过75亿人,每天的交易量高达数万亿。更值得注意的是,这种第三方机构对数据进行集中管理。他们会有意还是无意地(黑客)篡改数据?我不知道。以支付宝和微信为例,只是因为我在日常生活中经常使用它们,不是故意抹黑,它们都是很棒的公司。

我们是否可以在不信任中心化第三方组织的情况下将数字资产转移给某人?

03 比特币如何解决“双花”问题?

比特币作为一种去中心化点对点电子现金系统,主要依靠未花费交易输出(UTXO)和时间戳来解决“双花”问题。


30元数字货币背后的“双花”问题(图)

什么是UTXO?

比特币交易的基本单位是未花费的交易输出,简称UTXO。UTXO 是一定数量的不可分割的比特币货币,由所有者锁定,并记录在区块链网络中。当用户收到比特币时,该金额在区块链中被记录为 UTXO。用户拥有的比特币实际上将在数百笔交易和数百个区块中作为 UTXO 分发。

“用户的比特币余额”,这个概念是比特币钱包创造的衍生品。比特币钱包通过扫描区块链并聚合属于用户的所有 UTXO 来计算用户的比特币余额。事实上,比特币现金系统中没有账户,没有钱包,也没有余额。有些只是记录在区块链中并被所有者锁定的 UTXO。

某笔比特币交易被创建并广播到区块链网络后,接收到交易信息的节点会验证该交易并检查它是否存在于UTXO中。如果 UTXO 中不再存在交易输出,则验证失败。

小明将 1 BTC 转给李雷。整个过程如下:

小明要发送的 1 个比特币在小明的 UTXO 中;

小明发送的金额等于李雷接受的金额,即1BTC;

李雷收到后,从李雷的UTXO中解锁了1个比特币,进入了李雷的UTXO。


30元数字货币背后的“双花”问题(图)

比特币现金系统记录每一个当前的“未花费交易输出”。当节点收到交易信息时,需要查看UTXO数据库,查看交易引用的UTXO是否存在,其收款人(所有者)是否为当前新交易的付款人。交易结束后,系统会相应更新。

什么是时间戳?

时间戳(timestamp),一个完整的、可验证的数据,可以表明某条数据在某个时间之前已经存在。它通常是唯一标识某个特定时刻的字符序列。利用数字签名技术产生的数据,签名的对象包括原始文件信息、签名参数、签名时间等信息。广泛应用于知识产权保护、合同签订、财务会计、电子招投标、股票交易等。

时间戳在生活中也很常见,比如我们每天看的报纸。报纸上的记录是现实生活中某个时刻发生的事件,我们从报纸上知道,这个事件是在事件之后发生的。报纸是事件的时间戳。事件一旦被写进报纸,多份印刷,后世难以篡改。

比特币现金系统还引入了时间戳的概念。比特现金系统实际上是一个多节点参与的分布式数据库比特币为什么可以交易,是一个开放的大账本;它由一系列按照密码学方法生成的数据块组成,即块。系统会自动给每个区块的数据信息加上时间戳,计算出一个数据加密值,即hash。每个新块都包含前一个块的哈希值。从创始区块开始,链接到当前区块链,形成区块链。

比特币现金系统本身就是一个永不停止、坚不可摧的时间戳系统。系统使用数字时间戳来确保每个区块按时间顺序连接形成区块链,时间戳也为区块链上的每条数据打上时间戳。

假设小明同时将他的UTXO中的1个BTC转给李雷和韩美美,那么这两笔交易中只有一笔会成功完成。为什么?因为系统中的节点会选择性地记录最先收到的交易。当同一节点同时记录两笔交易时,根据时间戳数据,只有第一笔记录的交易才能确认成功。

如果小明两次转账的时间间隔很近,“小明12:34:56转账1比特币给李雷”,“小明12:34:57转账1比特币给韩美美”如果碰巧被两个不同的节点记录,会不会出现“双花”?也不会。这两个节点将同时向比特币网络广播包含相关交易的区块。这时候区块链会分叉,剩下的节点会选择在他们认为最长的链上建立一个新的区块。最后,第一个构建新区块并成为最长链(通常为 6 个区块)上的当前交易可以被确认成功。所有后续节点都将在这条最长的链上构建新块。


30元数字货币背后的“双花”问题(图)

综上所述,面对“双花问题”,比特币现金系统解决了这个问题:

首先,每笔交易都要先确认对应比特币之前的情况,并检查小明的UTXO中是否存在。如果不是,则交易将被系统拒绝。

如果小明用同一个UTXO支付给李雷和韩美美,系统中的节点只会确认第一个收到的。

当时间非常接近的两笔交易被不同的节点确认时,区块链就会分叉。其余节点选择在他们认为最长的链上构建一个新块。当其中一笔交易被 6 个节点确认后,将成为系统中最长的链,可以认为这笔交易最终得到确认。

有任何例外吗?

有。如果小明能够掌握比特币网络中超过50%的节点,即使他落后于最长的区块链(记录“小明在12:34:56转账1比特币给李雷”),也没关系,他总是可以在另一个区块链上建一个区块(记录“小明12:34:57转账1比特币给韩美美”)直到它赶上并成为新的最长链,这就是“比特币的51%”攻击”。

“51% 攻击”确实是比特币需要警惕的问题,目前还没有发生。原因也很简单。第一,没有人能轻易控​​制51%的节点;其次,如果一个人或机构掌握了51%的节点,他就是比特现金系统中最大的受益者。如果他发起51%的攻击,比特币的价值将立即归零(可以“双花”的比特币一文不值),届时他将成为最大的受害者。

05 总结

比特币作为去中心化的点对点电子现金系统,主要依靠UTXO和时间戳来解决“双花”问题。它教会了世界如何在不信任第三方的情况下转移数字资产。

版权声明:manoon 发表于 2021-11-20 5:56:44。
转载请注明:30元数字货币背后的“双花”问题(图) | 198区块链导航

暂无评论

暂无评论...