什么是雙花猜欺?
“雙花”位隶,即一筆錢被花了兩次或者兩次以上,也叫“雙重支付”开皿。通俗的理解涧黄,“雙花攻擊”(double spend attack)又叫“雙重消費(fèi)攻擊”,即同一筆資金赋荆,通過某種方式被花費(fèi)了兩次笋妥,取得了超過該筆資金的服務(wù)。
在數(shù)字貨幣系統(tǒng)中窄潭,由于數(shù)據(jù)的可復(fù)制性春宣,使得系統(tǒng)可能存在同一筆數(shù)字資產(chǎn)因不當(dāng)操作被重復(fù)使用的情況。
雙花是如何發(fā)生的嫉你?
眾所周知月帝,區(qū)塊鏈節(jié)點(diǎn)始終都將最長的鏈條視為正確的鏈條,并持續(xù)工作和延長它幽污。如果有兩個節(jié)點(diǎn)同時廣播不同版本的新區(qū)塊嚷辅,那么將在率先收到的區(qū)塊基礎(chǔ)上進(jìn)行工作,但也會保留另外一個鏈條距误,以防后者變成最長的鏈條簸搞。等到下一個工作量證明被發(fā)現(xiàn),其中的一條鏈條被證實(shí)為是較長的一條深寥,那么在另一條分支鏈條上工作的節(jié)點(diǎn)將轉(zhuǎn)換陣營攘乒。
雙花簡單說就是花兩次。雙花是如何實(shí)現(xiàn)的呢惋鹅?分為兩種情況:
(1)在確認(rèn)前的雙花则酝。零確認(rèn)的交易本來就可能最后沒有寫入?yún)^(qū)塊鏈。除非小額闰集,最好至少等確認(rèn)即可規(guī)避此類雙花沽讹。
(2)在確認(rèn)后的雙花。這就要控制超50%算力才能實(shí)施武鲁。即類似于一個小分叉爽雄,將給一個商店的交易放入孤立區(qū)塊中。這種確認(rèn)后雙花沐鼠,很難實(shí)施挚瘟,只是理論上可行叹谁。
雙花攻擊案例
2018年曾經(jīng)發(fā)生了比特幣黃金(BTG)的雙花攻擊。BTG當(dāng)時是全球第27大加密貨幣乘盖,流通市值為50億人民幣焰檩。2018年5月16日以來,攻擊者對BTG網(wǎng)絡(luò)成功實(shí)施了雙花攻擊订框,謀取了超過38.8萬的BTG的暴利析苫。
攻擊者控制BTG網(wǎng)絡(luò)上51%以上的算力,控制算力期間穿扳,把一定數(shù)量的BTG發(fā)給自己在交易所的錢包衩侥,這條分支我們命名為分支A。同時矛物,又把這些BTG發(fā)給另一個自己控制的錢包茫死,這條分支我們命名為分支B。分支A上的交易被確認(rèn)后履羞,攻擊者立馬賣掉BTG璧榄,拿到現(xiàn)金。隨后吧雹,攻擊者在分支B上進(jìn)行挖礦骨杂,由于其控制了51%以上的算力,很快分支B的長度就超過了分支A的長度雄卷,分支B就會成為主鏈搓蚪,分支A上的交易就會被回滾恢復(fù)到上一次的狀態(tài)。攻擊者之前換成現(xiàn)金的那些BTG又回到了自己手里丁鹉,這些BTG就是交易所的損失妒潭。這樣,攻擊者就憑借50%以上的算力控制揣钦,實(shí)現(xiàn)了同一筆加密貨幣的“雙花”雳灾。