導航:首頁 > 比特幣區 > 比特幣出現雙花交易

比特幣出現雙花交易

發布時間:2024-10-12 05:42:10

『壹』 區塊鏈鼻祖比特幣之8:分叉帶來的雙花支付、51%攻擊與解決辦法

分叉

前面講到了比特幣通過區塊鏈+工作量證明的獨特設計來解決了時間順序,但是不能保證在同一時刻有兩個節點算出了正確的解,雖然這種可能性很低很低。這就帶來了區塊的分叉。

雖然說幾乎同時有兩個節點計算出這一數學問題的可能性微乎其微,但是仍然存在這樣的可能性,所以分叉就以為著同一個區塊的後面可能會跟上兩個不同的區塊。

規則的打破一直要到下一個區塊被人解開。則會立即轉向最長的區塊,而那些短的區塊則會被拋棄。數學問題使得區塊很難被同時拆解。要連續發生多次更是困難。最終區塊鏈會穩定下來。也就是說所有人對最後幾個區塊順序達成共識。分叉意味著,譬如,若你的交易出現在較短的支鏈,它就會失去進入區塊鏈的位置。一般而言,只代表他會回到未確認交易池。然後被納入到下一個區塊。

比特幣網路如何解決分叉帶來的雙花支付

可惜,交易失去區塊位置的潛在可能,給了本來定序系統防範的重復支付攻擊機會。考慮下面的一個攻擊者A,其首先用自己的比特幣交換B節點的貨物,其立即又支付給自己。然後其通過努力的製造更長的鏈條來讓自己的支付替代掉B節點的支付,從而實現了雙重支付,B節點既得不到錢,還失去了貨物。

這時交易會退回到未確認池中,因為A節點已經利用參照同樣的input交易取而代之。節點就會認為Bob的交易無效。因為已使用掉。

你可能會猜測A節點會預先的計算出一支區塊鏈,然後抓住時機發布到網路。但是每個區塊的數學謎題阻擋了這個可能性。如前面所訴,解開區塊是猜測出一個隨機數的過程。一旦得出答案,解出的哈希值就會成為指紋一樣的區塊識別。只要區塊內容有一丁點變化,下一個區塊的參考值就會完全不同。此機制的結果就是無法在區塊鏈中置換區塊。在得到前一個區塊之前,下位區塊無法被解開。前一個區塊的指紋也是雜湊函數的引數之一。

同時,該工作量證明機制還解決了在集體投票表決時,誰是大多數的問題。如果決定大多數的方式是基於IP地址的,一IP地址一票,那麼如果有人擁有分配大量IP地址的權力,則該機制就被破壞了。而工作量證明機制的本質則是一CPU一票。「大多數」的決定表達為最長的鏈,因為最長的鏈包含了最大的工作量。如果大多數的CPU為誠實的節點控制,那麼誠實的鏈條將以最快的速度延長,並超越其他的競爭鏈條。如果想要對業已出現的區塊進行修改,攻擊者必須重新完成該區塊的工作量外加該區塊之後所有區塊的工作量,並最終趕上和超越誠實節點的工作量。我們將證明,設想一個較慢的攻擊者試圖趕上隨後的區塊,那麼其成功概率將呈指數化遞減。另一個問題是,硬體的運算速度在高速增長,而節點參與網路的程度則會有所起伏。為了解決這個問題,工作量證明的難度(the proof-of-work difficulty)將採用移動平均目標的方法來確定,即令難度指向令每小時生成區塊的速度為某一個預定的平均數。如果區塊生成的速度過快,那麼難度就會提高。

如果有一台超級電腦,能夠在區塊解題中獲勝?

即便是一台超級電腦,或者時幾百上千台電腦也很難贏得解一個區塊的勝利,因為競爭對手不是任一台電腦,而是整個比特幣網路。你可以用買彩票來比擬。操作千百台電腦,如同買了千百張彩票一樣。

51%攻擊是指的什麼

