柏鏈道捷康爍:區塊鏈共識到底牛逼在哪?

買賣虛擬貨幣
“的共識機制是一個偉大的技術創新,填補了計算機專業領域的一個空白。如果中本聰願意發表學術論文的話,這應該也是21世紀以來最重要的學術論文之一。”一席話點出康爍是區塊鏈忠實“believer”(信眾)的身份。康爍是清華大學區塊鏈中心高階工程師、柏鏈道捷 CTO。

康爍神似段奕巨集,因而常開玩笑自比為“計算機網紅”,這是他幽默的一面;與此同時,他也恪守技術人的嚴謹性,推崇知識的普世傳播:

“我願意把自己對區塊鏈共識的如滔滔江水般的無限景仰,統統分享給大家。”他在 DOGi 社群的分享會開宗明義。

此次分享會圍繞區塊鏈共識機制展開。這是區塊鏈的核心概念之一。但普通人並不關心這樣的議題,技術理論的話術體系容易造成隔閡。

如何突破行業話語受眾狹窄,並自然向外延伸?這背後的現實面,反映了區塊鏈曲高和寡,難以進入公眾領域。康爍希望做一點“小貢獻”,跨越認知的藩籬:讓信仰者恆遠,讓求知者追逐。

以下為康爍的區塊鏈共識機制分享全程實錄:

我們從最基礎的區塊鏈共識開始。區塊鏈共識機制是什麼?


區塊鏈共識是一個非常重要的一個發明。我們,其實上次我在一個,就說清華內部的一個沙龍里邊有經濟學家。有黨委書記,有計算機學家,大家對區塊鏈的各種認識都不太一樣,而且區塊鏈呢,是目前來說呢,是爭議最大的技術。大家知道就是人工智慧啊,網際網路其實大家沒這麼多爭議,而區塊鏈爭議是非常大的。很多大佬這個發表的預言,結果轉眼第二天就被打臉。

區塊鏈共識呢,我只是從技術的角度來介紹,而不是從社會學或者從其他的角度去介紹。

呢,他在計算機裡邊是一個偉大的創新。據說他的重要性在於什麼呢,他構造的一種,無信任的一種合作方式。無信任的合作方式,也就是說大家誰都可以不相信誰,但是可以協作在一起完成一件任務。

這是非常重要的,從我們計算機的角度來講呢,它的重要性在於,他的擴張性很強。大家可以想一下。任何人在任意時間內馬上就可以組成一個團體,提供對外的合作。也就是說,這是一種無邊界的合作方式啊,就是任何人都可以組織在一起馬上合作,來完成一個事業。所以它的可擴充套件性非常強,所以這個是它非常有魅力的地方,也是為什麼眾多網際網路大佬,還是一些投資大佬看好的原因。

瞭解了基礎之後,我們很想知道:為什麼會存在區塊鏈共識這個機制?


我先從這個她的這個最簡單的一個路徑說起。比特幣比特幣它的定位是什麼呢?它是一種數字現金。比特幣白皮書標題上說它是一種點對點的數字現金系統。如果他是點對點的數字現金系統,我們可以相比我們實際用的紙幣,他們之間有什麼樣的聯絡和區別。

數字現金,它相比我們的紙幣來說,它的缺點就是雙花問題。我們的這個紙幣不存在雙花問題,我有一百塊錢紙幣花了,我手裡就沒有了,但數字貨幣可不止這樣。你如果把這個數字貨幣花了,其實你手裡還有一串。因為數字貨幣就是個字串,它是可以任意複製的。

接著上面來講,怎麼解決雙方問題呢,我們就必須要構造一個順序的賬本,然後就可以解決雙花問題。

而在 P2P 的這個網路裡邊構成一個順序賬本。這個就必須要用到區塊鏈的共識機制在眾多的這個互相不信任的計算機節點中達成共識。這就是區塊鏈共識的一個來由,為什麼要有區塊鏈共識。

那當我們把區塊鏈共識機制引入到計算機學科,它發揮了怎樣的作用?


