區塊鏈的雙花
⑴ 雙花理論是什麼概念
在學習區塊鏈的過程中,大家一定對會聽到「雙花」這個詞,意思就是雙重支付,或者更直白點就是一筆資金被花費了兩次。這篇文章我們來簡單的分析一下為什麼會有雙花,比特幣是如何避免雙花的。
在傳統的交易中,因為有銀行這樣的中心化機構,所以是不會存在雙花問題的:每一筆支付都將從你的銀行賬戶中扣除相應的資金,所有的明細在銀行都有記錄。但是在比特幣中,因為沒有賬戶的概念,而是引入了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,用該區塊延長自己的區塊鏈,於是整個區塊鏈網路
⑵ 區塊鏈的大黑馬會是誰
區塊鏈的大黑馬可能是Eggone,因為原因主要出於它幕後的機構太強大。
trustnote的會計方法就像陪審團通過多個投票。如果沒有錯誤的交易信息,可以很容易地驗證。錯誤的交易信息將單獨列出以供驗證。如果有問題,可以根據主次的大小來判斷雙花。這種設計完全完成了比特幣的排隊邏輯。比特幣網路的塊確認更像是一個收費站,塊必須逐個通過。如果一個模塊出錯,整個網路將癱瘓。
⑶ 區塊鏈的特點是什麼
1.任何節點都可以創建交易,在經過一段時間的確認之後,就可以合理地確認該交易是否為有效,區塊鏈可有效地防止雙花問題的發生。
2.對於試圖重寫或者修改交易記錄而言,它的成本是非常高的。
3.區塊鏈實現了兩種記錄:交易(transactions)以及區塊(blocks)。交易是被存儲在區塊鏈上的實際數據,而區塊則是記錄確認某些交易是在何時,以及以何種順序成為區塊鏈資料庫的一部分。交易是由參與者在正常過程中使用系統所創建的(在加密數字貨幣的例子中,一筆交易是由bob將代幣發送給alice所創建的),而區塊則是由我們稱之為礦工(miners)的單位負責創建。
⑷ 區塊鏈中的時間戳是什麼
為了防止雙花問題,系統會給每一個區塊的交易信息都自動加上時間戳,給它打上時間烙印,這個時間你花了多少錢,花了就是花了,已經記錄上了,不能再用它買別的東西了。
具體怎麼記錄的呢?其實還是通過計算,把時間戳和區塊上的其他交易信息,通過復雜的計算,得出一個加密數值,這個加密數值叫作「哈希值」,每一個新區塊都包含前一個區塊的哈希值,由此形成一條區塊鏈。
所以我們說:比特幣系統,實際上是一個層層嵌套、永不停歇的、非常強大的時間戳
系統,它利用的是時間戳,保證每一個區塊按照時間順序鏈接成「鏈」(也就是區塊鏈)。
從這里我們這樣理解,時間戳,字面意思是給區塊打上時間印記,它的實際作用在於:為之後計算哈希值提供一個重要參數,是計算和核對過程中一個必不可少、非常重要的信息。
最後,我們總結本節的內容。本節主要介紹了兩個名詞:UTXO和時間戳,這兩個概念呢,是解決「雙花問題」的重要手段,能夠保證比特幣可以在沒有第三方機構的情況下,不被多次使用。
⑸ 區塊鏈技術上的節點是什麼
節點就是各區塊相連的地方,各區塊需要鏈起來才有用。
最核心的解析:
一.透明性,二.開放性,三.信息不可篡改,四.去中心化,
五、詳細的解析。
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法。
1、狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,
並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
2、廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。
⑹ 區塊鏈的三大核心技術是什麼
區塊鏈運作的7個核心技術介紹 2018-01-15
1.區塊鏈的鏈接
顧名思義,區塊鏈即由一個個區塊組成的鏈。每個區塊分為區塊頭和區塊體(含交易數據)兩個部分。區塊頭包括用來實現區塊鏈接的前一區塊的哈希(PrevHash)值(又稱散列值)和用於計算挖礦難度的隨機數(nonce)。前一區塊的哈希值實際是上一個區塊頭部的哈希值,而計算隨機數規則決定了哪個礦工可以獲得記錄區塊的權力。
2.共識機制
區塊鏈是伴隨比特幣誕生的,是比特幣的基礎技術架構。可以將區塊鏈理解為一個基於互聯網的去中心化記賬系統。類似比特幣這樣的去中心化數字貨幣系統,要求在沒有中心節點的情況下保證各個誠實節點記賬的一致性,就需要區塊鏈來完成。所以區塊鏈技術的核心是在沒有中心控制的情況下,在互相沒有信任基礎的個體之間就交易的合法性等達成共識的共識機制。
區塊鏈的共識機制目前主要有4類:PoW、PoS、DPoS、分布式一致性演算法。
3.解鎖腳本
腳本是區塊鏈上實現自動驗證、自動執行合約的重要技術。每一筆交易的每一項輸出嚴格意義上並不是指向一個地址,而是指向一個腳本。腳本類似一套規則,它約束著接收方怎樣才能花掉這個輸出上鎖定的資產。
交易的合法性驗證也依賴於腳本。目前它依賴於兩類腳本:鎖定腳本與解鎖腳本。鎖定腳本是在輸出交易上加上的條件,通過一段腳本語言來實現,位於交易的輸出。解鎖腳本與鎖定腳本相對應,只有滿足鎖定腳本要求的條件,才能花掉這個腳本上對應的資產,位於交易的輸入。通過腳本語言可以表達很多靈活的條件。解釋腳本是通過類似我們編程領域里的「虛擬機」,它分布式運行在區塊鏈網路里的每一個節點。
4.交易規則
區塊鏈交易就是構成區塊的基本單位,也是區塊鏈負責記錄的實際有效內容。一個區塊鏈交易可以是一次轉賬,也可以是智能合約的部署等其他事務。
就比特幣而言,交易即指一次支付轉賬。其交易規則如下:
1)交易的輸入和輸出不能為空。
2)對交易的每個輸入,如果其對應的UTXO輸出能在當前交易池中找到,則拒絕該交易。因為當前交易池是未被記錄在區塊鏈中的交易,而交易的每個輸入,應該來自確認的UTXO。如果在當前交易池中找到,那就是雙花交易。
3)交易中的每個輸入,其對應的輸出必須是UTXO。
4)每個輸入的解鎖腳本(unlocking )必須和相應輸出的鎖定腳本(locking )共同驗證交易的合規性。
5.交易優先順序
區塊鏈交易的優先順序由區塊鏈協議規則決定。對於比特幣而言,交易被區塊包含的優先次序由交易廣播到網路上的時間和交易額的大小決定。隨著交易廣播到網路上的時間的增長,交易的鏈齡增加,交易的優先順序就被提高,最終會被區塊包含。對於以太坊而言,交易的優先順序還與交易的發布者願意支付的交易費用有關,發布者願意支付的交易費用越高,交易被包含進區塊的優先順序就越高。
6.Merkle證明
Merkle證明的原始應用是比特幣系統(Bitcoin),它是由中本聰(Satoshi Nakamoto)在2009年描述並且創造的。比特幣區塊鏈使用了Merkle證明,為的是將交易存儲在每一個區塊中。使得交易不能被篡改,同時也容易驗證交易是否包含在一個特定區塊中。
7.RLP
RLP(Recursive Length Prefix,遞歸長度前綴編碼)是Ethereum中對象序列化的一個主要編碼方式,其目的是對任意嵌套的二進制數據的序列進行編碼。
⑺ 區塊鏈的作用和特點是什麼
1.任何節點都可以創建交易,在經過一段時間的確認之後,就可以合理地確認該交易是否為有效,區塊鏈可有效地防止雙花問題的發生。
2.對於試圖重寫或者修改交易記錄而言,它的成本是非常高的。
3.區塊鏈實現了兩種記錄:交易(transactions)以及區塊(blocks)。交易是被存儲在區塊鏈上的實際數據,而區塊則是記錄確認某些交易是在何時,以及以何種順序成為區塊鏈資料庫的一部分。交易是由參與者在正常過程中使用系統所創建的(在加密數字貨幣的例子中,一筆交易是由bob將代幣發送給alice所創建的),而區塊則是由我們稱之為礦工(miners)的單位負責創建。
⑻ 區塊鏈中的硬分叉,以太經典ETC是什麼意思
以太經典(ETC)簡史
以太經典始於一個不幸的事件。
2016年5月,去中心化自治組織(DAO)舉行了一次代幣銷售,目標是建立一個基於區塊鏈的風險投資,以資助Ethereum生態系統內未來的去中心化應用(DApps)。
基本上,DAO是一個去中心化方式運作的復雜的智能合約–當條件滿足時自動在多方之間執行任務的計算機代碼。
盡管其有著雄心勃勃的目標以及成功的代幣銷售,DAO的代碼卻有一個重大漏洞,使得攻擊者可以從去中心化組織中竊取ETH。
攻擊者在2016年6月利用這一漏洞,引發了臭名昭著的DAO黑客事件,惡意竊取了大約價值5000萬美元的ETH。
毋庸置疑,DAO黑客事件曾震驚了Ethereum社區,也使得ETH價格從20美元跌至13美元。
在DAO黑客事件發生後,Ethereum社區不得不從三個選項中選擇。
什麼都不做,努力承受攻擊帶來的後果;
啟動軟分叉,收回資金;
部署一個硬分叉來恢復丟失的ETH。
軟分叉和硬分叉都是重大的網路升級。然而,軟分叉允許未升級的用戶和升級後的用戶相互交流,而硬分叉則不能向後兼容以前的版本。
由於開發人員意識到部署軟分叉會使網路受到分布式拒絕服務(DDoS)攻擊,Ethereum社區決定發起硬分叉,以恢復在DAO黑客攻擊中損失的資金。
雖然這一方案得到了大多數人的支持,但Ethereum社區中的一小部分人卻表示反對,他們認為 「代碼即律法」,區塊鏈網路應該是不可改變的。
由於雙方未能在解決方案上達成一致,最終導致了Ethereum區塊鏈的分裂。
那些試圖找回丟失的ETH的人選擇了硬分叉,開啟了我們今天所熟知的Ethereum(ETH)區塊鏈,而另一群人則留在了最初的Ethereum Classic(ETC)鏈上。
以太經典解決了那些問題?
以太經典(ETC)是一個允許開發者部署智能合約和DApps的區塊鏈平台。
雖然這個功能與Ethereum(ETH)的功能相同,但ETC區塊鏈有兩個主要區別。
首先,Ethereum Classic社區反對篡改分布式賬本,支持「區塊鏈網路不能也不該被修改」的觀點。
其次,雖然ETH總供應量沒有硬性上限,但以太經典採用恆定供應的貨幣政策,最多允許創建2.3億個ETC。
作為一個加分項,以太經典在去年啟動了Atlantis硬分叉,以增加與Ethereum的交互性,並通過zk-SNARKS提高交易的隱私保護程度。
以太經典ETC推薦的交易平台:火幣、OKEX、AAX等。
⑼ 在區塊鏈中,雙花問題是什麼問題呢
什麼是雙花問題呢?
雙花問題,簡單講就是一筆錢能被花兩次三次很多次。為什麼雙花問題會成為比特幣系統裡面一個這么重要的問題呢?
原因就在於:比特幣,是虛擬貨幣,它是虛擬的,通過代碼形式呈現出來的,是可以被復制下來的。一旦被攻破了代碼漏洞,那麼就可以循環使用同一筆比特幣,這樣一來,比特幣這種「錢」就會變得很雞肋。
我們想一下,要是一筆錢可以花很多次,你有500塊錢,你去買一件500塊錢的衣服,還能循環使用,再去買一雙500塊錢的鞋,這樣一來,錢還能叫錢嗎?
所以,中本聰在設定比特幣系統的時候,他所有的技術手段基本上都是圍繞著解決
「雙花問題」的,來保護比特幣作為一種貨幣,它自身的一個支付手段職能。
其實,這個雙花問題在我們現在的中心化世界裡面根本不是問題,因為有銀行,錢的交易結算都是通過銀行,很安全,有問題直接找銀行。
但是,在去中心化世界裡面呢,沒有銀行這樣一個中心機構,還必須保證一筆錢只能花一次,怎麼樣實現在去中心化的前提下,杜絕「雙花問題」呢,這是一個難題。
這里插一句,中本聰為什麼如此執著的追求「去中心化」呢,自找煩惱嗎?不是,他希望能夠通過去中心化,來解決一些社會問題,其中最主要的問題就是:因為權力機構過量發行貨幣造成的通貨膨脹。
所以,我們總結一下他的邏輯:中心化的貨幣增發導致通貨膨脹——所以我們要實現去中心化——去中心化要面臨很多問題,最大的問題是雙花問題——所以我們要解決雙花問題——怎麼解決雙花問題?
這里,中本聰就引入了UTXO和「時間戳」概念,依靠這兩種手段來解決雙花問題。
⑽ 雙花是什麼意思
雙花是中葯金銀花的別稱。