眼花繚亂的區塊鏈技術如何入門

Mon Mar 26 17:02:58 CST 2018

2018 年,最令人激動的技術便是 blockchain tech —— 我曾在今年的計劃中,將 ML 和 blockchain 列為上下半年學習的方向,不料陰差陽錯,先上了 blockchain 的賊船。 blockchain 讓我激動的地方主要有兩點:

其一,它集各種現存的技術於一身,解決了一個實實在在的問題:在一個節點之間彼此不能信任的分佈式環境下,如何構建一個open ledger,解決double spending(雙花)問題。如果說 blockchain 是站在巨人肩膀上的技術,一點也不為過。下圖是主流的 cryptocurrency 使用到的技術:


它涵蓋了分佈式系統,密碼學,網絡,編譯原理,虛擬機以及各式各樣的數據結構,基本上把 CS 所涉及的主要技術都摸了一遍。如若完整走過某個 cryptocurrency(比如 bitcoin / ethereum)的學習,對技術的夯實是顯而易見的。

其二,blockchain 領域的創新(如果是真正要做事情而非圈錢式創新),在目前這個階段,技術人占主導地位(翻身農奴把歌唱)。和 SaaS,電商,OMO 等應用領域不同,blockchain 還處在基礎研究的階段,技術起決定性因素。如果沒有對現有技術體系完整詳盡的了解,你很難找對切入點,甚至都不知道哪些問題可以解決,哪些問題不能解決。我看過一些Product-driven 的白皮書,連起碼的技術都沒搞懂,對blockchain 技術的現狀都不清楚,就抨擊比特幣和以太坊的諸多道聽途說過來的問題,然後洋洋灑灑寫下大篇毫無意義的文字解釋自己如何「發明」了一種新的方法,「解決」現存的問題,從而可以完成某某某應用。

以上兩個原因使得我們關注 blockchain 相關的技術變得理所當然。我在「程序員的好日子什麼時候才到頭?」一文中說過:市場一直對程序員的需求強勁,可靠的供給卻嚴重不足。 70 年來,幾乎平均每五年,對程序員的需求就增長一倍。這意味著市場上大量充斥著 < 5 年工作經驗的,新入行的程序員。這意味著什麼?在這樣一個瘋狂的市場下,程序員這個職業本身已經獲得比其他職業高得多的溢價,而靠譜的,有經驗的程序員,則很容易在這個溢價的基礎上,再翻上一兩番。沒辦法,這是供需決定的。如今 blockchain 領域的投資不斷飆升,需求越來越強進,而市場上靠譜的程序員卻少之又少,巨大的虧空必然會讓有經驗有能力的程序員變得超級搶手。所以,對於程序員來說,這是一個非常值得關注的領域—— 它不像ML/DL/AI,專業性強,如若沒有好的數學底子和開放性的思維,很難出類拔萃;在blockchain 領域,需要的更多是廣博的知識和工程能力。

然而區塊鏈技術比較難以入門,很多人一腔熱血扎進去卻碰了個釘子 —— 這有幾個原因。

一. 整個體系還處在相當早期的階段,工具和資料都不完善,大部分時間,我們需要 read the fxxking paper / code 來獲得正確的認知。這往往令初學者很難窺到門徑去深入學習。網絡上雖然充斥的大量的文章,但要么蜻蜓點水,流於表面,要么乾脆不談技術,只聊虛頭巴腦的應用。

二. 雖然 blockchain tech 還在早期,但各種 cryptocurrency 已經「亂花漸欲迷人眼」,市值在千萬美金以上的都有 450 種之多(https://coinmarketcap.com)。 generation 也從第一代的 bitcoin,到第二代的 ethereum,再到目前喧囂的 blockchain 3.0。到底從哪裡看起,心裡沒數。

三. 主流的 cryptocurrency,比如 bitcoin 或者 ethereum,安裝個環境,就把你那 mbp 可憐兮兮的 512G disk 快要吃光 —— 還沒開始學習呢,家底先敗沒了。

四. 新概念太多,不好理解。好容易搞清楚了 open ledger,又冒出來個 PoW,然後是 UTXO,然後是 smart contract,然後是 side-chain,無窮無盡。就拿核心的共識機制來說吧—— 我最近在寫一篇關於共識的文章,整理了一下,目前被各種白皮書提及的共識機制就有:PoW,PoS,PoI(NEM),PoD( Nebulas),PBFT(Hyperledger),FBA(Stellar),Hybrid PoW/PoD(peercoin),Tendermint(cosmos),dPoS(EOS)。 。 。數不勝數,真是黑雲壓城城欲摧,共識機制惹人悲。再說下去,都快要「從入門到放棄」了,有木有?

不過,我們敬愛的 Professor Randy Pausch 說過:The brick walls are not there to keep us out; the brick walls are there to give us a chance to show how badly we want something.

所以不要畏懼。那麼,如果我現在開始看 blockchain,究竟該如何入門?是從 bitcoin 看起?還是直接上 ethereum?甚至,直接研究感興趣的白皮書?