要点总结
双重支付是在数字现金系统中可能出现的缺陷,其中相同的资金同时发送给两个接收者,从而破坏支付网络的完整性。
集中系统通过依赖可信的中介来验证每笔交易,从而防止双重支付,但这会造成单点故障。
比特币通过区块链技术、工作量证明共识和一个确认系统以去中心化的方式解决了双重支付问题,使得逆转交易的成本极高。
等待多个区块确认(通常对于高价值支付要求六次确认)仍然是防止双重支付尝试的最有效保护措施之一。
介绍
当你将一张实体钞票交给某人时,你就不再拥有它。然而,数字信息可以被复制。这一根本差异产生了一个被称为双重支付问题的挑战:如何防止某人重复花费同样的数字货币?
比特币是第一个在不依赖中央权威的情况下解决这一问题的系统。通过结合密码学、分布式账本和经济激励,它确保一旦资金被花费,就无法再次使用。理解这一点对任何使用或构建点对点数字现金系统的人来说都是至关重要的。
什么是双重支付?
双重支付是在数字现金系统中可能出现的一个问题,其中相同的资金同时发送给两个接收者。如果没有足够的对策,一个没有解决此问题的协议将被根本削弱,因为用户无法验证他们收到的资金是否已经在其他地方被花费。
考虑一个简单的例子:艾丽斯有10个数字代币。她将所有10个代币发送给鲍勃购买一件产品,然后立即将同样的10个代币发送给卡萝尔购买另一件产品。如果该系统没有机制来确定哪一笔交易有效,鲍勃和卡萝尔都可能认为他们收到了付款,而实际上只有一笔交易最终会被兑现。
为了使数字货币正常运作,必须有机制防止用户多次花费同一单位。
如何防止双重支付?
集中式方法
最简单的解决方案是使用可信的中介。中央权威(如银行)维护一个账本,并在批准每笔交易之前进行验证。如果艾丽斯试图将其资金发送给鲍勃和卡萝尔,银行会处理第一个请求并拒绝第二个,因为余额已被花费。
大卫·乔姆在1982年提出了这样一个系统(电子现金),使用盲签名。在这个模型中,银行发行用户可以私下交换的数字签名代币。当接收者出示代币进行赎回时,银行会检查该特定代币是否已经被花费。
虽然有效地防止了双重支付,但这种方法造成了单点故障。如果银行离线、被攻击或拒绝兑现代币,整个系统将停止工作。
去中心化方法
确保资金无法在没有中央权威的情况下双重花费要困难得多。突破性进展来自中本聪在2008年发布的比特币白皮书,介绍了一种使用区块链数据结构的去中心化解决方案。
网络中的参与者(称为节点)运行软件,与同伴同步他们的交易账本副本。这意味着整个网络可以审计所有自第一个区块(创世区块)以来的交易。由于账本是公开可见的,因此试图重复花费相同币种的行为很容易被检测到。
当用户广播一笔交易时,它并不是立即最终的。它必须先通过挖矿被包含在一个区块中。只有在一个区块被确认并添加到链中后,该交易才被视为已结算。每个后续的确认增加了一层安全性,使得逆转的成本呈指数级上升。
接收者应在将付款视为最终之前等待确认。对高价值交易的标准建议是六次确认(大约一个小时在比特币上),这提供了强大的概率最终性。
比特币中的双重支付
比特币经过精心设计,以防止在协议正常使用时发生双重支付攻击。一旦交易在区块中被确认,逆转它将需要“重新挖掘”从那一点起的区块链,这在比特币这么大的网络上需要不切实际的计算能力。
然而,有一些攻击方法针对接受未确认(零确认)交易的方:
竞赛攻击:攻击者几乎同时广播两笔冲突交易。一笔支付给商家;另一笔将相同的币发送回攻击者自己的地址。只有一笔会被确认。如果商家在确认之前交付商品,他们就有可能失去这笔付款。
Finney攻击:攻击者预挖一个包含将币发送到自己地址的交易的区块。然后,他们在商家那里花费这些相同的币,并迅速广播预挖的区块,从而可能使商家的支付无效。
51%攻击:如果某个实体控制了网络超过一半的挖矿算力,他们可以比诚实网络更快地构建私有链并重写最近的交易历史。在比特币上,由于巨大的哈希算力,这在经济上是不切实际的。
共同点:等待区块确认的商家大大降低了成为受害者的风险。
2026年的双重支付风险
双重支付威胁自比特币早期以来已经演变。以下是2026年的局势:
比特币仍然高度抗击风险
比特币主链上没有确认的双重支付或51%攻击。网络的哈希率达到了历史新高,使得攻击的成本与任何现实利润相比高出几个数量级。偶尔的单块重组在工作量证明系统中自然发生,并迅速解决,不会对用户造成影响。
较小的工作量证明币种仍然脆弱
哈希率低的山寨币继续遭受双重支付攻击。攻击模式通常涉及廉价租用算力(来自聚合挖矿能力的服务),在交易所存入币,兑换另一种资产,然后广播一个排除了存款的私挖链。这些攻击的成本从几千到几百万美元不等,主要针对交易所。
交易所通过增加脆弱币种的确认要求作出回应,有时在信用存款之前要求几十甚至几百次确认。
权益证明提供了不同的模型
使用权益证明共识的网络(如合并后的以太坊)提供的是加密经济最终性,而不是概率性最终性。一旦区块被确认,逆转它将要求攻击者牺牲大量质押资产,通过自动削减处罚。这使得深度的双重支付对攻击者在经济上是毁灭性的,补充了工作量证明链使用的基于确认的方法。
现代防御工具
除了等待确认之外,商家和交易所还使用复杂的工具,包括监测内存池中的冲突交易、实时风险评分可疑支付模式,以及根据交易价值和当前网络状况调整确认要求的自动挂起政策。
常见问题解答
双重支付攻击在比特币上是否曾经成功过?
在比特币主链上,没有确认的、盈利的双重支付攻击曾经对等待标准确认的接收者成功执行过。成功的攻击针对的是接受零确认(未确认)交易的商家。
我应该等待多少次确认?
对于小额的日常支付,一到三次确认通常足够。对于高价值交易或风险较高的情况,六次确认(大约一个小时)是广泛接受的标准。一些处理非常大金额的服务会等待更多确认。
在权益证明区块链上会发生双重支付吗?
权益证明链使用最终性机制,使双重支付极其昂贵。一旦区块被确认,逆转它将要求攻击者控制一大部分总质押价值并接受巨额削减处罚。尽管理论上并非不可能,但在设计良好、广泛质押的网络上经济上是不可行的。
为什么一些交易所对某些币种要求多次确认?
交易所根据币种的安全特征调整确认要求。哈希率低、集中挖矿或有重组攻击历史的币种,可能在存款被记入之前要求50、100或更多次确认。这保护了交易所不吸收如果发生双重支付反转时的损失。
双重支付问题是否仅限于加密货币?
该概念适用于任何将价值表示为可能被复制的数据的数字现金系统。传统数字银行通过银行维护的集中账本来解决此问题。加密货币的创新是,无需信任任何单一机构,就能解决此问题。
总结思考
双重支付问题一直是设计数字货币中最根本的挑战之一。集中解决方案有效,但引入了信任依赖和单点故障。工作量证明和区块链技术的突破使比特币作为一种强大的去中心化货币诞生,进而激发了数千个其他加密货币项目。
在实践中,对于遵循最佳实践的人,双重支付仍然是最小风险:等待确认,避免将未确认交易视为对有价值商品的最终支付,并使用实施现代监控工具的信誉良好的钱包和服务。
进一步阅读
什么是权益证明?
什么是共识机制?
什么是加密钱包?
什么是密码学?
区块链交易费用是什么?
免责声明:本内容以“按现状”方式提供,仅供一般信息和教育目的使用,不作任何形式的陈述或保证。它不应被解释为财务、法律或其他专业建议,也不意图推荐购买任何特定产品或服务。您应寻求适当专业顾问的建议。如果内容由第三方贡献,请注意所表达的观点属于第三方贡献者,并不一定反映Binance Academy的观点。数字资产价格可能会波动。您投资的价值可能会下跌或上涨,您可能无法收回投资的金额。您对投资决策负全责,Binance Academy对您可能遭受的任何损失不承担责任。有关更多信息,请参见我们的使用条款、风险警告和Binance Academy条款。
