当前位置:首页 » 数字币问答 » 解决了数字货币的双花问题

解决了数字货币的双花问题

发布时间: 2025-05-05 09:47:28

㈠ 入门科普:什么是双花

想要了解区块链,首先要熟悉区块链相关的各种名词。就比如我们今天讲到的“双花”,可能有人就要问,双花是什么花?哈哈哈,开玩笑,让我们来学习一下什么是“双花”吧。

01

“双花”是什么?

双重支付又名“双花”,也就是双重花费的意思。 举个例子:如果我钱包里面有100元,我可以去购买等值的物品。当我去商店后,发现台灯和桌子都是100元,那我只能买其中一样东西。而我们所说的双花问题,正好与之相反,同样的100元,我可以购买两样东西。

在加密货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产被重复使用的情况 ,这也称之为双花,又叫双重消费攻击。

02

双花问题是如何发生的?

在区块链系统中,双花问题会在以下情况下出现:

1、由于共识机制导致区块确认时间长,用一个数字货币去进行一次交易,可以在这笔交易还未被确认完成前,进行第二笔交易。

2、 控制算力来实现双花 ,第一次交易被验证通过并被记录入区块后,在该网络中有更高的算力验证出新的更长链条,在该链条中这笔钱被第二次花费,由于第二次花费的区块链条更长使第一次交易区块所在链条为无效链条,这样一来,第一次交易所在的区块链被区块链网络放弃,第一次花费的钱就又回到自己账户了,就导致了双花问题。

03

比特币如何避免双花问题?

为了解决双花问题,我们日常的数字资产使用依赖于第三方信任机构进行。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统, 比特币通过UTXO、时间戳等技术的整合来解决双花问题。

1、首先每笔交易都要先确认对应比特币之前的情况,要检查它是否存在于用户的UTXO中。如果不在,那么该交易会被系统拒绝。

2、如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔。

3、当两笔时间上很接近的交易被不同节点确认,区块链将发生分叉。剩余节点选择在他们认为的最长链上构建新的区块。

4、当其中一笔交易被6个节点确认后,它将成为系统最长链,可以认为这笔交易获得了最终的确认。

㈡ 关于“双花”你需要知道的

如果小明使用的不是现金,而是数字货币呢?

“双花”问题

“双花”,即 一笔钱被花了两次或者两次以上 ,也叫“双重支付”。

在数字货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。

1. 51%攻击

51%攻击,又被称为Majority attack。这种攻击是通过控制网络算力实现双花。如果攻击者控制了网络中50%以上的算力,那么在他控制算力的这段时间,他可以将区块逆转,进行反向交易,实现双花。

比如Bitcoin Gold发生的双花问题就属于51%攻击。 攻击者控制Bitcoin Gold网络上51%以上的算力,在控制算力的期间,他把一定数量的BTG发给自己在交易所的钱包,这条分支我们命名为分支A。同时,他又把这些BTG发给另一个自己控制的钱包,这条分支我们命名为分支B。

分支A上的交易被确认后,攻击者立马卖掉BTG,拿到现金。这时候,分支A成为主链。然后,攻击者在分支B上进行挖矿,由于其控制了51%以上的算力,那么攻击者获得记账权的概率很大,于是很快,分支B的长度就超过了主链,也就是分支A的长度,那么分支B就会成为主链,分支A上的交易就会被回滚(回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为)。

也就是说,分支A恢复到攻击者发起第一笔交易之前的状态,攻击者之前换成现金的那些BTG又回到了自己手里。当然,这些BTG就是交易所的损失了。最后,攻击者把这些BTG,发到自己的另一个钱包。就这样,攻击者凭借51%以上的算力控制,实现同一笔token的“双花”。 

2. 芬尼攻击(Finney attack)

“Finney”的名称来源于Hal Finney,Hal Finney是第一个描述双花攻击之0确认(未确认)交易的人。芬尼攻击主要通过控制区块的广播时间来实现双花,攻击对象针对的是接受0确认的商家。