根據前面的例子,我們知道,要想有50%的概率領先其他人解題得到勝利,就需要掌握全網50%以上的算力。要連續領先他人解出區塊,掌握的運算能力還需要高得多。所以區塊鏈中的交易是受到數學競賽所保護。惡意用戶必須和整個網路較量。區塊連接建立的結果,使得在支鏈越前方的交易越安全。惡意的用戶必須在更長的時間贏過全網路,來達成重復支付,替換前面的區塊鏈。所以,系統只有支端末尾易受到重復支付攻擊。這也是為什麼系統建議多等幾個區塊,才能確認收款成功。

個人博客:https://dreamerjonson.com/

『貳』 比特幣真的崩了嗎

可能會崩潰。

第一個風險應該是雙花攻擊,但是這個需要足夠的計算能力,需要不惜一切代價和費用。目前最大的可能是量子計算機的大規模應用。但是,我覺得這些都是可以通過技術手段避免的。比特幣目前的重點之所以不是解決這個問題,主要是因為目前的發展重點不在這里。如果有一天量子計算機出來了,那麼可能會有相應的解決方案。第二個風險是項目實驗失敗,即比特幣最終未能解決實際問題。

其實隨著這幾年的發展,我覺得很多項目已經很成功了,比如以太坊。它的定位和比特幣不一樣。以太坊的主要定位是成為超級計算機,即實現可編程應用。我認為以太坊是目前最成功的公鏈,也是最有可能超越比特幣的公鏈。當然,這里的一切都沒有絕對,因為需要很多因素共同決定。

『叄』 入門科普:什麼是雙花

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

01

「雙花」是什麼?

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

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

02

雙花問題是如何發生的?

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

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

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

03

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

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

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

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

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

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

『肆』 入門科普:什麼是雙花

入門科普:什麼是雙花?
01 「雙花」是什麼?
雙重支付,通常稱為「雙花」,指的是一種攻擊手段,攻擊者試圖在一次交易中將同一筆數字貨幣用於兩個不同的目的。這相當於在傳統貨幣系統中,一個人試圖用同一張鈔票同時購買兩件商品。
02 雙花問題是如何發生的?
雙花問題可能發生在區塊鏈系統中,尤其是在共識機制導致交易確認時間較長的情況下。攻擊者可以利用這個時間差,嘗試進行兩次交易。另一種情況是,攻擊者通過控制網路算力,創建一個更長的區塊鏈,從而使之前的交易鏈變得無效,進而實現雙花。
03 比特幣如何避免雙花問題?
比特幣作為一種去中心化的數字貨幣,採用了多種技術手段來防止雙花問題的發生。每筆交易都需要驗證之前的交易記錄,確保UTXO(未花費的交易輸出)的有效性。如果兩筆交易同時發生,節點會選擇先接收的那筆交易進行確認。此外,比特幣網路會在發生分叉時,選擇最長鏈上的交易進行確認,確保交易的最終一致性。一旦一筆交易被6個區塊確認,它就得到了網路的最終認可。

『伍』 比特幣出現漏洞,手把手帶你發起攻擊,萬一暴富了呢

針對所有的支付系統,有一種攻擊方式叫作 雙花攻擊 。所謂雙花攻擊就是指一筆資金被花費多次,攻擊者先將資金轉出,獲得收益後通過攻擊的手段撤銷該筆轉賬,讓資金重新回到攻擊者的賬戶上。那麼我們能否對比特幣發起雙花攻擊並從中獲利呢?答案是肯定的!下面讓我帶你一起對比特幣系統發起攻擊。

在帶領大家發起攻擊之前,我們需要先了解一下比特幣的轉賬原理,這是我們發起攻擊的預備知識。

在比特幣系統中,用戶想要發起一筆轉賬,首先要把轉賬信息組裝好,就像填寫銀行支票一樣,寫好付款方賬戶,收款方賬戶,轉賬金額,然後使用加密技術對轉賬信息簽名,我們把這種簽名好的轉賬請求叫作交易。交易被比特幣系統處理以後,付款方的賬戶就會被扣除指定金額,收款方的賬戶就會增加指定金額。

用戶的交易會被發送給比特幣系統中的節點,節點收到交易後將其放在一個新的區塊中,然後對這個區塊進行哈希計算,也就是之前文章所說的計算數學題。哪一個節點優先計算出了這個區塊的數學題答案,就獲得了這個區塊的打包權,被這個節點打包進區塊的交易就相當於成交了,然後所有的節點會在新區塊的基礎上開始計算下一個區塊的數學題。

