蔡維德 李琪
當(dāng)前區(qū)塊鏈行業(yè)魚龍混雜,各種概念泛濫、混淆視聽。想必很多人對(duì)于區(qū)塊鏈的類型還不甚明白,對(duì)于商家賣給自己鏈的類型還不清楚,而要想搞明白自家鏈究竟是什么鏈,首先得清楚區(qū)塊鏈的定義。
區(qū)塊鏈?zhǔn)怯啥鄠€(gè)獨(dú)立節(jié)點(diǎn)共同參與的分布式數(shù)據(jù)庫系統(tǒng),也可以理解為一種特別的分布式賬本,由這些節(jié)點(diǎn)共同維護(hù),它很難修改、很難偽造、可追溯。區(qū)塊鏈記錄所有發(fā)生交易的信息,過程高效透明、數(shù)據(jù)高度安全。區(qū)塊鏈把數(shù)據(jù)分成了不同的區(qū)塊,每個(gè)區(qū)塊的塊頭都會(huì)包含前一個(gè)區(qū)塊的特定信息,區(qū)塊之間都會(huì)由這樣的信息與先前的區(qū)塊環(huán)環(huán)相扣形成一個(gè)鏈條。從技術(shù)層面上看,區(qū)塊鏈的核心要素包括以下三個(gè)方面:
首先,塊子鏈和時(shí)間戳的塊鏈結(jié)構(gòu)。前一區(qū)塊的特定信息放在當(dāng)前的區(qū)塊頭里,使用時(shí)間戳記錄區(qū)塊的創(chuàng)建時(shí)間。每一區(qū)塊有時(shí)間戳,都使用前一區(qū)塊的信息,對(duì)每筆交易進(jìn)行驗(yàn)證,塊子鏈?zhǔn)菍⑺械膮^(qū)塊連到鏈上。每一塊都有時(shí)間戳,都使用前面一塊的加密信息,再次加密。
其次,多獨(dú)立節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)在獨(dú)立作業(yè)的同時(shí)也存著同樣的信息,并且擁有同樣的權(quán)利,共同維護(hù)整個(gè)系統(tǒng)。這一點(diǎn)如果不能保障的話,就不能稱為區(qū)塊鏈。若鏈上的某一個(gè)節(jié)點(diǎn)有特殊的權(quán)利,甚至這個(gè)特殊的節(jié)點(diǎn)可以改變鏈上的數(shù)據(jù),這樣的鏈就違背了區(qū)塊鏈的真意,而不再是區(qū)塊鏈了。與現(xiàn)有的分布式存儲(chǔ)不同,區(qū)塊鏈分布式賬本是同步的,而不是在一個(gè)賬本形成之后再制成多個(gè)備份。
其次,拜占庭容錯(cuò)的共識(shí)機(jī)制。容忍少于三分之一的節(jié)點(diǎn)惡意作弊或被黑客攻擊,保證系統(tǒng)仍然能夠正常工作。拜占庭將軍的共識(shí)算法可保證在三分之一節(jié)點(diǎn)惡意作弊的情況之下,系統(tǒng)仍能正常運(yùn)行。
以上三個(gè)特征,逐步遞進(jìn),第一個(gè)特征指出區(qū)塊鏈?zhǔn)且粋€(gè)“難被更改的賬簿”,第二個(gè)特征指出區(qū)塊鏈?zhǔn)且粋€(gè)“獨(dú)立的分布式系統(tǒng),每個(gè)節(jié)點(diǎn)有同樣信息”,第三個(gè)特征指出區(qū)塊鏈?zhǔn)且粋€(gè)“可以容忍1/3節(jié)點(diǎn)說謊的分布式系統(tǒng)”。三個(gè)特征共同指出區(qū)塊鏈?zhǔn)且粋€(gè)“可以容忍1/3節(jié)點(diǎn)說謊的分布式賬簿,每個(gè)節(jié)點(diǎn)有同一賬本,很難被更改”。
根據(jù)以上這些條件,當(dāng)前市面上主要存在的區(qū)塊鏈可以分為以下幾大類:
A.真鏈:這種鏈?zhǔn)褂冒菡纪④妳f(xié)議作為共識(shí)機(jī)制,至少需要三輪投票。每個(gè)節(jié)點(diǎn)都是相互獨(dú)立的,存儲(chǔ)同樣的數(shù)據(jù),使用加解密算分。
B.弱鏈:弱化的區(qū)塊鏈?zhǔn)褂脭?shù)據(jù)庫一致性協(xié)議,這些稱之為“劉關(guān)張”協(xié)議,而不用拜占庭將軍協(xié)議?!皠㈥P(guān)張”協(xié)議就是節(jié)點(diǎn)之間互信的協(xié)議,劉備、關(guān)羽、張飛三人桃園結(jié)義,互相信任對(duì)方,他們互不欺騙對(duì)方,三兄弟齊心協(xié)力。如果將他們對(duì)應(yīng)于傳統(tǒng)的區(qū)塊鏈系統(tǒng)各個(gè)節(jié)點(diǎn),也就是說各節(jié)點(diǎn)只可能出現(xiàn)死機(jī)或是斷開連接的情況,不會(huì)向其他節(jié)點(diǎn)發(fā)送虛假消息,互信協(xié)議中不會(huì)出現(xiàn)惡意節(jié)點(diǎn)(向不同的節(jié)點(diǎn)發(fā)送不同的消息)。這樣的協(xié)議無法發(fā)現(xiàn)或抵擋惡意節(jié)點(diǎn),這些惡意節(jié)點(diǎn)的攻擊可以使系統(tǒng)癱瘓。這樣的鏈只能在“信任”環(huán)境里運(yùn)行,里面的節(jié)點(diǎn)不能說謊。這樣的一致性協(xié)議只需要兩輪投票。弱鏈因?yàn)樯倭艘惠喭镀?,所以速度?huì)比真鏈快,但無法抵抗拜占庭將軍攻擊。
C.偽鏈:有些區(qū)塊鏈為了取得更快的交易速度,采用了中心化的控制,這直接和區(qū)塊鏈的定義相沖突,所以這種區(qū)塊鏈系“偽鏈”。這種偽區(qū)塊鏈披著區(qū)塊鏈的外衣,卻是中心化的系統(tǒng)。在一個(gè)中心化的系統(tǒng)中,控制整個(gè)區(qū)塊鏈的中心節(jié)點(diǎn)就是這個(gè)系統(tǒng)最為薄弱的環(huán)節(jié)。如果中心節(jié)點(diǎn)故意說謊或者被人攻破,則整個(gè)區(qū)塊鏈都會(huì)癱瘓。不論是公鏈還是私鏈,都可能是中心化的鏈。區(qū)塊鏈不能采用中心化的系統(tǒng)來實(shí)現(xiàn),這完全違背區(qū)塊鏈的初衷。由Linux基金會(huì)發(fā)起的HyperLdger系統(tǒng)中每筆交易信息都要經(jīng)過Zookeeper軟件處理,由于Zookeeper是一個(gè)中心化的系統(tǒng),所以HyperLedger是一個(gè)中心化的系統(tǒng)也是一個(gè)偽鏈。
還有其他偽鏈?zhǔn)褂靡呀?jīng)被證實(shí)使用了不安全的加密算法。國(guó)外有一家公司自稱有高速區(qū)塊鏈,仔細(xì)探究之后才知道是使用了已經(jīng)被證實(shí)不安全的加密算法。使用這樣的加密算法鏈肯定不安全,這樣的鏈也算是偽鏈。偽鏈最大的風(fēng)險(xiǎn)就是不安全。如果中心被攻破,整個(gè)鏈就會(huì)被攻破;使用不安全的加密算法,區(qū)塊鏈系統(tǒng)會(huì)變得很不安全。
D.非鏈:有些系統(tǒng)設(shè)計(jì)理念與區(qū)塊鏈類似,但改變了區(qū)塊鏈的架構(gòu),或者只保留一部分區(qū)塊鏈機(jī)制,這些系統(tǒng)稱為“非鏈”。顧名思義,非即不是,意為不是區(qū)塊鏈,但又和區(qū)塊鏈有一定的聯(lián)系。出名的非鏈包括IOTA、Hashgraph、Corda、閃申網(wǎng)絡(luò)、Guardtime。例如IOTA是新一代公共分布式賬本,其核心利用了一種基于有向無環(huán)圖(DAG)的新數(shù)據(jù)結(jié)構(gòu)。通過DAG,IOTA能夠?qū)崿F(xiàn)較高的交易吞吐量,IOTA和區(qū)塊鏈存在著很大區(qū)別,它們有兩個(gè)不同的架構(gòu)。
HashgTaph也使用了類似于DAG的共識(shí)機(jī)制,它采用了以下兩種技術(shù):第一,互相傳播(Gossipabout Gossip);第二,虛擬投票(Virmal Voting)?;ハ鄠鞑谋举|(zhì)上意味著向本次傳播附加一些額外的信息,即兩者之間互相傳播內(nèi)容的哈希值。通過使用這些信息,就可以創(chuàng)建Hashgraph,而且有更多信息傳播時(shí),每一個(gè)節(jié)點(diǎn)都可以持續(xù)更新。一旦Hashgraph形成,就很容易知曉節(jié)點(diǎn)的投票了。因?yàn)楫?dāng)每一個(gè)節(jié)點(diǎn)收到信息時(shí),我們也都知道了它們所擁有的信息。這個(gè)數(shù)據(jù)可以用作投票機(jī)理的輸入值,可以很快被找到。Hashgraph屬于非鏈。
Corda也是一種非鏈。其出發(fā)點(diǎn)是公司與公司之間的單筆合約,其共識(shí)也只發(fā)生在單筆交易的參與方之間,而并不對(duì)所有的參與者產(chǎn)生共識(shí)。數(shù)據(jù)的同步也只是在單筆交易的參與節(jié)點(diǎn)之間,而不是在所有節(jié)點(diǎn)之間,這與區(qū)塊鏈的設(shè)計(jì)是不同的。Corda采用了劉關(guān)張一致協(xié)議保證數(shù)據(jù)的一致性,在驗(yàn)證的過程中使用了數(shù)字簽名。
非鏈還有閃電網(wǎng)絡(luò)和Guardnme,它們各自擁有不同的功能,可以滿足不同場(chǎng)景的需要。非鏈前途未卜,能不能被金融市場(chǎng)接受還是一個(gè)問題,例如加拿大央行對(duì)Corda就有三大批評(píng),指其不太成熟,使用Corda會(huì)增加銀行系統(tǒng)的風(fēng)險(xiǎn)。
現(xiàn)在大部分的非鏈還沒有經(jīng)過嚴(yán)格檢驗(yàn),或是沒有通過央行的測(cè)試,提升的空間非常大。但隨著技術(shù)的不斷進(jìn)步,區(qū)塊鏈的功能將更加完善,非鏈也會(huì)不斷進(jìn)步。由于非鏈可以有全新的創(chuàng)新,以后可能會(huì)出現(xiàn)無數(shù)的新非鏈。
非鏈如果使用中心化系統(tǒng),那也屬于偽鏈。例如Kipple公司的協(xié)議在今年被證實(shí)是由中心控制的,因此它既是非鏈,也是偽鏈。
E.胡鏈:意為“胡言亂語”的鏈,這些區(qū)塊鏈設(shè)計(jì)沒有科學(xué)依據(jù),甚至與事實(shí)依據(jù)相違背。例如,有些區(qū)塊鏈宣稱有可以容錯(cuò)超過1/3錯(cuò)誤節(jié)點(diǎn)的共識(shí)協(xié)議,這與科學(xué)相違背,就是“胡鏈”。胡鏈的白皮書可能是抄襲別人的,將幾種不能融合的技術(shù)放到一起,其中提到的參與單位可能是不會(huì)參與的。胡鏈如果沒有真正做出未,就是空鏈。胡鏈也可以稱為湖鏈,“胡”和“湖”不分,因?yàn)槎际呛詠y語,沒有科學(xué)依據(jù)。
F.空鏈:當(dāng)前市面上存在著很多假的項(xiàng)目,這些項(xiàng)目只發(fā)幣炒幣,但并沒有具體落地的鏈,這些鏈被稱為空鏈,意為“空氣鏈”或是“在太空的鏈”。
一個(gè)真鏈和偽鏈、非鏈、弱鏈、胡鏈、空鏈沒有交集;一個(gè)弱鏈和真鏈、非鏈、胡鏈、空鏈沒有交集;一個(gè)偽鏈可能是非鏈或是胡鏈,但不能是真鏈或是弱鏈;一個(gè)非鏈不能是真鏈或是弱鏈,但非鏈可能是偽鏈(如果使用中心系統(tǒng)來實(shí)踐);一個(gè)胡鏈不能是真鏈或是弱鏈,但可能是偽鏈。
單從技術(shù)白皮書并不能真正明確鏈的種類,要想搞清楚自家鏈到底屬于哪一種必須通過測(cè)試這些系統(tǒng)才能得到答案。白皮書反而可能是胡鏈和空鏈的來源,偽鏈也需要大量研究后才能知道。
但是泰山沙盒可以分析公鏈和私鏈,它們是真鏈還是非鏈、偽鏈、胡鏈、空鏈,泰山沙盒都可以知道。真鏈可以用沙盒的追縱共識(shí)協(xié)議,如果是三輪投票,便是真鏈;而如果兩輪投票,那就是弱鏈;如果每個(gè)交易經(jīng)過一個(gè)中心系統(tǒng),那就是偽鏈??真?zhǔn)遣粫?huì)用來被測(cè)試的,客戶可以要求商家提供鏈的相關(guān)證明。如果使用偽鏈,商家是要負(fù)全責(zé)的。