假设攻击者挖到了区块,在区块中,包含了一笔交易信息,即地址1向地址2转了一定数量的token,不过这两个地址都是攻击者的。但是攻击者并不广播这个区块,而是立即找到一个商家,用他的地址1,把这些token发给商家的地址3。

发给商家的交易广播出去后,如果这个商家接受0确认,攻击者就把他自己之前挖到的区块广播出去,这时候发给自己的交易就先于发给商家的交易。对于攻击者来说,通过控制区块的广播时间,就实现了同一笔token的“双花”。

一般来说,为了节省时间而接受0确认,特别是对于大额交易而言,是非常不安全的,而且对于大额交易而言,多几次确认,将会降低交易被回滚的风险。

3.种族攻击 (Race attack)

这种方式主要通过控制矿工费来实现双花。

比如,攻击者把一定数量的token发给一个商家,我们命名为分支A。如果商家接受0确认,那么攻击者就会再把这笔token发给自己的一个钱包,我们命名为分支B。

不过,攻击者在发给自己的这笔交易中,加了较高的矿工费,从而大大提高被矿工打包的概率(也可以说间接提高了攻击成功的概率)。如果攻击者发给自己的这笔交易被提前打包,这时候这笔交易就先于发给商家的交易,也就是分支B的长度超过分支A的长度,分支A上的交易就会被回滚。对于攻击者来说,通过控制矿工费,就实现了同一笔token的“双花”。

4. Vector76攻击

Vector76攻击,是种族攻击和芬尼攻击的组合,又称“一次确认攻击”,也就是交易即便有了一次确认,交易仍然可以回滚。

如果电子钱包满足以下几点,Vector76攻击就容易发生。这几点即钱包接受一次确认就支付;钱包接受其它节点的直接连接;钱包使用静态IP地址的节点。

具体攻击方式如下( 感兴趣的可以点此查看 ):

攻击者控制了两个全节点,全节点A只是直接连接到电子钱包这个节点,全节点B与一个或多个运行良好的节点相连。

然后攻击者将同一笔token进行了两笔交易,一个是发给攻击者自己在这个钱包(接下来要被攻击的)上的地址,我们命名为交易1,另一个是发给攻击者自己的钱包地址,命名为交易2。但是攻击者给交易1的矿工费,要远大于交易2的矿工费。攻击者并没有把这两笔交易广播到网络中去。 

然后攻击者开始在交易1所在的分支上进行挖矿,这条分支我们命名为分支1。攻击者挖到区块后,并没有广播出去,而是同时做了两件事:在节点A上发送交易1,在节点B上发送交易2。

由于节点A只连接到电子钱包的节点,所以当电子钱包节点想把交易1传给其它对等节点时,连接了更多节点的节点B,已经把交易2广播给了网络中的大部分节点。于是,从概率上来讲,交易2就更有可能被网络认定为是有效的,交易1被认定为无效。

交易2被认为有效后,攻击者立即把自己之前在分支1上挖到的区块,广播到网络中。这时候,这个接受一次确认就支付的钱包,会立马将token支付给攻击者的钱包账户。然后攻击者立马卖掉token,拿到现金。

由于分支2连接的更多节点,所以矿工在这个分支上挖出了另一个区块,也就是分支2的链长大于分支1的链长。于是,分支1上的交易就会回滚,钱包之前支付给攻击者的交易信息就会被清除,但是攻击者早已经取款,实现了双花。

5. 替代历史攻击(Alternative history attack)

如果商家在等待交易确认,alternative history attack就有机会发生,当然,这需要攻击者有较高的算力,对于攻击者来说,会有浪费大量电力的风险。

攻击者把一定数量的token发给一个商家,我们命名为分支A。同时攻击者又把这笔token发给自己的一个钱包,我们命名为分支B。在商家等待确认的时候,攻击者在分支B上进行挖矿。

