首页 百科 查看内容(róng)
  • 24022
  • 0
  • 分享(xiǎng)到

什么是区块链,如何简单易懂地介绍区块链?

2018-2-26 09:38

来源: 云心区块链

比特币(bì)的(de)双(shuāng)花问题

十、双花问题

这个漏洞就是双花,double spending,不是double flower。

既然有人在(zài)抢着记账、记好的账本又(yòu)不能篡(cuàn)改,我(wǒ)们还可(kě)以(yǐ)验证每(měi)条消息的真伪(wěi),这(zhè)似乎很完(wán)美了啊(ā),但为何还(hái)有什么double spending呢?我们举例说明之。

比如我(wǒ)只有5个比特币,我先向老张(zhāng)转账5btc,同时(shí)再向老赵转账5btc。这(zhè)就(jiù)是(shì)双花,我把5个(gè)比特币(bì)化了(le)两次。这就是所(suǒ)谓的双花问(wèn)题,这是一种诈骗行为,如何预防?

正(zhèng)常情况下,一(yī)定是(shì)先有(yǒu)一条信息被大家打包,然后第(dì)二条信息由于与(yǔ)第(dì)一条信息冲突而无效。但是,我如果是同时双花的,也就是一边(biān)广播:我向老张转(zhuǎn)账5btc,与(yǔ)此(cǐ)同时又(yòu)广播:我(wǒ)向老赵转账5btc。这样,就会有(yǒu)两(liǎng)个矿工分别打(dǎ)包了这两笔记(jì)录,这就叫做(zuò)分叉,即(jí)同时有两个(gè)区块生成(chéng)了。如果要真是如此,大家都去双花了,5个比(bǐ)特币(bì)能化两次5个(gè)比特币,岂(qǐ)不就乱套了,比特币系统成(chéng)了骗子(zǐ)横(héng)行的世界(jiè)了。

比特币的规则(zé)是只有(yǒu)最长的(de)区块(kuài)链得(dé)到确认,最长的区块链(liàn)才会有挖矿(kuàng)奖励。所以正常(cháng)大家都会切换(huàn)到长链上挖矿而将短链废(fèi)弃掉,这样就会有一笔(bǐ)交易作废了。所(suǒ)以(yǐ)一般转账之(zhī)后比特(tè)币(bì)网络建议(yì)大家等(děng)到(dào)一个区块确认了,此时再发货就比较安全。

我们再以Alice给(gěi)Bob转账来(lái)说明。假设Alice只(zhī)有(yǒu)5个比特币,但她(tā)有两个地址(zhǐ),地址(zhǐ)1和地址2,她先(xiān)用地(dì)址1向Bob支付5个比特币去购买一杯咖啡,与此同时(shí),Alice又用地址1给自己(jǐ)的地址2转账了(le)这(zhè)五个比特币,必须注意,一(yī)定是同时、非(fēi)常的同时。如果(guǒ)Alice得(dé)逞了,她(tā)就等于(yú)白喝了一杯咖啡。她可以(yǐ)得逞吗?假设Alice是很强,她能让这两笔交易同时打包在两个(gè)区块,Bob看(kàn)到一(yī)个区块确(què)认了,就(jiù)给发(fā)送咖(kā)啡了。这时(shí)候,Alice为了让Bob这笔转账(zhàng)失效,就必须让包含转账给自己地(dì)址那条(tiáo)交易记录的区块成(chéng)为主链,那么她就要在那个区(qū)块后面不断的生成区块使这条链越来(lái)越长。Alice要实(shí)现双花,其实很不(bú)容易,她必须要实(shí)现双(shuāng)花所形成的两个(gè)链条都不(bú)废掉,一直(zhí)要坚持到拿到Bob的咖(kā)啡为止。因为任何有一条(tiáo)区块链废了、就意(yì)味着双花也就不存在了。比如给自己(jǐ)转账的那条链失效了,那就意味这(zhè)Alice真(zhēn)就正(zhèng)转(zhuǎn)账给Bob了。如(rú)果给Bob转账的那条链接废了,Bob没(méi)收到btc也就不会提供服务、不会给Alice发送咖啡。所以Alice策略应(yīng)该是先让Bob那条链成(chéng)为主链,这(zhè)样Bob就(jiù)发(fā)货了;Alice一看Bob发(fā)货(huò),于是开始努力加长给自己转账的那条链,一旦链条长度超过了Bob那条链,给自己(jǐ)转账的就成了主链,从而废掉了Bob那条链,这意味着Bob的(de)交易记录作废,也(yě)就(jiù)是Bob最终没有拿到比(bǐ)特币。

Bob若(ruò)想万无一失,就不(bú)能急着(zhe)发货(huò),要等到自己(jǐ)的链条足(zú)够长的时候才发货。一般来说再等上六个(gè)区块的(de)形(xíng)成,就已经很保险了。Alice想废(fèi)掉已(yǐ)经又加(jiā)长了(le)六(liù)个区块的(de)长(zhǎng)链,就必须自己加长自己的短链,来超越那个长链。为什么非(fēi)要自己加上呢?因(yīn)为(wéi)矿工都(dōu)会在长链上挖(wā)矿(kuàng),只有最长的区块(kuài)链才能得到确认,才会有挖矿奖励。Alice要凭一己之力,让(ràng)自己的短链超过(guò)长链,有肯能吗?nothing is impossible。双花(huā)is possible,但前提(tí)是Alice的计算能(néng)力强大无(wú)比,因为(wéi)区块(kuài)由(yóu)谁所生成,决(jué)定于(yú)谁最先算出Hash值(zhí),也就是要决定于算力——计算的(de)能力。

