三年行業經驗總結:我慶幸我在推動聯盟鏈

區塊鏈編輯導語:有人說,區塊鏈是一種新型數據庫;有人說,區塊鏈是雲計算2.0。無論怎麼去解釋區塊鏈的本質,實際上都跟程序員息息相關。但是,經過幣圈的喧囂,看過鏈圈的某些開了腦洞的應用後,很多人對它產生了質疑。2018年過去了,2019年來了,對區塊鏈的評判依舊是好壞參半。新的一年,是否應該關注和學習區塊鏈?我想,最清楚的莫過於身處行業中的程序員,所以在年底時我分別找了幣圈和鏈圈的項目專家約稿。不過幣圈約稿失敗了,因爲專家覺得幣圈“太虛”不好評判。而鏈圈的自遊老師,是我前幾年舉辦線上公開課認識的區塊鏈講師,這幾年也一直在一線做着技術開發工作,我認爲這樣的經歷,對“程序員是否還應該學習區塊鏈”的問題還是很有發言權的。

正文

與區塊鏈的不解之緣

14年初,在日本橫濱陽光臺的某個出租屋裏,我拿着移動WIFI,在老舊的筆記本電腦上同步比特幣網絡數據,100多kb的網速同步結果可想而知,兩三天後我放棄了購買幾個比特幣的想法。幾天之後,比特幣的價格從2000多RMB一下子漲到7000多,只因爲美國承認了比特幣的貨幣地位。懊惱之情可想而知。

這是我與比特幣的第一次邂逅,或者叫擦肩而過更爲合適。

幾個月後,我放棄了在日本的工作,回到了成都。憑藉着在這間出租屋裏學習的Go語言基礎,我在成都找到了一份Go語言後端工程師的工作。就這樣過去了兩年,比特幣區塊鏈什麼的似乎跟我已經非常遙遠,但是到了16年6月,我的心又逐漸的不安分起來,想再一次的北漂,想法一出現,怎麼也止不住。也正是這個時候,在一個Go語言的QQ羣裏,有人發佈了一個職位招Go語言工程師。於是就有了下面的對話:

“你好,我看到你要招聘Go語言工程師,具體是做什麼工作呢?”
“區塊鏈!”
“區塊鏈是什麼?”
“你百度一下就知道了。”

於是我就上網查了一下,哇,像一下子打開了一扇新的大門。密碼學共識算法P2P網絡數據存儲,區塊鏈用到的基礎技術是這麼的高大上,我的興致一下子就起來了。但同時也有些泄氣,因爲我的技能槽爲空,一點也不沾邊。

於是我試着跟招聘者說明了我的情況,雖然我Go語言還行,但是區塊鏈相關經驗爲零。他叫我不用擔心,然後給了我一套Go語言相關筆試題。我非常用心的做了,很幸運我通過了筆試。之後就是CEO遠程面試,前前後後聊了好幾回,也逐漸打消了我的疑慮,加深了我要加入他們的決心。現在回想,他們這麼堅持讓我加入,主要是當時招不到人,Go語言當時在國內不溫不火,區塊鏈從業者更是鳳毛菱角,雖然當時我也很菜。

就這樣,16年8月我再一次來到了北京。

條件比我想象的更艱苦,典型的創業公司環境。幾個大老爺們住在北五環的出租屋裏,臥室到客廳的距離就是我的兩點一線。也就是在這間出租屋裏,我接觸到了Hyperledger Fabric 0.6,接觸到了以太坊,順帶包括IOTA、IPFS。但非常不幸的是,我沒有買幣,錯過了後來暴富的機會。而且身爲工程師的正直(無知),我很反感類似的圈錢手法,這是我對ICO最初的認知。

這時候的大環境是什麼樣呢?以太坊因爲The DAO事件分裂成ETH、ETC兩個社區。小蟻達叔也正忙着直播ICO計劃,清華大學韓鋒教授也着手開始區塊鏈佈道,火幣CTO張健離開火幣開始創業。更多的幣圈事件因爲遠離那個圈子不得而知。而我更不得而知的是,數字貨幣的爆發即將到來,而我卻未能在一線見證。

17年2月,我離開了帶我入坑的公司。這時候我處於非常迷茫的狀態,而且我對區塊鏈的認識也已經有了許些變化,靠ICO靠發幣圈錢然後再做事,在我而言總是有些不齒。而且,我更希望去接觸區塊鏈高大上的底層技術,於是開始一遍一遍的去擼代碼,提升自己的水平。

