當前位置:首頁 » 數字幣問答 » 解決了數字貨幣的雙花問題

解決了數字貨幣的雙花問題

發布時間: 2025-05-05 09:47:28

㈠ 入門科普:什麼是雙花

想要了解區塊鏈,首先要熟悉區塊鏈相關的各種名詞。就比如我們今天講到的「雙花」,可能有人就要問,雙花是什麼花?哈哈哈,開玩笑,讓我們來學習一下什麼是「雙花」吧。

01

「雙花」是什麼?

雙重支付又名「雙花」,也就是雙重花費的意思。 舉個例子:如果我錢包裡面有100元,我可以去購買等值的物品。當我去商店後,發現台燈和桌子都是100元,那我只能買其中一樣東西。而我們所說的雙花問題,正好與之相反,同樣的100元,我可以購買兩樣東西。

在加密貨幣系統中,由於數據的可復制性,使得系統可能存在同一筆數字資產被重復使用的情況 ,這也稱之為雙花,又叫雙重消費攻擊。

02

雙花問題是如何發生的?

在區塊鏈系統中,雙花問題會在以下情況下出現:

1、由於共識機制導致區塊確認時間長,用一個數字貨幣去進行一次交易,可以在這筆交易還未被確認完成前,進行第二筆交易。

2、 控制算力來實現雙花 ,第一次交易被驗證通過並被記錄入區塊後,在該網路中有更高的算力驗證出新的更長鏈條,在該鏈條中這筆錢被第二次花費,由於第二次花費的區塊鏈條更長使第一次交易區塊所在鏈條為無效鏈條,這樣一來,第一次交易所在的區塊鏈被區塊鏈網路放棄,第一次花費的錢就又回到自己賬戶了,就導致了雙花問題。

03

比特幣如何避免雙花問題?

為了解決雙花問題,我們日常的數字資產使用依賴於第三方信任機構進行。這類機構對數據進行中心化管理,並通過實時修改賬戶余額的方法來防止雙重支付的出現。而作為去中心化的點對點價值傳輸系統, 比特幣通過UTXO、時間戳等技術的整合來解決雙花問題。

1、首先每筆交易都要先確認對應比特幣之前的情況,要檢查它是否存在於用戶的UTXO中。如果不在,那麼該交易會被系統拒絕。

2、如果用戶用同一筆UTXO付給兩個人,系統中的節點只確認先接收到的那一筆。

3、當兩筆時間上很接近的交易被不同節點確認,區塊鏈將發生分叉。剩餘節點選擇在他們認為的最長鏈上構建新的區塊。

4、當其中一筆交易被6個節點確認後,它將成為系統最長鏈,可以認為這筆交易獲得了最終的確認。

㈡ 關於「雙花」你需要知道的

如果小明使用的不是現金,而是數字貨幣呢?

「雙花」問題

「雙花」,即 一筆錢被花了兩次或者兩次以上 ,也叫「雙重支付」。

在數字貨幣系統中,由於數據的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復使用的情況。

1. 51%攻擊

51%攻擊,又被稱為Majority attack。這種攻擊是通過控制網路算力實現雙花。如果攻擊者控制了網路中50%以上的算力,那麼在他控制算力的這段時間,他可以將區塊逆轉,進行反向交易,實現雙花。

比如Bitcoin Gold發生的雙花問題就屬於51%攻擊。 攻擊者控制Bitcoin Gold網路上51%以上的算力,在控制算力的期間,他把一定數量的BTG發給自己在交易所的錢包,這條分支我們命名為分支A。同時,他又把這些BTG發給另一個自己控制的錢包,這條分支我們命名為分支B。

分支A上的交易被確認後,攻擊者立馬賣掉BTG,拿到現金。這時候,分支A成為主鏈。然後,攻擊者在分支B上進行挖礦,由於其控制了51%以上的算力,那麼攻擊者獲得記賬權的概率很大,於是很快,分支B的長度就超過了主鏈,也就是分支A的長度,那麼分支B就會成為主鏈,分支A上的交易就會被回滾(回滾指的是程序或數據處理錯誤,將程序或數據恢復到上一次正確狀態的行為)。

也就是說,分支A恢復到攻擊者發起第一筆交易之前的狀態,攻擊者之前換成現金的那些BTG又回到了自己手裡。當然,這些BTG就是交易所的損失了。最後,攻擊者把這些BTG,發到自己的另一個錢包。就這樣,攻擊者憑借51%以上的算力控制,實現同一筆token的「雙花」。 

