什麼是雙重支付(Double-Spending )?

雙重支付是指將同一種加密貨幣或區塊鏈代幣花費多次。加密貨幣是一種在分佈式帳本上代表價值的代幣,如果沒有適當的機制,修改帳本條目並將已花費的金額返回給自己會非常容易。

雙重支付不僅限於加密貨幣,它是所有區塊鏈設計中的一個問題。以下是更多關於這個問題的資訊,以及如何防止成為受害者的一些步驟。

關鍵要點

  • 雙重支付是指重複花費同一代幣的能力。
  • 雙重支付是一種加密貨幣和代幣的特徵,其中帳本條目被惡意篡改。
  • 比特幣和其他區塊鏈使用的工作量證明機制、加密方法和分布式共識技術防止了雙重支付。
  • 以太坊和其他區塊鏈使用權益證明、加密和分布式共識來防止雙重支付。

理解雙重支付

在比特幣問世之前,加密貨幣和區塊鏈已經開發了多年。它們之所以沒有成功運作,其中一個原因是需要解決一個問題:用戶可以更改分佈式帳本上的資訊,將已花費的代幣返回給自己。

這是任何數字貨幣系統中的一個弱點,這也是為什麼傳統上要涉及第三方審計員。這些審計員必須花費時間來驗證各方之間的交易和金額,這意味著金錢。為了使這個系統運作,所有參與方之間必須有信任,審計員、帳本維護者或其他方不會更改條目以利自己或他人。

防止雙重支付

中本聰提出的解決方案,包括時間戳交易並使用加密技術將它們鏈接在一起,解決了雙重支付問題。然而,為使這個解決方案奏效,需要一個大型且快速的分布式網絡來防止有意篡改交易的行為。流行的加密貨幣如比特幣和以太坊足夠大,可以防止針對網絡的雙重支付攻擊,但個人仍應謹慎。

使用或投資加密貨幣的人應確保不接受未確認的交易。由於對這些嘗試的認識,許多錢包創建者編程錢包,使其不允許接受未確認的交易。然而,最好檢查並確保你的錢包顯示這些資訊或防止你接受它們。

雙重支付攻擊

區塊鏈面臨的最顯著的雙重支付風險是51%攻擊,這可以發生在一個實體控制了網絡上超過50%的算力或驗證機制時。

如果這個用戶或多個用戶佔據了大部分的網絡、股份或使用的任何其他機制,他們將能夠決定交易共識並控制貨幣的分配。新成立或分叉的加密貨幣具有較小的網絡,更容易受到這種攻擊。在例如比特幣這樣的加密貨幣網絡中,由於網絡參與者的數量和網絡運行速度,這種情況是非常不可能發生的。

以太坊使用的是一個賭注機制,只有將大量以太幣鎖定在智能合約中的用戶才能成為驗證者並提出區塊。要嘗試這種攻擊,某個群體或實體將需要控制網絡上超過50%的賭注以太幣,這是一個非常昂貴的努力,因為需要32個ETH(在2024年5月15日的價格約為95,200美元)來建立一個節點,並且還有一個機制會燒毀不誠實驗證者的代幣。

競爭攻擊

競爭攻擊,也稱為未確認交易攻擊,是指惡意用戶嘗試發送兩個快速交易,一個給收件人,另一個給區塊鏈。給收件人的那筆交易可能會將代幣轉移給他們,但發送到網絡的交易會將其保留在發送者的名字下。這是利用網絡延遲,確保發送者的交易首先被確認。

這很容易通過不接受未確認的交易來防止。

芬尼攻擊

芬尼攻擊以指出該弱點的開發者Hal Finney命名,是一種未確認交易攻擊。然而,這種攻擊需要礦工創建一個區塊,並將一筆金額送到他們擁有的兩個地址中。在同一個區塊中,另一筆交易則發送給另一方。如果收件人在區塊鏈確認之前接受了這筆交易,發送者基本上可以返回已發送的金額並再次花費。

在大型區塊鏈上這種攻擊非常罕見,但可以通過不接受未確認交易或使用不讓你接受它們的錢包來預防。

女巫攻擊

女巫攻擊是指建立多個節點以嘗試獲得對網絡的影響力。這聽起來像是51%攻擊,但規模較小。女巫攻擊可以看作是51%攻擊的前兆。

雙重支付是否合法?

雙重支付是否合法取決於具體情況。對於具有市場價值的加密貨幣來說,這是非法的,因為這是在進行欺詐。

然而,雙重支付不僅限於加密貨幣。例如,想像一個遊戲社區創建了一個區塊鏈來促進其投票流程,其中每個區塊鏈代幣代表一票。這個代幣沒有貨幣價值,也不是加密貨幣。

遊戲者們想舉辦一個活動,但對於在哪裡舉行存在分歧。投票似乎是解決分歧的最佳方法,所以他們進行了投票。如果有人發起了一次雙重支付攻擊並更改了人們的投票,那麼這些成員的代幣將被重複使用,結果將不代表真實的投票結果。這通常不是非法的,但在遊戲社區內是不道德的,並且可能違反了他們的成員條款。

雙重支付的意義是什麼?

雙重支付是指重複使用同一數字貨幣或代幣的行為。

雙重支付問題的示例是什麼?

雙重支付是指更改區塊鏈或分布式帳本上的交易,使已花費的代幣可以再次花費。

比特幣如何解決雙重支付問題?

中本聰的比特幣解決方案是使用加密算法、分佈式共識、工作量證明來驗證交易,以及在大型、快速網絡上使用時間戳。

總結

雙重支付攻擊是一種改變區塊鏈操作方式,允許攻擊者多次使用代幣的行為。它通常被認為是加密貨幣的問題,但它可以發生在區塊鏈和分佈式帳本上。

用戶可以通過不接受未確認的交易來防止雙重支付攻擊。小型網絡容易受到雙重支付攻擊,因此最好使用具有較大網絡的加密貨幣和區塊鏈。