從計算機學科的角度來介紹,以前就是大家研究的都是中心化的伺服器或中性化的叢集。

從網際網路最開始大家都是客戶端從伺服器獲取資訊到現在的雲端計算來說,大家也是從google 的伺服器叢集、facebook 或者阿里雲這些伺服器叢集的雲端計算平臺去獲取服務。

但是,大家其實沒有研究過,在 P2P 網路裡如何提供服務——P2P 網路如何形成一個伺服器叢集。這是大家研究比較缺乏的,不管是這個學術界,還是搞工業界的工程師,大家都沒研究過這個問題。

我們知道這個 P2P 網路最早是在這個1999年,Nasper 提供了 mp3 共享的下載。他是最早提供 P2P 網路的始祖。後來的 BT 和電驢都在 P2P 網路提供了下載服務。

但是,中本聰是第一個利用 P2P 網路來提供數字現金的。在P2P網路,提供這樣一個服務,就像我第一個問題所指出的:人人都可以是服務的提供者,人人也都可以是服務的消費者。這個這個想象空間是無限大的,而且這個可擴張性非常強,就每個人都可以成為雲端計算伺服器的一個節點。

所以說,中本聰發明的這個我們叫做中本聰共識,也有人叫做 pow。這個雖然只用在電子貨幣上,它未來的想象空間很大。因為有人會暢想在 P2P 網路下提供滴滴打車,基於P2P 網路來提供淘寶服務。想象空間無限大。

前面三個問題分別解釋了:共識機制是什麼?區塊鏈為什麼要有共識機制以及區塊鏈共識機制在計算機學科中能發揮怎樣的作用。那麼有的朋友可能會想知道,能不能一句話說明:區塊鏈共識到底做了什麼事情?


我自己總結了下,區塊鏈共識到底做了件什麼樣的事情?在P2P網路裡邊。隨機的選擇唯一一個節點作為記賬節點。這就是他要做的事情。每次都是隨機的選擇。

其中包含了三個要點,第一個要點,是要在P2P網路裡,達成共識。就前在共識這方面,電腦科學家研究了很多,但是沒有研究 P2P 網路裡邊如何達成共識。

第二一定是隨機選擇也就說每次選擇的記賬節點都是不一樣的。第一,這樣的保證一種公平性。就是說不能每次都讓你一個節點去結帳,這樣這個節點,每次都能得到經濟回報,其他人得不到。第二,隨機選擇保證一定的安全性。駭客想攻擊,但是他不知道下一個記賬節點到底是誰,所以他無所攻擊。

第三,每次記賬要選出唯一的節點進行記賬,也就是說,只有一個人去記賬,其他人只複製他的記賬結果,這樣才能達成這個統一的一個順序賬本。這樣就達成了一個共識。

所以再次總結一下,就是說區塊鏈共識做了這樣一件事:在P2P的環境下。每次隨機地選擇出唯一的這個區塊生產者作為記賬節點。這就是區塊鏈共識。

我們知道,區塊鏈本身就是一種分散式的網路,那麼它跟計算機中的分散式系統又有什麼關係?


區塊鏈是一種計算機技術,所以說我們需要在電腦科學裡面給他找一個合適的位置,讓大家搞清楚:它和計算機的一些技術有什麼樣的關係。

區塊鏈是一種分散式系統。分散式系統的定義是指:這個分佈在不同計算機上的軟體或元件對外能夠提供一致的服務,所以說區塊鏈,他就是一個分散式系統。

分散式系統會有很多分類。我們在這裡邊會對它做這樣一個分類。這個分散式系統可以分為存在拜占庭錯誤的分散式系統和這個不存在拜占庭錯誤的分散式系統。

什麼是拜占庭錯誤?這個其實很容易理解,一支隊伍裡,如果有內奸。那我們就認為這個隊伍或者這個系統,它是存在拜占庭錯誤的,就是內奸會發假訊息。

