1:什么是區塊鏈?
區塊鏈是比特幣的底層技術,比特幣是區塊鏈的應用之一。區塊鏈的本質是去中心化的分布式數據庫,它是通過密碼學方式有序鏈接的區塊鏈條。每個區塊中包含了區塊頭(前一個區塊的根Hash(身份證號),當前區塊的根Hash(身份證號),時間戳(當前區塊發生的時間標記),其他信息)和數據記錄信息。
特點:
(a)去中心化:所有的節點權利義務相等,任意節點的出錯或停止工作都不會影響系統的整體工作
(b)去信任:因為整個系統和數據庫是公開透明的,節點之間無需知道對方是誰,也無需彼此互信
(c)分布式賬本:所有節點共同維護系統賬本。系統中每個節點都含有整個完整數據庫拷貝。
(d)透明性:賬本向區塊鏈中的相關方公開
2:為什么需要區塊鏈?
區塊鏈解決的是信任問題。互相信任的熟人社會最多只能維系在150人以內(鄧巴數),超出這個人數范圍,信任就需要中心化的第三方進行背書。一旦中心化的節點出現問題,例如對數據進行修改、癱瘓等,整個網絡都會受到影響。而區塊鏈是點對點傳播的,不依靠任何單一節點,任意單一節點對信息進行修改都會被其他節點發現并不予承認。所以區塊鏈是一個公證人,一旦信息被創建,幾乎不可更改。
3:區塊鏈技術有什么用?
區塊鏈的分布式賬本,全節點共同維護等特點可以與眾多領域進行合作。
4:區塊鏈是如何被實現的?
A和B發生了一筆交易,會被廣播到全網絡中所有的節點。這時網絡中其他節點經過記賬驗證后就會將這筆交易添加到主鏈上。從此這筆交易就記錄到了區塊鏈上。區塊鏈的基礎架構至下而上共分為6層:數據層,網絡層,共識層,激勵層,合約層,應用層。各層之間相互配合實現去中心化的機制。
5:實現區塊鏈需要解決哪些問題
?(1)如何鼓勵網絡節點參與驗證記賬?
為了鼓勵網絡節點參與驗證記賬,會對第一個滿足一定條件的節點進行獎勵。例如比特幣區塊鏈中,各個節點需要不斷解決一個數學難題(SHA-256哈希值對應的數值解),任意一個節點優先解出這個數值的就會在全網進行廣播。其他節點經過驗證屬實后就會放棄該區塊的計算,將該區塊信息記錄進自己的賬簿后進入下一個區塊的數值計算中去。而第一個解出這個數值的人就會獲得一定比特幣金額的獎勵。因為這一過程與挖礦產生金幣類似,所以通常也將這一過程稱為挖礦。
(2)鏈分叉聽誰的?
誰長聽誰的。若兩個節點A,B在對222區塊進行記錄時同時解出了SHA-256哈希值并對外進行了廣播,這時因為網絡中其他節點與這兩個節點距離有遠近,部分節點會記錄A完成了這件個區塊的記錄,而其他部分節點會記錄B完成了區塊的記錄。這時原本完整的鏈就會在222區塊分叉成兩列。若驗證了后續223塊區塊SHA-256哈希值的節點認可A解出了222塊區塊這一事實,則222B這個區塊會被作為側鏈被廢棄。原來認可B解出了222塊區塊的節點就會轉到222A,223D 這條鏈上去,參與下一個區塊224的解(223已經被D節點驗證了)。222A這個區塊后續加上5個區塊后,222A這筆記錄就會被確認,幾乎不可更改。實際上SHA-256哈希值的計算就需要耗費一定的算力及時間,這在很大程度上也避免了兩個節點同時解出SHA-256哈希值情況的發生。
(3)如何避免一筆錢被重復使用(雙花問題)?
一方面,每一筆付款被廣播給系統其他節點時,其他節點就會對該筆支付進行驗證,看這個交易的合法性。另一方面,在比特幣中,一個交易能不算作確認直到至少有5個驗證過的block在其后面得到驗證。如果一個人向一部分挖礦者公布一個交易,給另一部分挖礦者公布另一個交易,在這種情況下,只會有一筆得到進入主鏈并得到最后的確認。當一筆支付得到確認后,因為大多數礦工想在主鏈上繼續工作以獲得獎勵,再想讓另一條側鏈追上主鏈幾乎是不可能的。
(4)節點中有惡意節點怎么辦(拜占庭將軍問題)?
拜占庭帝國擁有巨額的財富。圍繞在其周圍有10個敵國對其財富垂涎已久。但因為拜占庭帝國的防御措施良好,只有在超過6個敵國同時進攻 的前提下才能攻破拜占庭帝國。此外,這些敵國互相之間還存在一個兩難問題:如果自己進攻了但其他國家未進攻,很有可能自身軍事力量在與拜占庭帝國戰斗中損失巨大。若其他敵國乘機對自己國家發起進攻則自己國家很有可能被滅國。拜占庭將軍問題有解的前提是叛徒少于1/3.在這個前提下可以由一個將軍書面詢問其他將軍進攻時間并要求各個將軍附上自己獨一無二的印章。最后再將集齊了所有將軍的信件分發給各個將軍。若超過一個將軍對其他人也發出了詢問,部分將軍可能會答應超過多個攻擊時間,或者廣播出與第一個將軍發起人不一樣的信息導致系統混亂。
這個例子轉化為計算機語言就是在一個去中心的系統中,有一些節點是故意作惡的,它們可能向外界廣播錯誤的信息或者不廣播信息,在這種情況下如何驗證數據傳輸的準確性。區塊鏈解決這一問題的有效手段即發送信息需要成本,這就造成了誠實是有獎賞的,作惡是有成本的。當一筆交易產生的時候,交易者會用私鑰對信息進行加密,該交易只有在節點使用公鑰進行驗證后才會向全網廣播。這對應于拜占庭將軍問題中用來簽名和驗證消息時使用的“印章”。另外,由于區塊加入了一個數學難題可以以保證在一個時間只有一個節點對區塊進行打包廣播,這也與一個將軍進行廣播類似。
6:區塊鏈里面的共識有哪些?
區塊鏈最核心的突破是在去中心化的情況下對某事件達成了共識。以下是目前各種共識機制的簡述及特點分析。
7:比特幣分叉問題
大神中本聰在2009年的建立比特幣時將比特幣中的區塊設計成了1M,每10分鐘一個區塊,而一筆交易是250字節甚至更大。所以理論上一個區塊最多只能處理7筆交易每秒。
這一交易數量遠遠低于現在的需求,造成了交易確認堵塞。目前只有通過提高手續費使交易被優先處理。由于大神中本聰謎一樣消失了,各個利益群體提出了不同版本的修改意見。這些分叉方案都是對利益以及權力的追逐所導致的。
以下是云幣網上對比特幣分叉的說明:
注:《圖說區塊鏈》 作者:徐明星,田穎,李霽月著