2. 芬尼攻擊(Finney attack)

「Finney」的名稱來源於Hal Finney,Hal Finney是第一個描述雙花攻擊之0確認(未確認)交易的人。芬尼攻擊主要通過控制區塊的廣播時間來實現雙花,攻擊對象針對的是接受0確認的商家。

假設攻擊者挖到了區塊,在區塊中,包含了一筆交易信息,即地址1向地址2轉了一定數量的token,不過這兩個地址都是攻擊者的。但是攻擊者並不廣播這個區塊,而是立即找到一個商家,用他的地址1,把這些token發給商家的地址3。

發給商家的交易廣播出去後,如果這個商家接受0確認,攻擊者就把他自己之前挖到的區塊廣播出去,這時候發給自己的交易就先於發給商家的交易。對於攻擊者來說,通過控制區塊的廣播時間,就實現了同一筆token的「雙花」。

一般來說,為了節省時間而接受0確認,特別是對於大額交易而言,是非常不安全的,而且對於大額交易而言,多幾次確認,將會降低交易被回滾的風險。

3.種族攻擊 (Race attack)

這種方式主要通過控制礦工費來實現雙花。

比如,攻擊者把一定數量的token發給一個商家,我們命名為分支A。如果商家接受0確認,那麼攻擊者就會再把這筆token發給自己的一個錢包,我們命名為分支B。

不過,攻擊者在發給自己的這筆交易中,加了較高的礦工費,從而大大提高被礦工打包的概率(也可以說間接提高了攻擊成功的概率)。如果攻擊者發給自己的這筆交易被提前打包,這時候這筆交易就先於發給商家的交易,也就是分支B的長度超過分支A的長度,分支A上的交易就會被回滾。對於攻擊者來說,通過控制礦工費,就實現了同一筆token的「雙花」。

4. Vector76攻擊

Vector76攻擊,是種族攻擊和芬尼攻擊的組合,又稱「一次確認攻擊」,也就是交易即便有了一次確認,交易仍然可以回滾。

如果電子錢包滿足以下幾點,Vector76攻擊就容易發生。這幾點即錢包接受一次確認就支付;錢包接受其它節點的直接連接;錢包使用靜態IP地址的節點。

具體攻擊方式如下( 感興趣的可以點此查看 ):

攻擊者控制了兩個全節點,全節點A只是直接連接到電子錢包這個節點,全節點B與一個或多個運行良好的節點相連。

然後攻擊者將同一筆token進行了兩筆交易,一個是發給攻擊者自己在這個錢包(接下來要被攻擊的)上的地址,我們命名為交易1,另一個是發給攻擊者自己的錢包地址,命名為交易2。但是攻擊者給交易1的礦工費,要遠大於交易2的礦工費。攻擊者並沒有把這兩筆交易廣播到網路中去。 

然後攻擊者開始在交易1所在的分支上進行挖礦,這條分支我們命名為分支1。攻擊者挖到區塊後,並沒有廣播出去,而是同時做了兩件事:在節點A上發送交易1,在節點B上發送交易2。

由於節點A只連接到電子錢包的節點,所以當電子錢包節點想把交易1傳給其它對等節點時,連接了更多節點的節點B,已經把交易2廣播給了網路中的大部分節點。於是,從概率上來講,交易2就更有可能被網路認定為是有效的,交易1被認定為無效。

交易2被認為有效後,攻擊者立即把自己之前在分支1上挖到的區塊,廣播到網路中。這時候,這個接受一次確認就支付的錢包,會立馬將token支付給攻擊者的錢包賬戶。然後攻擊者立馬賣掉token,拿到現金。

由於分支2連接的更多節點,所以礦工在這個分支上挖出了另一個區塊,也就是分支2的鏈長大於分支1的鏈長。於是,分支1上的交易就會回滾,錢包之前支付給攻擊者的交易信息就會被清除,但是攻擊者早已經取款,實現了雙花。

5. 替代歷史攻擊(Alternative history attack)

如果商家在等待交易確認,alternative history attack就有機會發生,當然,這需要攻擊者有較高的算力,對於攻擊者來說,會有浪費大量電力的風險。

