比特幣雙花可能性
① 雙花理論是什麼概念
在學習區塊鏈的過程中,大家一定對會聽到「雙花」這個詞,意思就是雙重支付,或者更直白點就是一筆資金被花費了兩次。這篇文章我們來簡單的分析一下為什麼會有雙花,比特幣是如何避免雙花的。
在傳統的交易中,因為有銀行這樣的中心化機構,所以是不會存在雙花問題的:每一筆支付都將從你的銀行賬戶中扣除相應的資金,所有的明細在銀行都有記錄。但是在比特幣中,因為沒有賬戶的概念,而是引入了UTXO即未花費交易輸出。因為沒有銀行這樣的中心化機構的保證,當發生一筆交易時就可能存在著雙花的危險:比方說A有一個比特幣,然後他同時構造兩筆交易T1和T2來花費這1個比特幣,其中一個給了B,從B那裡買件衣服,一個給了C,從C那裡買雙鞋。如果不引入某種機制來避免這種情況,那作為數字貨幣的比特幣將沒有任何存在的意義。接下來就來分析一下比特幣是如何做到防止這種「雙花」攻擊的。
(1) 正常情況
首先我們來看看正常情況,說白了就是絕大多數時候,區塊鏈的共識機制就能將雙花消滅在萌芽狀態。我們還是以上面提到的例子來做說明:
假設A構造了兩筆交易T1和T2,將自己價值1btc的UTXO分別轉給了B和C,妄圖同時從B和C那裡獲得好處。然後A幾乎在同一時間將構造好的這兩筆交易廣播至網路。
假設網路中的礦工節點先收到了交易T1,發現這筆交易的資金來源確實沒有被花費過,於是將T1加入到自己的內存交易池中等待打包進區塊。
大部分情況下,這個礦工節點會在不久後又收到交易T2,此時因為T2所指向的交易輸入與已經加入交易池的T1相同,於是礦工節點會拒絕處理該交易。網路中其他的礦工節點都類似,因此A試圖雙花的嘗試胎死腹中。
(2) 分叉情況
上面說的是正常的情況,但是也有非正常的情況要考慮:假設礦工節點M1和M2幾乎在同一時間挖出了區塊,並且很不幸M1挖到區塊時只收到了交易T1,而M2挖到的區塊時只收到了交易T2,這樣交易T1和T2被分別打包進兩個區塊。因為這兩個區塊是差不多同一時間被挖出,於是造成了區塊鏈的分叉:
網路中某些節點(可能是離M1近的)先收到了M1打包的區塊BLK1,於是用該區塊延長自己的區塊鏈,而另外一些節點(鄰近M2的)則先收到M2打包的區塊BLK2,用該區塊延長自己的區塊鏈,於是整個區塊鏈網路
② 比特幣出現雙花,怎麼解決
不太清楚,
③ 比特幣一個UTXO交易為什麼要經過6個區塊確認才被認為更改不可逆(或者說幾乎不可逆)
你說的是對的,的確會回滾, 如果的交易不幸被打包到分叉上面了,這個交易很有可能會在主鏈被同步後被取消掉。
至於為什麼要6個確認是因為加大蒙出最優解難度(防止單節點造假)。 一個塊可能還能蒙出一個最優解,6個塊一起蒙出基本上不可能。 跟分叉關系不大
④ 比特幣錢包
比特幣(bitcoin)誕生於2008年的一篇論文。
一個署名為中本聰的人,提出了革命性的構想:讓我們創造一種不受政府或其他任何人控制的貨幣!這個想法堪稱瘋狂:一串數字,背後沒有任何資產支持,也沒有任何人負責,你把它當作錢付給對方,怎麼會有人願意接受?
Merkle tree
跟二叉樹長得很像,只是這個是下面兩個節點取哈希值得到上面節點。只需要記住根節點,就可以檢測整棵樹有沒有被篡改。
根哈希值存在block header里,交易過程存在block body里。全節點包括block header和block body,但是輕節點(比如手機上比特幣錢包)只包括block header。這棵樹可以證明包含某個交易已經被寫進了區塊鏈。
3.共識協議
去中心化的貨幣要注意的兩個問題:
1.誰能發行數字貨幣:挖礦。
2.怎麼驗證交易的合法性:區塊鏈。
雙花攻擊(double spending attack)
雙花攻擊是數字貨幣的一個主要挑戰。
比特幣中的交易都要有輸入和輸出,幣從哪來,花到哪去。
正常情況也可能有兩個分叉,因為兩個節點同時獲得記賬權,兩個節點打包的區塊,同時計算出了那個隨機數。此時會暫時兩個分叉共存,直到其中某一個區塊搶先找到了下一個區塊,這條就成了最長合法鏈,另一個分叉就被丟棄。
女巫攻擊(sybil attack)
某惡意節點不停產生賬戶,賬戶總數超過總賬戶的一半,則取得了區塊鏈的控制權。
比特幣中的共識協議(Consensus)
一些節點是有惡意的,大部分節點是好的。
想法1:把一些交易打包到區塊里作為候選區塊,讓每個區塊投票,如果通過就寫入區塊鏈。
不行,因為有的惡意節點一直發布一些含有惡意交易的區塊,則一直投票,佔用資源。而且有的節點不投票。
想法2:不按賬戶個數投票,而是按照計算力投票。每個節點都可以產生合法交易放入區塊,這些節點就開始試隨機數,直到找到H(block header)≤ target,則這個節點有記賬權。
唯一產生比特幣的途徑
coinbase transaction。這個不用指出幣的來源,有了記賬權的節點(找到了隨機數)會有出塊獎勵。
50BTC->25BTC->12.5BTC,每21萬個比特幣,獎勵就減半。
比特幣爭奪記賬權的過程叫挖礦。爭奪記賬權的節點叫礦工。
⑤ 如何破解比特幣雙重支付難題
六次確認後 雙花概率幾乎為零
⑥ 比特幣突破48000美元,購買比特幣風險大嗎
我認為購買比特幣風險挺大的,因為在未來有可能會項目試驗失敗。因為崩盤是用於資金盤的說法。但是,比特幣本身並不是資金盤。
一、比特幣已經得到主流機構的認可
不管你相不相信,這是客觀事實,比特幣已經存在10年,並且越來越好!這十年比特幣的發展應該用突飛猛進來形容,當然這十年伴隨著比特幣死亡的報道也不下1000多次,可是比特幣越活越好,並且相信比特幣的人最終都得到了豐厚的回報。目前比特幣在一些主流交易所已經上線,最特別的應該講是美國的洲際交易所和CME交易所,這兩個交易所就跟中國的滬深兩個交易所一樣,當然他們的規模更大,畢竟是全球性的交易所。
當然,除了以太坊之外,其實還有很多項目做的非常不錯,這里我就不詳細說明了。但是,更多的項目未來都有可能歸零,因為連以太坊和比特幣都無法保證一定能夠成功,其他項目更不用說了。所以,如果你想投資數字貨幣,建議謹慎,再謹慎,不要用自己無法承受的資金去投資。
⑦ 在區塊鏈中,雙花問題是什麼問題呢
什麼是雙花問題呢?
雙花問題,簡單講就是一筆錢能被花兩次三次很多次。為什麼雙花問題會成為比特幣系統裡面一個這么重要的問題呢?
原因就在於:比特幣,是虛擬貨幣,它是虛擬的,通過代碼形式呈現出來的,是可以被復制下來的。一旦被攻破了代碼漏洞,那麼就可以循環使用同一筆比特幣,這樣一來,比特幣這種「錢」就會變得很雞肋。
我們想一下,要是一筆錢可以花很多次,你有500塊錢,你去買一件500塊錢的衣服,還能循環使用,再去買一雙500塊錢的鞋,這樣一來,錢還能叫錢嗎?
所以,中本聰在設定比特幣系統的時候,他所有的技術手段基本上都是圍繞著解決
「雙花問題」的,來保護比特幣作為一種貨幣,它自身的一個支付手段職能。
其實,這個雙花問題在我們現在的中心化世界裡面根本不是問題,因為有銀行,錢的交易結算都是通過銀行,很安全,有問題直接找銀行。
但是,在去中心化世界裡面呢,沒有銀行這樣一個中心機構,還必須保證一筆錢只能花一次,怎麼樣實現在去中心化的前提下,杜絕「雙花問題」呢,這是一個難題。
這里插一句,中本聰為什麼如此執著的追求「去中心化」呢,自找煩惱嗎?不是,他希望能夠通過去中心化,來解決一些社會問題,其中最主要的問題就是:因為權力機構過量發行貨幣造成的通貨膨脹。
所以,我們總結一下他的邏輯:中心化的貨幣增發導致通貨膨脹——所以我們要實現去中心化——去中心化要面臨很多問題,最大的問題是雙花問題——所以我們要解決雙花問題——怎麼解決雙花問題?
這里,中本聰就引入了UTXO和「時間戳」概念,依靠這兩種手段來解決雙花問題。
⑧ 比特幣交易是如何確認的
比特幣的交易方式
比特幣是類似電子郵件的電子現金,交易雙方需要類似電子郵箱的「比特幣錢包」和類似電郵地址的「比特幣地址」。和收發電子郵件一樣,匯款方通過電腦或智能手機,按收款方地址將比特幣直接付給對方。下列表格,列出了免費下載比特幣錢包和地址的部分網站。
比特幣地址是大約33位長的、由字母和數字構成的一串字元,總是由1或者3開頭,例如""。比特幣軟體可以自動生成地址,生成地址時也不需要聯網交換信息,可以離線進行。可用的比特幣地址超過2個。形象地說,全世界約有2粒沙, 如果每一粒沙中有一個地球,那麼比特幣地址總數遠遠超過所有這些「地球」上的所有的沙子的數量。
比特幣地址和私鑰是成對出現的,他們的關系就像銀行卡號和密碼。比特幣地址就像銀行卡號一樣用來記錄你在該地址上存有多少比特幣。你可以隨意的生成比特幣地址來存放比特幣。每個比特幣地址在生成時,都會有一個相對應的該地址的私鑰被生成出來。這個私鑰可以證明你對該地址上的比特幣具有所有權。我們可以簡單的把比特幣地址理解成為銀行卡號,該地址的私鑰理解成為所對應銀行卡號的密碼。只有你在知道銀行密碼的情況下才能使用銀行卡號上的錢。所以,在使用比特幣錢包時請保存好你的地址和私鑰。
比特幣的交易數據被打包到一個「數據塊」或「區塊」(block)中後,交易就算初步確認了。當區塊鏈接到前一個區塊之後,交易會得到進一步的確認。在連續得到6個區塊確認之後,這筆交易基本上就不可逆轉地得到確認了。比特幣對等網路將所有的交易歷史都儲存在「區塊鏈」(blockchain)中。區塊鏈在持續延長,而且新區塊一旦加入到區塊鏈中,就不會再被移走。區塊鏈實際上是一群分散的用戶端節點,並由所有參與者組成的分布式資料庫,是對所有比特幣交易歷史的記錄 。 中本聰預計,當數據量增大之後,用戶端希望這些數據並不全部儲存自己的節點中。為了實現這一目標,他採用引入散列函數機制。這樣用戶端將能夠自動剔除掉那些自己永遠用不到的部分,比方說極為早期的一些比特幣交易記錄。