区块链入门 | BTC的成功宝典:它是如何解决双花问题的?

[复制链接]
11974 |0
发表于 2019-11-18 14:01:15 | 显示全部楼层 |阅读模式
发布于2008年的BTC白皮书,向世界展示了第一个功能齐全的P2P现金交易系统。2009年,神秘的BTC之父中本聪在SourceForge上发布了第一个BTC客户端,BTC正式诞生,一场新的特殊的冒险拉开序幕。

BTC的成功,核心在于解决了双花问题(double-spending),这个问题曾导致此前所有其他数字货币的尝试创建都以失败告终。在这篇文章中,我将回答什么是双花问题,以及展示区块链BTC如何解决双花问题,来保障所有用户的资金安全。
在BTC之前,就已经有Bit Gold
BTC不是创建功能性数字货币系统的首次尝试。1998年,数字货币领域的先驱Nick Szabo提出了Bit Gold的想法,2005年,他在一篇博客文章中提出了自己的想法,从这里可以看出,Nick Szabo本可以从Bit Gold出发,发展出BTC的。

然而,2008年他在博客上发表了一篇关于BTC的文章,文章显示他对这种图符型加密货币的看法与BTC的匿名创造者中本聪不同。Nick Szabo的著作中有一个关键点与他对待BTC的态度有关。
对于Nick Szabo来说,BTC首先是一种价值储存手段,而不是一种交换媒介。
先前尝试创造数字货币(例如Bit Gold)失败的原因之一是,它不能解决双花问题。
什么是双花问题?
首先,定义什么是双花很重要。正如这个术语所强烈暗示的那样,双花意味着将同一种货币消费两次。由于法定货币以硬币和纸币的形式存在,所以根本不会出现这个问题。
考虑下面的例子:
你在沃尔玛购物,买30美元的商品。你用现金付20美元和10美元。一旦这些纸币被装箱,你就不能再使用它们了,除非你亲自去偷。
为什么数字货币会出现双花问题?
数字货币不同于现金。当你使用数字货币进行交易时,你将向网络上的所有节点广播该笔交易。节点是支持运行所涉及加密货币的软件计算机。这些节点需要接收并确认交易。这一切都需要时间。因此,问题如下:
如何能防止某人在网络确认前一个交易之前,将交易复制并重新发送到网络上?
网络如何知道哪些交易是真实的?
BTC没有中央银行来解决争端
在BTC发明之前,互联网上的数字货币交易是由银行和金融机构监控的。银行在金融纠纷中充当调解人,这种方式带来的问题是交易可能会被取消。所有这些都会导致更高的交易费用和更长的验证时间。

BTC为自己设定了一个目标,即通过创建一个完全基于加密证据而非信任中介的系统来解决这些限制。从这个意义上说,BTC使无需银行即可进行银行类型交换成为可能。
每一个BTC都可以追踪其所有者链
为了了解加密证据系统的工作原理,必须了解什么是BTC。
在BTC白皮书中,BTC被定义为数字签名链。
它可以通过数字投资组合从一个所有者转移到另一个所有者。每个投资组合都有一个公钥(也称为地址)和一个私钥,私钥是一种加密密码,只有所有者才能知道。
当BTC的所有者决定将BTC转给其他人时,该笔交易将以之前交易的哈希和下一个所有者的公钥作为签名。然后将此哈希添加到BTC的末尾。因此,每一个BTC相当于一辆汽车的日志,其中记录了所有以前的车主。
加密哈希函数是什么
加密哈希函数是一个数学算法,该算法接受任意长度的字符串输入,并输出其大小可任意设置的固定长度字符串。这是一个单向函数,意味着多次输入相同参数设置将产生相同的输出,此外,不可能从输出逆推出输入。

更重要的是,两个不同的输入不可能产生相同的输出值。实际上,加密哈希函数产生的每个输出都是唯一的。每次传输一个BTC,都会添加一个新的哈希。因此,只需查看嵌入在BTC中的签名,就可以验证每个BTC的所有者链。
这些特别有趣,但并没有解决双花问题。受益人无法证实BTC的前所有者没有两次使用该BTC。一个解决方案可能是建立一个中央银行,允许对每笔交易进行核查,以防止重复支出的问题。
但那样的话,我们就会失去BTC诞生的意义——去中心化的。BTC的设计初衷是为了解决央行在银行交易中带来的问题。用另一家央行取代一家央行有什么意义呢?
BTC区块链是一个通用总账
为了解决双花问题,BTC依赖于一种通用总账,也就是通常所说的区块链。为了证明没有重复支出,区块链允许所有节点都知道所进行的每个交易。

使用BTC,所有交易都会向所有网络节点公开。然后,后者可以就收到订单的单一历史记录达成一致。
因此,BTC通过考虑大多数网络节点已同意首先到达的交易,来避免了双花问题。
不考虑之后发生的并因此造成双花问题的尝试。
关于BTC时间戳的说明
中本聪在其BTC白皮书中提出,使用时间戳机服务器为一种解决方案,以防止双花问题。
BTC时间戳服务器取一个区块的BTC交易记录的哈希值,并把这个哈希值向全网广播。
与哈希关联的这个时间戳将证明,哈希中包含的所有数据不能在哈希发布后创建。
由于每个时间戳在其哈希中包含前一个块的时间戳,因此它提供了每个交易发生顺序的不可更改记录。所以,时间戳将互相增强自己的作用。
自创建以来,所有BTC交易都有公开记录
为了全面了解区块链BTC如何保护自己免受双花问题的影响,我们有必要回顾一下,自2009年中本聪首次发送BTC以来,该公司保存了所有交易的完整历史记录。
由于BTC区块链的每一块交易都是通过创建的加密哈希连接到前一块,所以无法修改过去的记录。
记录的交易历史更广为人知的名称是区块链,每10分钟添加一个新的交易组(即一个新区块)。
发展中的BTC区块链
在结束之前,这里我们讲一个BTC区块链例子将更能说明问题。你会考虑你有一个BTC,你想花两次。让我们想象一下,你在一个接受BTC支付的商家那里购买了价值1BTC的商品,比如微软。现在,如果你试图将相同的BTC发送到另一个BTC地址,会发生什么?
你可以尝试一下!
正如你所看到的,没有任何机制可以阻止怀有恶意的人试图传播同一BTC的两笔交易。
在这个场景中,两个交易都将进入未经确认的交易池。接下来会发生什么?
你与微软的第一笔交易将得到BTC矿工的确认,并在下一个区块得到验证。因此,该交易将作为加密哈希存储在BTC区块链中。
当然,前一个块的时间戳是在那个时间记录的。正是依靠这个时间戳,区块链BTC的节点才能判断第二笔交易无效。
第二笔将被网络拒绝,永远不会被确认。
这里的确认是指包含交易的块已被添加到区块链中。由于每个区块都与之前的区块相连,商户只需等待接收到一定数量的交易,以确保接收到的BTC不会被花费两次。
因此,双花问题得到了很好的管理和解决!
结论
总而言之,你必须知道,BTC区块链通过将时间戳与交易组关联起来,将这些信息发步给BTC网络的所有节点,避免了双花问题。由于交易是在区块链上加盖时间戳,并在数学上相互关联的,因此它们是不可逆转的,且不可能伪造。
文章来源于 Medium,翻译由头等仓(First.VIP)_Annie 提供,转载请保留文末信息。
原文:https://medium.com/altDAC-magazine/how-does-blockchain-bitDavinci-protect-itself-against-the-double-spending-problem-d49ad76a0e92

20191118115522_5r0n.jpg

20191118115522_5r0n.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表