1:什么是區(qū)塊鏈?
區(qū)塊鏈?zhǔn)潜忍貛诺牡讓蛹夹g(shù),比特幣是區(qū)塊鏈的應(yīng)用之一。區(qū)塊鏈的本質(zhì)是去中心化的分布式數(shù)據(jù)庫,它是通過密碼學(xué)方式有序鏈接的區(qū)塊鏈條。每個(gè)區(qū)塊中包含了區(qū)塊頭(前一個(gè)區(qū)塊的根Hash(身份證號),當(dāng)前區(qū)塊的根Hash(身份證號),時(shí)間戳(當(dāng)前區(qū)塊發(fā)生的時(shí)間標(biāo)記),其他信息)和數(shù)據(jù)記錄信息。

特點(diǎn):
(a)去中心化:所有的節(jié)點(diǎn)權(quán)利義務(wù)相等,任意節(jié)點(diǎn)的出錯(cuò)或停止工作都不會影響系統(tǒng)的整體工作
(b)去信任:因?yàn)檎麄€(gè)系統(tǒng)和數(shù)據(jù)庫是公開透明的,節(jié)點(diǎn)之間無需知道對方是誰,也無需彼此互信
(c)分布式賬本:所有節(jié)點(diǎn)共同維護(hù)系統(tǒng)賬本。系統(tǒng)中每個(gè)節(jié)點(diǎn)都含有整個(gè)完整數(shù)據(jù)庫拷貝。
(d)透明性:賬本向區(qū)塊鏈中的相關(guān)方公開
2:為什么需要區(qū)塊鏈?
區(qū)塊鏈解決的是信任問題?;ハ嘈湃蔚氖烊松鐣疃嘀荒芫S系在150人以內(nèi)(鄧巴數(shù)),超出這個(gè)人數(shù)范圍,信任就需要中心化的第三方進(jìn)行背書。一旦中心化的節(jié)點(diǎn)出現(xiàn)問題,例如對數(shù)據(jù)進(jìn)行修改、癱瘓等,整個(gè)網(wǎng)絡(luò)都會受到影響。而區(qū)塊鏈?zhǔn)屈c(diǎn)對點(diǎn)傳播的,不依靠任何單一節(jié)點(diǎn),任意單一節(jié)點(diǎn)對信息進(jìn)行修改都會被其他節(jié)點(diǎn)發(fā)現(xiàn)并不予承認(rèn)。所以區(qū)塊鏈?zhǔn)且粋€(gè)公證人,一旦信息被創(chuàng)建,幾乎不可更改。

3:區(qū)塊鏈技術(shù)有什么用?
區(qū)塊鏈的分布式賬本,全節(jié)點(diǎn)共同維護(hù)等特點(diǎn)可以與眾多領(lǐng)域進(jìn)行合作。

4:區(qū)塊鏈?zhǔn)侨绾伪粚?shí)現(xiàn)的?
A和B發(fā)生了一筆交易,會被廣播到全網(wǎng)絡(luò)中所有的節(jié)點(diǎn)。這時(shí)網(wǎng)絡(luò)中其他節(jié)點(diǎn)經(jīng)過記賬驗(yàn)證后就會將這筆交易添加到主鏈上。從此這筆交易就記錄到了區(qū)塊鏈上。區(qū)塊鏈的基礎(chǔ)架構(gòu)至下而上共分為6層:數(shù)據(jù)層,網(wǎng)絡(luò)層,共識層,激勵(lì)層,合約層,應(yīng)用層。各層之間相互配合實(shí)現(xiàn)去中心化的機(jī)制。

5:實(shí)現(xiàn)區(qū)塊鏈需要解決哪些問題
?(1)如何鼓勵(lì)網(wǎng)絡(luò)節(jié)點(diǎn)參與驗(yàn)證記賬?
為了鼓勵(lì)網(wǎng)絡(luò)節(jié)點(diǎn)參與驗(yàn)證記賬,會對第一個(gè)滿足一定條件的節(jié)點(diǎn)進(jìn)行獎(jiǎng)勵(lì)。例如比特幣區(qū)塊鏈中,各個(gè)節(jié)點(diǎn)需要不斷解決一個(gè)數(shù)學(xué)難題(SHA-256哈希值對應(yīng)的數(shù)值解),任意一個(gè)節(jié)點(diǎn)優(yōu)先解出這個(gè)數(shù)值的就會在全網(wǎng)進(jìn)行廣播。其他節(jié)點(diǎn)經(jīng)過驗(yàn)證屬實(shí)后就會放棄該區(qū)塊的計(jì)算,將該區(qū)塊信息記錄進(jìn)自己的賬簿后進(jìn)入下一個(gè)區(qū)塊的數(shù)值計(jì)算中去。而第一個(gè)解出這個(gè)數(shù)值的人就會獲得一定比特幣金額的獎(jiǎng)勵(lì)。因?yàn)檫@一過程與挖礦產(chǎn)生金幣類似,所以通常也將這一過程稱為挖礦。
(2)鏈分叉聽誰的?
誰長聽誰的。若兩個(gè)節(jié)點(diǎn)A,B在對222區(qū)塊進(jìn)行記錄時(shí)同時(shí)解出了SHA-256哈希值并對外進(jìn)行了廣播,這時(shí)因?yàn)榫W(wǎng)絡(luò)中其他節(jié)點(diǎn)與這兩個(gè)節(jié)點(diǎn)距離有遠(yuǎn)近,部分節(jié)點(diǎn)會記錄A完成了這件個(gè)區(qū)塊的記錄,而其他部分節(jié)點(diǎn)會記錄B完成了區(qū)塊的記錄。這時(shí)原本完整的鏈就會在222區(qū)塊分叉成兩列。若驗(yàn)證了后續(xù)223塊區(qū)塊SHA-256哈希值的節(jié)點(diǎn)認(rèn)可A解出了222塊區(qū)塊這一事實(shí),則222B這個(gè)區(qū)塊會被作為側(cè)鏈被廢棄。原來認(rèn)可B解出了222塊區(qū)塊的節(jié)點(diǎn)就會轉(zhuǎn)到222A,223D 這條鏈上去,參與下一個(gè)區(qū)塊224的解(223已經(jīng)被D節(jié)點(diǎn)驗(yàn)證了)。222A這個(gè)區(qū)塊后續(xù)加上5個(gè)區(qū)塊后,222A這筆記錄就會被確認(rèn),幾乎不可更改。實(shí)際上SHA-256哈希值的計(jì)算就需要耗費(fèi)一定的算力及時(shí)間,這在很大程度上也避免了兩個(gè)節(jié)點(diǎn)同時(shí)解出SHA-256哈希值情況的發(fā)生。

