區塊鏈真能改變世界?細談區塊鏈應用落地的六大挑戰區塊鏈
聽很多人講區塊鏈,會錯認區塊鏈是萬靈丹,似乎任何難題只要套上「去中心化」、「區塊鏈」就能解決,然而其根本上的限制卻不容忽視。
很多人都說2018年會是區塊鏈商用化的元年,但2018年都過大半年了,區塊鏈距離改變我們的生活還非常遠,除了ICO可作為募資跟投資的手段之外,區塊鏈的應用可說是寥寥可數,目前排行最熱門的DAPP,其DAU最多也不過數千人,連早期試用者都還很少,更別提什么改變人類生活了。
▲去中心化應用的DAU非常低
如果要票選21世紀以來最被炒作、吹捧的技術,區塊鏈絕對會榜上有名,由于區塊鏈是多個計算機科學技術綜合應用的產物,其運作邏輯與限制,對普羅大眾來說并不是這么好理解,這導致很多所謂的媒體、專家、政治人物,都錯誤理解了區塊鏈的特性,你聽這些人講區塊鏈,會錯認區塊鏈是萬靈丹,似乎任何難題只要套上「去中心化」、「區塊鏈」就能解決。
本文將嘗試用較淺白的語言,讓大家了解區塊鏈應用落地的六大挑戰。
挑戰一:效能與可擴展性
區塊鏈的應用,也就是DAPP,必須運行在「支援智能合約的底層鏈」上,我們可以把底層鏈想像成是如Android或iOS的作業系統,如果作業系統有問題,運行在其上應用程式當然也會有問題,目前底層鏈的最大問題,就是效能跟可擴展性不足,拿以太坊為例,以太坊的TPS (transaction per second ——每秒能處理信息交換量)約在15 ~30的水準,做個對比,VISA的TPS平均是2,000~4,000,其峰值可達到25,000 ,兩者根本不在同一個水平,這也是為什么去年加密貓跟今年的FOMO 3D雖然用戶不多,但卻足以癱瘓以太坊,讓網路交易塞車的原因。
▲區塊鏈的TPS 遠低于 VISA
為什么區塊鏈會跟傳統中心化系統(如VISA)的效能有如此巨大差異?主要原因在于區塊鏈是分散式帳本的技術,不管是什么DAPP,其運算結果都必須同步在每個節點上才能算達成共識。這就好比一群人做決定,必須經過討論才能達成共識,但一個人做決定只要過自己這關就好了,前者一定會比后者慢。
所有區塊鏈系統都無可避免的會遇到三個因素的平衡難題—— 效能、安全性、去中心化,這三者不可能完美兼顧,目前主流公鏈如比特幣跟以太坊,都是往「安全性」與「去中心化」靠攏,而犧牲了效能。
但只要效能問題一天不解決,DAPP 就無法落地成為大規模應用,很多頂尖的電腦科學家都千方百計想優化區塊鏈的共識演算法,試圖解決效能問題,于是就有了「千鏈大戰」,各種底層鏈項目如雨后春筍般不斷冒出,很多項目都聲稱其鏈的TPS 可達數十萬甚至百萬以上,但或多或少都有所妥協,像是EOS 犧牲了去中心化特性(只有21個節點),而IOTA 則犧牲了安全性(沒有礦工機制,節點作惡代價低)。
挑戰二:更新不易
眾所周知,所有的公鏈都是開源項目,一般人若想成為節點,必須下載其開源軟件才能參與網路并共同維護帳本,每個人都運行一樣的軟件,才能讓節點間的帳本能夠同步。換句話說,如果今天有工程師優化了共識演算法,推出新版本的軟體,也必須讓所有節點都買單下載,才會讓改版真的成功。
但問題是,共識算法的更新,往往會牽涉礦工節點的利益。舉例來說,目前業界的普遍看法都是PoW雖然安全但太沒有效率,新一代的區塊鏈往往采用PoS或是DPoS,于是乎原本用PoW的區塊鏈,也想改成PoS或DPoS ,但如果撤銷PoW機制,原本礦工花大把鈔票購置的的礦機就瞬間變成廢鐵了!礦工當然不愿意這么做,這正是以太坊目前所面臨的問題,在可能沖擊礦工利益的狀況下,以太坊的工程師社群只能漸進修改共識機制,不能躁進,不然礦工會不愿意下載新版本的軟體而導致帳本分岔。
這就是區塊鏈奇耙的地方,因為它是分散式的系統,即便工程師想更新軟件,也得網路的節點都買單才行,這加深了區塊鏈技術更新的難度。
挑戰三:責任歸屬問題
區塊鏈去中心化的特性,使出事后的責任歸屬變得相當困難。舉例來說,假設某銀行被駭客入侵,受害者可以找銀行求償,但如果區塊鏈被51% 攻擊,用戶必須自己承受所有的損失,對于已經習慣中心化系統的人來說,這樣的「特性」是很難接受的。
挑戰四:不能保證上鏈內容的正確性
區塊鏈雖然可以在一定程度上確保帳本不可被竄改,但是卻不能保障內容寫入區塊鏈前的正確性,舉例來說,一個灑農藥的香蕉,仍然可以在農產品履歷追溯的區塊鏈寫上自己的香蕉是「有機」的。
其實光這點就可以打破很多人對區塊鏈的應用的想像,舉例來說前陣子柯文哲曾表示想要用區塊鏈紀錄選舉募款金額,以避免名嘴追殺,但事實上,就算真的把募款金額上鏈,我們也不能保證上鏈的募款金額是正確的,或是真的把每一筆募款都上鏈了,在無法確保這兩件事的前提下,用區塊鏈紀錄募款金額只不過是脫褲子放屁罷了。(微信公眾號:幣圈實操指南)
同樣的問題,也出現在智能合約的觸發條件上,舉個例子,假設有個DAPP 是世界杯博弈的應用,今天有個賭局是賭德國足球隊是否會贏球,用戶用以太幣跟莊家對賭,假設德國隊真的踢贏了,由于這個訊息獨立于區塊鏈之外,智能合約必須仰賴外部輸入「德國隊贏球」這個訊息才會觸發打幣的條件,這時候會面臨兩個問題:
一、誰來輸入「德國隊贏球」這個訊息
二、誰來確保「德國隊贏球」這個訊息是正確的
你可能會說,智能合約可以接世界杯官網的API 啊,官網的資訊總不會錯吧!這時第二層問題就來了,你怎么能確保這個智能合約接的API 是正確的呢?如果合約代碼有后門怎么辦?
通常這類的問題,會由投票的方式決定,也就是說只要過半數用戶認可「德國隊贏球」這個資訊,它就自動會成為觸發智能合約的條件。
那我們再更深入地問一個問題,德國隊贏球是大眾可認知的訊息,但如果智能合約的觸發條件無法被大眾認知,只有少數人能夠知道呢?這樣就不能用投票的方式解決了,勢必要找公證人來當訊息的輸入者,但問題又回到原點,如果要找公證人,那我還做智能合約干嘛,干脆寫法律合約就好了…
所以看出問題了嗎?智能合約的應用范圍是有限的,只要智能合約的運作需要輸入外部訊息,合約本身怎么設計就會變得比較復雜,智能合約并不能取代所有的傳統合約。
挑戰五:需要審核智能合約的代碼
DAPP 的智能合約代碼會寫在區塊鏈上,這意味著代碼是公開的,可供大眾檢視,但一般民眾看不懂代碼,如果真的要確保代碼沒有問題,勢必得要找一個公正的第三方審核代碼的安全性…
等等,區塊鏈本身不是就是要「去信任」(trustless)嗎?怎么這時候又要找第三方了?
先別說DAPP,退一萬步來說,事實上當我們在使用區塊鏈系統的時候,本身都必須建立在對整條鏈的信任上,我們必須信任比特幣跟以太坊的代碼沒有問題才會去使用它,像比特幣或以太坊這種大型開源項目,自然會有很多工程師去審核代碼,算是比較安全的,但對于各種智能合約的應用來說,就不是這么一回事了,所以現在才會出現各種智能合約的審查公司(smart contract auditor),不過這么一來就只是把信任轉嫁給這些審查公司而已,從這個角度來看,區塊鏈永遠不可能做到實質含意上的「去信任」。
再者,代碼審核這件事本身是很困難的,即便現在檢查覺得沒問題,也難保之后不會出事。舉2016年以太坊著名的The DAO攻擊事件為例,The DAO在當時是區塊鏈有史以來最大的眾籌項目,但因為被駭客發現其智能合約的漏洞,盜走了約370萬個以太幣。由于受影響人數眾多,當時以太坊創辦人V神不得不跳出來主持大局,宣布將發布新版本的軟體,把帳本回滾到尚未被攻擊的狀態,有少部分人認為此舉違反了區塊鏈「去中心化」的精神,不愿意更新版本,于是留在原地,這就是以太坊首次硬分岔——以太坊經典(Ethereum Classic)的由來。
像The DAO 這么火紅的項目,其募資的智能合約自然會經過嚴格的審核,可惜即使經過頂尖程式專家與社群的檢驗,仍然被駭客發現重大缺陷。智能合約的核心精神——代碼即法律(code is law)雖然立意良好,但實務上要執行,還是要克服很多技術以外的問題。
挑戰六:用戶可能根本不在乎你到底是不是「去中心化」
區塊鏈的本質——去中心化、透明、不可篡改,這些都很好,但普通用戶真的在乎嗎?
我們可以從一些立意良好的「中心化」項目看出端倪,DuckDuckGo是一個標榜不會追蹤你隱私的搜尋引擎,Ello是無廣告版的臉書,兩者都很棒,?但以用戶數而言,都不算是實質意義上成功的項目,為什么?
因為比起在乎隱私或廣告干擾,用戶更在乎的是你能不能解決他的問題,搜尋引擎如果搜尋不到最多、最精準的資料,社群媒體如果無法滿足跟朋友互動的需求,大家就不會有誘因去使用。
假設今天底層公鏈的效能問題被解決了,某公司在一條效能超強的鏈上開發了一個去中心化、開源版本的Facebook,我們就叫他DFB 好了,DFB 號稱可以解決個資被企業亂用的問題,且絕對不會追蹤你的隱私。但DFB 因為建立在分布式運算、儲存系統(區塊鏈)的關系,導致效能會比較差一點,這意味著你每點開一個對話視窗,或是每瀏覽一張照片,都會比中心化版本的Facebook 多幾十毫秒甚至幾百毫秒上的延遲,你還會想用嗎?
答案不言可喻了。
筆者認為,并非所有的軟體都適合用區塊鏈去做去中心化的版本,如果DAPP不能比中心化應用更加滿足用戶的「核心需求」,光在透明、去中心化、不可篡改這幾個特點上做文章,是沒有意義的。
結論
坦白說,區塊鏈真的不是很好懂,因為不好懂,所以讓很多人片面誤解區塊鏈的特性,進而對其應用產生錯誤的想像,現在有不少教授、專家、媒體、政治人物,都把區塊鏈視為萬靈丹,而忽略其本質上最根本的限制。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。