知道了比特幣的轉賬原理,下面我們就來看一下比特幣的漏洞到底在哪裡!

剛才我們說誰先算出答案誰負責打包區塊,那如果有兩個節點同時做出了同一個區塊的答案該怎麼辦呢?為了解決這個問題,比特幣系統設計了一個特殊的機制,叫作最長鏈原則。

通過上面的描述我們可以看出,比特幣的這條鏈是有可能分叉的,分叉以後會以最長的鏈為准,那麼在較短的分叉上的區塊就被廢棄了。 這不正為我們攻擊比特幣系統帶來了可能性嗎!

你可能已經想到了,既然比特幣系統只認最長的那條鏈,我們是不是可以通過這樣的方式對比特幣進行雙花攻擊:

至此,你之前轉出的比特幣還在你的賬戶上,並且得到了你想要的東西,所以你的攻擊成功了。

對比特幣的攻擊真的這么簡單嗎?答案當然是否定的!雖然我們說可以通過上述方法對比特幣發起攻擊,但是攻擊是要付出代價的。

所以,如果你想要創建一個新的分叉,並且超過主鏈的區塊長度,那麼你需要比主鏈上所有節點的計算速度加在一起都要快。要想實現這樣的結果,唯一的做法就是你要收買比特幣系統中超過51%的節點算力,這就是比特幣的51%攻擊原理。

想要攻擊比特幣系統並不是不可能,但是需要付出的代價可能遠遠超過作惡所獲得的收益。在比特幣系統中,節點越多,算力越強,攻擊比特幣系統的成本就越高,比特幣系統就越安全。比特幣越安全,它的價值就越高,就會吸引更多的節點加入來競爭比特幣獎勵。更多的節點進一步促進了系統的安全性,這是一個正向循環。

51%攻擊不只是針對比特幣的,所有採用 工作量證明共識演算法 的區塊鏈都面臨著這個問題。對於已經日趨成熟的比特幣系統來說,攻擊比特幣確實是不劃算的,而且隨著系統節點的越來越多,攻擊比特幣幾乎成為了不可能的事情。但是一些新的鏈,在其剛起步的時候節點和算力還不多,這種攻擊確實是真實有效的,並且這種攻擊事件時有發生。

『陸』 『雙花』攻擊

什麼是雙花?

「雙花」,即一筆錢被花了兩次或者兩次以上,也叫「雙重支付」。通俗的理解,「雙花攻擊」(double spend attack)又叫「雙重消費攻擊」,即同一筆資金,通過某種方式被花費了兩次,取得了超過該筆資金的服務。

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

雙花是如何發生的?

眾所周知,區塊鏈節點始終都將最長的鏈條視為正確的鏈條,並持續工作和延長它。如果有兩個節點同時廣播不同版本的新區塊,那麼將在率先收到的區塊基礎上進行工作,但也會保留另外一個鏈條,以防後者變成最長的鏈條。等到下一個工作量證明被發現,其中的一條鏈條被證實為是較長的一條,那麼在另一條分支鏈條上工作的節點將轉換陣營。

雙花簡單說就是花兩次。雙花是如何實現的呢?分為兩種情況:

(1)在確認前的雙花。零確認的交易本來就可能最後沒有寫入區塊鏈。除非小額,最好至少等確認即可規避此類雙花。

(2)在確認後的雙花。這就要控制超50%算力才能實施。即類似於一個小分叉,將給一個商店的交易放入孤立區塊中。這種確認後雙花,很難實施,只是理論上可行。

雙花攻擊案例

2018年曾經發生了比特幣黃金(BTG)的雙花攻擊。BTG當時是全球第27大加密貨幣,流通市值為50億人民幣。2018年5月16日以來,攻擊者對BTG網路成功實施了雙花攻擊,謀取了超過38.8萬的BTG的暴利。