(3)如何避免一筆錢被重復(fù)使用(雙花問題)?
一方面,每一筆付款被廣播給系統(tǒng)其他節(jié)點(diǎn)時(shí),其他節(jié)點(diǎn)就會對該筆支付進(jìn)行驗(yàn)證,看這個(gè)交易的合法性。另一方面,在比特幣中,一個(gè)交易能不算作確認(rèn)直到至少有5個(gè)驗(yàn)證過的block在其后面得到驗(yàn)證。如果一個(gè)人向一部分挖礦者公布一個(gè)交易,給另一部分挖礦者公布另一個(gè)交易,在這種情況下,只會有一筆得到進(jìn)入主鏈并得到最后的確認(rèn)。當(dāng)一筆支付得到確認(rèn)后,因?yàn)榇蠖鄶?shù)礦工想在主鏈上繼續(xù)工作以獲得獎(jiǎng)勵(lì),再想讓另一條側(cè)鏈追上主鏈幾乎是不可能的。
(4)節(jié)點(diǎn)中有惡意節(jié)點(diǎn)怎么辦(拜占庭將軍問題)?
拜占庭帝國擁有巨額的財(cái)富。圍繞在其周圍有10個(gè)敵國對其財(cái)富垂涎已久。但因?yàn)榘菡纪サ蹏姆烙胧┝己?,只有在超過6個(gè)敵國同時(shí)進(jìn)攻 的前提下才能攻破拜占庭帝國。此外,這些敵國互相之間還存在一個(gè)兩難問題:如果自己進(jìn)攻了但其他國家未進(jìn)攻,很有可能自身軍事力量在與拜占庭帝國戰(zhàn)斗中損失巨大。若其他敵國乘機(jī)對自己國家發(fā)起進(jìn)攻則自己國家很有可能被滅國。拜占庭將軍問題有解的前提是叛徒少于1/3.在這個(gè)前提下可以由一個(gè)將軍書面詢問其他將軍進(jìn)攻時(shí)間并要求各個(gè)將軍附上自己獨(dú)一無二的印章。最后再將集齊了所有將軍的信件分發(fā)給各個(gè)將軍。若超過一個(gè)將軍對其他人也發(fā)出了詢問,部分將軍可能會答應(yīng)超過多個(gè)攻擊時(shí)間,或者廣播出與第一個(gè)將軍發(fā)起人不一樣的信息導(dǎo)致系統(tǒng)混亂。
這個(gè)例子轉(zhuǎn)化為計(jì)算機(jī)語言就是在一個(gè)去中心的系統(tǒng)中,有一些節(jié)點(diǎn)是故意作惡的,它們可能向外界廣播錯(cuò)誤的信息或者不廣播信息,在這種情況下如何驗(yàn)證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。區(qū)塊鏈解決這一問題的有效手段即發(fā)送信息需要成本,這就造成了誠實(shí)是有獎(jiǎng)賞的,作惡是有成本的。當(dāng)一筆交易產(chǎn)生的時(shí)候,交易者會用私鑰對信息進(jìn)行加密,該交易只有在節(jié)點(diǎn)使用公鑰進(jìn)行驗(yàn)證后才會向全網(wǎng)廣播。這對應(yīng)于拜占庭將軍問題中用來簽名和驗(yàn)證消息時(shí)使用的“印章”。另外,由于區(qū)塊加入了一個(gè)數(shù)學(xué)難題可以以保證在一個(gè)時(shí)間只有一個(gè)節(jié)點(diǎn)對區(qū)塊進(jìn)行打包廣播,這也與一個(gè)將軍進(jìn)行廣播類似。
6:區(qū)塊鏈里面的共識有哪些?
區(qū)塊鏈最核心的突破是在去中心化的情況下對某事件達(dá)成了共識。以下是目前各種共識機(jī)制的簡述及特點(diǎn)分析。

7:比特幣分叉問題
大神中本聰在2009年的建立比特幣時(shí)將比特幣中的區(qū)塊設(shè)計(jì)成了1M,每10分鐘一個(gè)區(qū)塊,而一筆交易是250字節(jié)甚至更大。所以理論上一個(gè)區(qū)塊最多只能處理7筆交易每秒。

這一交易數(shù)量遠(yuǎn)遠(yuǎn)低于現(xiàn)在的需求,造成了交易確認(rèn)堵塞。目前只有通過提高手續(xù)費(fèi)使交易被優(yōu)先處理。由于大神中本聰謎一樣消失了,各個(gè)利益群體提出了不同版本的修改意見。這些分叉方案都是對利益以及權(quán)力的追逐所導(dǎo)致的。

以下是云幣網(wǎng)上對比特幣分叉的說明:


注:《圖說區(qū)塊鏈》 作者:徐明星,田穎,李霽月著