區塊鏈及數字貨幣中雙花問題是什么意思 如何防范雙花問題

區塊鏈及數字貨幣中雙花問題是什么意思?提到雙花問題 , 很多投資者都可以說是一臉懵圈 , 甚至有部分投資者都沒有提說過雙花問題 , 其實幣圈一直都有雙花攻擊的案例 , 比如說2018年曾經發生了比特幣黃金的雙花攻擊 , 只不過大多數投資者都不太關注這方面的新聞 , 因而自然也就不會去了解雙花問題是什么意思 , 那么 , 區塊鏈及數字貨幣中雙花問題到底是什么意思呢?下面小編就給大家通俗的講解一下區塊鏈及數字貨幣中雙花問題是什么意思?

區塊鏈及數字貨幣中雙花問題是什么意思 如何防范雙花問題

文章插圖

區塊鏈及數字貨幣中雙花問題是什么意思?因數字貨幣是二進制的代碼 , 是可以復制的數據 , 存在一筆數字資產被重復使用的情況 , 這就是所謂的“雙花” 。 一筆資產可以花兩次甚至花多次 。
我們知道作為中心化的支付平臺第三方是保留交易總賬來保證每筆數字現金只會被花掉一次;而作為去中心化的區塊鏈里數字資產 , 雙花問題是如何出現的呢?
先假設一個場景
場景1:詐騙者使用數字貨幣購買數字產品如買一本電子書 , 價格為1個EOS 。 他先將EOS發送給店家 , 假設這筆交易是tx1;然后同時將相同數量EOS發給自己另外一個錢包地址 , 稱這筆交易為tx2 。 店家網站程序檢測到交易tx1后 , 覺得沒有問題 , 程序自動發電子書過去;但因交易tx1和交易tx2是相沖突 , 礦工只會在一個時間點打包一個交易 , 萬一不小心都打包了 , 其他節點礦工會驗證并拒絕這個區塊打包成功 , 所以如果交易tx2打包成功了 , 交易tx1會作廢 , 這種情況下 , 詐騙者成功雙花了EOS , 即買到了電子書 , 也收回了自己的EOS 。
解決辦法:這種場景下的雙花比較好解決 , 店家網站程序自動發電子書前 , 先讓區塊確認交易 , 至少一個區塊交易 , 而只有被至少一個區塊確認過的交易 , 就會蓋上時間戳且之前從未存在過 , 才被認為交易的有效性 。 目前比特幣的交易要被6個區塊確認才算安全有效可靠 , 以避免孤立區塊的情況;EOS的充值確認在幣安里是需要至少32個區塊確認數 。
另外一種場景 , 假設詐騙者是礦池或礦工 。
場景2:詐騙者礦工先構造交易tx1和tx2 , tx1的手續費很低 , 將tx1發給商家買電子書 , 但是交易tx2隱藏起來不廣播 , 只保存在自己的區塊內 。 因為tx1的手續費太低 , 所以其他節點礦工們不想打包;而tx2被隱藏起來了 , 所以區塊鏈瀏覽器是不可能發現有相沖突的交易 , 商家也就不可能發現 。 當商家認為是正常的交易一旦發貨了 , 詐騙者礦工就會在自己挖到的區塊打包進去 , 這個時候廣播這個區塊 , 全網所有的節點就會發現tx1是非法的了 , 直接作廢掉 , 商家就收不到幣了 。
解決辦法:想防御這類雙花攻擊就要依賴其他礦池礦工的協作 。 因為詐騙構造的tx2交易是不會被廣播的 , 是以直接打包進詐騙礦池挖到的區塊才會被其他礦池發現 。 如果其他礦池如果針對這種包含了延遲出現交易(tx2)的區塊進行孤立 , 那這個詐騙礦池的這個塊就白挖了 , 損失區塊獎勵 , 這是非常慘的事 。 具體的設定可以是礦池將超出一定時間 , 比如10秒內 , 都沒有見到的交易(tx2) , 卻包含在最新的區塊里 , 則直接孤立掉這個塊 , 在這個塊的前一個高度上挖礦 。
如果執行這種孤立政策的算力超過51% , 那基本上就沒有礦池敢發起這一類隱藏交易(tx2)來攻擊零確認交易了 。
比特幣是如何防范雙花問題的?首先 , 要檢查這筆錢是不是沒有被花費過 。 方法是查看你的這筆交易的來源是否在UTXO(未花費交易列表)中 。 不需要追溯到挖礦挖出的Coinbase交易 。
然后要看你提交的交易里有沒有包含有效鑒權 。 如果這筆錢之前是通過P2PKH交易付給你的 , 那就是看交易里有沒有這筆錢所在地址的對應私鑰的簽名 。 P2SH、P2MS類型的交易的鑒權規則類似 。
如果你用同一筆UTXO構造了兩筆分別付給A和B的交易 。 那么bitcoin-core客戶端的規則(截止2016.2)是只轉發先偵聽到的那個 。 但至于哪筆交易會被包含進未來區塊 , 則取決于礦工 。
【區塊鏈及數字貨幣中雙花問題是什么意思 如何防范雙花問題】礦工的挖礦程序一般是定制開發的 , 礦工可以自主任意選擇這兩筆交易里的一筆 。 比如有的礦工會選擇先看到的交易 , 有的礦工會選擇交易手續費更高的那個 。
當這兩筆相矛盾的交易中的一筆被寫入區塊鏈 , 并且深度達到6后(6個確認后) , 可以認為這筆交易獲得了最終的確認 。 等待6個確認的情況下 , 比特幣是幾乎絕對不可能被雙花的 。 一個確認都不等待 , 則有相當的可能被雙花攻擊 。 通常 , 3個確認已經相當安全 。

推薦閱讀