區(qū)塊鏈真能改變世界?細(xì)談區(qū)塊鏈應(yīng)用落地的六大挑戰(zhàn)
很多人都說(shuō)2018年會(huì)是區(qū)塊鏈商用化的元年,但2018年都過(guò)大半年了,區(qū)塊鏈距離改變我們的生活還非常遠(yuǎn),除了ICO可作為募資跟投資的手段之外,區(qū)塊鏈的應(yīng)用可說(shuō)是寥寥可數(shù),目前排行最熱門(mén)的DAPP,其DAU最多也不過(guò)數(shù)千人,連早期試用者都還很少,更別提什么改變?nèi)祟?lèi)生活了。

▲去中心化應(yīng)用的DAU非常低
如果要票選21世紀(jì)以來(lái)最被炒作、吹捧的技術(shù),區(qū)塊鏈絕對(duì)會(huì)榜上有名,由于區(qū)塊鏈?zhǔn)嵌鄠€(gè)計(jì)算機(jī)科學(xué)技術(shù)綜合應(yīng)用的產(chǎn)物,其運(yùn)作邏輯與限制,對(duì)普羅大眾來(lái)說(shuō)并不是這么好理解,這導(dǎo)致很多所謂的媒體、專(zhuān)家、政治人物,都錯(cuò)誤理解了區(qū)塊鏈的特性,你聽(tīng)這些人講區(qū)塊鏈,會(huì)錯(cuò)認(rèn)區(qū)塊鏈?zhǔn)侨f(wàn)靈丹,似乎任何難題只要套上「去中心化」、「區(qū)塊鏈」就能解決。
本文將嘗試用較淺白的語(yǔ)言,讓大家了解區(qū)塊鏈應(yīng)用落地的六大挑戰(zhàn)。
挑戰(zhàn)一:效能與可擴(kuò)展性
區(qū)塊鏈的應(yīng)用,也就是DAPP,必須運(yùn)行在「支援智能合約的底層鏈」上,我們可以把底層鏈想像成是如Android或iOS的作業(yè)系統(tǒng),如果作業(yè)系統(tǒng)有問(wèn)題,運(yùn)行在其上應(yīng)用程式當(dāng)然也會(huì)有問(wèn)題,目前底層鏈的最大問(wèn)題,就是效能跟可擴(kuò)展性不足,拿以太坊為例,以太坊的TPS (transaction per second ——每秒能處理信息交換量)約在15 ~30的水準(zhǔn),做個(gè)對(duì)比,VISA的TPS平均是2,000~4,000,其峰值可達(dá)到25,000 ,兩者根本不在同一個(gè)水平,這也是為什么去年加密貓跟今年的FOMO 3D雖然用戶(hù)不多,但卻足以癱瘓以太坊,讓網(wǎng)路交易塞車(chē)的原因。