攻擊者控制BTG網路上51%以上的算力,控制算力期間,把一定數量的BTG發給自己在交易所的錢包,這條分支我們命名為分支A。同時,又把這些BTG發給另一個自己控制的錢包,這條分支我們命名為分支B。分支A上的交易被確認後,攻擊者立馬賣掉BTG,拿到現金。隨後,攻擊者在分支B上進行挖礦,由於其控制了51%以上的算力,很快分支B的長度就超過了分支A的長度,分支B就會成為主鏈,分支A上的交易就會被回滾恢復到上一次的狀態。攻擊者之前換成現金的那些BTG又回到了自己手裡,這些BTG就是交易所的損失。這樣,攻擊者就憑借50%以上的算力控制,實現了同一筆加密貨幣的「雙花」。

『柒』 女巫攻擊與雙花攻擊

女巫攻擊 的名字源於1973年由小說《Sybil》改編的同名電影。電影中的女主人公Sybil Dorsett患有分離性身份認同障礙,本身兼有16種人格。

區塊鏈底層是 P2P網路 。網路中各個節點可以隨時加入或退出,為了維持網路的有效性,一般一份數據常常需要部署在若干個分布式節點上。如果一個惡意節點偽裝有多個身份就存在可獲得全部數據的幾率,下面我打個比方:

假設神龍造出了七顆龍珠,並且要將它們分別投放到地球的各個角落。於是神龍昭告天下,讓每個洲來一個人領取龍珠。此時,精通喬裝易容術的我分別假扮出七個不同地域的人來神龍這拿到了龍珠。本來神龍將龍珠放到世界不同的地方就是為了平衡各地方力量,但是由於我偽造了身份,成功地拿到了全部龍珠,控制了地球。

以上比喻就是女巫攻擊的本質體現。

雙花攻擊是大多區塊鏈加密數字貨幣都要面對的一種攻擊手段。顧名思義,雙花攻擊就是一筆有效的錢被先後花了兩次。

雙花攻擊的可行性完全是由於區塊鏈的共識機制導致。拿比特幣舉例,由於比特幣的POW共識機制屬於最終一致性共識,一筆交易從發布到全網所有節點都達成統一確認需要一定時間,而攻擊者就是利用這個時間間隙進行攻擊。舉個生活中的例子:

假如銀行A有兩個支行B和C。但是,這個銀行的賬目系統比較低效,支行B和C每過1個小時才會去主行A那裡同步賬本。我在主行A中存了100塊錢,過了一個小時後支行B和C同步了賬本,於是我在B和C中都可以查到我擁有100塊錢。之後,我通過支行B用我的賬戶買了100塊錢的好吃的,隨即又通過支行C用我的賬戶買了100塊錢好玩的。由於支行B和C之間做不到賬目的隨時同步,所以支行C在我去買好玩的時候依然認為我擁有100塊錢。

以上就是雙花攻擊,並且「雙花」永遠是一種 流通貨幣 所要解決的首要問題。

『捌』 「雙花」是什麼

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

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

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

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

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

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

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

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

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

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

雙花問題是這樣解決的:

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

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

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

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

閱讀全文

與比特幣出現雙花交易相關的資料

熱點內容
一台btc礦機每小時耗電多少度 瀏覽:672
礦機吳 瀏覽:437
中嘉博創挖礦 瀏覽:756
螞蟻d3礦機幾個t 瀏覽:228
百度礦機沒速度 瀏覽:378
一個比特幣換算人民幣是多少 瀏覽:548
什麼是區塊鏈從技術層面來看答案 瀏覽:818
我的世界挖礦版要網路嗎 瀏覽:293
霍特幣怎麼樣挖礦 瀏覽:737
挖礦顯卡性價比高的 瀏覽:100
今天以太坊跌了還會漲嗎 瀏覽:780
阿拉丁L1礦機 瀏覽:238
區塊鏈是啥呢 瀏覽:996
4g顯存還能挖以太坊嗎 瀏覽:530
層次分析法分析數字貨幣 瀏覽:766
虛擬貨幣凍結卡 瀏覽:666
為什麼有的區塊鏈賺了好多錢 瀏覽:275
區塊鏈招聘政府關系 瀏覽:618
礦機顯卡晶元推薦溫度 瀏覽:504
蘋果電腦上挖礦的游戲叫啥 瀏覽:970