如果是非拜占庭錯誤的分散式系統,我們認為這個隊伍裡可能有人能力弱一點,有人能力強一點,但是不存在內奸也不存在叛徒,這個就是非拜占庭錯誤的分散式系統。所以我們從拜占庭錯誤這個角度來把這個分散式系統的分為兩類。

分散式系統的共識,大部分考慮的是非拜占庭錯誤的這個共識機制。比如說像 google 的叢集,像我們常見的雲端計算平臺,它也是很多計算機協作起來,對外提供計算對外提供服務。但是,我們從來不考慮這裡邊的節點是不是惡意節點,因為我們預設它這裡邊沒有惡意節點。

但是區塊鏈,它是一種存在拜占庭錯誤的共識機制的分散式系統。我們允許好人進來,也允許壞人進來,也就是說我們都不分辨好壞,任意節點想提供服務都可以加入到區塊鏈網路裡提供服務,所以區塊鏈是一種拜占庭容錯的分散式系統。

所以這個定義,就是區塊鏈在整個計算機學科中給他的一個位置。

瞭解完區塊鏈共識機制的產生、原理以及與分散式系統的關係之後,我們接下來將深入到對區塊鏈共識機制的討論,比如大家熟知的 POW 和 POS 等。


就是共識機制,大家說的比較多的,很多創業公司,包括很多科技界大佬,他們都會說自己對共識機制有什麼樣的創新。其實在共識機制上做創新是一件非常難的事情。

從我個人的角度來看,其實這個區塊鏈共識機制,一共就只有兩種技術路線,一種中本聰開創的中本聰共識,透過挖礦,透過 POW 提供的一種共識機制。

另外一種共識機制就是1999年 OSDI 會議上發表過一個叫 PBFT 演算法,它是一種實用的拜占庭容錯的演算法。

但是需要補充的,第二種演算法 PBFT 必須是在數目確定的節點中達到共識。也就說如果那你這個選取的節點的數目不確定,它就很難達成共識;所以它不太適用於我們的 P2P 網路,因為 P2P 網路允許任何節點隨時加入,隨時退出。任意時刻你沒法確定全網節點的準確數目有多少。

現有的 pos 機制,包括這個 eos 的 DPS 機制,我們是把它劃分到 PBFT 的技術路線。pos 擁有幣的人,比如擁有以太幣的人,他可以透過自己的這個幣經投票選舉出下一個區塊生產者。

但是,選舉下一個區塊生產者在計算機的實現裡到底怎麼做呢?就必須要用到 PBFT 演算法也就是在數目確定了的這個節點中,把下一個區塊生產者透過選舉的方式選舉出來。

為什麼這個 DPoS 有21個節點,或者說其他採用了 POS、採用 DPoS,都有數目確定的節點呢?這就是因為 PBFT 的技術路線只能在確定數目的計算機節點裡邊選出下一個區塊生產者,所以這是 DPoS 不得已而為之,也是 PBFT 演算法的內在缺陷所決定的。

那麼,POS實現起來會存在怎樣的問題呢?


POS機制最早是在比特幣論壇裡的一個網友提出來的。他提出:透過擁有這個數字貨幣人透過選舉來把這個下一個區塊生產者選出來。這樣的話就避免了像比特幣中挖礦,因為挖礦比較耗能量比較汙染環境。

但是,POS 本身那實現起來比較困難。因為它本身是依賴於 PBFT 。但是 PBFT 又必須是確定數量,才能選舉選出唯一的區塊生產者。這個也容易理解:你連選舉的總數目都不知道,你又怎麼知道能達到二分之一的透過率或者三分之二的選舉率呢?所以這個就是很難去做。

POS 最根本的問題在於什麼呢?我們一般叫著無利攻擊(nothing at stake)。我們可以這樣來理解這個名詞:主席臺上有十個候選人,下面很多人給這十個候選人投票。如果你投票的話,就說沒有任何成本。那很有可能呢,你是會對這個主席臺上十個人都分別投一票,也就一個人投十票給每個人投上一票。這樣的好處話就說,不管臺上哪個候選人成為最終的獲勝者,你都會有好處。