現在首要的任務是找下一份工作,但是隻要跟數字貨幣相關的,我最終都放棄了,因爲我不相信國人發行的數字貨幣能夠存活10年以上。這不是因爲外國的月亮就比國內的圓,這就是現狀,僅此而已。之後我收到了某電商大廠的區塊鏈職位的邀請,主要工作是區塊鏈底層平臺搭建,要求有區塊鏈以及容器雲相關經驗,對我而言這簡直是量身定做。從我下地鐵看到公司大樓的那一刻起,我就有預感我會在這裏開啓新的旅程。事實也正是如此,我已經在這裏在職500天了,也有預感會再有幾個500天。

在過去的500天裏,我可以說是在區塊鏈一線,見證了區塊鏈從噱頭變爲科技新寵,也見證了繁榮過去的一地雞毛。這期間,在工作之餘將流行的技術基本上都粗略的涉獵過。工作中所做的事情就更多了,參與過區塊鏈白皮書的撰寫,區塊鏈BaaS平臺從零到一的搭建,Hyperledger Fabric的性能優化以及跨鏈的研究,充實而又有趣的500天。

區塊鏈的商業應用之路

上面我花了不小的篇幅講述了我與區塊鏈的不解之緣,雖不精彩但我相信有足夠的代表性。我不知道前兩年踏入這個領域的程序員還有多少跟我一樣還留在一線,還有多少程序員因爲區塊鏈18年下半年的迅速轉涼而放棄入坑。我寫這篇文章的目的不是檢視自我,也不是想誇區塊鏈是如何如何的好。而只是想從程序員的視角,給大家回顧總結18年的區塊鏈再適當憧憬下未來的發展。

區塊鏈是什麼技術?區塊鏈能夠做什麼?如果你是在18年初問這個問題,我相信會有很多熱心人來幫你解答,知乎上隨便一搜都能有一大堆神乎其神的類比回答,那時候大家熱情高漲,只因爲徐小平的內部發言的泄露以及蔡文勝的泡沫理論迅速點燃了國內市場。17年後半程的瘋狂只是幣圈的狂歡,而18年1月後是整個互聯網圈的新寵。那段時間,無論是在地鐵還是在飯店,總能聽到旁邊人在談論區塊鏈。雨後春筍般風靡一時的區塊鏈無眠3點鐘羣也成爲了技術發展史的一朵奇葩。

我無法評判這股潮流的走向,但也有點點的擔憂,拔苗助長般的空中樓閣總有不穩定的時候。但區塊鏈熱情的迅速點燃也並沒有對我們本身的工作造成多大沖擊,因爲我們公司早早的就佈局,有自己的節奏。而且說到團隊實力,我也能挺起胸膛自信的說團隊在聯盟鏈領域無出其右。

潮水退去才知道誰在裸泳,經過了上半年的瘋狂炒作,區塊鏈概念下半年開始迅速轉涼,當然也不排除大環境跟政策的影響。我不知道是否跟2000年的互聯網浪潮類似,但我認爲盛極而衰是有道理的,在還沒有縷清商業模式,發展方向,基礎設施還不完善的時候,提出的各類願景也只是各類圈錢手段的遮羞布。那我們身處在這樣的大環境中,如何才能找到自己的出路,選對方向呢?

如果從正面講,我好像無能爲力,千人千面,每個人都有自己的理解,而且區塊鏈的發展不知怎麼的,已經不單單的是一個技術領域了,而是成爲了一個法律、社會、經濟、人性、技術的矛盾體,每個領域的人都能從其所處行業闡述區塊鏈引起的變革。這對區塊鏈的發展當然是有利的,因爲要想發展首先是要有曝光率。但要從雜亂的言論中剝離出有效信息也是需要花費一番功夫,而且也不見得有效。畢竟,區塊鏈的興起是直接與價值(貨幣)相關,是直麪人性的。

因此,我只有從反面剖析區塊鏈能夠爲技術人員帶來的機會。經過大半年的全民探索,下半年行業中逐漸有了很多反對的聲音,比如說區塊鏈是噱頭,根本無法滿足商業應用的需求,尤其是金融行業;再者說現在區塊鏈領域大行其道的防僞追溯是僞命題,根本就無法從源頭上防止假貨的存在。他們主要的根據是以下三點:

  • 區塊鏈的性能極其低下。現有的大部分的區塊鏈的TPS都在1000以下,而要滿足金融行業的支付交易處理能力,其TPS至少要達到3000+,而且這也只是一個保守的估計,所以差距還是蠻大的。
  • 區塊鏈的數據承載能力有限。區塊鏈之所以神奇,是因爲全網中所有全節點共同記賬,所以也就意味着每個節點都獨立保留着從創世區塊以來的所有區塊、交易,以及累積起來的狀態數據。如果從分佈式一致性角度分析,數據是極度冗餘的。而且單交易能夠攜帶的業務數據也是極其有限的,根本不能滿足複雜的商業業務需求。
  • 區塊鏈的數據來源可作假。區塊鏈另一個令人驚奇的特性就是數據無法單方面篡改,數據一旦上鍊,其狀態的流轉就由整個網絡說了算,而不是數據的擁有者。這裏就留給了數據造假者一個口子,那就是上鍊的數據本身就是假的,區塊鏈網絡本身是無法辨別數據真假的,所以區塊鏈防僞追溯是僞命題。

