教程网

您现在的位置是: 首页 > 独家

比特币双花是什么意思?比特币双花原理

比特币双花是什么意思?比特币双花原理
提到比特币,很容易联想到比特币交易安全问题,说道比特币交易安全,首先想到的就是比特币双花问题,那么,币圈小白就会有疑问了,比特币双花是什么?比特币双花原理又是什么呢?这些问题小

提到比特币,很容易联想到比特币交易安全问题,说道比特币交易安全,首先想到的就是比特币双花问题,那么,币圈小白就会有疑问了,比特币双花是什么?比特币双花原理又是什么呢?这些问题小编就来为大家解答一番。

比特币双花定义

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

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

比特币双花原理:

某作恶人在第101号区块的时候,将10个比特币充值到某交易所。一般交易所在第6个确认的时间就会认为已充值成功。这时作恶的人会赶紧卖出提现。

但随后,作恶节点人还偷偷的构造了另一笔交易(只需要修改101号区块里面的交易信息)将充值的那10个比特币,收款人地址修改成给他的小号。他把这个恶意的块发给了其它的矿工(举例为红色那条链)

这个时候,只要作恶节点在红色链上投入大量的算力,且算力大于51%,那他挖矿的速度肯定比小于49%的诚实节点要快,最终红色的那条链一定会超过黑色的链,其它诚实结节根据最长链优先原则又纷纷到红色链上继续挖矿,而黑色链之前发生的所有交易(其实只有其中那一笔交易是伪造的)就回滚了。

这样,作恶节点人是不是把这10个比特币花费了二次呢?他即在交易所充值成功,又把比特币拿回去了,比特币交易所就白白损失了10个BTC。

比特币双花可以分为两种情况:

1.在确认前的双花

这个因为原理,确认的交易本来就可能最后没有写入区块链。除非小额,否则最好等一下确认即可规避此类双花。另外用链下钱包也可以,可秒速。

2.确认后的双花

这个就要控制超50%的算力才能实施了。即类似于一个小分叉,将给一个商店的交易给放入孤立区块中。不过,这种确认后双花,很难实施,目前好像还没有任何此类双花的案例,只是存在在理论上可行。

比特币双花问题是如何发生的?

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

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

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

在了解比特币双花怎么解决这一问题之前,我们先来简单的了解一下究竟什么是比特币双花。其实双花就是双重支付的意思,它指的就是在数字货币系统中,因为数据的可复制性而使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。其实双花是每个数字货币都需要解决的问题,因为如果某种数字货币能被人重复使用,同样一笔钱被花掉两次或多次,那它是没有价值的。很多投资者想知道比特币双花怎么解决?下面就让小编为大家介绍一下解决比特币双花的方法。

比特币双花怎么解决?

比特币作为一个去中心化的点对点电子现金系统,主要依靠未花费的交易输出(unspend transaction output, UTXO)和时间戳来解决“双花”问题。

比特币交易的基本单位是未花费的一个交易输出,简称UTXO。UTXO是不能再分割、被所有者锁住和记录区块链网络中的一定数量的比特币货币。当一个用户接收比特币时,金额被当作UTXO记录到区块链里。一个用户拥有的比特币实际上会被当作UTXO分散到数百个交易和数百个区块中。

“一个用户的比特币余额”,这个概念是通过比特币钱包创建的派生之物。比特币钱包通过扫描区块链并聚合所有属于该用户的UTXO来计算该用户的比特币余额。事实上,比特币现金系统中并没有账户,没有钱包,没有余额,有的只是记录在区块链中,被所有者锁住的UTXO。

当某一笔比特币交易被创建并广播到区块链网络之后,接收到此交易信息的节点会对交易进行验证,检查其是否存在于UTXO中。如果交易输出已不存在于UTXO中,则验证失败。

比特币现金系统中记录着当前每一笔“未花费的交易输出”。当节点接收到一笔交易信息的时候,它需要去UTXO数据库里查,看看这笔交易所引用的UTXO是否存在,它的收款人(拥有者)是不是当前新交易的付款者。交易结束之后,系统会做相应的更新。

比特币双花的后果

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

如果某种数字货币能被人重复使用,同样一笔钱被花掉两次或多次,它没有价值。