商家在等待了N次确认后,向攻击者发送了商品。但是如果攻击者凭借高哈希率,挖到了N个以上的区块,那么,分支B的长度就超过分支A,分支A的交易就会被回滚,攻击者实现双花。如果攻击者挖到的区块数量没有超过N个,那么攻击失败。

Alternative history attack能够攻击成功的可能性在于两方面,一个是攻击者的算力在网络中的比例大小,另一个是商家等待的确认次数。 比如,攻击者控制了网络中10%的算力,如果商家等待了2个确认,那么攻击成功的概率低于10%;如果商家等待了4个确认,那么攻击成功的概率低于1%;如果商家等待了6个确认,那么攻击成功的概率低于0.1%。 由于该攻击存在的机会成本,所以如果代币交易金额与块奖励金额差不多,才有可能实现博弈。

目前,几个区块链项目的官方给出的解决方式,主要有如下几种:

1. 提高确认次数。比如LCC建议将确认次数提高为 100 个。

2. 在共识机制方面改善。比如 LCC表示可能会引入PoS机制。

3. 升级新的算法。比如Bitcoin Gold表示,正在开发新的 PoW 算法以替代原有的 Equihash 算法。

4. 与交易所等合作。比如Bitcoin Gold立即与合作交易所合作,阻断黑客的套现渠道。

链接:https://www.jianshu.com/p/56617e91b12a

链接:https://www.jianshu.com/p/0eb023e1d5dd

㈢ 为什么说区块链代表着世界观和价值观

金窝窝分析:区块链代表着一种世界观价值观,它代表着人类希望以更平等的方式来进行沟通和交流。
很多大佬专家在传统世界是没有什么生意的个体,但是他们可以通过对区块链的理解和热爱成为这个行业的顶尖人物,说明区块链世界里每个人是生来平等的,就像每个节点一样节点之间是等价的,你只要达到相同的条件就可以获得系统给你的机密。

㈣ 数字人民币来了,数字人民币是什么怎么实现双离线支付技术的



“只要你我手机上都有数字人民币的数字钱包,那连网络都不需要,只要手机有电,两个手机碰一碰,就能把一个人数字钱包里的数字货币,转给另一个人。”

是不是很神奇?我们习惯了各种网络联通的时代,这种离线支付技术是不是感觉挺高级的?

最近 深圳市人民政府联合中国人民银行开展了数字人民币红包试点 。作为技术人员就想知道怎么样实现双离线支付的,也想了解一下这个数字人民币到底是何方神圣?

一、数字人民币是什么?

数字人民币由中国人民银行发行,是有国家信用背书、有法偿能力的法定货币。

与比特币等虚拟币相比,数字人民币是法币,与法定货币等值,其效力和安全性是最高的,而比特币是一种虚拟资产,没有任何价值基础,也不享受任何主权信用担保,无法保证价值稳定。这是央行数字货币与比特币等加密资产的最根本区别。

1.双离线支付。 像纸钞一样实现满足飞机、邮轮、地下停车场等网络信号不佳场所的电子支付需求;

2.安全性更高。如果真的发生了盗用等行为,对于实名钱包,数字人民币可提供挂失功能;

3.多终端选择。不愿意用或者没有能力用智能手机的人群, 可以选择IC卡、功能机或者其他的硬件;

4.多信息强度。根据掌握客户信息的强度不同,把数字人民币钱包分成几个等级。如大额支付或转账,则必须通过信息强度高的实名钱包;

5.点对点交付。通过数字货币智能合约的方式,可以实现定点到人交付。民生资金,可以发放到群众的数字钱包上,从而杜绝虚报冒领、截留挪用的可能性;

二、数字人民币和支付宝、微信等电子钱包有什么区别?

第一点,数字人民币法定货币,任何机构和个人不得拒收,而微信支付和支付宝只是一种支付方式。

比如,如果你在商场购物付款的时候,你说能用微信付款吗?店主告诉你不行,我这里只支持支付宝,你也无可奈何。但你用数字人民币付款就不一样了,如果店主不收,你可以直接报警。

