Doublespend

通過自己執行一個比特幣雙花交易來理解

  • July 30, 2019

每個人都在談論防止雙花交易,但是為了更好地了解攻擊者所涉及的步驟,如何對自己做一件事呢?

  • 進行雙花需要什麼?兩部手機執行同一個比特幣錢包?
  • 你們是在同一時間發送嗎?
  • 發送到多個地址時是否會隨機發生雙花?
  • 某些不等待第一次確認的線上服務如何繼續營業?難道不是每個攻擊者都想欺騙這種無確認服務嗎?
  • 除了等待 1 確認之外,企業還可以使用哪些預防措施來防止雙花。

如何雙花

你可以很容易地使用 Electrum 雙花。即使不複製您的錢包,也可以在同一台或兩台不同的機器上。順便說一句:使用 Electrum 複製錢包非常容易。

只是去Tools → Preferences → Transactions檢查View transaction before signing

關閉設置,轉到“發送”選項卡,然後輸入您要支付的第一個地址和要發送的金額。點擊“發送…”。

標題為“交易”的視窗打開。點擊“簽名”按鈕。這將要求您輸入密碼以簽署交易,但尚未發送。

請注意,在我的螢幕截圖中,發送的金額為 0。這是因為 Electrum 注意到我使用了同一個錢包的地址。它實際上仍會將交易發送出去,其中一項交易(可能)會發生,但它會告訴您您沒有向其他人匯款。如果您希望這有所不同,請創建第二個 Electrum 錢包來匯款。付錢給別人時不要雙花。

按下按鈕後,生成交易ID,“簽名”按鈕消失,出現“廣播”按鈕。不要已經點擊該按鈕。

相反,返回主視窗並輸入您要發送到的第二個地址。留下金額發送相同。

因為硬幣選擇(如果你同時沒有改變它,當然;-))和數量保持不變,當你按下“發送”時,會選擇相同的 UTXO。您可以通過確保輸入相同來驗證這一點。也簽署此交易。

您現在有 2 筆交易花費相同的 UTXO:

然後,快速廣播兩個交易。

您發送的地址是屬於同一個錢包還是不同的錢包都沒有關係。

或者,您可以通過簡單地複制您的錢封包件(預設情況下儲存在錢包中~/.electrum/wallets或使用您的種子恢復錢包(即使您仍然擁有它))來複製您的錢包。當然,可以在不同的設備上使用相同的錢包,也。

雙花是偶然發生的嗎?

錢包通常會盡量不要兩次花費相同的 UTXO,因為當你不玩它時,它只會造成麻煩。

如果您在 PC 和智能手機上使用同一個錢包,當然,您可能會意外花費相同的 UTXO 兩次,因為您進行第一筆交易的設備沒有立即廣播它或您的設備進行第二筆交易時,您在進行第二筆交易時不知道第一筆交易。

接受未確認交易的線上服務如何繼續經營?

在沒有顧客先付款的情況下提供食物的餐館如何繼續營業將是一個更好的問題。

如果你在網上買東西,它通常是送到你家的東西,或者至少連接到你計劃使用的帳戶。您有利益不欺騙提供您使用的服務的人員或公司,因為您不希望因不支付您訂購的商品或關閉您的帳戶而被起訴。

在餐館的情況下,人們通常覺得有道德義務為他們消費的更多的東西買單,而不是害怕被抓,因為後者發生的可能性很小。餐館不能起訴你,因為他們不知道你的名字或地址,而且他們也不能關閉包含對你有價值的東西的帳戶。

此外,所有通過直接借記接受付款的線上服務是怎麼回事?他們怎麼知道您甚至是該帳戶的所有者?他們沒有,他們只是希望。如果他們要求您付款的地址有未經確認的交易,他們至少知道付款是由擁有其使用的資金的人授權的,並且不會與其他人和他們的銀行發生麻煩。

檢測雙重支出

企業無法避免它,因為他們沒有權力控制它的發生。但他們可以檢測到它。如果在相對較短的時間內出現與他們第一次收到的資金相同的第二筆交易,他們可以根本不處理訂單,並且只有在向他們發送足夠資金的交易有 3 次確認時才會處理該訂單。如果有人試圖欺騙企業,讓他們比平時多等一會兒是公平的。如果是意外發生的雙花,後果還不錯,所以沒有人真正受到重大傷害。

引用自:https://bitcoin.stackexchange.com/questions/50375