在上述星巴克买咖啡的情境中,小明使用的30元现金可以很容易地被小姐姐确认。但如果小明使用的是某种数字化货币,小姐姐想确认就不那么容易了。事实上,30元数字货币背后的数据是相同的,伪造数据的成本远远低于伪造现金。

上述内容就是小编对于比特币双花怎么解决这一问题的详细解答。其实双花问题的解决不仅仅是计算机科学领域的一个里程碑,虽然比特币的发展时间不长,但是我们已经看到了这个无需许可的分布式经济带来的深远影响。现阶段比特币不仅仅是现有经济体系的一个新特点,基于一些完全不同的原则,它还启动了一种全新的经济。比特币为一种全新的银行架构打下了基础,这个架构是非常的安全的,因为它是以协议的形式存在的,比特币服务商的诞生也印证了这一点。

提到双花问题,很多投资者都可以说是一脸懵圈,甚至有部分投资者都没有提说过双花问题,其实币圈一直都有双花攻击的案例,比如说2018年曾经发生了比特币黄金的双花攻击,只不过大多数投资者都不太关注这方面的新闻,因而自然也就不会去了解双花问题是什么意思,那么,区块链及数字货币中双花问题到底是什么意思呢?下面小编就给大家通俗的讲解一下区块链及数字货币中双花问题是什么意思?】

区块链及数字货币中双花问题是什么意思?

因数字货币是二进制的代码,是可以复制的数据,存在一笔数字资产被重复使用的情况,这就是所谓的“双花”。一笔资产可以花两次甚至花多次。

我们知道作为中心化的支付平台第三方是保留交易总账来保证每笔数字现金只会被花掉一次;而作为去中心化的区块链里数字资产,双花问题是如何出现的呢?

先假设一个场景

场景1:诈骗者使用数字货币购买数字产品如买一本电子书,价格为1个EOS。他先将EOS发送给店家,假设这笔交易是tx1;然后同时将相同数量EOS发给自己另外一个钱包地址,称这笔交易为tx2。店家网站程序检测到交易tx1后,觉得没有问题,程序自动发电子书过去;但因交易tx1和交易tx2是相冲突,矿工只会在一个时间点打包一个交易,万一不小心都打包了,其他节点矿工会验证并拒绝这个区块打包成功,所以如果交易tx2打包成功了,交易tx1会作废,这种情况下,诈骗者成功双花了EOS,即买到了电子书,也收回了自己的EOS。

解决办法:这种场景下的双花比较好解决,店家网站程序自动发电子书前,先让区块确认交易,至少一个区块交易,而只有被至少一个区块确认过的交易,就会盖上时间戳且之前从未存在过,才被认为交易的有效性。目前比特币的交易要被6个区块确认才算安全有效可靠,以避免孤立区块的情况;EOS的充值确认在币安里是需要至少32个区块确认数。

另外一种场景,假设诈骗者是矿池或矿工。

场景2:诈骗者矿工先构造交易tx1和tx2,tx1的手续费很低,将tx1发给商家买电子书,但是交易tx2隐藏起来不广播,只保存在自己的区块内。因为tx1的手续费太低,所以其他节点矿工们不想打包;而tx2被隐藏起来了,所以区块链浏览器是不可能发现有相冲突的交易,商家也就不可能发现。当商家认为是正常的交易一旦发货了,诈骗者矿工就会在自己挖到的区块打包进去,这个时候广播这个区块,全网所有的节点就会发现tx1是非法的了,直接作废掉,商家就收不到币了。

解决办法:想防御这类双花攻击就要依赖其他矿池矿工的协作。因为诈骗构造的tx2交易是不会被广播的,是以直接打包进诈骗矿池挖到的区块才会被其他矿池发现。如果其他矿池如果针对这种包含了延迟出现交易(tx2)的区块进行孤立,那这个诈骗矿池的这个块就白挖了,损失区块奖励,这是非常惨的事。具体的设定可以是矿池将超出一定时间,比如10秒内,都没有见到的交易(tx2),却包含在最新的区块里,则直接孤立掉这个块,在这个块的前一个高度上挖矿。

如果执行这种孤立政策的算力超过51%,那基本上就没有矿池敢发起这一类隐藏交易(tx2)来攻击零确认交易了。

