理解双重支付:区块链技术中的一个关键安全挑战

什么是双重支付?

双重支付代表了数字货币系统中的一个基本安全挑战,在这个系统中,相同的资金可以在同一时间段内被多次使用。如果没有适当的保护措施,任何未能解决这一漏洞的协议都会让用户对他们的资金是否已合法转移或在其他地方被欺诈性复制感到不确定。

在加密货币生态系统中,防止数字单位的重复至关重要。如果一个用户能够接收10个单位并简单地复制粘贴它们以创建100个单位,系统将会崩溃。同样,如果这10个单位能够同时发送给两个不同的收件人,系统的完整性也将受到损害。为了使数字货币正常运作,必须实施强大的机制以防止这种可能性。

防止双重支付的方法

集中式解决方案

防止双重支付的集中式方法相对简单易行。它们涉及由单一实体或组织管理系统,并控制数字货币单位的发行和分配。大卫·乔姆的eCash就是这种方法的一个显著例子。

为了发行模仿实物现金特性的数字资产(,允许匿名和点对点交易),银行可能会使用盲签名——这一概念是由密码学家大卫·乔姆在他1982年的论文《不可追踪支付的盲签名》中提出的。

例如,如果用户请求$100 的数字货币,银行会生成随机数字作为唯一标识符,每个标识符分配一个特定的值。为了维护隐私并防止追踪,用户在将这些数字发送到银行进行签名之前,为每个数字应用一个盲因子。然后,银行对这些数字进行签名,确认每个数字可以兑换指定的金额,并相应地从用户的账户中扣款。

在使用这些资金时,用户去除盲因以揭示唯一标识符,收款人必须立即与银行核实以防止双重支付。一旦使用,这些数字“支票”将失效,未来交易必须请求新的支票。

虽然Chaum的电子现金提供隐私优势,但其可靠性完全依赖于中央银行。这些数字支票仅因银行同意兑现而具有价值,用户仍然依赖于银行的持续运营——这正是加密货币旨在消除的依赖。

去中心化解决方案

在没有中央权威的情况下,防止双重支付面临更大的挑战。在去中心化系统中,网络参与者必须建立共识规则,以抑制欺诈行为并激励诚实参与。

比特币的突破性创新在于其解决了双重支付问题。尽管在原始白皮书中没有明确命名,佐藤中本提出的数据结构——现在称为区块链——解决了这个关键问题。

区块链作为一个具有独特属性的专业数据库。网络参与者(节点)与其他参与者同步该数据库的副本,创建一个分布式账本。这个公开透明的系统允许所有参与者从创世区块开始验证完整的交易历史,使得像双花这样的欺诈活动可被检测和防止。

当一笔交易被广播到网络时,它并不会立即得到确认,而是必须首先通过挖矿过程被包含在一个区块中。接收者应在交易被添加到区块链并获得足够的确认后,才认为交易有效。如果没有这些确认,接收者面临风险,可能无法收到承诺的资金,如果发送者试图在其他地方花费相同的币。

一旦得到适当确认,币的所有权就会转移到新用户,整个网络都可以验证这一变化。这就是为什么在接受支付之前建议等待多个确认——每增加一个区块就增加了修改交易历史所需的计算工作量。

双重支付攻击在比特币网络上

比特币的共识机制有效地防止了双重支付,只要协议正常运行。当接收者等待足够的确认(通常是六个区块或大约一个小时)时,发送者无法轻易地逆转交易,而不需要指挥大量的计算能力。

然而,几种类型的双重支付攻击专门针对未确认的交易。在等待区块确认不切实际的情况下——例如在快餐店的高峰时段或进行低价值购买时——接受未确认交易的商家容易受到双重支付攻击。

有三种常见的双重支付方法:

  • 51%攻击: 当一个实体控制了网络总哈希率的50%以上时,就会发生这种情况,这使他们能够操纵交易顺序甚至撤销最近的交易。虽然在比特币网络上由于其庞大的哈希算力不太可能发生,但较小的区块链网络仍然容易受到这种威胁。

  • 竞赛攻击: 当攻击者同时广播两个相互冲突的交易时发生,最终只有一个被确认。攻击者向商家发送支付,同时将相同的资金以更高的交易费用发送回自己。更高费用的交易更有可能优先被确认,从而使对商家的支付无效。此攻击特别针对接受未确认交易的商家。

  • Finney攻击: 需要攻击者预挖一个包含将币发送回自己的交易的区块,而不立即广播它。他们首先在一笔常规交易中花费这些相同的币(支付给商家),然后发布他们预挖的区块,从而覆盖对商家的支付。这种攻击需要精确的时机,并且还依赖于商家接受未确认的交易。

正如这些攻击方法所示,等待多个区块确认显著降低了成为双重支付攻击受害者的风险。

数字货币用户的实际影响

双重支付对数字货币系统构成了重大挑战,因为它允许恶意行为者多次花费相同的资金以获得经济利益。如果没有有效的对策,这种漏洞将削弱整个系统的信任。

盲签名的发展帮助解决了中心化金融系统的许多局限性。然而,真正的突破在于工作量证明机制和区块链技术的创建,这使得比特币作为一种强健的去中心化货币出现。这一创新激励了数千个加密货币项目,每个项目都在这些基础安全原则的基础上进行构建。

对于加密货币用户来说,了解双重支付的风险和交易确认的重要性对于安全参与数字经济至关重要。在接收重大支付时,请始终等待推荐的确认次数,然后再将交易视为最终交易——比特币通常需要六次确认,而其他加密货币根据其安全模型则需要不同的确认次数。

BTC1.48%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)