說好的區塊鏈能顛覆世界,為何還熊成這樣?或因這6大問題還沒解決

區塊鏈 世界盃 軟件 黑客 比特幣 比特幣資訊 2018-11-26
說好的區塊鏈能顛覆世界,為何還熊成這樣?或因這6大問題還沒解決

圖:去中心化應用的DAU非常低 如果票選21世紀以來“被炒作、吹捧最多的技術”,區塊鏈絕對榜上有名。區塊鏈是多個計算機科學技術綜合應用的產物,其運作邏輯與限制,對普通大眾來說,並不是那麼容易理解。這就導致很多所謂的媒體和專家學者,都錯誤地理解了區塊鏈的特性。如果你去聽這些人講區塊鏈,會錯認為區塊鏈是“靈丹妙藥”,似乎任何難題只要套上“去中心化”、“區塊鏈”就能解決。

區塊鏈應用真正落地,進入尋常百姓生活,其實難度很大,難在何處呢?且看本文梳理的區塊鏈應用落地的六大挑戰。

1. 性能與可擴展性

去中心化應用,即DApp,必須運行在支持智能合約的底層公鏈上。底層公鏈可以想像成是Android或iOS系統,如果系統有問題,運行在其上的App自然也會有問題。

目前,底層公鏈最大問題是性能和可擴展性不足。拿以太坊為例,以太坊的TPS(每秒能處理的信息量)在15~30筆之間,而中心化的VISA,TPS是2000~4000筆,峰值可達到25000筆。這兩者根本不在同一個量級,這也是為什麼去年的加密貓跟今年的FOMO 3D,雖然用戶不多,卻足以讓以太坊網絡擁堵、癱瘓的原因。

說好的區塊鏈能顛覆世界,為何還熊成這樣?或因這6大問題還沒解決

圖:目前區塊鏈的TPS遠低於VISA 區塊鏈與傳統的中心化系統,為什麼在性能方面有如此巨大的差異?主要原因在於,區塊鏈採用的是分佈式賬本的技術,無論什麼DApp,其運算結果都必須同步到每一個節點上才算達成了共識。這就好比一群人做決定,必須經過討論才能達成共識,和一個人做決定的速度相比,前者一定會比後者慢。

所有的區塊鏈系統,都無可避免地會遇到三個因素的平衡難題——性能、安全性、去中心化。這三者不可能完美兼顧,目前主流公鏈,如比特幣和以太坊,都往安全性和去中心化靠攏,犧牲了性能。

但只要性能問題一天不解決,DApp就無法落地成為大規模應用。很多頂尖的計算機科學家,都在千方百計地優化區塊鏈的共識算法,試圖解決性能低下的問題,於是就有了“千鏈大戰”。各種底層公鏈項目如雨後春筍般不斷冒出,很多項目聲稱其TPS可達數十萬甚至百萬以上,但或多或少都有所妥協,比如:EOS犧牲了去中心化特性(21個節點),而IOTA犧牲了安全性(沒有礦工機制,節點作惡代價低)。

2. 共識算法的更新

眾所周知,所有的公鏈都是開源項目。一般人若想成為節點,必須下載其開源軟件才能參與網絡並共同維護賬本,每個人都運行一樣的軟件,才能讓節點間的賬本能夠同步。換句話說,如果今天有工程師優化了共識算法,推出了新版本的軟件,也必須讓其他節點都下載,才能讓改版真的成功。

但問題是,共識算法的更新,往往會牽涉礦工、節點的利益。舉例來說,目前業界的普遍看法是,PoW雖然安全但沒有效率,新一代的區塊鏈往往採用PoS或是DPoS。於是,原本用PoW的區塊鏈,也想改成PoS或DPoS,但如果撤銷PoW機制,之前礦工花費巨資購置的礦機可能就要報廢了。礦工當然不願意這麼做,這正是以太坊目前所面臨的問題。在可能衝擊礦工利益的狀況下,以太坊的開發者社群只能漸進地修改共識機制,不能躁進,不然礦工會因為不願意下載新版本的軟件而導致分叉。

這就是區塊鏈“奇葩”的地方,因為它是分散式的系統,即便開發者想更新軟件,也得網絡上的節點都買單才行,這就加深了區塊鏈技術更新的難度。

3. 責任歸屬問題

由於區塊鏈去中心化的特性,出事後的責任歸屬變得相當困難。舉例來說,假設某銀行被黑客入侵,受害者可以找銀行賠償,但如果基於PoW的區塊鏈項目遭受51%算力攻擊,用戶必須自己承受所有的損失。對於已經習慣中心化系統的人來說,這樣的特性非常難以接受。

4. 不能保證上鍊內容的正確性

區塊鏈雖然可以在一定程度上確保賬本不可篡改,但卻不能保證寫入內容的正確性。舉個例子,一個使用了農藥的香蕉,仍然可以在追溯農產品的區塊鏈上,標記為有機產品。

其實,光這點就可以打破很多人對區塊鏈應用不切實際的幻想。舉個例子,前陣子臺灣柯文哲表示,想用區塊鏈記錄選舉的募款金額,以避免媒體的不實報道。但事實上,就算真的把募款金額上鍊,也不能保證上鍊的募款金額是正確的,或是真的把每一筆募款都上鍊了。