攻擊者把一定數量的token發給一個商家,我們命名為分支A。同時攻擊者又把這筆token發給自己的一個錢包,我們命名為分支B。在商家等待確認的時候,攻擊者在分支B上進行挖礦。

商家在等待了N次確認後,向攻擊者發送了商品。但是如果攻擊者憑借高哈希率,挖到了N個以上的區塊,那麼,分支B的長度就超過分支A,分支A的交易就會被回滾,攻擊者實現雙花。如果攻擊者挖到的區塊數量沒有超過N個,那麼攻擊失敗。

Alternative history attack能夠攻擊成功的可能性在於兩方面,一個是攻擊者的算力在網路中的比例大小,另一個是商家等待的確認次數。 比如,攻擊者控制了網路中10%的算力,如果商家等待了2個確認,那麼攻擊成功的概率低於10%;如果商家等待了4個確認,那麼攻擊成功的概率低於1%;如果商家等待了6個確認,那麼攻擊成功的概率低於0.1%。 由於該攻擊存在的機會成本,所以如果代幣交易金額與塊獎勵金額差不多,才有可能實現博弈。

目前,幾個區塊鏈項目的官方給出的解決方式,主要有如下幾種:

1. 提高確認次數。比如LCC建議將確認次數提高為 100 個。

2. 在共識機制方面改善。比如 LCC表示可能會引入PoS機制。

3. 升級新的演算法。比如Bitcoin Gold表示,正在開發新的 PoW 演算法以替代原有的 Equihash 演算法。

4. 與交易所等合作。比如Bitcoin Gold立即與合作交易所合作,阻斷黑客的套現渠道。

鏈接:https://www.jianshu.com/p/56617e91b12a

鏈接:https://www.jianshu.com/p/0eb023e1d5dd

㈢ 為什麼說區塊鏈代表著世界觀和價值觀

金窩窩分析:區塊鏈代表著一種世界觀價值觀,它代表著人類希望以更平等的方式來進行溝通和交流。
很多大佬專家在傳統世界是沒有什麼生意的個體,但是他們可以通過對區塊鏈的理解和熱愛成為這個行業的頂尖人物,說明區塊鏈世界裡每個人是生來平等的,就像每個節點一樣節點之間是等價的,你只要達到相同的條件就可以獲得系統給你的機密。

㈣ 數字人民幣來了,數字人民幣是什麼怎麼實現雙離線支付技術的



「只要你我手機上都有數字人民幣的數字錢包,那連網路都不需要,只要手機有電,兩個手機碰一碰,就能把一個人數字錢包里的數字貨幣,轉給另一個人。」

是不是很神奇?我們習慣了各種網路聯通的時代,這種離線支付技術是不是感覺挺高級的?

最近 深圳市人民政府聯合中國人民銀行開展了數字人民幣紅包試點 。作為技術人員就想知道怎麼樣實現雙離線支付的,也想了解一下這個數字人民幣到底是何方神聖?

一、數字人民幣是什麼?

數字人民幣由中國人民銀行發行,是有國家信用背書、有法償能力的法定貨幣。

與比特幣等虛擬幣相比,數字人民幣是法幣,與法定貨幣等值,其效力和安全性是最高的,而比特幣是一種虛擬資產,沒有任何價值基礎,也不享受任何主權信用擔保,無法保證價值穩定。這是央行數字貨幣與比特幣等加密資產的最根本區別。

1.雙離線支付。 像紙鈔一樣實現滿足飛機、郵輪、地下停車場等網路信號不佳場所的電子支付需求;

2.安全性更高。如果真的發生了盜用等行為,對於實名錢包,數字人民幣可提供掛失功能;

3.多終端選擇。不願意用或者沒有能力用智能手機的人群, 可以選擇IC卡、功能機或者其他的硬體;

4.多信息強度。根據掌握客戶信息的強度不同,把數字人民幣錢包分成幾個等級。如大額支付或轉賬,則必須通過信息強度高的實名錢包;

5.點對點交付。通過數字貨幣智能合約的方式,可以實現定點到人交付。民生資金,可以發放到群眾的數字錢包上,從而杜絕虛報冒領、截留挪用的可能性;

二、數字人民幣和支付寶、微信等電子錢包有什麼區別?

第一點,數字人民幣法定貨幣,任何機構和個人不得拒收,而微信支付和支付寶只是一種支付方式。

