Linux中國

區塊鏈進化簡史:為什麼開源是其核心所在

當開源項目開發下一個新版本時,用後綴 「-ng」 表示 「下一代」的情況並不鮮見。幸運的是,到目前為止,快速演進的區塊鏈成功地避開了這個命名陷阱。但是在這個開源生態系統的演進過程中,改變是不斷發生的,而好的創意以典型的開源方式在許多不同的項目中被採用、交融和演進。

在本文中,我將審視不同代次的區塊鏈,並且看一看在處理這個生態系統遇到的問題時出現什麼創意。當然,任何對生態系統進行分類的嘗試都有其局限性的 —— 和不同意見者的 —— 但是這也將為混亂的區塊鏈項目提供了一個粗略的指南。

始作俑者:比特幣

第一代的區塊鏈起源於 比特幣 Bitcoin 區塊鏈,這是以去中心化、點對點加密貨幣為基礎的 總帳 ledger ,它從 Slashdot 網站上的雜談變成了一個主流話題。

這個區塊鏈是一個分散式總帳,它對所有用戶的 交易 transaction 保持跟蹤,以避免他們 雙重支付 double-spending (雙花)貨幣(在歷史上,這個任務是委託給第三方—— 銀行 ——來做的)。為防範攻擊者在系統上搗亂,總帳被複制到每個參與到比特幣網路的計算機上,並且每次只允許一台計算機去更新總帳。為決定哪台計算機能夠獲得更新總帳的權力,系統安排在比特幣網路上的計算機之間每 10 分鐘進行一場競賽,這將消耗它們的(許多)能源才能參與競賽。贏家將獲得將前 10 分鐘發生的交易寫入到總帳(區塊鏈中的「區塊」)的權力,並且為贏家寫入區塊鏈的工作給予一些比特幣獎勵。這種方式被稱為 工作量證明 proof of work (PoW)共識機制。

這就是區塊鏈最有趣的地方。比特幣以開源項目的方式發佈於 2009 年 1 月 。在 2010 年,由於意識到這些元素中的許多是可以調整的,圍繞比特幣聚集起了一個社區 —— bitcointalk 論壇,來開始各種實驗。

起初,看到的比特幣區塊鏈是一個分散式資料庫的形式, Namecoin 項目出現後,建議去保存任意數據到它的事務資料庫中。如果區塊鏈能夠記錄金錢的轉移,那麼它也應該能夠記錄其它資產的轉移,比如域名。這正是 Namecoin 的主要使用場景,它上線於 2011 年 4 月 —— 也就是比特幣出現兩年後。

Namecoin 調整的地方是區塊鏈的內容, 萊特幣 Litecoin 調整的是兩個技術部分:一是將兩個區塊的時間間隔從 10 分鐘減少到 2.5 分鐘,二是改變了競賽方式(用 scrypt 來替換了 SHA-256 安全哈希演算法)。這是能夠做到的,因為比特幣是以開源軟體的方式來發布的,而萊特幣本質上與比特幣在其它部分是完全相同的。萊特幣是修改了比特幣共識機制的第一個分叉,這也為其它的更多「幣」鋪平了道路。

沿著這條道路,基於比特幣代碼庫的各種變種越來越多。其中一些擴展了比特幣的用途,比如 Zerocash 協議,它專註於提供交易的匿名性和可替換性,但它最終分拆為它自己的貨幣 —— Zcash

雖然 Zcash 帶來了它自己的創新,使用了最近被稱為「 零知識證明 zero-knowledge proof 」的加密技術,但它維持著與大多數主要的比特幣代碼庫的兼容性,這意味著它能夠從上游的比特幣創新中獲益。

另外的項目 —— CryptoNote,它萌芽於相同的社區,但是並沒有使用相同的代碼,它以比特幣為背景來構建的,但又與之不同。它發佈於 2012 年 12 月,由於它的出現,導致了幾種加密貨幣的誕生,最著名的 門羅幣 Monero (2014)就是其中之一。門羅幣與 Zcash 使用了不同的方法,但解決了相同的問題:隱私性和可替換性。

就像在開源世界中經常出現的案例一樣,做同樣的工作有不止一個的工具可用。

下一代:「Blockchain-ng」

但是,到目前為止,所有的這些變體只是改進加密貨幣或者擴展它們去支持其它類型的事務。因此,這就引出了第二代區塊鏈。

