一樣是來自從自學區塊鏈到專家課程。
雙重支付又稱一幣多付、雙花攻擊。
簡單來說,
就是你明明只有100元,
卻利用電子支付沒有立即實體的特點,
將這個100重複交易一次、兩次或三次,
結果獲得了三個價值100元的商品。
這個手法要成功,
首先你需要有過半的算力,
大概的過程如下:
你在區塊一上有100元的紀錄,
然後你用100元做交易,
記錄在區塊二。
假設對方馬上就支付你商品,
記錄在區塊三。
在交易成功後,
你又基於區塊一的資料做交易,
並記錄在區塊四,
別接著以你的算力挖到了區塊五跟區塊六。
交易的對象可能會基於你的區塊五跟六,
認為你前面的一跟四也沒問題(區塊鏈的不可篡改及資料背書),
因此在區塊七放心跟你交易。
這時你的交易有兩筆,
分別是從區塊二和區塊四延伸出來的兩條分支。
但由於你的算力優勢,
可以使區塊四那條成為最長的鍊,
使另一條區塊二的效力失效。
結果就是你拿到了商品,
但紀錄了你的付款紀錄的那條鏈卻失效了,
拿了東西卻不用付錢。
為了預防這件事,
一般不會在下一個區塊馬上交貨,
而是會等六個區塊之後,
訊息穩定了再交貨。
自私挖礦則像是在玩牌的時候把排偷藏起來,
就是當你挖到區塊時不馬上公布,
等到其他人挖到和你一樣長度的區塊時才公布,
讓其他人的區塊失效,
而你永遠留一手保持領先,
讓自己可以獲得獎勵。
參考資料:
https://zh.wikipedia.org/wiki/雙重支付
https://medium.com/cobinhood-中文報/雙重支付-區塊鏈的安全性-聽聽工程師怎麼說-e8dadf475af2
https://bitnance.vip/news/7328b80a-2e20-4027-baef-8cbf0290d0a7
https://blockcast.it/2018/05/23/japanese-crypto-monacoin-attack-by-selfish-mining-attack/
https://codertw.com/程式語言/590480/