比如,如果你在商場購物付款的時候,你說能用微信付款嗎?店主告訴你不行,我這里只支持支付寶,你也無可奈何。但你用數字人民幣付款就不一樣了,如果店主不收,你可以直接報警。

第二點,支付寶、微信支付等第三方互聯網支付需要設備連接網路才可以結算,但數字人民幣可以雙離線。也就是說,只要手機有電,哪怕整個網路都斷了數字人民幣也可以實現支付。

PS:現在支付寶等技術,其實可以實現單離線技術,就是說手機沒有網路信號,消費終端聯網的時候,其實是可以進行消費,等消費完成以後,會進行延期結算,等聯網以後,會有簡訊消息等通知你消費成功。但是這種務必保證的是消費終端是聯網的。

第三點,支付寶、微信支付等第三方互聯網支付屬於商業銀行存款貨幣結算,而數字人民幣屬於流通中的現金。簡單來說就是,使用央行數字貨幣支付,花出去的是數字化的人民幣,跟花現金一樣;而支付寶、微信支付只是一個支付工具,通過這兩種渠道,花的是你銀行卡里的余額、或者刷的是信用卡。

三、數字人民幣最終實現的雙離線支付技術原理是什麼?有什麼高大上的技術?

這是我覺得最神奇的地方,通過雙離線技術,如何實現數字人民幣的安全的?

其實離線支付的功能並不新鮮,微信和支付寶都已經實現了,這可以讓我們在一些場景「先享後付」。但這種離線支付一般只能讓付款方離線,而收款方必須在線,並將離線的付款信息傳到平台伺服器端進行校驗。那 DC/EP 的「雙離線支付」是怎麼實現的?據參與DC/EP 的支付寶透露, 在收付雙方都離線的場景下,就先記賬,等能做安全驗證時再扣款。

不過「雙離線支付」也面臨更高的安全風險,有人可能利用當中的時間差作惡,比如將同一筆數字貨幣重復花幾次,在現實中這是克隆的假幣,而在線上世界只要復制數字貨幣的核心數據,這就行業中所說的 「雙花問題」(DoubleSpending)。這就是我們最擔心的安全問題。

為了防止「雙花」,第三方支付平台需要對每一筆交易進行驗證,而「雙離線支付」卻無法在第一時間進行驗證,因此一般只用於公交等小額支付的場景,以此來降低風險。

四、雙離線支付應用場景和原理

雙離線支付核心指的是介質和受理終端都離線的情況下完成業務的一個過程,最典型的就是支付業務和核實身份。對支付業務來說,它通過交易完成之後的延期請款來完成閉環交易的過程,核心是實現了快速的核身和支付的一種技術方案。

它的業務機制有兩個核心要點。一個是業務機制上面有兩個特徵,包括了核身和支付;另外一個就是終端和介質之間有一個信任機制。在交易安全機制方面有三個維度:(1)一個是風控的額度,就是雙離線之後的交易的額度;(2)第二個是會有墊付和追繳的機制;(3)第三個是信用體系。

五、數字人民幣的碰一碰支付安全嗎?會不會隨便什麼人拿個手機碰一碰我的手機就把我的錢偷走了呢?

答案是,肯定不會。

數字人民幣的碰一碰支付背後的技術其實NFC技術,它比二維碼掃碼要安全得多。

NFC是一種近距離高頻無線通信技術。NFC傳輸距離小於10厘米,採用點對點通信,無需第三方設備中轉傳輸信號。NFC手機支持晶元硬體加密和軟體加密,不到0.1秒就可以完成點對點的加密通信,保證了支付安全。

六、手機碰一碰就會直接付款嗎?

當然不會手機碰一碰就直接付款,碰一碰之後,還要輸入支付金額,以及輸入支付密碼或者指紋才能完成轉賬,步驟跟現在的掃碼支付類似。毫無疑問,它要比掃碼支付方便,掃碼支付遇到網路不好或者光線不好,是無法完成支付的。它只要在10厘米范圍以內,碰一碰,就可以完成支付。它的支付體驗和安全要優於掃碼支付。


七、雙離線技術有沒有類似的案例?

我們知道了, 收付雙方都離線的場景下,就先記賬,等能做安全驗證時再扣款。

想一想,是不是公交系統也是這種情況?公交卡中就有錢,可以在沒有網路的情況下,可以實現刷卡上車。