接下來剩餘的篇幅我就針對上面這三個問題說說我的理解,他們說的有道理嗎?毫無疑問,肯定是有道理的,但我不認爲這是區塊鏈協議本身的鍋,而只是現階段的技術瓶頸以及錯誤的用法導致的。

區塊鏈性能瓶頸

我們先來看區塊鏈的性能問題,首先我想先拋出一個觀點:區塊鏈不是一種2C的應用技術。從這個角度出發,單純的要求區塊鏈解決性能瓶頸問題就不是一個應用落地的充分必要條件了。高盛之前推出過一個區塊鏈分析報告,他們認爲區塊鏈技術能夠大幅度降低企業間合作成本,提高效率。本質上我認爲區塊鏈技術是屬於2B的,我是一個堅定的聯盟鏈擁護者,始終看好聯盟鏈在商業領域的發展,而且我認爲區塊鏈會大概率的改變現有企業的商業模式。我曾經幻想過一種區塊鏈式的過渡商業環境:

現階段具有某些業務往來的企業逐漸聯盟起來形成小範圍的聯盟鏈試點,一旦新型業務模式形成,勢必會有其他企業加入,小聯盟逐漸壯大,從而形成以核心企業爲主導的、第三方監管機構監督的行業聯盟鏈。而進一步隨着核心企業行業聯盟的擴大,多個核心企業所圍攏的多條聯盟鏈也會因爲業務需求、監管要求統一成一條超級行業聯盟鏈。企業間的競爭逐步變成擁有相同數據情況下的服務競爭。就拿去中心化電商聯盟鏈爲例,全社會販賣的商品都存放於同一區塊鏈網絡,電商平臺的競爭逐步就表現爲鏈上數據的聚合、分類及差異化營銷。

是不是有些嚮往呢?

上面我提出的觀點可能會被認爲有失偏駁,的確,我應該換一種方式表述:聯盟鏈屬於2B,公有鏈擁抱2C。2C的場景我接觸的不多,遊戲應該是一個大的方向,但現在多爲菠菜遊戲,類似於加密貓的現象殺手級遊戲還在孕育中,我很期待。通證經濟是今年另一個大放異彩的名詞,但本質我認爲是ICO、STO的另一種美化的叫法,因爲我不懂,所以有些大放厥詞,其擁護者可不用在意我這外行人的看法。

我們再回到問題本身,區塊鏈現在面臨的TPS問題。首先就屬於2B的聯盟鏈來說,更多直面的是多個企業間業務數據的共享及交互,不涉及到C端,大多數的業務場景其實我們都可以採用異步上鍊的方式進行數據共享交互,其實時性要求不高。而一旦涉及到C端,TPS確實就是一個緊要的問題,現有的區塊鏈就單鏈TPS來說,少部分高頻業務確實不能滿足需求,但是不可否認的是,技術是一直在向前發展的,大家都在積極的探索多鏈水平拓展、Layer 2、分片及同構跨鏈。就拿我們比較熟悉的EOS公鏈來舉例,就現在得到的數據來看,其主網峯值TPS已經達到3996了,而且這還只是單鏈未進行多線程優化的版本得到的數據,而且其現在的版本已經能夠支持同構跨鏈,可以想象如果有多條EOS側鏈共同協作,處理大量2C業務應該是不成問題的。當然其白皮書裏的百萬TPS還是要噴一下的,對這個數據請不要認真,笑笑就好。就算以後被打臉,那也是我們從業者的驕傲。

區塊鏈性能瓶頸確實存在,且現在確實不能滿足少量高頻業務需求,但技術一直在發展,從未停止腳步。就拿我們團隊來說,我們一直專注於Hyperledger Fabric的性能優化,通過跟蹤每一流程的磁盤IO、網絡IO等使用率,找出其瓶頸所在並逐行優化,在不改變其交易流程的情況下,已經能夠將其寫性能提升一個數量級,應當說這是質的飛躍。

區塊鏈數據承載能力

