如何正確的使用區(qū)塊鏈技術(shù)
區(qū)塊鏈剛剛度過(guò)它的第一個(gè)十年,超高的發(fā)展速度不僅創(chuàng)造了振奮人心的造富神話,也帶來(lái)了混亂、誤解與欺詐,加上各種路“媒體”“項(xiàng)目方”的以訛傳訛,大眾甚至是業(yè)內(nèi)人士,在區(qū)塊鏈相關(guān)的技術(shù)與概念的認(rèn)知上,都存在很大的誤區(qū)。
只有消除了誤區(qū),有正確的價(jià)值導(dǎo)向,才能很好的回答以上的問(wèn)題。今天我們請(qǐng)來(lái)了Trias的CTO 魏明博士,為我們掃清對(duì)區(qū)塊鏈的認(rèn)知誤區(qū),并與我們分享他們對(duì)未來(lái)區(qū)塊鏈應(yīng)用發(fā)展的建議與看法。
溯源邏輯,掃清誤區(qū)
我見(jiàn)過(guò)很多人,上至幣圈大佬、投資人,下至普通投資者,對(duì)區(qū)塊鏈存在誤解是一個(gè)很普遍的問(wèn)題。但不管你是要投資、抄幣還是做技術(shù),至少得清楚的知道區(qū)塊鏈到底是什么東西,能解決什么問(wèn)題。
我推薦大家一定得好好看經(jīng)濟(jì)學(xué)人15年10月31號(hào)的封面文章《區(qū)塊鏈:信任的機(jī)器》,這是我能找到的,對(duì)區(qū)塊鏈最早的權(quán)威學(xué)術(shù)描述。如果你真的要做區(qū)塊鏈,不管是投資、抄幣還是技術(shù),你都得知道它到底是什么,能干什么。一定要去讀。
區(qū)塊鏈?zhǔn)强尚牛╰rust)技術(shù)而不是安全(security)技術(shù)
在經(jīng)濟(jì)學(xué)人里給了一個(gè)非常好的定義———“信任的機(jī)器”。區(qū)塊鏈?zhǔn)且环N去中心化的可信(trust)技術(shù),而不是某種安全(security)技術(shù)。
為什么專門(mén)提到這個(gè)?我發(fā)現(xiàn)討論中經(jīng)常會(huì)講到一些事件,比如某某交易所被盜了多少幣,然后就得出區(qū)塊鏈技術(shù)不好的結(jié)論,認(rèn)為它是沒(méi)有價(jià)值。這是非常錯(cuò)誤的一個(gè)看法,是對(duì)區(qū)塊鏈技術(shù)完全錯(cuò)誤的理解。
上面提到的并不是一個(gè)可信問(wèn)題,而是一個(gè)安全問(wèn)題。信任是不等于安全的,這個(gè)概念很多行業(yè)內(nèi)所謂的大專家都會(huì)混淆??尚胚@個(gè)問(wèn)題屬于一個(gè)獨(dú)立的學(xué)科,它就叫可信計(jì)算,跟安全是兩碼事。通俗的解釋一下,皇帝會(huì)選擇最信任的人執(zhí)行命令,所以皇帝會(huì)信任太監(jiān),東廠對(duì)他來(lái)說(shuō)就是一個(gè)信任的機(jī)器。至于皇帝下達(dá)的命令是不是正確的,這就和東廠本身沒(méi)有關(guān)系了。
能不能?chē)?yán)格按照給出的命令執(zhí)行,這就是可信問(wèn)題;至于這個(gè)命令對(duì)不對(duì),數(shù)據(jù)隱私不隱私,這就是一個(gè)安全問(wèn)題了。而區(qū)塊鏈技術(shù)本身并不解決任何的安全問(wèn)題,因此他還是需要搭配安全技術(shù)一起使用的,比如非對(duì)稱加密、安全隨機(jī)數(shù)等。
而在大多數(shù)人看來(lái),沒(méi)有經(jīng)濟(jì)損失才是安全的,這個(gè)涉及的范圍就太廣了,非要鉆牛角的講,你去京東、淘寶故意上傳錯(cuò)誤數(shù)據(jù)也會(huì)造成經(jīng)濟(jì)損失。共識(shí)算法保證了區(qū)塊鏈的可信,上傳的智能合約,發(fā)送的轉(zhuǎn)賬請(qǐng)求都會(huì)非常準(zhǔn)確的進(jìn)行執(zhí)行,但如果合約本身有安全bug,又或者轉(zhuǎn)賬時(shí)輸錯(cuò)了收賬人的地址導(dǎo)致財(cái)產(chǎn)無(wú)法找回,這就和區(qū)塊鏈沒(méi)有半毛錢(qián)關(guān)系了,區(qū)塊鏈依然是可信的。
不是說(shuō)用了傳統(tǒng)架構(gòu)就算“偽區(qū)塊鏈”
經(jīng)濟(jì)學(xué)人的文章還專門(mén)強(qiáng)調(diào)了一件事兒,區(qū)塊鏈作為一個(gè)去中心化的可信技術(shù),是包含多層的,數(shù)據(jù)庫(kù)、通訊、文件系統(tǒng)等都在算在這個(gè)下面。
我遇到過(guò)很多客戶,拿著一個(gè)區(qū)塊鏈項(xiàng)目,問(wèn)我代碼里為什么會(huì)有數(shù)據(jù)庫(kù),為什么會(huì)有云服務(wù),你這個(gè)東西不算是區(qū)塊鏈,你這不就是一個(gè)數(shù)據(jù)庫(kù)嗎?
這種理解是完全錯(cuò)誤的,沒(méi)有什么技術(shù)革新是從頭造輪子的。只要是一個(gè)解決信任的去中心化的系統(tǒng),底層承載的方式可以是多種多樣的,可以是數(shù)據(jù)庫(kù),可以是通訊協(xié)議,也可以文件系統(tǒng),都可以算作區(qū)塊鏈。
計(jì)算機(jī)領(lǐng)域任何一次變革都不是一次完全的革新,它一定是有一定的基礎(chǔ)的,而且和以往的技術(shù)都有千絲萬(wàn)縷的關(guān)系。并沒(méi)有完美的技術(shù),區(qū)塊鏈只要能在現(xiàn)有的系統(tǒng)上做出更好的改進(jìn),以前中心化系統(tǒng)有什么問(wèn)題不好解決的,它哪怕能幫我多解決兩三步,讓我賺更多的錢(qián),就是有價(jià)值的。
傳統(tǒng)互聯(lián)網(wǎng)思維在區(qū)塊鏈?zhǔn)澜缡遣贿m用的
區(qū)塊鏈技術(shù)早就有了,從比特幣開(kāi)始才逐漸成形,但初期也只是在一個(gè)非常小的極客圈子里自嗨。它真正的興起的原因大家都知道,和暗網(wǎng)有非常大的關(guān)系。
最典型例子就是地下絲綢之路這個(gè)網(wǎng)站。這是個(gè)完全抗監(jiān)管的自由交易平臺(tái),正好這時(shí)候比特幣就出現(xiàn)了,區(qū)塊鏈這個(gè)新事物才真正火起來(lái)。
我現(xiàn)在見(jiàn)公司新來(lái)的產(chǎn)品經(jīng)理,第一件事不是要聽(tīng)之前做過(guò)多少百萬(wàn)級(jí)的應(yīng)用,而是讓他們自己去暗網(wǎng)你看看。區(qū)塊鏈這個(gè)領(lǐng)域真的是非常年輕,要忘記以前做移動(dòng)互聯(lián)網(wǎng)的思維,這些東西在區(qū)塊鏈里是不適用的,你和所有人的起跑線都是一樣的,要真正理解區(qū)塊鏈,就必須去尋找它的“原罪”。
包括有人問(wèn)到我?guī)艃r(jià)的問(wèn)題,我都會(huì)從原罪來(lái)分析。其實(shí)不用死盯交易所,特別是中心化交易所,這些都是給小白用的,給大家一個(gè)喝湯的地方。你得去暗網(wǎng)看看,只要交易主要還是用的比特幣,并且它的交易量沒(méi)有下降,那就完全不用擔(dān)心比特幣的價(jià)值。暗網(wǎng)里流動(dòng)的人類(lèi)的欲望,就是區(qū)塊鏈的“原罪”。
區(qū)塊鏈3.0仍是當(dāng)前努力的目標(biāo)
我不怕得罪誰(shuí),到哪里我都實(shí)話實(shí)說(shuō),我捫心自問(wèn),沒(méi)有看到任何人真正完成了區(qū)塊鏈3.0,更別說(shuō)4.0乃至5.0,如果有項(xiàng)目這樣講自己,你甭管它背景多牛,可以直接略過(guò),這絕對(duì)是在忽悠投資者。
我們來(lái)看區(qū)塊鏈的技術(shù)發(fā)展曲線,它是大量基于傳統(tǒng)技術(shù)的,p2p加密網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)技術(shù)、電子現(xiàn)金、智能合約、電子簽名。我唯一認(rèn)同的區(qū)塊鏈1.0,就是比特幣,他是第一個(gè)在去中心網(wǎng)絡(luò)里實(shí)現(xiàn)了可信邏輯的;區(qū)塊鏈2.0我是認(rèn)可以太坊的,他在1.0的基礎(chǔ)上做出了智能合約,去中心網(wǎng)絡(luò)里可以跑多個(gè)可信邏輯了。到現(xiàn)在,區(qū)塊鏈3.0仍然還是所有我們這些從行業(yè)者,共同的努力的方向,Trias正在拼命的做真正有價(jià)值的DAPP,讓區(qū)塊鏈有更大的實(shí)用性。
區(qū)塊鏈目前待改進(jìn)的方向
那么現(xiàn)在區(qū)塊鏈包括智能合約,有沒(méi)有缺陷?當(dāng)然有。我看過(guò)不少項(xiàng)目,包括自己親自做的時(shí)候,跟一些企業(yè)、政府做落地項(xiàng)目,都能深刻體會(huì)到。 我們覺(jué)得現(xiàn)在主要是有這么幾個(gè)問(wèn)題。
和現(xiàn)在技術(shù)不兼容,一次重構(gòu)很難
可以看看以前每一次遇到新技術(shù)的革命,大家都能照樣拿著C++、JAVA加加功能就好,大不了把底層拿API改改,或者編程邏輯改改,兼容某一個(gè)新技術(shù)框架,就可以利用新技術(shù)升級(jí)業(yè)務(wù)了 。
但是到了智能合約這里,這樣重構(gòu)就很難了。首先大部分跑合約的虛擬機(jī)是不支持高級(jí)語(yǔ)言的,就算支持了高級(jí)語(yǔ)言,也不是說(shuō)程序員拿著API想怎么實(shí)現(xiàn)就怎么實(shí)現(xiàn)的。就像以太坊你真正去使用的話,哪怕是寫(xiě)個(gè)小游戲,真正能用夠用的API也就20多個(gè)。因此想要把原有業(yè)務(wù)整體搬到區(qū)塊鏈上,基本不可能,因此鏈下計(jì)算是必不可少的。
鏈下計(jì)算是不可信的
上面也講到了,鏈下計(jì)算是必不可少的,只有這樣才能和傳統(tǒng)業(yè)務(wù)有機(jī)融合。Trias在做項(xiàng)目的時(shí)候,基本上每次都會(huì)遇到很頭疼的問(wèn)題。合作方經(jīng)常會(huì)問(wèn)為什么要把數(shù)據(jù)上鏈。以前的數(shù)據(jù),隨便找一個(gè)后臺(tái)管理員,都能私自修改它盜取它,看新聞就知道,去年京東就抓了兩個(gè)私自賣(mài)用戶數(shù)據(jù)的運(yùn)維人員。而這個(gè)事情就可以用區(qū)塊鏈搞定。
那如果我故意往區(qū)塊鏈上傳錯(cuò)誤的數(shù)據(jù),你怎么辦呢?這其實(shí)就是一個(gè)鏈下計(jì)算不可信的問(wèn)題,也是一個(gè)安全的問(wèn)題。在無(wú)法一步到位的現(xiàn)在,我們沒(méi)辦法回避。鏈下計(jì)算有保障了,區(qū)塊鏈才會(huì)有大發(fā)展。
Trias在做應(yīng)用的時(shí)候經(jīng)常就會(huì)想,怎么讓鏈下變得更可信?因此我們?cè)诠?jié)點(diǎn)上設(shè)備上構(gòu)建一個(gè)可信執(zhí)行環(huán)境(TEE),相當(dāng)于給節(jié)點(diǎn)裝上測(cè)謊儀。這樣一來(lái),不僅整個(gè)網(wǎng)絡(luò)更可信了,更多的邏輯也可以放在鏈下,區(qū)塊鏈也就能承載更復(fù)雜更高配的業(yè)務(wù)了。
安全冗余
Trias最近在做證券相關(guān)業(yè)務(wù),那些傳統(tǒng)金融的機(jī)構(gòu),看到鏈上節(jié)點(diǎn)多次備份賬本,會(huì)自然而然的覺(jué)得,區(qū)塊鏈就像他們的異地多活的災(zāi)備系統(tǒng),然后就會(huì)質(zhì)疑:傳統(tǒng)異地災(zāi)備系統(tǒng),三四個(gè)節(jié)點(diǎn)就能實(shí)現(xiàn)的功能,區(qū)塊鏈卻要跑上百上千個(gè)節(jié)點(diǎn),這不就是安全冗余嘛?
這個(gè)安全冗余的確存在,如果你要在企業(yè)上用區(qū)塊鏈,一定得解決這個(gè)問(wèn)題。我們Trias正在想盡辦法,用盡量少的節(jié)點(diǎn),以及賬本副本,來(lái)達(dá)到盡量高的全網(wǎng)安全性。不然的話,按以太坊這類(lèi)的搞法,上萬(wàn)臺(tái)節(jié)點(diǎn)只跑一個(gè)代碼,對(duì)企業(yè)來(lái)說(shuō)運(yùn)作成本是非常巨大的。
低效共識(shí)
大家都知道,現(xiàn)在區(qū)塊鏈的運(yùn)行效率不高,眾所周知,區(qū)塊鏈領(lǐng)域存在一個(gè)著名的“不可能三角”。現(xiàn)在也出來(lái)了很多新的共識(shí)算法,號(hào)稱能大幅提高性能并解決這個(gè)問(wèn)題的,但在沒(méi)看到代碼的情況下,我不相信。
到目前為止,我還沒(méi)見(jiàn)過(guò)能非常好的在“性能”“一致性”“去中心化”三個(gè)方面做的比較均衡的共識(shí)算法,都是各有長(zhǎng)短的。Trias采用了分層異構(gòu)的方式解決問(wèn)題,而不是說(shuō)找一個(gè)唯一的共識(shí)算法,把全部問(wèn)題解決的。
公有云的現(xiàn)在,可能就是公鏈的未來(lái)
也許現(xiàn)在大家都在關(guān)注公鏈,沒(méi)有太關(guān)注聯(lián)盟鏈,但從我自己做項(xiàng)目的情況來(lái)說(shuō),我覺(jué)得大家可能要從類(lèi)似于云計(jì)算的角度來(lái)思考這個(gè)問(wèn)題。
云計(jì)算概念剛提出的時(shí)候和區(qū)塊鏈非常像,所有人都在吹,一定要做公有云,公有云能統(tǒng)治世界,公有云能賺很多錢(qián)等等等等。但就在去年,IDG發(fā)布了云計(jì)算報(bào)告,整個(gè)中國(guó)的公有云市場(chǎng),就跟中國(guó)的小龍蝦市場(chǎng)是一個(gè)體量。
一開(kāi)始喊了無(wú)數(shù)口號(hào),砸了那么多的錢(qián),找了那么多的博士專家,寫(xiě)那么多的論文,然后還有那么多好聽(tīng)的故事給你規(guī)劃藍(lán)圖,到現(xiàn)在可能還抵不上賣(mài)小龍蝦的,真正賺錢(qián)的,卻是當(dāng)時(shí)大家瞧不上的私有云、混合云。
所以說(shuō)大家一定要清醒冷靜的對(duì)待區(qū)塊鏈,再理想主義再極客的技術(shù),都得給現(xiàn)實(shí)妥協(xié)。說(shuō)白了,我們?nèi)プ黾夹g(shù),去做應(yīng)用,去做一個(gè)很好的公司,是需要真正創(chuàng)造價(jià)值的。
你要明白,很多時(shí)候你能接觸到的一些信息,背后都是有目的性的。也許背后有大資本,為了賺錢(qián)去拼命包裝他,拼命的將公有的講得多牛逼。就像云計(jì)算,一開(kāi)始再怎么喧囂,現(xiàn)在大部分的公有云公司,還是得被迫轉(zhuǎn)去私有云和混合云上賺錢(qián)。
目前的公鏈項(xiàng)目的確做了很多努力,但因?yàn)榇嬖谏厦娣治龅哪切﹩?wèn)題,企業(yè)是不買(mǎi)單的。從B端那里賺不到錢(qián),就只有靠發(fā)幣賺錢(qián),所以說(shuō)才有割韭菜嘛。
就當(dāng)我的個(gè)人觀點(diǎn),如果有人做公鏈,告訴你不靠幣的情況下,短期里能賺很多錢(qián)的,是不可能的。我們Trias自認(rèn)是認(rèn)真做事的團(tuán)隊(duì),我們?cè)诜浅EΦ耐ㄟ^(guò)區(qū)塊鏈本身賺錢(qián),所以我們和企業(yè)政府合作,做了很多的聯(lián)盟鏈。
關(guān)于Trias
先介紹一下,我們Trias算是一個(gè)中西合璧的項(xiàng)目,主要?jiǎng)?chuàng)始人來(lái)自于北大與牛津,現(xiàn)在也和北京大學(xué)、牛津大學(xué)一起做聯(lián)合實(shí)驗(yàn)室,我們也在積極的培養(yǎng)區(qū)塊鏈相關(guān)的博士研究生,非常歡迎有技術(shù)學(xué)術(shù)追求的朋友。
上面也講到,區(qū)塊鏈還是存在不少的缺陷,trias想真正做出價(jià)值,我們做出了自己的方案。
三層結(jié)構(gòu),靈活共識(shí)
前面我講到了不可能三角的問(wèn)題,我發(fā)現(xiàn)只用單一的一種共識(shí)算法,是不能解決所有問(wèn)題的。Trias在思考的時(shí)候,借鑒了中心化系統(tǒng)的思路,采用了分層的異構(gòu)方式來(lái)解決問(wèn)題,什么算法擅長(zhǎng)什么,我們就讓它去做什么。
Trias把整個(gè)系統(tǒng)分層了三層:
底層網(wǎng)絡(luò)Leviatom負(fù)責(zé)可信部分,使用TEE+圖計(jì)算實(shí)現(xiàn),這首先是一個(gè)公鏈。當(dāng)然這一層能很方便的修改成聯(lián)盟鏈為企業(yè)提供服務(wù)。
邏輯層面的Prometh,會(huì)在可信的基礎(chǔ)上,做好一些基礎(chǔ)的服務(wù),提供給企業(yè);
最上層的MagCarta可以自定義智能合約,方便去實(shí)現(xiàn)一些應(yīng)用給用戶提供服務(wù)。
基于TEE,區(qū)塊鏈更可信
Trias很大的一個(gè)特點(diǎn)在于,我們的底層是基于TEE這一套來(lái)做計(jì)算的,讓整個(gè)網(wǎng)絡(luò)更加的可信,相當(dāng)于給每個(gè)節(jié)點(diǎn)裝上了一個(gè)測(cè)謊儀。
現(xiàn)在的大部分項(xiàng)目,比如以太訪,并沒(méi)有規(guī)定過(guò)節(jié)點(diǎn)的運(yùn)行環(huán)境,不管多爛多不安全的節(jié)點(diǎn)都能在鏈上運(yùn)行。你可以回去嘗試一下,在電腦上裝一堆病毒,然后下載以太坊的節(jié)點(diǎn)程序,你看看能不能進(jìn)入節(jié)點(diǎn)共識(shí),我可以告訴你,是一定可以的。
這個(gè)風(fēng)險(xiǎn)在哪里呢?大家都知道,區(qū)塊鏈現(xiàn)在的挖礦還是比較集中的,3/4的礦場(chǎng)都在中國(guó),如果哪一天這個(gè)幾個(gè)礦主突然因?yàn)楦鞣N愿意不想干了,故意在礦機(jī)上裝上病毒廣播出去。因?yàn)楝F(xiàn)在項(xiàng)目大多是簡(jiǎn)單的在賬本校驗(yàn)加上一些加密措施,有害的指令就會(huì)像瘟疫一樣傳播開(kāi),這條鏈就會(huì)無(wú)法使用。Trias考慮到這種情況的可能性,就規(guī)定了我們的節(jié)點(diǎn),必須得受可信計(jì)算的保護(hù)。
在Trias網(wǎng)絡(luò)中,我們是這么保證節(jié)點(diǎn)的可信的:
因?yàn)槭腔赥EE架構(gòu)的,一個(gè)節(jié)點(diǎn)能干什么不能干什么,這些都是清楚的寫(xiě)在芯片里的。想要破壞網(wǎng)絡(luò),必須物理上把安全芯片破壞掉,這個(gè)攻擊的成本比現(xiàn)在高了很多。
節(jié)點(diǎn)間會(huì)互相檢驗(yàn)計(jì)算可信度,我們這里叫做挑戰(zhàn)者模型。一個(gè)節(jié)點(diǎn)對(duì)另一個(gè)節(jié)點(diǎn)會(huì)發(fā)起挑戰(zhàn),發(fā)送一個(gè)程序體,如果發(fā)現(xiàn)這個(gè)節(jié)點(diǎn)的計(jì)算是可信的正確的,它的信譽(yù)度就會(huì)增加。在整個(gè)鏈里節(jié)點(diǎn)的信譽(yù)越高,你的排名越靠前,就會(huì)被更多人選擇,處理更多的可信計(jì)算。這個(gè)信譽(yù)完全是機(jī)器分布式的校驗(yàn)計(jì)算而得到的。不像現(xiàn)在很火的pos,單純通過(guò)投票認(rèn)定信譽(yù),有時(shí)候可能只是某個(gè)節(jié)點(diǎn)運(yùn)營(yíng)宣傳做得好,但其實(shí)節(jié)點(diǎn)的安全性你是不清楚的。
小世界組網(wǎng),新的增效架構(gòu)
在非常龐大的集群系統(tǒng)下,如果網(wǎng)絡(luò)中需要太多的校驗(yàn),那網(wǎng)絡(luò)的效率一定是會(huì)很低的,顯然,成千上萬(wàn)的節(jié)點(diǎn)跑同一個(gè)智能合約,性能很低成本很高,不適用大型系統(tǒng)。
Trias的節(jié)點(diǎn),會(huì)根據(jù)網(wǎng)絡(luò)狀態(tài)與可信狀態(tài),與最近的幾個(gè)節(jié)點(diǎn)自發(fā)的組成小網(wǎng)絡(luò)。在這個(gè)小網(wǎng)絡(luò)里,可信度最高的節(jié)點(diǎn)就會(huì)作為這個(gè)小網(wǎng)絡(luò)派出的代表,去更大的網(wǎng)絡(luò)中繼續(xù)競(jìng)選,從而得到可信度更高的結(jié)果。
這就很像中國(guó)的人民代表制度,最高法院是不會(huì)管所有雞毛蒜皮的小事的,我們有事都會(huì)優(yōu)先找最小的單位,也就是街道辦事處來(lái)協(xié)調(diào)。同樣在Trias網(wǎng)絡(luò)中,最高安全性的網(wǎng)絡(luò)也不會(huì)承載所有的可信計(jì)算,臨近的幾個(gè)可信節(jié)點(diǎn)組成的小網(wǎng)絡(luò),他們會(huì)先達(dá)成共識(shí),然后再派出代表一層層上報(bào)再繼續(xù)達(dá)成共識(shí)就好,而不需要等待全網(wǎng)中幾萬(wàn)個(gè)節(jié)點(diǎn)全部檢查一遍才算完成。這樣就大大提高了整個(gè)網(wǎng)絡(luò)運(yùn)行的效率。
小世界組網(wǎng)和以太坊提倡的分片聽(tīng)起來(lái)很像,但還是有很大差別的。以太坊的分片框架下,一個(gè)交易個(gè)發(fā)送出來(lái),是需要最高層統(tǒng)一調(diào)度,把任務(wù)分發(fā)下去,讓各分片再進(jìn)行協(xié)調(diào)分工。相對(duì)去中心化和效率,都還有改進(jìn)的空間。而 Trias的小世界組網(wǎng),是從下而上進(jìn)行的。