▲區(qū)塊鏈的TPS 遠(yuǎn)低于 VISA
為什么區(qū)塊鏈會(huì)跟傳統(tǒng)中心化系統(tǒng)(如VISA)的效能有如此巨大差異?主要原因在于區(qū)塊鏈?zhǔn)欠稚⑹綆け镜募夹g(shù),不管是什么DAPP,其運(yùn)算結(jié)果都必須同步在每個(gè)節(jié)點(diǎn)上才能算達(dá)成共識(shí)。這就好比一群人做決定,必須經(jīng)過(guò)討論才能達(dá)成共識(shí),但一個(gè)人做決定只要過(guò)自己這關(guān)就好了,前者一定會(huì)比后者慢。
所有區(qū)塊鏈系統(tǒng)都無(wú)可避免的會(huì)遇到三個(gè)因素的平衡難題—— 效能、安全性、去中心化,這三者不可能完美兼顧,目前主流公鏈如比特幣跟以太坊,都是往「安全性」與「去中心化」靠攏,而犧牲了效能。
但只要效能問(wèn)題一天不解決,DAPP 就無(wú)法落地成為大規(guī)模應(yīng)用,很多頂尖的電腦科學(xué)家都千方百計(jì)想優(yōu)化區(qū)塊鏈的共識(shí)演算法,試圖解決效能問(wèn)題,于是就有了「千鏈大戰(zhàn)」,各種底層鏈項(xiàng)目如雨后春筍般不斷冒出,很多項(xiàng)目都聲稱(chēng)其鏈的TPS 可達(dá)數(shù)十萬(wàn)甚至百萬(wàn)以上,但或多或少都有所妥協(xié),像是EOS 犧牲了去中心化特性(只有21個(gè)節(jié)點(diǎn)),而IOTA 則犧牲了安全性(沒(méi)有礦工機(jī)制,節(jié)點(diǎn)作惡代價(jià)低)。
挑戰(zhàn)二:更新不易
眾所周知,所有的公鏈都是開(kāi)源項(xiàng)目,一般人若想成為節(jié)點(diǎn),必須下載其開(kāi)源軟件才能參與網(wǎng)路并共同維護(hù)帳本,每個(gè)人都運(yùn)行一樣的軟件,才能讓節(jié)點(diǎn)間的帳本能夠同步。換句話說(shuō),如果今天有工程師優(yōu)化了共識(shí)演算法,推出新版本的軟體,也必須讓所有節(jié)點(diǎn)都買(mǎi)單下載,才會(huì)讓改版真的成功。
但問(wèn)題是,共識(shí)算法的更新,往往會(huì)牽涉礦工節(jié)點(diǎn)的利益。舉例來(lái)說(shuō),目前業(yè)界的普遍看法都是PoW雖然安全但太沒(méi)有效率,新一代的區(qū)塊鏈往往采用PoS或是DPoS,于是乎原本用PoW的區(qū)塊鏈,也想改成PoS或DPoS ,但如果撤銷(xiāo)PoW機(jī)制,原本礦工花大把鈔票購(gòu)置的的礦機(jī)就瞬間變成廢鐵了!礦工當(dāng)然不愿意這么做,這正是以太坊目前所面臨的問(wèn)題,在可能沖擊礦工利益的狀況下,以太坊的工程師社群只能漸進(jìn)修改共識(shí)機(jī)制,不能躁進(jìn),不然礦工會(huì)不愿意下載新版本的軟體而導(dǎo)致帳本分岔。
這就是區(qū)塊鏈奇耙的地方,因?yàn)樗欠稚⑹降南到y(tǒng),即便工程師想更新軟件,也得網(wǎng)路的節(jié)點(diǎn)都買(mǎi)單才行,這加深了區(qū)塊鏈技術(shù)更新的難度。
挑戰(zhàn)三:責(zé)任歸屬問(wèn)題
區(qū)塊鏈去中心化的特性,使出事后的責(zé)任歸屬變得相當(dāng)困難。舉例來(lái)說(shuō),假設(shè)某銀行被駭客入侵,受害者可以找銀行求償,但如果區(qū)塊鏈被51% 攻擊,用戶(hù)必須自己承受所有的損失,對(duì)于已經(jīng)習(xí)慣中心化系統(tǒng)的人來(lái)說(shuō),這樣的「特性」是很難接受的。
挑戰(zhàn)四:不能保證上鏈內(nèi)容的正確性
區(qū)塊鏈雖然可以在一定程度上確保帳本不可被竄改,但是卻不能保障內(nèi)容寫(xiě)入?yún)^(qū)塊鏈前的正確性,舉例來(lái)說(shuō),一個(gè)灑農(nóng)藥的香蕉,仍然可以在農(nóng)產(chǎn)品履歷追溯的區(qū)塊鏈寫(xiě)上自己的香蕉是「有機(jī)」的。
其實(shí)光這點(diǎn)就可以打破很多人對(duì)區(qū)塊鏈的應(yīng)用的想像,舉例來(lái)說(shuō)前陣子柯文哲曾表示想要用區(qū)塊鏈紀(jì)錄選舉募款金額,以避免名嘴追殺,但事實(shí)上,就算真的把募款金額上鏈,我們也不能保證上鏈的募款金額是正確的,或是真的把每一筆募款都上鏈了,在無(wú)法確保這兩件事的前提下,用區(qū)塊鏈紀(jì)錄募款金額只不過(guò)是脫褲子放屁罷了。(微信公眾號(hào):幣圈實(shí)操指南)
同樣的問(wèn)題,也出現(xiàn)在智能合約的觸發(fā)條件上,舉個(gè)例子,假設(shè)有個(gè)DAPP 是世界杯博弈的應(yīng)用,今天有個(gè)賭局是賭德國(guó)足球隊(duì)是否會(huì)贏球,用戶(hù)用以太幣跟莊家對(duì)賭,假設(shè)德國(guó)隊(duì)真的踢贏了,由于這個(gè)訊息獨(dú)立于區(qū)塊鏈之外,智能合約必須仰賴(lài)外部輸入「德國(guó)隊(duì)贏球」這個(gè)訊息才會(huì)觸發(fā)打幣的條件,這時(shí)候會(huì)面臨兩個(gè)問(wèn)題:
一、誰(shuí)來(lái)輸入「德國(guó)隊(duì)贏球」這個(gè)訊息
二、誰(shuí)來(lái)確?!傅聡?guó)隊(duì)贏球」這個(gè)訊息是正確的
你可能會(huì)說(shuō),智能合約可以接世界杯官網(wǎng)的API 啊,官網(wǎng)的資訊總不會(huì)錯(cuò)吧!這時(shí)第二層問(wèn)題就來(lái)了,你怎么能確保這個(gè)智能合約接的API 是正確的呢?如果合約代碼有后門(mén)怎么辦?
通常這類(lèi)的問(wèn)題,會(huì)由投票的方式?jīng)Q定,也就是說(shuō)只要過(guò)半數(shù)用戶(hù)認(rèn)可「德國(guó)隊(duì)贏球」這個(gè)資訊,它就自動(dòng)會(huì)成為觸發(fā)智能合約的條件。
那我們?cè)俑钊氲貑?wèn)一個(gè)問(wèn)題,德國(guó)隊(duì)贏球是大眾可認(rèn)知的訊息,但如果智能合約的觸發(fā)條件無(wú)法被大眾認(rèn)知,只有少數(shù)人能夠知道呢?這樣就不能用投票的方式解決了,勢(shì)必要找公證人來(lái)當(dāng)訊息的輸入者,但問(wèn)題又回到原點(diǎn),如果要找公證人,那我還做智能合約干嘛,干脆寫(xiě)法律合約就好了…
所以看出問(wèn)題了嗎?智能合約的應(yīng)用范圍是有限的,只要智能合約的運(yùn)作需要輸入外部訊息,合約本身怎么設(shè)計(jì)就會(huì)變得比較復(fù)雜,智能合約并不能取代所有的傳統(tǒng)合約。
挑戰(zhàn)五:需要審核智能合約的代碼
DAPP 的智能合約代碼會(huì)寫(xiě)在區(qū)塊鏈上,這意味著代碼是公開(kāi)的,可供大眾檢視,但一般民眾看不懂代碼,如果真的要確保代碼沒(méi)有問(wèn)題,勢(shì)必得要找一個(gè)公正的第三方審核代碼的安全性…
等等,區(qū)塊鏈本身不是就是要「去信任」(trustless)嗎?怎么這時(shí)候又要找第三方了?
先別說(shuō)DAPP,退一萬(wàn)步來(lái)說(shuō),事實(shí)上當(dāng)我們?cè)谑褂脜^(qū)塊鏈系統(tǒng)的時(shí)候,本身都必須建立在對(duì)整條鏈的信任上,我們必須信任比特幣跟以太坊的代碼沒(méi)有問(wèn)題才會(huì)去使用它,像比特幣或以太坊這種大型開(kāi)源項(xiàng)目,自然會(huì)有很多工程師去審核代碼,算是比較安全的,但對(duì)于各種智能合約的應(yīng)用來(lái)說(shuō),就不是這么一回事了,所以現(xiàn)在才會(huì)出現(xiàn)各種智能合約的審查公司(smart contract auditor),不過(guò)這么一來(lái)就只是把信任轉(zhuǎn)嫁給這些審查公司而已,從這個(gè)角度來(lái)看,區(qū)塊鏈永遠(yuǎn)不可能做到實(shí)質(zhì)含意上的「去信任」。
再者,代碼審核這件事本身是很困難的,即便現(xiàn)在檢查覺(jué)得沒(méi)問(wèn)題,也難保之后不會(huì)出事。舉2016年以太坊著名的The DAO攻擊事件為例,The DAO在當(dāng)時(shí)是區(qū)塊鏈有史以來(lái)最大的眾籌項(xiàng)目,但因?yàn)楸获斂桶l(fā)現(xiàn)其智能合約的漏洞,盜走了約370萬(wàn)個(gè)以太幣。由于受影響人數(shù)眾多,當(dāng)時(shí)以太坊創(chuàng)辦人V神不得不跳出來(lái)主持大局,宣布將發(fā)布新版本的軟體,把帳本回滾到尚未被攻擊的狀態(tài),有少部分人認(rèn)為此舉違反了區(qū)塊鏈「去中心化」的精神,不愿意更新版本,于是留在原地,這就是以太坊首次硬分岔——以太坊經(jīng)典(Ethereum Classic)的由來(lái)。
像The DAO 這么火紅的項(xiàng)目,其募資的智能合約自然會(huì)經(jīng)過(guò)嚴(yán)格的審核,可惜即使經(jīng)過(guò)頂尖程式專(zhuān)家與社群的檢驗(yàn),仍然被駭客發(fā)現(xiàn)重大缺陷。智能合約的核心精神——代碼即法律(code is law)雖然立意良好,但實(shí)務(wù)上要執(zhí)行,還是要克服很多技術(shù)以外的問(wèn)題。
挑戰(zhàn)六:用戶(hù)可能根本不在乎你到底是不是「去中心化」
區(qū)塊鏈的本質(zhì)——去中心化、透明、不可篡改,這些都很好,但普通用戶(hù)真的在乎嗎?
我們可以從一些立意良好的「中心化」項(xiàng)目看出端倪,DuckDuckGo是一個(gè)標(biāo)榜不會(huì)追蹤你隱私的搜尋引擎,Ello是無(wú)廣告版的臉書(shū),兩者都很棒,?但以用戶(hù)數(shù)而言,都不算是實(shí)質(zhì)意義上成功的項(xiàng)目,為什么?
因?yàn)楸绕鹪诤蹼[私或廣告干擾,用戶(hù)更在乎的是你能不能解決他的問(wèn)題,搜尋引擎如果搜尋不到最多、最精準(zhǔn)的資料,社群媒體如果無(wú)法滿足跟朋友互動(dòng)的需求,大家就不會(huì)有誘因去使用。
假設(shè)今天底層公鏈的效能問(wèn)題被解決了,某公司在一條效能超強(qiáng)的鏈上開(kāi)發(fā)了一個(gè)去中心化、開(kāi)源版本的Facebook,我們就叫他DFB 好了,DFB 號(hào)稱(chēng)可以解決個(gè)資被企業(yè)亂用的問(wèn)題,且絕對(duì)不會(huì)追蹤你的隱私。但DFB 因?yàn)榻⒃诜植际竭\(yùn)算、儲(chǔ)存系統(tǒng)(區(qū)塊鏈)的關(guān)系,導(dǎo)致效能會(huì)比較差一點(diǎn),這意味著你每點(diǎn)開(kāi)一個(gè)對(duì)話視窗,或是每瀏覽一張照片,都會(huì)比中心化版本的Facebook 多幾十毫秒甚至幾百毫秒上的延遲,你還會(huì)想用嗎?
答案不言可喻了。
筆者認(rèn)為,并非所有的軟體都適合用區(qū)塊鏈去做去中心化的版本,如果DAPP不能比中心化應(yīng)用更加滿足用戶(hù)的「核心需求」,光在透明、去中心化、不可篡改這幾個(gè)特點(diǎn)上做文章,是沒(méi)有意義的。
結(jié)論
坦白說(shuō),區(qū)塊鏈真的不是很好懂,因?yàn)椴缓枚?,所以讓很多人片面誤解區(qū)塊鏈的特性,進(jìn)而對(duì)其應(yīng)用產(chǎn)生錯(cuò)誤的想像,現(xiàn)在有不少教授、專(zhuān)家、媒體、政治人物,都把區(qū)塊鏈視為萬(wàn)靈丹,而忽略其本質(zhì)上最根本的限制。