天天看點

區塊鍊開發技術路線的思考(二)

在前一篇文章裡讨論了基于 Ethereum 和 Hyperledger 開發區塊鍊項目的優缺點。我的結論是明顯的,兩者志向遠大,假以時日或許會一飛沖天,但現階段的成熟度都還不夠。如果你有心現在投入區塊鍊的開發,那麼我的建議是,基于 Bitcoin 自建鍊,同時關注甚至參與 Ethereum 或 Hyperledger 核心項目,幫它們夯實地基。

Bitcoin 無疑是最成熟、品質最佳、讨論最深入的區塊鍊項目,如果按照關注度來算市場佔有率的話,在區塊鍊領域,Bitcoin 可能三分天下有其二。它目前的正式發行版本是 0.13,但馬上就将釋出 0.14。不過因為還有若幹重大技術挑戰有待解決,是以預期代碼還會有不小的變動,1.0 版本何時能問世尚在未知。盡管如此,Bitcoin 核心代碼的品質已經非常高,相關文檔非常完善,區塊鍊的主要思想蘊藏其中,是一座向任何人無私開放的巨大的技術寶庫。目前主流的區塊鍊創業項目,仍然是從 Bitcoin 的 Github 代碼庫 fork 代碼,并且加以修改,實作自己的改進。我們不妨稱此類區塊鍊為 Bitcoin 派生鍊。有些派生鍊是真的有改進,比如 Zerocoin, Emercoin,Counterparty, Omin Layer, Zcash, BitStream 等等,都是 Bitcoin 的核心貢獻者和資深密碼學家在紮實的學術研究基礎上所做的改進項目,能夠在某一個或幾個方面顯著拓展 Bitcoin 的能力。但大部分這個币那個币的項目,其實就是把 Bitcoin 源代碼拿來改幾個參數,改頭換面就拿到市場上炒作了。當然,不是說這種炒作币并無價值,有些炒作币有其特定應用場景,因為某些參數調整之後,确實有利于某些特定市場特定行業的需求。但大多數炒作币從出生的那一天開始就隻有一個目的:騙錢。各種騙錢币在市場上此起彼伏,這也是事實。當今區塊鍊的第一大應用,其實就是貨币炒作和投機。是以搞區塊鍊的人,實際上要有一定的道德底線支撐,否則很容易走向邪路。

是以我認為今天切入區塊鍊開發的正途,是從 Bitcoin 派生出一個區塊鍊,然後面向具體應用需求,修改代碼,突出特色,并且随時準備與其他的相關鍊聯盟,比如形成互為側鍊的關系。于此同時,參與整個區塊鍊社群的技術創新和研究,對 Bitcoin、Ethereum 等核心項目進行力所能及的支援和貢獻。

說到派生鍊,這裡特别提一下 Litecoin,也就是萊特币,因為它是一個很典型的 Bitcoin 派生币,了解了 Litecoin 的故事,我們就能大緻知道 Bitcoin 派生币的路數。

萊特币誕生于 2011 年 10月,當時幾乎是 99% 的代碼與 Bitcoin 是完全一樣的,其唯一重要改進,就是用 Scrypt 取代SHA-256 作為挖礦難題(mining puzzle)。SHA-256 算法非常适合于硬體實作,是以 Bitcoin 火起來之後,挖礦算力迅速集中,到 2011 年下半年,GPU 礦機已經被 FPGA 礦機打垮,而更強悍的 ASIC 礦機也即将問世。這完全違背了中本聰“讓每個人可以用筆記本電腦挖礦” 的初衷,也被視為是 Bitcoin 生态系統中的一個始料未及的嚴重問題。Litecoin 正是為了解決這個問題而誕生的。 Litecoin選擇的 Scrypt 算法原本是密碼學裡的一個 Key Derivation Function,也就是通過一個密鑰生成一個或若幹的密鑰的算法。與 SHA-256 不同的是,Scrypt 的計算速度主要不取決于 CPU 有多快,而取決于記憶體有多大。對于企圖集中算力的礦主來說,他們很容易可以設計專業硬體,在計算速度上碾壓普通電腦數十億倍,但是要堆積其超過普通電腦數十億倍的記憶體,那還是很需要花點銀子的。是以在 Litecoin 剛推出來的時候,它主打的點就是拒絕挖礦大鳄,讓普通玩家可以用筆記本電腦挖礦。就是這一招鮮,讓 Litecoin 在 2013 年升值 1,300 倍。但我們需要認識到,Litecoin 沒有在區塊鍊研究和應用上面對于 Bitcoin 做出任何改進,更沒有跟任何具體行業應用相結合,相對于 Bitcoin,它提供的額外價值很少,是以它的突然成功,更多是炒作的結果,沒有實際的基礎。人算不如天算,後來專用的 Scrypt ASIC 硬體的還是推出來了,普通人用 CPU 挖礦已經成為夢呓,Litecoin 唯一賴以為支撐的點也非常虛弱了。是以自 2014 年以來,特别是 2015 年初之後,Litecoin 價格暴跌,開發團隊活力盡喪,十個月不釋出新版本,明顯已經心不在焉了。

Litecoin 最火的時候,出現了一大批 Litecoin 的派生币,比如狗狗币 Dogecoin,其派生鍊數量之多,甚至超過 Bitcoin。那麼問題來了,如果我們今天要派生一個自己的區塊鍊項目,是應該從 Litecoin 派生呢,還是從 Bitcoin 派生呢?

要回答這個問題,去追蹤一下 Litecoin 自身的代碼演進就知道了。Litecoin 最早派生自中本聰時代的 Bitcoin 源代碼,Litecoin的原始開發者 Charles Lee 最初可能隻是出于研究 Bitcoin 的目的才開啟這個項目的。在很長時間裡,Litecoin 甚至都沒有修改Bitcoin 代碼的生成目标,也就是說,你編譯 Litecoin 源代碼,生成的是叫 bitcoind 的可執行檔案。後來 Litecoin 獲得了足夠的關注,開始獨立發展,就這麼走了好幾年。但到了 2014 年 年初,Litecoin 的開發者發現 Bitcoin 的技術水準和代碼品質已經遠遠超過了自己當時的水準,是以重新從 Bitcoin 中導入全部代碼,然後再加以修改。由此可見,Bitcoin 不但是所有區塊鍊項目之母,而且至今也仍然是開發力量最強、代碼品質最高的一個。至于為什麼那麼多項目選擇從 Litecoin 派生出來,無非是為了圖簡單而已,不足為訓。

是以結論很清楚,我們今天搞自己的區塊鍊,一定要站在真正的巨人身上,這個巨人毫無疑問就是 Bitcoin。