您的位置 首页 投资

区块链如何防止比特币的双重消费?

任何加密货币开发商最关心的问题之一就是双重支出。这是指一个人不止一次地花费加密货币的余额,实际上造成了支出记录和可用加密货币的数量以及分配方式之间的差异。 双重支出的问题是现金没有…

任何加密货币开发商最关心的问题之一就是双重支出。这是指一个人不止一次地花费加密货币的余额,实际上造成了支出记录和可用加密货币的数量以及分配方式之间的差异。

双重支出的问题是现金没有的问题;如果你用一张10美元的钞票买了一个三明治,把那张钞票交给三明治的制作人,你就不能转身在别的地方花同样的10美元。然而,使用比特币这样的数字货币进行的交易是完全数字化的。这意味着可以复制交易细节并重播,这样同一BTC就可以被一个所有者多次使用。下面,我们将研究加密货币开发商如何确保双重支出不会发生。

关键要点

  • 数字货币概念引发的一个技术问题是,有人能够复制数字货币,并在两个或多个地方同时消费。
  • 这种“双重消费”的问题在基于区块链的加密货币(如比特币)中通过使用一种被称为工作证明(PoW)的共识机制得以避免。
  • 这项权力由一个分散的“矿工”网络执行,他们不仅确保区块链账本上过去交易的真实性,而且发现并防止重复支出。
  • 理解区块链

    支撑比特币这样的数字货币的区块链无法独自防止双重支出。相反,所有涉及相关加密货币的不同交易都被发布到区块链,在那里它们被单独验证并受到确认流程的保护。在比特币和许多其他加密货币的情况下,以这种方式确认的交易变得不可逆转;它们被公开发布并永久保存。

    比特币是第一种解决双重消费问题的主要数字货币。它通过实施这种确认机制和维护一个通用的总账系统做到了这一点。通过这种方式,比特币区块链保留了可以追溯到2009年加密货币诞生时的有时间戳的交易记录。

    用比特币术语来说,“块”是一种永久记录数据的文件。所有最近的交易都被写入块,很像交易所的股票交易分类账。来自区块的信息每隔几分钟就被添加到分类账中;网络上的所有节点都维护一份区块链分类账。用户可以在区块链浏览比特币,并且只需几分钟就可以查看交易。任何交易中买方和卖方身份的详细信息都受到高级加密的保护,这也保护账簿免受外部来源的篡改。当区块链分类账更新时,所有的比特币钱包也随之更新。

    应对双重支出

    假设你有一个BTC,你试图在两个不同的交易中花费它两次。你可以尝试将同一个BTC发送到两个不同的比特币钱包地址。然后,这两个交易将进入未确认交易池。第一个事务将通过确认机制获得批准,然后在后续块中进行验证。然而,第二次交易将被确认过程确认为无效,并且不会被验证。如果同时从池中提取两个交易进行确认,则确认数量最多的交易将包含在区块链中,而另一个交易将被丢弃。

    虽然这有效地解决了双重支出的问题,但也不是没有问题。例如,第二次(失败的)交易的预期接收人不会参与失败的交易本身,但该人不会收到他们预期的比特币。许多商家至少要等待6次交易确认(这意味着在有问题的交易之后,6次后续的交易被添加到区块链)。此时,商家可以安全地假设交易是有效的。

    在这个系统中还存在其他漏洞,可能会导致双重花费攻击的发生。例如,如果攻击者能够以某种方式控制网络至少51%的拥有权,他们可以承诺双倍的支出。如果攻击者能够以某种方式控制这么大的计算能力,他们就可以逆转交易,创建一个单独的私有区块链。然而,比特币的快速增长实际上确保了这种类型的攻击是不可能的。

    工作证明和“采矿”说明

    现在让我们更专业一点。用户检测篡改的方式,如在实践中试图双重消费,是通过散列,长串数字作为工作证明(PoW)。将一组给定的数据通过散列函数(比特币使用SHA-256),它只会产生一个散列。然而,由于“雪崩效应”,即使对原始数据的任何部分进行微小的改变都会导致完全无法识别的散列。无论原始数据集的大小如何,由给定函数生成的散列都将是相同的长度。哈希是一个单向函数:它不能用于获取原始数据,只能用于检查生成哈希的数据是否与原始数据匹配。

    对于现代计算机来说,只为一组比特币交易生成任何散列都是微不足道的,因此为了将这一过程转化为“工作”,比特币网络设置了一定程度的“难度”。调整此设置,以便大约每10分钟“挖掘”一个新的区块(通过生成有效的散列值添加到区块链)。设置难度是通过为哈希建立一个“目标”来实现的:目标越低,有效哈希集就越小,生成一个就越困难。实际上,这意味着以一长串零开始的散列:例如,块#429818的散列是00000000000004 DD 3426129639082239 EFD 583 b 5273 B1 BD 75 e8d 78 ff 2e 8d。该区块包含2012笔交易,涉及1000多枚比特币,以及前一个区块的报头。如果一个用户用0.0001比特币改变了一笔交易金额,得到的散列将无法识别,网络将拒绝欺诈。

    由于给定的数据集只能生成一个哈希,矿工如何确保他们生成的哈希低于目标值?他们通过添加一个整数来改变输入,这个整数被称为随机数(“曾经使用过的数字”)。一旦找到有效的散列,它就被广播到网络,并且该块被添加到区块链。

    采矿是一个竞争的过程,但与其说是一场比赛,不如说是一场彩票。平均来说,每十分钟就会有一个人产生可接受的工作证明,但是谁会是谁是谁都说不准的。矿工们聚集在一起,以增加他们开采区块的机会,这将产生交易费用,并在有限的时间内,获得新创建的比特币的奖励。

    工作证明使得改变区块链的任何方面变得极其困难,因为这种改变将需要重新开采所有随后的区块。这也使得一个用户或用户群很难垄断网络的计算能力,因为完成散列函数所需的机器和能力是昂贵的。

    本文来自网络,不代表爱财富网立场,转载请注明出处:http://www.htuba.com/news/327.html

    作者: 爱财富网

    发表评论

    您的电子邮箱地址不会被公开。 必填项已用*标注

    返回顶部