最終這會造成一種什麼情況呢?也就是下邊的投票人會對上面主席臺10個候選人都投票。最後主席臺上這十個候選人呢,每個人都可以獲得全票。獲得全票之後,這十個候選人也就他們得到的票數一模一樣的,我們為沒辦法選擇出唯一的一個區塊生產者。這樣就無法達成區塊鏈共識。

這個就是 POS 中存在的一個根本問題,也就是無利攻擊。這個問題的根源在於,你投票是沒有成本的,如果你投票有成本,你就會慎重一點,不會為十個候選者,每人都投一票了。

接下來這個問題,相信是很多聽眾都很關心的。區塊鏈的共識機制在安全上有什麼風險?為什麼是51% 的算力可以攻擊區塊鏈。


區塊鏈的安全是非常有意思的,與傳統的安全不一樣。像我們剛才介紹的 google 伺服器的安全,傳統的網站,我們只是在計算機技術的角度去看問題。

區塊鏈的安全結合了博弈論——壞人為什麼不攻擊我們區塊鏈,或不攻擊我們的比特幣呢?是因為如果他有這樣的算力可以攻擊區塊鏈或比特幣網路的話,他可以用這樣算力去挖礦,挖礦得到的收益遠比去攻擊整個比較比特幣網路所得的利益更多。

從博弈論的角度來講,比如著名的囚徒困境的博弈論問題,兩個犯人互相招供,然後去得到減刑。

事實上,區塊鏈的安全大家可以看成是一種互不信任的多方合作的結果。我們比特幣網路的每個礦工,相互都不信任,但每個礦工都是自私而理性的,他們只是追求自己的利益最大化。他們透過這樣的合作,然後產生了比特幣網路。其實它就是一種典型的多方合作的一種博弈論的場景。

但是如果有礦工超過了51%的算力的話,也就是說,他有一半的機率都能挖到一個塊的話。理論上,它可以控制整個網路。比如第一塊是這個控制51%的壞人挖到的;第二塊可能是好人挖到的。但第三塊如果還是壞人挖到的,這個壞人他就擁有了兩個塊。有兩個塊的話,他如果一次全釋放出來,就構成了一個最長鏈。好人挖到的那一塊兒就會被廢棄。

所以理論上只要你掌握了51%的算力,只有你自己能得到回報,其他掌握49%算力的人,什麼回報都得不到,因為你總能構成一個最長的鏈,這樣會把49%的人挖出的塊廢棄掉。

我們聽說還有一種有向無環圖的區塊鏈,它是如何實現的?


傳統的區塊鏈是一種順序的結構。它就是一個連結串列,一個接一個,有順序的。但這種結構的致命弱點在於:這種序列的結構導致效能比較慢。現在大家都說區塊鏈的效能比較慢,TPS 比較慢。像比特幣的話,幾分鐘才能完成一個交易確認。以太坊她的交易確認也很慢。

區塊鏈共識的本質是在 P2P 網路中隨機的選出唯一的節點作為這個記賬者,這是區塊鏈共識要做的事情。而有向無環圖的特點在於:我並不是唯一的節點,我同時可以多個節點並行的記賬,這樣的速度就比較快了。

所以有向無環圖區塊鏈不是連結串列式的結構,它是圖結構。它只有一個方向,從前往後,也不能重複往前,它裡邊是沒有迴圈,沒有環路,就是叫做有向無環圖。它的好處在於,允許分叉允許,同時有多個節點記賬,這樣提高了效率。

但是多個節點記賬就會有衝突。比如隔一段時間就需要解決這些交易衝突,因為這些衝突裡面可能存在雙花的問題。

在未來,區塊鏈共識機制還能帶來怎樣的想象空間?


從共識機制的角度來講,我比較客觀的來說,從計算機角度來講,這個創新都是很難的。中本聰共識是一個非常大的創新。而我說的第二個 PBFT 路線1999年出來的一種演算法。大家為了解決中本聰共識效能比較弱的問題,所以又把99年用過的 PBFT 演算法拿來用。就 PBFT 這種演算法呢,缺點是要在數目固定的節點中達成共識。但是他的優點相比於中本聰共識來說,效能是非常快的。

