爲何咱們須要另外一種區塊鏈?

2016 年年初,Eris Industry 最先把 BFT 的共識引入到區塊鏈中,創造了許可鏈。祕猿科技創始人等在 Ethfans 作了不少次 Meetup,當時講了爲何咱們須要許可鏈。簡單來講,在比特幣的區塊鏈上咱們實現了不記名資產,可是在不少金融場景裏面咱們會須要不少記名資產。咱們須要知道資產是登記給誰的、身份是明確的、可追溯的,而不是一個徹底匿名的環境。區塊鏈若是要真正作到商業落地,身份融入區塊鏈是一個必要條件。因此,在 2016 年初,咱們設計與開發了企業級高性能區塊鏈內核 CITA,並於 2017 年開源。CITA 從開源至今已經有超過 10 個版本的穩定迭代,目前已經有包括招商銀行,中鈔區塊鏈研究院等多家銀行和國有大型機構使用 CITA 搭建本身的底層架構。( P.s 本文首發於 2016 年 6 月的我的博客

祕猿科技區塊鏈小課堂第 4 期
點擊關注祕猿科技在思否的技術社區吧~算法

出世

2007年,中本聰踏上征程,開始尋找困擾密碼學愛好者多年的一個問題的答案:咱們能不能在數字世界中構建一個點對點的現金系統?數據庫

2008年,在一羣密碼朋克的彙集地metzdowd郵件列表上,比特幣白皮書悄然問世。這篇劃時代的論文算上引用只有短短9頁,簡潔明瞭的描述了一個史無前例的系統。segmentfault

2011年,我從正熱衷於挖礦的好友那裏據說了這個項目,但真正引發我極大興趣的,是名爲Paul Bohm的用戶對Quora上一個提問的回答,他在文章中將比特幣和拜占庭將軍問題聯繫到了一塊兒。這篇文章爲我打開了一個新世界的大門,這個世界的基石不是密碼學貨幣,而是區塊鏈。(最帶勁的是,這個世界沒有奇怪的防沉迷系統...)網絡

區塊鏈其實是一種新型的分佈式數據庫。這個數據庫與以往的分佈式數據庫之間最大的不一樣,在於它可以容忍所謂的拜占庭故障。拜占庭故障是一種最寬鬆的故障類型,節點被黑客控制所能表現的任意行爲也是一種拜占庭故障。能夠容忍拜占庭故障的分佈式數據庫,只有在網絡中的多數數據庫節點贊成時,纔會執行客戶端請求的操做。換句話說,沒有任何一個單一節點,或者容忍數量以內的多個節點,能夠擅自修改這個數據庫裏面的數據,所以即便這些節點被黑客惡意控制,他也沒法寫入錯誤數據或者篡改之前的數據。數據結構

這樣一個不能被篡改的共同維護的數據庫,記錄的是從數據庫開始運行以來全部的操做和數據。任何人都不可否認這些數據的真實性,它是一個惟一的可信數據源,能夠做爲其它須要信任的業務的基礎。它將一座座的信息孤島鏈接成了一個完整的世界。有了這樣一個數據庫咱們就能夠創造出許多之前不可能存在的應用。中本聰用這個數據庫記錄了一個現金帳本,因而比特幣誕生了。在這樣一個由遍及全球的節點共同維護的網絡上,每一筆轉帳記錄實際上均可看做數據庫中的一個操做:把 A 的帳戶餘額減小 100,再把 B 的帳戶餘額加上 100。架構

若是在數據庫裏面記錄誰擁有多少股票,咱們就獲得了一個股權登記系統,若是在裏面記錄域名和 ip 的對應關係,它就變成了一個域名註冊系統。最棒的是,這些數字形態的股票,域名,各類各樣的資產,還可以在這個 7*24 小時持續運行,無人可篡改,多地備份強力容災的系統上自由流轉!
共同維護一個數據庫,也就意味着無需對帳,下降告終算清算的成本。資產可在網絡中輕鬆流轉,交易摩擦幾近於零。而數據沒法篡改的性質,又完美的響應了監管機構的要求,根據摩根士丹利的分析,僅這一項就能爲銀行節約百億美圓規模的合規成本。框架

「完美。」異步

成繭

惋惜事情並不如想象的那麼簡單。在比特幣以後,人們按照這些想法在公有鏈上進行了一系列的嘗試(染色幣,二代幣,etc.),卻漸漸的發現,區塊鏈的萬里晴空上,還飄蕩着兩朵烏雲。分佈式

第一朵烏雲,是區塊鏈的性能問題。以比特幣爲例,目前整個系統的吞吐量最大爲每秒 10 筆左右(與單筆交易數據大小有關),而一筆交易須要至少 10 分鐘才能獲得確認響應(更嚴格的標準下須要 60 分鐘)。這樣的表現遠遠沒有達到諸多場景下的實用標準。ide

烏雲之二,是所謂的肯定性問題。肯定性的意思是,當你獲得一筆交易的確認響應以後,這筆交易應該就算是最終肯定,永遠不能撤銷了(除非法院判決之類的事情發生)。若是不能保證這一點,咱們不管如何沒法將房產股票這些資產放到鏈上進行流轉。

不管是工做量證實 PoW,仍是權益證實 PoS,實際上都是由製造後面區塊的人,不停的對以前的每個區塊進行投票。以 PoW 爲例,每一個新制造的區塊是一票,算力高的人,將得到更多的投票機會。因爲投票一直在持續,永不結束,所以理論上每一個區塊都沒有最終肯定,由於後面還有無窮多的票能夠用來否定它的有效性。現實中,投反對票的成本與被投票區塊的年齡有關,年代越久遠的塊須要越多的反對票才能推翻(也就等於須要越多的算力)。只要區塊中包含的交易價值夠高,高過推翻這個塊所須要的成本,攻擊者就有動力去實施這樣的進攻。

不管是性能問題,仍是肯定性問題,根源都在於公有鏈的共識算法設計上。公有網絡的本質決定了,網絡上的節點都是匿名的,沒有真正的身份,因此公有鏈的共識算法必須基於這一點來設計,若是不能正確的限制匿名節點,很容易就會陷入女巫攻擊的汪洋大海。仍是以比特幣爲例,由於節點都是匿名沒有身份,中本聰天才的將本來設計用來防垃圾郵件的招數,工做量證實用於出塊節點的選擇,再由以後的出塊節點對前面的區塊投票,以算力的限制代替了節點身份的限制。

雖然在比特幣以後,又有包括 GHOST, Inclusive Blockchain Protocol 等各類改進出現,可是受制於匿名網絡這道深層的藩籬,區塊鏈的性能問題並無根本性的進步 - 以太坊的共識設計能夠算是表明了當前的最高水準,也僅僅作到了平均 15 秒的時延(區塊間隔),吞吐量也依然停留在個位數每秒。更糟糕的是,不管哪種研究,都沒能給出肯定性問題的解決方法。

隨着研究的深刻,咱們發現,從更底層去看,區塊鏈其實是融合了點對點網絡,密碼學簽名,哈希數據結構,以及共識算法的一種新型技術組合。點對點網絡保證了無單點故障甚至多點故障,密碼學簽名使得每個操做均可鑑權可審計,哈希數據結構使得全部的數據融爲一體,沒法單獨修改其中的一點,而共識算法則是全部節點能造成協力的關鍵。這個組合模式纔是區塊鏈的本質。咱們也許應該回頭看看,在這個框架之下,什麼是能夠改變的。

因而就像經典物理天空的兩朵烏雲給世界帶來了相對論與量子力學,區塊鏈也迎來了新的思路。

化蝶

當咱們坐下來從新審視區塊鏈的大部分應用場景時,會意識到一個特色:不管是房產,股票仍是域名,都與身份有關。在這些場景裏面,咱們必須先明確的知道誰是誰,而後才能把某種資產登記在他的名下。換句話說,咱們要處理的問題是記名資產,而不是中本聰在比特幣白皮書裏所說的,現金,一種不記名資產。

若是將區塊鏈用於記錄記名資產,這個網絡上的用戶天然再也不是匿名,因而其中的共識算法只要針對一個非匿名的網絡來設計。只要修改後的共識算法依然可以容忍拜占庭錯誤,那麼一個由這樣的共識算法,哈希數據結構,密碼學簽名以及點對點網絡所組成的體系,依然是區塊鏈,它保留了區塊鏈的全部優勢。

而非匿名網絡中的拜占庭容錯(簡稱BFT)共識算法已是一個碩果累累的領域。以 Leslie Lamport 在 1982 年發表的 <The Byzantine General’s Problem> 爲開端,老爺子給同步網絡中的拜占庭容錯共識輕輕的劃了一條不可逾越的邊界。接着 Fischer, Lynch, Paterson 在 1985 年發表的 <Impossibility of Distributed Consensus with One Faulty Process> 又否認了異步網絡中拜占庭容錯共識的可能性,給這一領域又套上一條枷鎖。直到 2001 年 Castro 和 Liskov 在 <Practical Byzantine Fault Tolerance> 發出一聲吶喊使得人們發現,證實了不可能又怎麼樣,一個實用的算法不須要面面俱到!因而更多的實用性算法如雨後春筍般涌現,拜占庭容錯共識算法不管在時延仍是吞吐量上都有了巨大的進步。

這些現成的 BFT 算法還有另一個好處,由這一類共識接受的交易是徹底肯定的!每一筆交易在通過身份可信的節點驗證以後就永久固定下來,不再能被推翻。因而很奇妙的,對需求的分析將匿名的藩籬化解以後,區塊鏈的性能和肯定性兩大問題也隨之消散。不只如此,因爲網絡上用戶的身份可知,諸如 KYC/AML 之類的常見合規需求也變得十分容易。

一個這樣的區塊鏈系統,其中可能有數十個可信節點承擔維護網絡共識處理用戶請求的任務,其它節點能夠是表明用戶本身的節點,也能夠是中間服務商運行的節點,爲用戶設備上的輕節點提供服務,還能夠是監管機構運行的節點,監督整個網絡中的交易數據。這樣的區塊鏈系統和公有鏈並沒有本質上的不一樣,只有管理上的差異:公有鏈容許任何匿名用戶隨時加入退出,而咱們的新型區塊鏈系統則只容許經過身份認證的用戶加入網絡,這樣的區塊鏈能夠被叫作許可鏈,又能夠依照其中節點的全部權而劃分爲聯盟鏈(節點由一個企業聯盟維護)或是私有鏈(節點由單個企業維護)。

啓程

公有鏈與許可鏈服務於不一樣的場景,不一樣的目的,在將來會扮演各自的角色。咱們以爲在不少場景會須要有身份,許可鏈是一個天然的,有身份的區塊鏈系統;許可鏈和聯盟鏈,它的共識範圍更小,適合更多的場景。因此,基於這兩點,許可鏈還有很大的潛力和探索空間。這也是祕猿科技Cryptape 成立的目的。咱們相信,這些產生信任的機器能夠爲這個世界尤爲是這個國家帶來巨大的價值。

相關文章
相關標籤/搜索