同樣的問題,也出現在智能合約的觸發條件上。舉個例子,假設有個世界盃競猜DApp,猜測今天德國足球隊是否會贏球,用戶用以太幣下注。假設德國隊踢贏了,由於這個資訊獨立於區塊鏈之外,智能合約必須仰賴外部輸入“德國隊贏球”這個資訊才能觸發智能合約。

這時候會面臨兩個問題:1、誰來輸入“德國隊贏球”這個資訊;2、誰來確保“德國隊贏球”這個資訊是正確的。

你可能會說,智能合約可以接入世界盃官網的API啊,官網的資訊總不會錯吧。這時,第二層問題就來了:怎麼確保這個智能合約接入的API是正確的?如果合約代碼有後門怎麼辦?

通常這類問題,會通過投票的方式解決。也就是說,只要過半數用戶認可“德國隊贏球”這個資訊,它就自動會成為觸發智能合約的條件。

再深入問一個問題:德國隊贏球這個資訊大眾容易獲取,但智能合約的觸發條件普通大眾難以知道,如果只有少數人知道呢?這樣就不能用投票的方式解決了,勢必要找公證人來當資訊的輸入者,這樣問題又回到了原點。如果要找公證人,那為什麼還要做智能合約,乾脆寫法律合同好了。

所以,看出問題了嗎?智能合約的應用範圍是有限的,只要智能合約的運作需要輸入外部資訊,合約本身怎麼設計就會變得比較複雜,智能合約並不能取代所有的傳統合約。

5. 智能合約的代碼審核

DApp的智能合約代碼寫在區塊鏈上,這意味著代碼是公開的,可供大眾審核,但一般人看不懂代碼。如果真的要確保代碼沒有問題,勢必得要找一個公正的第三方審核代碼的安全性。

不過,區塊鏈本身不就是要“去中介化(trustless)”嗎?怎麼這時候又要找第三方了?

先不說DApp,退一萬步來說,當我們在使用區塊鏈系統的時候,都必須建立在對整條鏈的信任上。我們必須信任,比特幣和以太坊的代碼沒有問題,才會去使用它。像比特幣和以太坊這種大型開源項目,自然會有很多工程師去審核代碼,相對比較安全。

但對於各種智能合約的應用來說,就不是這麼一回事了。所以,現在出現了各種智能合約的審查機構。不過這麼一來,只不過是把信任轉嫁給這些審查公司而已。從這個角度來看,區塊鏈永遠不可能做到實質上的“去中介化”。

再者,代碼審核這件事本身難度很大,即便現在沒有檢測出問題,也難保之後不會出事。以2016年著名的以太坊The DAO攻擊事件為例:

The DAO在當時是區塊鏈有史以來最大的眾籌項目,但因為被黑客發現其智能合約的漏洞,盜走了約370萬個以太幣。由於受影響人數眾多,當時以太坊創始人V神不得不跳出來主持大局,宣佈將發佈新版本的軟件,把賬本回滾到尚未被攻擊的狀態。有少部分人認為,此舉違反了區塊鏈去中心化的精神,不願意更新版本,於是留在原地。這就是以太坊首次硬分叉,以太坊經典由此而來。

像The DAO這麼火的項目,其用於募資而寫的智能合約自然會經過嚴格的審核,可惜即使經過頂尖計算機專家與社群的檢查,仍然被黑客發現了重大缺陷。

智能合約的核心精神——代碼即法律,雖然想法很好,但實際執行中,還要克服很多問題。

6. 用戶可能根本不在乎是否去中心化

區塊鏈的特點——去中心化、透明、不可篡改,這些都很好,但普通用戶真的在乎嗎?

Duck Duck Go是一款標榜不會追蹤隱私的搜索引擎,Ello是無廣告版的臉書,兩者都很棒,但從用戶數而言,都不算成功的項目。為什麼?

因為比起隱私或廣告干擾,用戶更在乎的是能不能解決他的問題。搜索引擎如果搜索不到最多、最精準的資料,社交媒體如果無法滿足跟朋友互動的需求,大家就不會有動力去使用。

假設底層公鏈的性能問題解決了,某公司開發了一個去中心化、開源版本的Facebook,姑且稱為DFB。DFB號稱可以解決個人資料被濫用的問題,且絕對不會追蹤隱私。但因為DFB建立在區塊鏈上,導致性能會稍微弱些。這意味著每點開一個對話窗口,或是每瀏覽一張照片,都會比中心化版本的Facebook多幾十毫秒甚至幾百毫秒上的延遲,你還會想用嗎?答案不言可喻。

筆者認為,並非所有的應用都適合用區塊鏈技術實現去中心化的版本。如果DApp不能比中心化App更能滿足用戶的核心需求,光在透明、去中心化、不可篡改這幾個特點上做文章,是沒有意義的。

小結

總而言之,對普通大眾而言,理解區塊鏈有一定的難度,因為不好懂,所以讓很多人對區塊鏈的瞭解非常片面,進而對其應用產生不切實際的幻想。

希望閱讀完本文的讀者,能理性地認識到:區塊鏈並不是萬能的,距離大規模的應用還有很多挑戰,還有很長的路要走。

相關推薦

推薦中...