在未來,我認為區塊鏈共識機制的發展方向,必須是要加入人為治理——也就是當前 eos 公鏈的方向。你不能完全靠純計算機的技術去做這件事,你有計算機的區塊鏈共識機制,你還需要加入一些人為的管理制度。人為的管理制度是未來要在區塊鏈共識加入的東西。

所以把今天晚上的這個話題再總結一下,區塊鏈共識機制偉大之處就在於,它是一種無邊界的協作組織,世界上任何地點的任何人,都可以在任何時刻加入一個組織,然後做自己份內的事兒,然後還能得到份內工作的回報。我覺得我自己也無法想象區塊鏈未來會帶來多大的變革。

最後,我要表達一下自己的心情。中本聰發明的共識機制讓我對中本聰的崇拜之情如滔滔江水一樣不絕。我是堅定的中本聰的粉絲,我認為中本聰發明的這個共識機制很偉大。在計算機這個學科裡,他是一個分散式系統,一個創新。但是它未來帶來的社會意義,帶來的經濟價值,我覺得這是無法估量,是任何人目前都很難去估量的價值。

以下是DOGI社群的使用者Q&A 提問:

@賈霸:既然提到了人治要素,但很多人覺得不符合區塊鏈程式碼即法律的精神,你怎麼看?

Code is Law是應該是以太坊最早提出的。其實這是不可避免的。比如,我現在正在做一個股權激勵的區塊鏈專案,大家試想一下:老闆可以發數字貨幣給你,但老闆為什麼發數字貨幣給你呢?肯定是有這個績效、KPI什麼的,它就是一種人為治理,所以你是避免不了的。

包括現在做的幣改和鏈改,都要合規。合規就是要符合國家的法律,這也是加了認為治理的。

包括我們的區塊鏈節點上的軟體有了bug,要不要升級啊,或者說區塊鏈上一些引數要不要修改。這些都是需要人來討論的,所以說區塊鏈的人為治理是完全不可避免,我們只能在黑暗中不斷去探索,探索什麼是適合區塊鏈的人為治理制度。

@給歲月以文明,給時光以生命:區塊鏈裡所要的共識機制真的適合咱們這個社會嗎?

區塊鏈的共識機制分兩層。第一層是純技術方面,當然會像我們需要的方向去發展。

如果從人為治理角度來講,這個區塊鏈的共識機制是否適合於我們的社會?我覺得,現在誰也看不清,誰也說不出來。因為我們是第一個吃螃蟹的人,我們的治理制度不斷改革,包括我們柏鏈道捷做的幣改,相當於當年的股改一樣。我也不知道未來是什麼樣子,但是我要不斷去實踐。這個是在實踐中慢慢探索,摸著石頭過河的事情。因此,我們沒法下斷言:這個區塊鏈共識機制是不是適合我們這個社會。

@拓荒者Darren:我問一個不是技術上的問題,區塊鏈技術是個很可能顛覆歷史的技術,可以運用到各個方面,但很多人藉著區塊鏈的名頭,各種斂財和詐騙,在這種情況之下,您認為怎麼樣能讓區塊鏈技術普及,讓更多人真正的理解到他的不同之處,這才是比較有意義的。

對這個問題呢,就很多人會有不同的看法,會有很多人提出不同的思路。我還是以幣改為例,它類似於當年的股改,也就是說,我們會成立一個權威的上幣委員會。對每個上幣的背後團隊,對他們進行稽覈,做一個背書,這樣的話,我們會避免一些騙子圈錢。我們要確保一些真正想幹事有實力的團隊,可以做更有意義的事。這是我們的一個治理思路,當然還有其他的一些治理思路。

@sunbo:之前聽說BTC能買星巴克,現在去買的話,星巴克咖啡36元,GAS費可能就要10幾元,而且不是秒付,需要等走完鏈,現在的BTC有實際應用價值麼?