一旦社區開始去修改區塊鏈的用法和調整技術部分時,對於一些想去擴展和重新思考它們未來的人來說,這種調整花費不了多長時間的。比特幣的長期追隨者 —— Vitalik Buterin 在 2013 年底建議,區域鏈的事務應該能夠表示一個狀態機的狀態變化,將區域鏈視為能夠運行應用程序(「 智能合約 smart contract 」)的分散式計算機。這個項目 —— 以太坊 Ethereum ,上線於 2015 年 4 月。它在運行分散式應用程序方面取得了巨大的成功,它的一些非常流行的分散式應用程序( 加密貓 CryptoKitties )甚至導致以太坊區塊鏈變慢。

這證明了目前的區塊鏈存在一個很大的局限性:速度和容量。(速度通常用每秒事務數來測量,簡稱 TPS)有幾個提議都建議去解決這個速度問題,從 分片 sharding 側鏈 sidechain ,以及一個被稱為「 第二層 second-layer 」的解決方案。這裡需要更多的創新。

隨著「智能合約」這個詞開始流行起來,並且用已經被證實仍然很慢的技術去運行它們,那麼就需要實現其它的思路: 許可區塊鏈 Permissioned blockchain 。到目前為止,我們所介紹的所有區塊鏈網路有兩個沒有明說的特徵:一是它們是公開的(任何人都可以看到它們的功能),二是它們不需要許可(任何人都可以加入它們)。這兩個部分是運行一個分散式的、非基於第三方的貨幣應該具有的和必需具有的條件。

隨著區塊鏈被認為出現與加密貨幣越來越明顯的分離趨勢,開始去考慮一些隱私、許可場景是很有意義的。一個有業務關係但不需要彼此完全信任的財團類型的參與者,能夠從這些區塊鏈類型中獲益 —— 比如,物流鏈上的參與者,定期進行雙邊結算或者使用一個清算中心的金融、保險、或醫療保健機構。

一旦你將設置從「任何人都可以加入」變為「僅邀請者方可加入」,進一步對區塊鏈構建區塊的方式進行改變和調整將變得可能,那麼對一些人來說,結果將變得非常有趣。

首先,設計用來保護網路不受惡意或者垃圾參與者的影響的工作量證明(PoW)可以被替換為更簡單的和更少資源消耗的一些東西,比如,基於 Raft 的共識協議。在更高級別的安全性和更快的速度之間進行權衡,採用更簡單的共識演算法。對於更多群體來說這樣更理想,因為他們可以用基於加密技術的擔保來取代其它的基於法律關係的擔保,例如為避免由於競爭而產生的大量能源消耗,而工作量證明就是這種情況。另外一個創新的地方是,使用 股權證明 Proof of Stake (PoS),它是公共網路共識機制的一個重量級的競爭者。它將可能像許可鏈網路一樣找到它自己的實現方式。

有幾個項目可以讓創建許可區塊鏈變得更簡單,包括 Quorum (以太坊的一個分叉)和 HyperledgerFabricSawtooth,這是基於新代碼的兩個開源項目。

許可區塊鏈可以避免公共的、非許可方式的區塊鏈中某些錯綜複雜的問題,但是它自己也存在一些問題。正確地管理參與者是其中的一個問題:誰可以加入?如何辨別他們?如何將他們從網路上移除?網路上的一個實體是否去管理一個中央公共密鑰基礎設施(PKI)?

區塊鏈的開放本質

到目前為止的所有案例中,有一件事情是很明確的:使用一個區塊鏈的目標是去提升網路中的參與者和它產生的數據的信任水平,理想情況下,不需要做進一步的工作即可足以使用它。

只有為這個網路提供動力的軟體是自由和開源的,才能達到這種信任水平。即便是一個正確的、專用的、分散式區塊鏈,它的本質仍然是運行著相同的第三方代碼的私有代理的集合。從本質上來說,區塊鏈的源代碼必須是開源的,但僅是開源還不夠。隨著生態系統持續成長,這既是最低限度的擔保也是進一步創新的源頭。

最後,值得一提的是,雖然區塊鏈的開放本質被認為是創新和變化的源頭,它也被認為是一種治理形式:代碼治理,用戶期望運行的任何一個特定版本,都應該包含他們認為的整個網路應該包含的功能和方法。在這方面,需要說明的一點是,一些區塊鏈的開放本質正在「變味」。但是這一問題正在解決。

第三和第四代:治理

接下來,我正在考慮第三代和第四代區塊鏈:區塊鏈將內置治理工具,並且項目將去解決棘手的大量不同區塊鏈之間互連互通的問題,以便於它們之間可以交換信息和價值。

關於作者

axel simon: 長期的自由及開源軟體愛好者,就職於 Red Hat ,關注安全和區塊鏈技術,以及分散式系統和協議。致力於保護互聯網及其成就(知識分享、信息訪問、去中心化和網路中立)。

via: https://opensource.com/article/18/6/blockchain-guide-next-generation

作者:Axel Simon 選題:lujun9972 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國