如果Alice掌握了(le)全网51%的算力,那么她(tā)有51%的概率抢夺到下一个区块的(de)记(jì)账权(quán),当她在对自己有利的那(nà)个区块后(hòu)继续生成区块的(de)时(shí)候,她就会让Bob收不到那5个(gè)btc,这就是所谓(wèi)的“51%攻击”。这似乎是(shì)可行的?但是,Bob听了(le)我(wǒ)们(men)的节目,他(tā)变聪明(míng)了,他(tā)不是等一个区块(kuài)就发货,而是(shì)等了六个区(qū)块的确认(rèn)才发货(huò),因为已(yǐ)经生(shēng)成了(le)六(liù)个(gè)区(qū)块,那这一(yī)定是主(zhǔ)链,关键(jiàn)是(shì)矿工也都相信这是主链,所以(yǐ)都会在这个(gè)链上继续挖矿来获得奖励。

Alice为了使Bob的这笔转账失效,她必须在(zài)对自己有(yǒu)利的那个链上连续生(shēng)成区块而且赶上主链。与全网斗(dòu)争(zhēng)抢夺记账权(quán)连续(xù)六次,如果(guǒ)算力一般这几乎不可能,如(rú)果算(suàn)力超强倒是有(yǒu)可能实现。不过如果(guǒ)Alice只为了喝一(yī)杯咖啡就如此消(xiāo)耗(hào)巨额算力成(chéng)本似乎不(bú)值得(dé)。可能发动双花攻击的原(yuán)因是大额转(zhuǎn)账(zhàng),但是我们可以发现,只要区块链越(yuè)靠后,安全(quán)性(xìng)越高,比如我等这个区(qū)块链确认了10次,那(nà)么想要追上主链就必须连续(xù)抢夺十次记账权,这个难度是(shì)几何级(jí)数(shù)上(shàng)升(shēng)的。一般而(ér)言(yán)六次就(jiù)已经很安全(quán)了,所以比特币系统(tǒng)也认为一笔交易如果确认了六次就算有效了。由于每一个(gè)区块是十(shí)分(fèn)钟生成,确认六个区块也就是一个小时,相比于普通几(jǐ)秒到账的银行转账,这(zhè)个确实(shí)慢了好多。

我们对(duì)双花问题再说一遍。Alice先有(yǒu)目的的向网络两边(biān)散布两条交易记录(当(dāng)然是网络(luò)拓(tuò)扑结构的(de)两边(biān)而不是(shì)地理结构的两(liǎng)边),当(dāng)两个(gè)区块(kuài)2与2a都形成(chéng)了以后,Bob觉得交易记(jì)录被确认,开(kāi)始发货,此时Alice为了让(ràng)这条信息失效,必须在对自己转(zhuǎn)账的那个链上开始抢夺记账权力(lì),每一个区块的生(shēng)成必须基(jī)于上一个(gè)区块的hash值(zhí)(回顾一下抢夺记账权力就是(shì)暴力尝试随机(jī)数算出复合(hé)规律(lǜ)的hash值(zhí)),所以Alice就要连(lián)续抢(qiǎng)夺若干次(cì)直到对她有利的这条链成为主链,使得向(xiàng)Bob转账的链条成为短(duǎn)链,所有短链上的交易(yì)信息返回待打包(bāo)的(de)池(chí)子,挖矿挖出(chū)的(de)比特币也会返回,也就是(shì)吃进(jìn)去的比特(tè)币再(zài)要吐(tǔ)出来。也就是说,一旦对Alice获得了(le)coffee,然后(hòu)又(yòu)将对(duì)自(zì)己有利的(de)链条长度、超过向Bob转账的链条,那么(me)Bob所获(huò)得的5btc就(jiù)会被收回,也(yě)即(jí)是这个交易记录作废了(le)因为比特币规(guī)则只对最(zuì)长链挖矿有奖励(lì)。

但是如果Bob等了六个区块后、依然处于长链状(zhuàng)态,然(rán)后再发货(huò)就没有(yǒu)问题了,因为(wéi)全(quán)网(wǎng)算力(lì)都会集(jí)中在长链,一旦长链至少有6个区(qū)块的领先,Alice再(zài)想要追赶(gǎn)这个长链、以便让这些(xiē)交易(yì)记录作废就会非常非常难。即便Alice神(shén)通广(guǎng)大到掌握了全(quán)网51%的(de)算力,抢夺记账权的几率就(jiù)是51%,连续六次都(dōu)成功的概率就是(shì)0.51^6=1.7%,这(zhè)就是所谓51%攻击,如果仅(jǐn)仅(jǐn)掌(zhǎng)握三成算(suàn)力,那么这个概率就是(shì)0.07%了。


bsports-b(中国)一站式体育服务官方网站
版权申明(míng):本内容来(lái)自于互(hù)联(lián)网,属第三方汇集推荐平(píng)台。本文的版权(quán)归(guī)原作者(zhě)所有,文章言(yán)论不代表链门(mén)户(hù)的观(guān)点,链门户不承(chéng)担任何法律责任(rèn)。如有侵权请联系QQ:3341927519进(jìn)行反馈。
相关新闻
发表评(píng)论

请(qǐng)先 注册/登录 后参(cān)与评(píng)论

    回顶部

    bsports-b(中国)一站式体育服务官方网站

    bsports-b(中国)一站式体育服务官方网站