区块链避免双花
Ⅰ 在区块链中,双花问题是什么问题呢
什么是双花问题呢?
双花问题,简单讲就是一笔钱能被花两次三次很多次。为什么双花问题会成为比特币系统里面一个这么重要的问题呢?
原因就在于:比特币,是虚拟货币,它是虚拟的,通过代码形式呈现出来的,是可以被复制下来的。一旦被攻破了代码漏洞,那么就可以循环使用同一笔比特币,这样一来,比特币这种“钱”就会变得很鸡肋。
我们想一下,要是一笔钱可以花很多次,你有500块钱,你去买一件500块钱的衣服,还能循环使用,再去买一双500块钱的鞋,这样一来,钱还能叫钱吗?
所以,中本聪在设定比特币系统的时候,他所有的技术手段基本上都是围绕着解决
“双花问题”的,来保护比特币作为一种货币,它自身的一个支付手段职能。
其实,这个双花问题在我们现在的中心化世界里面根本不是问题,因为有银行,钱的交易结算都是通过银行,很安全,有问题直接找银行。
但是,在去中心化世界里面呢,没有银行这样一个中心机构,还必须保证一笔钱只能花一次,怎么样实现在去中心化的前提下,杜绝“双花问题”呢,这是一个难题。
这里插一句,中本聪为什么如此执着的追求“去中心化”呢,自找烦恼吗?不是,他希望能够通过去中心化,来解决一些社会问题,其中最主要的问题就是:因为权力机构过量发行货币造成的通货膨胀。
所以,我们总结一下他的逻辑:中心化的货币增发导致通货膨胀——所以我们要实现去中心化——去中心化要面临很多问题,最大的问题是双花问题——所以我们要解决双花问题——怎么解决双花问题?
这里,中本聪就引入了UTXO和“时间戳”概念,依靠这两种手段来解决双花问题。
Ⅱ 入门科普:什么是双花
想要了解区块链,首先要熟悉区块链相关的各种名词。就比如我们今天讲到的“双花”,可能有人就要问,双花是什么花?哈哈哈,开玩笑,让我们来学习一下什么是“双花”吧。
01
“双花”是什么?
双重支付又名“双花”,也就是双重花费的意思。 举个例子:如果我钱包里面有100元,我可以去购买等值的物品。当我去商店后,发现台灯和桌子都是100元,那我只能买其中一样东西。而我们所说的双花问题,正好与之相反,同样的100元,我可以购买两样东西。
在加密货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产被重复使用的情况 ,这也称之为双花,又叫双重消费攻击。
02
双花问题是如何发生的?
在区块链系统中,双花问题会在以下情况下出现:
1、由于共识机制导致区块确认时间长,用一个数字货币去进行一次交易,可以在这笔交易还未被确认完成前,进行第二笔交易。
2、 控制算力来实现双花 ,第一次交易被验证通过并被记录入区块后,在该网络中有更高的算力验证出新的更长链条,在该链条中这笔钱被第二次花费,由于第二次花费的区块链条更长使第一次交易区块所在链条为无效链条,这样一来,第一次交易所在的区块链被区块链网络放弃,第一次花费的钱就又回到自己账户了,就导致了双花问题。
03
比特币如何避免双花问题?
为了解决双花问题,我们日常的数字资产使用依赖于第三方信任机构进行。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统, 比特币通过UTXO、时间戳等技术的整合来解决双花问题。
1、首先每笔交易都要先确认对应比特币之前的情况,要检查它是否存在于用户的UTXO中。如果不在,那么该交易会被系统拒绝。
2、如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔。
3、当两笔时间上很接近的交易被不同节点确认,区块链将发生分叉。剩余节点选择在他们认为的最长链上构建新的区块。
4、当其中一笔交易被6个节点确认后,它将成为系统最长链,可以认为这笔交易获得了最终的确认。
Ⅲ 鍖哄潡閾炬妧鏈涓昏佸彲浠ョ敤鍦ㄥ摢浜涜屼笟鏈変粈涔堜紭鍔
鍖哄潡閾炬妧鏈鍙浠ヨ繍鐢ㄥ湪寰堝氳屼笟锛岀涓绉嶆槸淇濋櫓琛屼笟锛屽湪杩欎釜琛屼笟閲岋紝浜轰滑鍦ㄩ噾铻嶉嗗煙鐨勫緢澶氭柟闈㈤渶瑕佷娇鐢ㄥ彲淇$涓夋柟锛屾瘮濡傛墭绠′汉銆佹敮浠樻湇鍔℃彁渚涘晢銆侀庨櫓姹囬泦鑰咃紙淇濋櫓鍏鍙革級銆傚彲淇$涓夋柟鍦ㄩ噾铻嶉嗗煙鍙浠ユ湁涓嬪垪鐨勪竴浜涚敤澶勶細1銆佽瘉鏄庝氦鏄撶殑鐗╁搧瀹為檯瀛樺湪銆2銆侀伩鍏嶅氶噸浜ゆ槗锛屼妇涓渚嬪瓙锛屾湁浜烘妸鍚屾牱鐨勭墿鍝侀攢鍞涓ゆ★紝鎴栬呭弻鑺3銆佷负浜嗛伩鍏嶇籂绾凤紝璁板綍浜ゆ槗鍘嗗彶銆4銆佷綔涓烘満鏋勬湇鍔′細鍛樻垨鑰呮垚鍛樺傛灉瀵硅繖椤规妧鏈鐨勪俊浠绘寔缁澧為暱锛屽尯鍧楅摼灏嗗彲浠ュ緢濂藉緱鏇夸唬鍙淇$涓夋柟鐨勪袱涓瑙掕壊锛岃繖鏍峰仛灏卞彲浠ラ槻姝㈠氶噸浜ゆ槗鍜屾彁渚涙墍鏈変氦鏄撶殑鍙楠岃瘉鍏寮璁板綍銆傛e湪鍑虹幇鐨勫簲鐢锛屾瘮濡傛櫤鑳藉悎绾﹀拰鍘讳腑蹇冨寲鐨勮嚜娌荤粍缁囷紝灏嗘潵涔熸湁鍙鑳藉厑璁稿尯鍧楅摼鎵婕旇嚜娌荤粍缁囩殑瑙掕壊銆
鎴戜滑閫氳繃浠ヤ笂鍏充簬鍖哄潡閾炬妧鏈涓昏佸彲浠ョ敤鍦ㄥ摢浜涜屼笟鏈変粈涔堜紭鍔垮唴瀹逛粙缁嶅悗,鐩镐俊澶у朵細瀵瑰尯鍧楅摼鎶鏈涓昏佸彲浠ョ敤鍦ㄥ摢浜涜屼笟鏈変粈涔堜紭鍔挎湁涓瀹氱殑浜嗚В,鏇村笇鏈涘彲浠ュ逛綘鏈夋墍甯鍔┿
Ⅳ 区块链鼻祖比特币之8:分叉带来的双花支付、51%攻击与解决办法
分叉
前面讲到了比特币通过区块链+工作量证明的独特设计来解决了时间顺序,但是不能保证在同一时刻有两个节点算出了正确的解,虽然这种可能性很低很低。这就带来了区块的分叉。
虽然说几乎同时有两个节点计算出这一数学问题的可能性微乎其微,但是仍然存在这样的可能性,所以分叉就以为着同一个区块的后面可能会跟上两个不同的区块。
规则的打破一直要到下一个区块被人解开。则会立即转向最长的区块,而那些短的区块则会被抛弃。数学问题使得区块很难被同时拆解。要连续发生多次更是困难。最终区块链会稳定下来。也就是说所有人对最后几个区块顺序达成共识。分叉意味着,譬如,若你的交易出现在较短的支链,它就会失去进入区块链的位置。一般而言,只代表他会回到未确认交易池。然后被纳入到下一个区块。
比特币网络如何解决分叉带来的双花支付
可惜,交易失去区块位置的潜在可能,给了本来定序系统防范的重复支付攻击机会。考虑下面的一个攻击者A,其首先用自己的比特币交换B节点的货物,其立即又支付给自己。然后其通过努力的制造更长的链条来让自己的支付替代掉B节点的支付,从而实现了双重支付,B节点既得不到钱,还失去了货物。
这时交易会退回到未确认池中,因为A节点已经利用参照同样的input交易取而代之。节点就会认为Bob的交易无效。因为已使用掉。
你可能会猜测A节点会预先的计算出一支区块链,然后抓住时机发布到网络。但是每个区块的数学谜题阻挡了这个可能性。如前面所诉,解开区块是猜测出一个随机数的过程。一旦得出答案,解出的哈希值就会成为指纹一样的区块识别。只要区块内容有一丁点变化,下一个区块的参考值就会完全不同。此机制的结果就是无法在区块链中置换区块。在得到前一个区块之前,下位区块无法被解开。前一个区块的指纹也是杂凑函数的引数之一。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将证明,设想一个较慢的攻击者试图赶上随后的区块,那么其成功概率将呈指数化递减。另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
如果有一台超级电脑,能够在区块解题中获胜?
即便是一台超级电脑,或者时几百上千台电脑也很难赢得解一个区块的胜利,因为竞争对手不是任一台电脑,而是整个比特币网络。你可以用买彩票来比拟。操作千百台电脑,如同买了千百张彩票一样。
51%攻击是指的什么
根据前面的例子,我们知道,要想有50%的概率领先其他人解题得到胜利,就需要掌握全网50%以上的算力。要连续领先他人解出区块,掌握的运算能力还需要高得多。所以区块链中的交易是受到数学竞赛所保护。恶意用户必须和整个网络较量。区块连接建立的结果,使得在支链越前方的交易越安全。恶意的用户必须在更长的时间赢过全网络,来达成重复支付,替换前面的区块链。所以,系统只有支端末尾易受到重复支付攻击。这也是为什么系统建议多等几个区块,才能确认收款成功。
个人博客:https://dreamerjonson.com/
Ⅳ 区块链的作用和特点是什么
1.任何节点都可以创建交易,在经过一段时间的确认之后,就可以合理地确认该交易是否为有效,区块链可有效地防止双花问题的发生。
2.对于试图重写或者修改交易记录而言,它的成本是非常高的。
3.区块链实现了两种记录:交易(transactions)以及区块(blocks)。交易是被存储在区块链上的实际数据,而区块则是记录确认某些交易是在何时,以及以何种顺序成为区块链数据库的一部分。交易是由参与者在正常过程中使用系统所创建的(在加密数字货币的例子中,一笔交易是由bob将代币发送给alice所创建的),而区块则是由我们称之为矿工(miners)的单位负责创建。
Ⅵ 区块链有多重要
区块链以其精巧的设计理念和思维,能够推进经济 社会 相关领域规则体系重构,改变人与人、人与组织、组织与组织之间的协作关系和利益分配机制;同时区块链技术能够有效解决“双花问题”,即避免同一笔数字资产因不当操作被重复使用的情况。
这为解决数字资产确权和交易流通提供了解决方案,可以突破制约数字发展的数字资产确权和双花等问题,构建形成适应数字经济发展的新型生产关系,这成为区块链技术最重要的价值所在。
01 减少交易中间环节,促进降本增效
经济 社会 生活各个领域存在大量寻租性中介组织,其中一些组织并不创造真实价值,而是仅仅通过对业务信息或数据的垄断谋取利益,人为增加了不必要的交易环节和成本。
通过区块链的创新应用,可以构建基于技术的经济行为自组织机制来代替部分中介机构的业务作用,可以大幅提升数据获取、共识形成、记账对账、价值传递的效率,进一步打通上下游产业链,大幅减少不必要的中介组织和中间环节,提升各行业供需有效对接效率,为 社会 公众和商事主体减负松绑,促进实体经济降本增效。
02 助力数字资产确权,激发创新活力
在数字经济时代,数据资源正变得越来越重要。2019年,我国已经正式将数据作为同劳动、资本、土地、知识、技术、管理同等重要的七大生产要素之一,推进建立数据要素市场制度。
但由于数据确权难、追溯难、利益分成难,数据还无法实现市场化高效配置和有序流通,严重制约数字经济的发展。
基于区块链的分布式、不可篡改、可追溯、透明性、多方维护、交叉验证等特性,数据权属可以被有效界定,数据流通能够被追踪监管、数据收益能够被合理分享,为数据生产要素及其他数字资产的高效市场化配置扫除障碍,有望扭转当下数据拥有、使用和利益分配日趋集中化的趋势,推动整个 社会 和数字经济向着更加可信、共享、均衡的方向发展,进一步释放数字经济创新活力。
03 缩短了信任的距离,拓展协作空间
人类近代生活方式的改变与进步,无不与科学技术的发展有着直接的关系。 科技 革命总是辩证地在扩展人类活动疆域的同时缩短彼此的距离。每一次重大的 科技 变革总是伴随着某种意义上“距离”坍塌,从而为人们带来了便利。
例如,交通工具的发明拓展了人类的活动半径缩短了人们地理上的距离;通信工具的发明拓展了人类的“对话”半径缩短了物理上的距离;互联网的发明拓展了人类获取信息的半径缩短了信息的距离;人工智能的发明拓展了认知的半径缩短了认知世界的距离。
区块链缩短信任的距离
如今,区块链为我们带来了一次新的半径拓展。区块链可以不依托权威中心和市场环境形成基于密码算法的信任机制,使得远隔万里、从未谋面乃至永不会谋面的陌生人能够建立信任关系,拓展了人类信任的半径,从而使得陌生人合作成为可能。
尤其是在一些市场机制不健全、信用体系缺失的地区和领域,区块链技术的价值更显珍贵。区块链技术使得陌生主体之间能够建立基于技术约束的生产关系,使得在陌生环境下开展商业合作成为可能,有望激发出一系列新的业务模式。
04 驱动互联网革命,加快价值传递
21世纪的头20年,人类 社会 经历了互联网的全面洗礼和再造,“互联网+”使得相关行业领域产生了天翻地覆的变化,人们的生活因互联网而更加便捷,经济活动因互联网而更加活跃, 社会 因互联网而更加公平开放。
然而,互联网主要解决的是信息的传播问题,信息内容的真假还难以判断,数字资产的转移还存在很多制约障碍。互联网在带来巨大便利的同时,也充斥着越来越多的虚假信息,甚至成为各种新型欺诈行为的温床,人们在越来越依赖互联网的同时,也越来越戒备互联网。
基于区块链技术可以构建基于技术约束的下一代可信任互联网,解决传统互联网的陌生人信任问题,将会让数字资产在互联网上高效地流通。基于区块链技术可以有效保护互联网上的数字资产和知识产权,人与人之间进行资产交易会如同发邮件一样便捷,人们会因为区块链技术的创新而对高度依赖的互联网放下戒备之心,互联网将诞生更多有价值的应用。
05 强化诚信体系约束,净化市场环境
区块链是构建信任的机器。通过推动区块链和实体经济深度融合,可打造便捷高效、公平竞争、稳定透明的市场环境。区块链技术不可篡改、可追索的技术特征可在市场机制不完善和诚信体系不健全的地区和领域发挥十分重要的信任机制创新作用。
在传统模式下,市场监管的工作量大、执行难度高,由于行政执法资源及监管手段的不足,被 社会 大众广为痛恨的老赖现象、假货现象、欺诈行为屡禁不止、难以杜绝。
区块链技术可形成无须中介机构和法律法规为前提条件的自组织和自监管机制,其分布式账本的不可篡改、不可抵赖、不可操控性事实上起到了对各类经济行为进行技术监管的作用。
这有利于解决中小企业贷款融资难、银行风控难等问题;通过全程记录商品生产和交易流通过程,大幅降低假冒伪劣、以次充好等各类市场欺诈行为,解决市场监管难等问题。
【本文来源于人民出版社出版的《信息化领域前沿热点技术通俗读本》】
Ⅶ ‘双花’攻击
什么是双花?
“双花”,即一笔钱被花了两次或者两次以上,也叫“双重支付”。通俗的理解,“双花攻击”(double spend attack)又叫“双重消费攻击”,即同一笔资金,通过某种方式被花费了两次,取得了超过该笔资金的服务。
在数字货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况。
双花是如何发生的?
众所周知,区块链节点始终都将最长的链条视为正确的链条,并持续工作和延长它。如果有两个节点同时广播不同版本的新区块,那么将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。等到下一个工作量证明被发现,其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营。
双花简单说就是花两次。双花是如何实现的呢?分为两种情况:
(1)在确认前的双花。零确认的交易本来就可能最后没有写入区块链。除非小额,最好至少等确认即可规避此类双花。
(2)在确认后的双花。这就要控制超50%算力才能实施。即类似于一个小分叉,将给一个商店的交易放入孤立区块中。这种确认后双花,很难实施,只是理论上可行。
双花攻击案例
2018年曾经发生了比特币黄金(BTG)的双花攻击。BTG当时是全球第27大加密货币,流通市值为50亿人民币。2018年5月16日以来,攻击者对BTG网络成功实施了双花攻击,谋取了超过38.8万的BTG的暴利。
攻击者控制BTG网络上51%以上的算力,控制算力期间,把一定数量的BTG发给自己在交易所的钱包,这条分支我们命名为分支A。同时,又把这些BTG发给另一个自己控制的钱包,这条分支我们命名为分支B。分支A上的交易被确认后,攻击者立马卖掉BTG,拿到现金。随后,攻击者在分支B上进行挖矿,由于其控制了51%以上的算力,很快分支B的长度就超过了分支A的长度,分支B就会成为主链,分支A上的交易就会被回滚恢复到上一次的状态。攻击者之前换成现金的那些BTG又回到了自己手里,这些BTG就是交易所的损失。这样,攻击者就凭借50%以上的算力控制,实现了同一笔加密货币的“双花”。