接下來我們來聊第二個問題,區塊鏈的數據承載能力。數據的極度冗餘是區塊鏈技術特性導致的,我們不能完全推翻,而且這也不現實,但現在行業也已經相對的解決方案,那就是節點分級。比特幣中逐漸有了全節點與輕節點的區別,全節點維護全網從創世區塊到當前區塊的所有數據,而輕節點只保留與特定賬號相關數據,這是一種解決方案;類POS共識機制區塊鏈在此基礎上又探索出了另一種解決方案,那就是從全部節點中推選出少量節點維護賬本,其他節點(終端)依賴這些選舉出來的節點與區塊鏈網絡交互;而更甚的解決方案是對節點進行多角色劃分,不同節點負責不同的工作,有負責計算的,有負責存儲的。所有這些解決方案都可以相對解決數據冗餘度的問題。

我們試着探討後一部分,那就是交易的業務數據承載能力問題。確實,隨着數據量的增加,網絡耗時、CPU計算、狀態存儲等都會增加。產生這一問題的關鍵我認爲在於誤用了區塊鏈,大多數人(包括我),在剛開始接觸區塊鏈不久的時候,都會認爲區塊鏈是一個(最終)一致性的分佈式KV數據庫,而且我一度是這麼給初學者這麼解釋的,因爲這樣最容易理解。但是隨着理解的深入,多業務場景的馴化,我發現區塊鏈跟數據庫還是有很大差異的,區塊鏈跟數據庫都保存歷史操作記錄跟狀態數據集合。只不過區塊鏈以記錄歷史區塊爲主,而數據庫卻是更看重當前狀態。正所謂一個活在當下,一個懷念過去。區塊鏈的優勢不在於存儲,存儲只是手段,它的優勢在於如何在不信任的網絡中達成信任,這是數據庫不具備的特點。因此,我認爲相對正確的區塊鏈使用方式是:上鍊的並不是數據實體本身,而是其數據指紋,數據指紋的採集現在多數採用數據哈希。數據本身可以存放在任意其他地方,比如說IPFS。比如說一張圖片,上鍊的可能只是其在IPFS網絡中的URI。

區塊鏈數據來源

我們再來探討最後一個問題,區塊鏈的數據來源問題。這個問題現在區塊鏈行業中是一個單獨的領域,叫做預言機(ORACLE),到現在爲止,我還沒有發現一個能夠被行業廣泛認可的解決方案。因此這確實是一個困擾區塊鏈發展的難題,但是我個人認爲解決問題的關鍵點在於:擺脫上鍊數據人爲的干擾

如果從這個角度出發,5G與物聯網技術就能夠跟區塊鏈技術結合在一起了。比如說在防僞追溯領域,我們就可以採用傳感器等物聯網設備直接採集商品數據後,傳感器與鏈直接交互,將數據上鍊。中間不經過任何利益相關方,這樣就可以解決問題中所指責的僞命題了。當然,現階段還不能夠完全採取這種方式,一並不是所有的業務場景都可以被直採數據,二是物聯網的發展程度也還不夠,隨着5G的到來,物聯網與區塊鏈的結合無疑是一個新的爆發點。

以上我相對通俗的迴應了區塊鏈無用論的觀點,而這只是我作爲在一線的區塊鏈程序員的淺薄認識,相較於行業大佬,產品精英無異於班門弄斧。

我曾經在內部討論的時候說過一句話,我說區塊鏈的去中心化是違反歷史社會規律的,在現代社會相對權利集中的時代搞去中心化自制是對主權的蔑視,大家哈哈一笑然後叫我閉嘴。從不否認這是聯盟鏈逐漸被更多人接受的原因之一,但我也樂於看到違法歷史規律的公有鏈打破常規,扇我耳光。

文章的最後,我想將區塊鏈請下神壇。區塊鏈本質上跟AI、大數據、雲計算等毫無區別,它只是一門技術而已,請不要神化它。它就像一把刀,是用來切菜還是幹其他事全憑使用者。前兩天我在知乎上回答了一個問題,題目是如何做一個不傻的區塊鏈信仰者?我看到這個題目,心裏很不是滋味,本不想作答,但最後還是懟了兩句:

怎麼沒聽說什麼大數據信仰者,AI信仰者,物聯網信仰者,5G信仰者。反而到區塊鏈這裏就有信仰者了,爲啥呢?爲啥呢?爲啥呢?

一如既往的結尾,技術是美好的,資本是逐利的,人性是醜惡的。2019,區塊鏈的發展,請與我一起見證。

作者簡介:自遊,區塊鏈底層架構師。16 年初接觸區塊鏈並全職投入,現供職於某世界 500 強企業做區塊鏈底層研究及 BAAS 平臺搭建。精通區塊鏈底層存儲、共識等技術,職業方向偏重聯盟鏈體系。

作者其他文章:
拜占庭將軍問題與區塊鏈
區塊鏈創新平臺:以太坊的直接競爭對手EOS
一文理解超級賬本Hyperledger Fabric的架構與坑
區塊鏈創新之卡爾達諾(Cardano)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章