類比一下,在網路條件好的情況下,先把金額充值到載體中,IC卡或者手機中,然後可以基於IC技術或者NFC技術實現在線或者離線刷卡。如果在線刷卡都比較好理解,離線刷卡,無非就是等網路通了以後,進一步跟中心進行結算。

㈤ 「雙花」是什麼

POW演算法是唯一經過時間檢驗運行較為穩定的演算法,這從比特幣誕生到現在的較穩定的運行就可以看出。

上次說到POW的共識演算法的部分運作原理。把上次所講的內容簡單總結一下,那就是POW通過哈希加密演算法解決了「憑什麼幫你記賬」的問題。

其實,POW共識演算法的目的,是可以保證任意節點被入侵、篡改,其數據信息不會被其它節點所接受,換句話說,POW要通過運行機制保障主鏈的安全性。

因此,僅僅解決「憑什麼幫你記賬」的問題對一個成熟穩定的共識演算法來講還是遠遠不夠的,它還需要解決其它一些問題,比如雙花問題。

雙花問題(Double Spending)即雙重支付,是指一筆數字現金在交易中被重復使用的現象。我們都知道,數字現金的走向只能是線性的,也就是同一筆錢一次只能轉給一個人,不能同時轉給兩個或者以上的人。一旦數字現金的走向發生了偏差,離開了線性軌道的約束,成為發散狀態,那麼雙花問題就會出現。

舉個例子,小明一早出門只帶了10元錢,他來到肯德基吃早餐,點了10元的套餐,把錢付給了肯德基的收銀員,這10元錢得到收銀員的確認。小明吃完早餐出門,發現自己並沒有吃飽(小明飯量有點大),抬頭一看有個麥當勞,於是他走進麥當勞,想再點一個10元的漢堡。這時候,如果小明想用之前買肯德基套餐的那10元錢買麥當勞漢堡,可能嗎?當然不可能。因為那10元錢是獨一無二的(有編號),已經被花出去了。

但如果小明使用的不是現金,而是數字貨幣呢?這就另當別論。這是因為現金的復製成本太高(法律成本、製作成本等等),而數字貨幣則不然,它具有十分經濟的可復制性,使得系統可能存在同一筆數字資產因不當操作被重復利用的問題。

雙花問題在有中介的前提下是不容易發生的,因為每次消費都要經過第三方(中介方)的確認才會完成,比如支付寶。

而比特幣作為一個去中心化的點對點現金系統,是沒有中介和第三方的,它主要依靠未花費的交易輸出(UTXO)和時間戳兩大利器來解決雙花問題。

未花費的交易輸出(UTXO)可以被簡單地理解為一個用戶擁有的比特幣的余額。這個余額是無法偽造的,因為一個用戶擁有的比特幣實際上會被當作UTXO分散到數百個交易和數百個區塊中。

雙花問題是這樣解決的:

首先每筆交易都要先確認對應的比特幣之前的情況,要檢查它是否存在於付款人的UTXO中。

其次,同一筆UTXO付出去,系統節點按照時間戳只會確認先接收到的那一筆。

最後,當兩筆時間上很近的交易被不同節點確認,區塊鏈將發生分叉。當其中一筆交易被6個節點確認後,它將獲得最終的確認,成為最長鏈。

本文僅供學習參考之用,不構成任何投資建議。

熱點內容
世聯通證數字貨幣 發布:2025-05-05 14:50:56 瀏覽:9
usdt今日賣出價格 發布:2025-05-05 14:38:23 瀏覽:852
香港數字貨幣發行有限公司 發布:2025-05-05 14:34:20 瀏覽:121
好玩吧買礦機怎麼都是虧 發布:2025-05-05 14:22:21 瀏覽:11
逐倉合約的倍數和收益怎麼算 發布:2025-05-05 14:21:06 瀏覽:935
數字貨幣投資上市公司 發布:2025-05-05 14:16:19 瀏覽:774
數字貨幣開空是什麼意思 發布:2025-05-05 14:11:42 瀏覽:187
tsh數字貨幣 發布:2025-05-05 14:02:00 瀏覽:651
區塊鏈應用詳詢珈木科技 發布:2025-05-05 14:00:17 瀏覽:326
正規的數字貨幣交易所有那些 發布:2025-05-05 13:59:35 瀏覽:739