第二点,支付宝、微信支付等第三方互联网支付需要设备连接网络才可以结算,但数字人民币可以双离线。也就是说,只要手机有电,哪怕整个网络都断了数字人民币也可以实现支付。

PS:现在支付宝等技术,其实可以实现单离线技术,就是说手机没有网络信号,消费终端联网的时候,其实是可以进行消费,等消费完成以后,会进行延期结算,等联网以后,会有短信消息等通知你消费成功。但是这种务必保证的是消费终端是联网的。

第三点,支付宝、微信支付等第三方互联网支付属于商业银行存款货币结算,而数字人民币属于流通中的现金。简单来说就是,使用央行数字货币支付,花出去的是数字化的人民币,跟花现金一样;而支付宝、微信支付只是一个支付工具,通过这两种渠道,花的是你银行卡里的余额、或者刷的是信用卡。

三、数字人民币最终实现的双离线支付技术原理是什么?有什么高大上的技术?

这是我觉得最神奇的地方,通过双离线技术,如何实现数字人民币的安全的?

其实离线支付的功能并不新鲜,微信和支付宝都已经实现了,这可以让我们在一些场景“先享后付”。但这种离线支付一般只能让付款方离线,而收款方必须在线,并将离线的付款信息传到平台服务器端进行校验。那 DC/EP 的“双离线支付”是怎么实现的?据参与DC/EP 的支付宝透露, 在收付双方都离线的场景下,就先记账,等能做安全验证时再扣款。

不过“双离线支付”也面临更高的安全风险,有人可能利用当中的时间差作恶,比如将同一笔数字货币重复花几次,在现实中这是克隆的假币,而在线上世界只要复制数字货币的核心数据,这就行业中所说的 “双花问题”(DoubleSpending)。这就是我们最担心的安全问题。

为了防止“双花”,第三方支付平台需要对每一笔交易进行验证,而“双离线支付”却无法在第一时间进行验证,因此一般只用于公交等小额支付的场景,以此来降低风险。

四、双离线支付应用场景和原理

双离线支付核心指的是介质和受理终端都离线的情况下完成业务的一个过程,最典型的就是支付业务和核实身份。对支付业务来说,它通过交易完成之后的延期请款来完成闭环交易的过程,核心是实现了快速的核身和支付的一种技术方案。

它的业务机制有两个核心要点。一个是业务机制上面有两个特征,包括了核身和支付;另外一个就是终端和介质之间有一个信任机制。在交易安全机制方面有三个维度:(1)一个是风控的额度,就是双离线之后的交易的额度;(2)第二个是会有垫付和追缴的机制;(3)第三个是信用体系。

五、数字人民币的碰一碰支付安全吗?会不会随便什么人拿个手机碰一碰我的手机就把我的钱偷走了呢?

答案是,肯定不会。

数字人民币的碰一碰支付背后的技术其实NFC技术,它比二维码扫码要安全得多。

NFC是一种近距离高频无线通信技术。NFC传输距离小于10厘米,采用点对点通信,无需第三方设备中转传输信号。NFC手机支持芯片硬件加密和软件加密,不到0.1秒就可以完成点对点的加密通信,保证了支付安全。

六、手机碰一碰就会直接付款吗?

当然不会手机碰一碰就直接付款,碰一碰之后,还要输入支付金额,以及输入支付密码或者指纹才能完成转账,步骤跟现在的扫码支付类似。毫无疑问,它要比扫码支付方便,扫码支付遇到网络不好或者光线不好,是无法完成支付的。它只要在10厘米范围以内,碰一碰,就可以完成支付。它的支付体验和安全要优于扫码支付。


七、双离线技术有没有类似的案例?

我们知道了, 收付双方都离线的场景下,就先记账,等能做安全验证时再扣款。

想一想,是不是公交系统也是这种情况?公交卡中就有钱,可以在没有网络的情况下,可以实现刷卡上车。


