週末來臨,輕鬆一刻~算法
咱們推出了針對區塊鏈技術的中文播客"Fork It",由 Nervos 四位主播 Terry、Jan、Kevin、Daniel 從一線創業者的角度來分享區塊鏈的方方面面,第一期來聊一聊分叉。網絡
分叉就是區塊鏈面臨着兩條路,選擇向左走仍是向右走?若是向左走,就什麼都不用作;向右走,就是選擇了升級。——Jan 眼中的分叉
我所經歷過的區塊鏈中重大的分叉故事,都不是那麼輕鬆的。讓全部節點選擇升級到最新的客戶端,自己就是件很難的事,而共識又是分層次的,須要在不一樣羣體間達到共識。達成共識的分叉叫做無爭議的分叉,沒達成共識的分叉叫做有爭議的分叉。——Daniel 所理解的分叉
在一羣人中達成共識是一件很難的事,即便在只有 10 我的的團隊中,也經常達不成共識。更況且區塊鏈中有幾十萬人、幾百萬人,達成共識的難度之大可想而知,因此分叉也是天然而然會發生的事。性能
在 Fork It 1 中,Jan 和 Daniel 要和咱們聊一聊「FORK」這個話題。區塊鏈
比特幣和以太坊採用的都是 POW 共識算法。在 POW 共識算法中,當全部礦工都認同一次將來將要發生的分叉時,他們會選擇去下載包含此次分叉的最新客戶端版本,當達到某一個區塊高度以後,整個鏈上的全部節點都會使用最新的客戶端版本,這時,他們會作一次瞬間的協議升級,而後分叉就會完成。spa
可是,比特幣社區和以太坊社區對待分叉有着不一樣的世界觀。比特幣社區堅定抵制任何硬分叉,而以太坊社區卻硬分叉不斷。爲何會有這麼大的區別呢?設計
從推進社區共識的角度來說,比特幣沒有一個核心團隊去推進這件事,而以太坊社區是一個技術驅動的社區,有以太坊基金會、核心團隊,有社區的精神領袖 Vitalik,他們共同推進協議的向前升級。在達成共識這件事情上以太坊會比比特幣更普遍和更快速。blog
「價值存儲」的定位,使得比特幣須要保持足夠的穩定性,這也是比特幣抵制硬分叉的緣由之一。而以太坊出如今比特幣以後,想要快速的發展、進步,就須要不停的迭代、升級。事件
以太坊的每一次分叉會存在大量的局部爭議,可是在分叉以前,以太坊社區會在技術層面解決這些協議的分歧,這是一個很好的模式。若是是開發者,會很熟悉開源社區的操做,好比 Linux、Rust,它們都有一個比較核心的組織,你們不停的提案,討論造成一個結果,最後由核心團隊去推進執行。雖說開源社區的決策效率相對於中心化組織會慢一些,可是它最終仍是先達成技術上的共識,再達成網絡協議升級的共識。這是瓜熟蒂落的過程,也是一種很好的平衡方法。圖片
採用 POW 共識機制的分叉大部分是根據持有的算力來投票的,而採用 POS 共識機制的分叉,簡單的說是基於出塊人持有的 Stake 數量來投票,固然在投票機制的設置上也會有更多的挑戰和玩法。在 POS 分叉中,能夠設置成全部 Stake 持有者都參與投票,甚至也能夠不用持有的 Stake 投票,而是疊加其餘投票機制設計,好比經過犧牲流動性得到更多投票額度,假設 10 個 Token, 鎖定 10 天就有 100 票,鎖定 20 天就有 200 票等等。開發
實際上,共識和治理是兩個不一樣的維度,POW 分叉也能夠用 Stake 的方式投票,POS 分叉也能夠根據持有的算力進行投票。
歷史上發生過不少有趣的分叉故事:BTC 的擴容之爭、以太坊的 The DAO 事件、拜占庭分叉、軍事坦丁堡分叉、BTC 分叉的分叉等等。
BTC 的分叉 BCH 發生在 2017 年 8 月,當時以比特大陸爲首的多家公司,提出了一個基於比特幣的改進方案,這個方案不是以達成共識做爲結果,而是從比特幣分叉出一條新的鏈。在這條鏈上應用他們提出的一系列擴容的方案,包括將每個區塊的容量從 1M 升級到 8M,自此就有了 BCH(Bitcoin Cash),一條全新的鏈。
分叉是關於區塊鏈擴容路線的大辯論,其中又摻雜了各類各樣的社區意見分歧。擴容這件事之因此是一個問題,就是由於比特幣的帶寬不夠了,每一個區塊的交易太擁堵了。在中本聰的論文裏,比特幣出塊的存儲上限是 1M,平均下來每秒能容納的交易大概只有 6 到 7 筆,因此在 2015 年開始,比特幣的網絡擁堵問題就很是嚴重了。從那時起,社區就有呼聲要求擴容,而針對如何擴容就產生了不一樣的觀點。
BTC 認爲不能更改 1M 大小的參數,雖然可能有原教旨主義,可是也有它的道理。而 Bitcoin core 首先選擇使用隔離見證的方式,將簽名部分佔用的空間移出,這樣區塊的實際可用空間就從 1M 變得更大。隔離見證部署以後一段時間再討論下一步的擴容方案,同時經過 Layer 2 或者閃電網絡的方案去彌補比特幣性能的不足。
然而在理想的狀況下,隔離見證明現了較原來 170% 的容量提高,但這對於解決整個網絡的擁堵仍是杯水車薪的。並且以如今的比特幣技術來講,在比特幣之上使用 Layer 2 的方式去擴充性能也是一個漫長的過程。
當觀點不一致時,最終的結果無非兩種,一種是皆大歡喜達成共識,選擇向左走仍是向右走,這種時候就不會有硬分叉。另一種就是沒有達成共識,各自堅持本身的觀點。
在傳統狀況下,通常的制度是少數服從多數或者由一我的拍板,而分叉就提出了另一種制度,能夠各走本身的路。在區塊鏈中全部的數據都是能夠複製的,重啓一條鏈,甚至不用用戶投票,就能從 1 個 Token 變成 2 個 Token。當時不少人看到這種狀況的時候是很驚奇的,好比手上的 1 塊錢忽然變成了一個 1 塊錢和另一個 1 塊錢。
BCH 分叉算是一次成功的分叉了,也被不少公司接受,應用到了不少的場景。以後也出現了很是多的分叉,像 BTG、Bitcoin God、SBTC 等等,可是這些分叉並無成功。這就說明了一種現象:
在互聯網時代 ,互聯網巨頭的壁壘是用戶,創業公司能夠複製產品和商業模式,但沒有辦法得到用戶;在區塊鏈時代,看起來好像是複製代碼就能夠免費得到原來鏈上的全部用戶,但實質上並非那麼容易的。用戶並不會由於分叉而必定發生遷移,而是須要看到鏈上凝聚的價值再作選擇。這個價值是什麼,纔是區塊鏈時代創業者須要去探索的東西。
每一期 Fork It 節目最後,主播們都會送上他們的好物分享:
這一期,Jan 給你們推薦了一本書《債》,做者是大衛·格雷伯,主要講述了市場、貨幣、債務的發展歷史,這本書裏有不少有趣的觀點,很是值得閱讀。
Daniel 推薦了布拉格的德式烤豬肘子。11 月,Nervos 團隊在布拉格參加了 Devcon4,在布拉格期間,他們幾我的分享一隻完整的烤豬肘子,再配上一紮黑啤,堪稱絕美!
本文內容來源於 Fork It 1。Fork It,第一個聊區塊鏈技術的中文播客。更多精彩內容,詳見連接:http://forkit.fm/1