比特币是如何防范双花问题的?

首先,要检查这笔钱是不是没有被花费过。方法是查看你的这笔交易的来源是否在UTXO(未花费交易列表)中。不需要追溯到挖矿挖出的coinbase交易。

然后要看你提交的交易里有没有包含有效鉴权。如果这笔钱之前是通过P2PKH交易付给你的,那就是看交易里有没有这笔钱所在地址的对应私钥的签名。P2SH、P2MS类型的交易的鉴权规则类似。

如果你用同一笔UTXO构造了两笔分别付给A和B的交易。那么bitcoin-core客户端的规则(截止2016.2)是只转发先侦听到的那个。但至于哪笔交易会被包含进未来区块,则取决于矿工。

矿工的挖矿程序一般是定制开发的,矿工可以自主任意选择这两笔交易里的一笔。比如有的矿工会选择先看到的交易,有的矿工会选择交易手续费更高的那个。

当这两笔相矛盾的交易中的一笔被写入区块链,并且深度达到6后(6个确认后),可以认为这笔交易获得了最终的确认。等待6个确认的情况下,比特币是几乎绝对不可能被双花的。一个确认都不等待,则有相当的可能被双花攻击。通常,3个确认已经相当安全。

以上就是区块链及数字货币中双花问题是什么意思的相关内容,其实避免数字货币的双花问题,主要就是交易成功后的区块确认数,比特币的区块确认数达到6就非常安全,双花问题基本上不可能出现,除非矿池的算力超过50%了,就可以为所欲为,双花在这种情况下算蝇头小利,强制分叉获利远远大于双花获利,另外判断交易是否合理,不仅仅是矿池节点,任何一个核心节点都会进行。即查询历史区块链,判断交易的输出是否不大于输入。

比特币分叉什么意思?“分叉”这个词,在数字货币领域是一个非常常见的名词。分叉这个概念最早来源于比特币,我们知道,比特币交易是基于比特币区块链网络的(一个一个区块构成一个前后关联的链条,形成比特币区块链网络)。

区块,既然是一个块,它肯定是有容量的(大家脑补一下区块这个东西,无非是一堆一堆代码的集合),区块容量的大小会对交易的效率产生限制,如果区块容量太小,那么自然所容纳的交易数量也越小,一旦交易量过大,就会造成拥堵。

比特币区块的容量只有1M,它所能容纳的交易数量大概也就5-7笔而已。早先比特币交易的用户比较少,这个容量倒是没什么问题,但是随着比特币价格的上涨,越来越多的用户涌入,比特币区块容纳不下这么多交易,就出现了拥堵的现象。

比特币心里急啊:慢点啊兄dei们,我跟不上你们的交易速度啊喂!

用户心里也急啊:大哥,你能不能快点啊喂!

这是个大问题,不仅在于大家耐心有限,最主要的原因是,比特币的定位是货币啊,你作为一个货币,就应该快准狠地实现支付收款嘛,要是一直这么慢,啥时候才能实现货币属性?所以,这是一个大问题。

比特币社区当然知道这个问题的重要性,至于如何解决这个问题,比特币社区就出现了分歧,这个分歧在于要不要扩大比特币区块的容量(因为我们刚刚说了,正是比特币区块容量太少才导致了交易速度过慢、拥堵的情况)。

争议主要分成两个阵营:以Core为首的比特币原开发团队认为,比特币是一种价值储存品的电子黄金,一旦扩容则会破坏其核心的东西。而以吴忌寒为首的矿工团队则认为,比特币未来应该是一种可快速流通的货币,需要对其进行扩容以解决交易拥堵问题。

因为区块链的去中心化特性,任何个人和机构都无法决定比特币系统该如何去“扩容”,每个人都有自己的意见,大家的意见产生了分歧,谁也不愿意退让,于是,大家一拍两散,各走各的路,比特币这条链便分裂成了BTC和BCH两条链,久而久之就演变成了所谓的“分叉”。

这是分叉的由来。

下面我们介绍一下分叉是什么。对于区块链来讲,分叉就是区块链协议的改变,类似于对区块链做一个升级,来弥补系统存在的不足。这就好比我们现在的手机软件也经常提示你升级是一个道理的。

 1/4    1 2 3 4 下一页 尾页