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