类比一下,在网络条件好的情况下,先把金额充值到载体中,IC卡或者手机中,然后可以基于IC技术或者NFC技术实现在线或者离线刷卡。如果在线刷卡都比较好理解,离线刷卡,无非就是等网络通了以后,进一步跟中心进行结算。

㈤ “双花”是什么

POW算法是唯一经过时间检验运行较为稳定的算法,这从比特币诞生到现在的较稳定的运行就可以看出。

上次说到POW的共识算法的部分运作原理。把上次所讲的内容简单总结一下,那就是POW通过哈希加密算法解决了“凭什么帮你记账”的问题。

其实,POW共识算法的目的,是可以保证任意节点被入侵、篡改,其数据信息不会被其它节点所接受,换句话说,POW要通过运行机制保障主链的安全性。

因此,仅仅解决“凭什么帮你记账”的问题对一个成熟稳定的共识算法来讲还是远远不够的,它还需要解决其它一些问题,比如双花问题。

双花问题(Double Spending)即双重支付,是指一笔数字现金在交易中被重复使用的现象。我们都知道,数字现金的走向只能是线性的,也就是同一笔钱一次只能转给一个人,不能同时转给两个或者以上的人。一旦数字现金的走向发生了偏差,离开了线性轨道的约束,成为发散状态,那么双花问题就会出现。

举个例子,小明一早出门只带了10元钱,他来到肯德基吃早餐,点了10元的套餐,把钱付给了肯德基的收银员,这10元钱得到收银员的确认。小明吃完早餐出门,发现自己并没有吃饱(小明饭量有点大),抬头一看有个麦当劳,于是他走进麦当劳,想再点一个10元的汉堡。这时候,如果小明想用之前买肯德基套餐的那10元钱买麦当劳汉堡,可能吗?当然不可能。因为那10元钱是独一无二的(有编号),已经被花出去了。

但如果小明使用的不是现金,而是数字货币呢?这就另当别论。这是因为现金的复制成本太高(法律成本、制作成本等等),而数字货币则不然,它具有十分经济的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复利用的问题。

双花问题在有中介的前提下是不容易发生的,因为每次消费都要经过第三方(中介方)的确认才会完成,比如支付宝。

而比特币作为一个去中心化的点对点现金系统,是没有中介和第三方的,它主要依靠未花费的交易输出(UTXO)和时间戳两大利器来解决双花问题。

未花费的交易输出(UTXO)可以被简单地理解为一个用户拥有的比特币的余额。这个余额是无法伪造的,因为一个用户拥有的比特币实际上会被当作UTXO分散到数百个交易和数百个区块中。

双花问题是这样解决的:

首先每笔交易都要先确认对应的比特币之前的情况,要检查它是否存在于付款人的UTXO中。

其次,同一笔UTXO付出去,系统节点按照时间戳只会确认先接收到的那一笔。

最后,当两笔时间上很近的交易被不同节点确认,区块链将发生分叉。当其中一笔交易被6个节点确认后,它将获得最终的确认,成为最长链。

本文仅供学习参考之用,不构成任何投资建议。

热点内容
世联通证数字货币 发布:2025-05-05 14:50:56 浏览:9
usdt今日卖出价格 发布:2025-05-05 14:38:23 浏览:852
香港数字货币发行有限公司 发布:2025-05-05 14:34:20 浏览:121
好玩吧买矿机怎么都是亏 发布:2025-05-05 14:22:21 浏览:11
逐仓合约的倍数和收益怎么算 发布:2025-05-05 14:21:06 浏览:935
数字货币投资上市公司 发布:2025-05-05 14:16:19 浏览:774
数字货币开空是什么意思 发布:2025-05-05 14:11:42 浏览:187
tsh数字货币 发布:2025-05-05 14:02:00 浏览:651
区块链应用详询珈木科技 发布:2025-05-05 14:00:17 浏览:326
正规的数字货币交易所有那些 发布:2025-05-05 13:59:35 浏览:739