雙花攻擊
雙花攻擊(又稱一幣多付、雙重支付,double-spending)是同一筆數字貨幣可以被重複花用兩次或更多次的情形,是一種數字貨幣失敗模式的構想。因為數字貨幣是採取電子文件的類型,而電子文件可被複製,所以花用數字貨幣,能造成不從原持有者扣除已花用的金額,卻能支付「購買」商品與服務的消費的現象,這將憑空多出已支付但未扣除的金額,或是使收款者憑空收到多重支付的金額,此現象讓整體的數字貨幣流通量增加,造成「通貨膨脹」而導致數字貨幣貶值,從而不再讓人信任並願意持有及流通。任何數字貨幣都有防止雙重支付的措施[1]。
這是一個貨幣設計問題:一種良好的貨幣應具有可驗證的稀缺性,而當一個價值單位可以被多次使用時,這種貨幣的稀缺性屬性就會受到挑戰。與假幣一樣,這種雙重支付通過創造出之前不存在的複製貨幣導致了通貨膨脹。像所有越來越豐富的資源一樣,這會使貨幣相對於其他貨幣單位或商品貶值,並削弱用戶的信任以及貨幣的流通和留存。為了在交易中防止雙花攻擊,同時保留匿名性,基本的密碼學技術包括引入權威機構(因此帶來中心化)進行盲簽名,以及特別是在離線系統中使用秘密分割技術。
中心化數字貨幣[編輯 | 編輯原始碼]
防止雙重支付通常通過一個在線的中心化可信第三方實現,該第三方可以驗證某個代幣是否已被使用。然而,從可用性和信任的角度來看,這通常構成了一個單點失效的風險。
去中心化數字貨幣[編輯 | 編輯原始碼]
在去中心化系統中,解決雙重支付問題要困難得多。為了避免依賴可信的第三方,許多伺服器必須存儲一份相同的、實時更新的公共交易賬本。但由於交易(花費貨幣的請求)是廣播的,它們到達每台伺服器的時間會略有不同。如果兩筆交易試圖花費同一個代幣,每台伺服器會將其首先接收到的交易視為有效,而將另一筆交易視為無效。一旦伺服器之間出現分歧,由於每台伺服器的觀察結果被視為同樣有效,就無法確定真正的餘額。
大多數去中心化系統通過共識算法解決這個問題,這是一種讓伺服器重新同步的方法。兩種重要的共識機制是工作量證明(Proof-of-Work,PoW)和權益證明(Proof-of-Stake,PoS)。
到2007年,已經提出了一些用於防止雙重支付的分佈式系統。
比特幣(Bitcoin)在2009年初實施了一種解決方案。其加密協議採用了工作量證明的共識機制,將交易分批打包成區塊,並通過哈希指針鍊表(區塊鏈)將這些區塊連接在一起。任何伺服器都可以通過解決一個計算難題(具體來說是找到部分哈希碰撞)來生成一個區塊,這個過程被稱為「挖礦」。區塊記錄了比特幣交易的整個歷史以及新的交易集合。礦工通過解決該難題獲得一定數量的比特幣作為獎勵。
然而,如果兩個包含衝突交易的區塊在幾乎相同的時間被挖出,雙重支付問題仍然存在。當伺服器對兩個區塊的順序不可避免地產生分歧時,它們會暫時保留這兩個區塊。當新的區塊到來時,它們必須選擇對一個歷史鏈進行承諾,最終單一鏈條會繼續延續,而其他鏈條會被捨棄。由於最長的鏈(更準確地說是「最重的鏈」)被認為是有效的數據集,礦工們會被激勵僅在他們所知的最長鏈上構建區塊,以確保其成為該數據集的一部分(以及他們的獎勵有效)。
因此,在該系統中,交易從技術上來說永遠不會「最終」確定,因為衝突的區塊鏈總是有可能超過當前的主鏈。然而,隨着一個交易被更多的區塊所覆蓋,另一條鏈超越它的成本會變得越來越高,從而使這種情況越來越不可能發生。
受信任的第三方[編輯 | 編輯原始碼]
通常由在線受信任的第三方來驗證一個數字token是否被花用過 ,這在金融機構的賬戶存款、電子票證、遊戲點數、數字小額支付的系統中採用。受信任的第三方也會使用密碼學與散列運算,防止數字貨幣出現雙重支付的狀況。
這在信任和信息安全的角度看都是單點脆弱性。
區塊鏈中的雙花攻擊案例[編輯 | 編輯原始碼]
在2018年5月,有惡意礦工通過至少51%的全網算力,對當時的全球第26大加密貨幣比特幣黃金(Bitcoin Gold)進行雙花攻擊(雙重支付),造成了千萬美元的損失。此次攻擊引起了一些對於去中心化以及工作量證明(PoW)機制的質疑。有人因而提出,採用持有量證明(PoS)機制的貨幣較比特幣安全,但同年6月,360公司發聲明稱EOS鏈(EOS使用DPOS機制,標榜去中心化)存在一項重大漏洞,正基於區塊鏈網絡去中心化的計算特點,一個區塊鏈節點實現上的安全漏洞,可能引發成千上萬的節點遭到攻擊。
2019年1月5日,ETC 以太坊經典遭受了雙花攻擊,攻擊者總共獲取了219,500個ETC,當時價值約合110萬美元[2]。
51%攻擊[編輯 | 編輯原始碼]
由於去中心化區塊鏈的特性,在缺乏中央權威機構的情況下,交易的正確順序只能由佔主導地位的共識定義。這導致一種可能性,即某個行為者可以獲得對決定該共識的實體的多數控制權,從而強迫其自己的交易版本生效,包括替代交易和雙重支付交易。由於信息傳播的延遲,在局部的子集參與者中,51%攻擊暫時也是可能的。
去中心化的工作量證明(Proof-of-Work)系統的總計算能力是所有節點計算能力的總和,而節點計算能力可能因所用硬件的不同而顯著差異。更大的計算能力提高了每次挖出新區塊獲得獎勵的機會,這促使礦工聚集節點形成礦池。任何獲得51%算力的礦池都可以有效地推翻網絡交易,導致雙重支付的發生。
比特幣的一個分叉幣,比特幣黃金(Bitcoin Gold),在2018年和2020年都遭受了這樣的攻擊。
一種加密貨幣是否容易受到攻擊,取決於其網絡現有的算力,因為攻擊者需要超過這個算力。為了使攻擊在經濟上可行,貨幣的市值必須足夠大,以證明租用算力的成本是值得的。
2014年,比特幣礦池GHash.io獲得了比特幣網絡51%的算力,這引發了關於網絡安全性的重大爭議。該礦池自願將其算力限制在39.99%,並請求其他礦池效仿,以恢復對網絡的信任。
參考連結[編輯 | 編輯原始碼]
- ↑ The Double Spending Problem and Cryptocurrencies by Usman W. Chohan :: SSRN
- ↑ 雙花攻擊是什麼?如何預防雙花攻擊?幣圈雙花攻擊案例整理 | CoinDada 幣答