現在有穩定幣,USDT,他可以錨定一美元的。這個肯定是可以用於現實場景的支付的,因為它和法幣的價值一樣,都是非常穩定的,至於支付速度,我覺得這倒不是問題,技術上是可以解決的。現在也會有數字貨幣的pos機。我聽說在日本澳大利亞就有。

@給歲月以文明,給時光以生命:比特幣擁有全網統一賬本,需要全網共識,那麼凡事真的需要全網共識嗎?區域性的,分散的會不會更好?

是否需要全網的共識,這取決於一個重要性。如果你不是那麼重要,一部分節點達成共識就可以了。事實上,現在也有很多區塊鏈網路節點的架構。有一個叫ARDOR的區塊鏈網路,它就是一個大網中的部分節點。對某件小事兒達成共識,就可以了。如果某件很重要的事,你可以全網達成共識。

@Sam:請問隨機選的生產者記賬要是錯了呢?後面的人也跟著這個順序走?

隨機選的這個生產者記賬呢,網上的其他節點都會幫他做確認,它必須符合雜湊值,必須有區塊鏈合法的記賬順序。如果他不符合這些記賬的規則的話,別人不會打包他的記錄。

@sunbo:如果數字貨幣是ERC20代幣,那GAS就是ETH,幣從遊戲平臺轉到交易平臺的時候,會消耗掉ETH,這部分ETH誰出,遊戲平臺出?那不是很大頭的利潤支出,如果遊戲平臺想節省這部分開支,咋辦辦?是把交易平臺和遊戲平臺資料庫打通,幣走傳統資料庫,不上鍊?還是換種數字貨幣開發方式,那麼遊戲平臺要準備什麼,自己買礦機服務這些轉幣玩家?

對於ERC代幣用來做遊戲平臺的轉賬或者支付的話,這個確實有交易成本,但這裡邊有多種解決方式。比如你可以用EOS這條鏈,相當於遊戲開發者出錢,使用者不出錢;另外也可以用側鏈;所以,技術上肯定是可以解決的

@拓荒者Darren:現在都是各種寫區塊鏈技術的優點,這個不容置疑,但卻很少有人提出區塊鏈的缺點,您在缺點這方面如何看待呢?

區塊鏈的缺點,其實是很明顯的。你想所有的節點相同的輩份,相同的資料。所以說,第一效能很差,有的結點在美國,有的在中國,他們要進行資料同步,所以這個資料很差;第二就是它的儲存效率很差,因為這一萬個節點,存的都是相同的東西。

@理性 Derien:區塊鏈4.0版本會如何演化呢?

我不知道區塊鏈4.0指的是什麼技術。區塊鏈1.0,大家認為是比特幣;區塊鏈2.0是以太坊,這個問題也不大,就是畢竟以太坊開創了一個時代。至於區塊鏈的3.0,有人說 eos,這個目前還有爭論。eos 的最大貢獻是建設了一套人為的治理制度,這是它最大的貢獻。至於4.0,我總覺得還沒有出現。

但是這個人為治理呢,他也是透過計算機的一個演算法來實現高效的人為治理,也就是說,人為治理也涉及了很多區塊鏈獨特創新的地方。就像你最近在上海舉行的一個以太坊的會議,會上有一個圖靈獎獲得者,他發明了algorand 這樣一個區塊鏈共識,還是匿名的:進行一次投票,就可以選舉出選舉人的一種治理演算法。也就是說,人為治理其實也包含了區塊鏈的計算機技術方面的一些創新。

@給歲月以文明,給時光以生命:你對無幣區塊鏈的看法如何?

對於無幣區塊鏈,就非要讓我說最真實的看法,我覺得它已經喪失了區塊鏈那種無信任網路的穩定的特性。那就是沒有幣,就沒有經濟激勵。經濟激勵好像是比特幣或區塊鏈中最重要的一部分,沒有幣就是比較弱一點,變成了一種資訊化系統。


更多區塊鏈資訊:http://www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;