要點總結
雙重支付是在數字現金系統中可能出現的缺陷,其中相同的資金同時發送給兩個接收者,從而破壞支付網絡的完整性。
集中系統通過依賴可信的中介來驗證每筆交易,從而防止雙重支付,但這會造成單點故障。
比特幣通過區塊鏈技術、工作量證明共識和一個確認系統以去中心化的方式解決了雙重支付問題,使得逆轉交易的成本極高。
等待多個區塊確認(通常對於高價值支付要求六次確認)仍然是防止雙重支付嘗試的最有效保護措施之一。
介紹
當你將一張實體鈔票交給某人時,你就不再擁有它。然而,數字信息可以被複制。這一根本差異產生了一個被稱爲雙重支付問題的挑戰:如何防止某人重複花費同樣的數字貨幣?
比特幣是第一個在不依賴中央權威的情況下解決這一問題的系統。通過結合密碼學、分佈式賬本和經濟激勵,它確保一旦資金被花費,就無法再次使用。理解這一點對任何使用或構建點對點數字現金系統的人來說都是至關重要的。
什麼是雙重支付?
雙重支付是在數字現金系統中可能出現的一個問題,其中相同的資金同時發送給兩個接收者。如果沒有足夠的對策,一個沒有解決此問題的協議將被根本削弱,因爲用戶無法驗證他們收到的資金是否已經在其他地方被花費。
考慮一個簡單的例子:艾麗斯有10個數字代幣。她將所有10個代幣發送給鮑勃購買一件產品,然後立即將同樣的10個代幣發送給卡蘿爾購買另一件產品。如果該系統沒有機制來確定哪一筆交易有效,鮑勃和卡蘿爾都可能認爲他們收到了付款,而實際上只有一筆交易最終會被兌現。
爲了使數字貨幣正常運作,必須有機制防止用戶多次花費同一單位。
如何防止雙重支付?
集中式方法
最簡單的解決方案是使用可信的中介。中央權威(如銀行)維護一個賬本,並在批准每筆交易之前進行驗證。如果艾麗斯試圖將其資金髮送給鮑勃和卡蘿爾,銀行會處理第一個請求並拒絕第二個,因爲餘額已被花費。
大衛·喬姆在1982年提出了這樣一個系統(電子現金),使用盲簽名。在這個模型中,銀行發行用戶可以私下交換的數字簽名代幣。當接收者出示代幣進行贖回時,銀行會檢查該特定代幣是否已經被花費。
雖然有效地防止了雙重支付,但這種方法造成了單點故障。如果銀行離線、被攻擊或拒絕兌現代幣,整個系統將停止工作。
去中心化方法
確保資金無法在沒有中央權威的情況下雙重花費要困難得多。突破性進展來自中本聰在2008年發佈的比特幣白皮書,介紹了一種使用區塊鏈數據結構的去中心化解決方案。
網絡中的參與者(稱爲節點)運行軟件,與同伴同步他們的交易賬本副本。這意味着整個網絡可以審計所有自第一個區塊(創世區塊)以來的交易。由於賬本是公開可見的,因此試圖重複花費相同幣種的行爲很容易被檢測到。
當用戶廣播一筆交易時,它並不是立即最終的。它必須先通過挖礦被包含在一個區塊中。只有在一個區塊被確認並添加到鏈中後,該交易才被視爲已結算。每個後續的確認增加了一層安全性,使得逆轉的成本呈指數級上升。
接收者應在將付款視爲最終之前等待確認。對高價值交易的標準建議是六次確認(大約一個小時在比特幣上),這提供了強大的概率最終性。
比特幣中的雙重支付
比特幣經過精心設計,以防止在協議正常使用時發生雙重支付攻擊。一旦交易在區塊中被確認,逆轉它將需要“重新挖掘”從那一點起的區塊鏈,這在比特幣這麼大的網絡上需要不切實際的計算能力。
然而,有一些攻擊方法針對接受未確認(零確認)交易的方:
競賽攻擊:攻擊者幾乎同時廣播兩筆衝突交易。一筆支付給商家;另一筆將相同的幣發送回攻擊者自己的地址。只有一筆會被確認。如果商家在確認之前交付商品,他們就有可能失去這筆付款。
Finney攻擊:攻擊者預挖一個包含將幣發送到自己地址的交易的區塊。然後,他們在商家那裏花費這些相同的幣,並迅速廣播預挖的區塊,從而可能使商家的支付無效。
51%攻擊:如果某個實體控制了網絡超過一半的挖礦算力,他們可以比誠實網絡更快地構建私有鏈並重寫最近的交易歷史。在比特幣上,由於巨大的哈希算力,這在經濟上是不切實際的。
共同點:等待區塊確認的商家大大降低了成爲受害者的風險。
2026年的雙重支付風險
雙重支付威脅自比特幣早期以來已經演變。以下是2026年的局勢:
比特幣仍然高度抗擊風險
比特幣主鏈上沒有確認的雙重支付或51%攻擊。網絡的哈希率達到了歷史新高,使得攻擊的成本與任何現實利潤相比高出幾個數量級。偶爾的單塊重組在工作量證明系統中自然發生,並迅速解決,不會對用戶造成影響。
較小的工作量證明幣種仍然脆弱
哈希率低的山寨幣繼續遭受雙重支付攻擊。攻擊模式通常涉及廉價租用算力(來自聚合挖礦能力的服務),在交易所存入幣,兌換另一種資產,然後廣播一個排除了存款的私挖鏈。這些攻擊的成本從幾千到幾百萬美元不等,主要針對交易所。
交易所通過增加脆弱幣種的確認要求作出迴應,有時在信用存款之前要求幾十甚至幾百次確認。
權益證明提供了不同的模型
使用權益證明共識的網絡(如合併後的以太坊)提供的是加密經濟最終性,而不是概率性最終性。一旦區塊被確認,逆轉它將要求攻擊者犧牲大量質押資產,通過自動削減處罰。這使得深度的雙重支付對攻擊者在經濟上是毀滅性的,補充了工作量證明鏈使用的基於確認的方法。
現代防禦工具
除了等待確認之外,商家和交易所還使用複雜的工具,包括監測內存池中的衝突交易、實時風險評分可疑支付模式,以及根據交易價值和當前網絡狀況調整確認要求的自動掛起政策。
常見問題解答
雙重支付攻擊在比特幣上是否曾經成功過?
在比特幣主鏈上,沒有確認的、盈利的雙重支付攻擊曾經對等待標準確認的接收者成功執行過。成功的攻擊針對的是接受零確認(未確認)交易的商家。
我應該等待多少次確認?
對於小額的日常支付,一到三次確認通常足夠。對於高價值交易或風險較高的情況,六次確認(大約一個小時)是廣泛接受的標準。一些處理非常大金額的服務會等待更多確認。
在權益證明區塊鏈上會發生雙重支付嗎?
權益證明鏈使用最終性機制,使雙重支付極其昂貴。一旦區塊被確認,逆轉它將要求攻擊者控制一大部分總質押價值並接受鉅額削減處罰。儘管理論上並非不可能,但在設計良好、廣泛質押的網絡上經濟上是不可行的。
爲什麼一些交易所對某些幣種要求多次確認?
交易所根據幣種的安全特徵調整確認要求。哈希率低、集中挖礦或有重組攻擊歷史的幣種,可能在存款被記入之前要求50、100或更多次確認。這保護了交易所不吸收如果發生雙重支付反轉時的損失。
雙重支付問題是否僅限於加密貨幣?
該概念適用於任何將價值表示爲可能被複制的數據的數字現金系統。傳統數字銀行通過銀行維護的集中賬本來解決此問題。加密貨幣的創新是,無需信任任何單一機構,就能解決此問題。
總結思考
雙重支付問題一直是設計數字貨幣中最根本的挑戰之一。集中解決方案有效,但引入了信任依賴和單點故障。工作量證明和區塊鏈技術的突破使比特幣作爲一種強大的去中心化貨幣誕生,進而激發了數千個其他加密貨幣項目。
在實踐中,對於遵循最佳實踐的人,雙重支付仍然是最小風險:等待確認,避免將未確認交易視爲對有價值商品的最終支付,並使用實施現代監控工具的信譽良好的錢包和服務。
進一步閱讀
什麼是權益證明?
什麼是共識機制?
什麼是加密錢包?
什麼是密碼學?
區塊鏈交易費用是什麼?
免責聲明:本內容以“按現狀”方式提供,僅供一般信息和教育目的使用,不作任何形式的陳述或保證。它不應被解釋爲財務、法律或其他專業建議,也不意圖推薦購買任何特定產品或服務。您應尋求適當專業顧問的建議。如果內容由第三方貢獻,請注意所表達的觀點屬於第三方貢獻者,並不一定反映Binance Academy的觀點。數字資產價格可能會波動。您投資的價值可能會下跌或上漲,您可能無法收回投資的金額。您對投資決策負全責,Binance Academy對您可能遭受的任何損失不承擔責任。有關更多信息,請參見我們的使用條款、風險警告和Binance Academy條款。
