烏鎮(zhèn)·Conflux CTO伍鳴:讓公鏈的“不可能三角”成為可能

      2019-11-11 17:53:16

      11月8日,由巴比特主辦的“2019年世界區(qū)塊鏈大會•烏鎮(zhèn)”正式開幕,大會聚集了百余位全球區(qū)塊鏈、數(shù)字資產(chǎn)、AI、5G領(lǐng)域的專家學者、技術(shù)大咖、意見領(lǐng)袖、熱門項目創(chuàng)始人,以“應(yīng)用無界”為主題,圍繞區(qū)塊鏈的應(yīng)用落地、技術(shù)前沿、行業(yè)趨勢和熱點問題進行探討,推動區(qū)塊鏈技術(shù)和產(chǎn)業(yè)創(chuàng)新發(fā)展。

      Conflux聯(lián)合創(chuàng)始人兼CTO伍鳴發(fā)表《讓去中心化的公鏈系統(tǒng)接近最優(yōu)的性能》主題演講。

      精彩要點提煉:

      1. 理想的公鏈系統(tǒng)應(yīng)該具備三個特點:A.足夠的魯棒性(Robustness);B.高性能;C.去中心化。

      2. 比特幣和以太坊等公鏈采用“中本聰共識”,出塊慢、吞吐量低。

      3. GHOST協(xié)議采用最重子樹規(guī)則,可以克服分叉帶來的安全性問題。

      4. GHOST協(xié)議可以提高出塊速率,同時不用擔心雙花攻擊。

      5. 結(jié)構(gòu)化的GHOST方法不會讓所有區(qū)塊影響主鏈的選擇,只讓很小部分的區(qū)塊影響主鏈選擇。

      6. PAST集合和Epoch概念分別實現(xiàn)自動的模式切換和確定區(qū)塊出塊順序,讓所有的區(qū)塊能夠貢獻系統(tǒng)的吞吐率。

      微信圖片_20191109161455

      以下是演講全文,巴比特整理:

      大家好,很高興今天有機會在這里分享一下Conflux的技術(shù)進展。

      Conflux是一個高性能的公鏈項目,我們?nèi)ゴ蛟煲粋€高性能的公鏈系統(tǒng)。所謂高性能,我們能夠獲得上千TPS吞吐率,大概在3千-6千左右。并且我們的系統(tǒng)能夠在半分鐘之內(nèi)確認一筆交易,而Conflux取得這樣的性能不會犧牲任何去中心化和安全性。

      先來看一下問題的背景,隨著比特幣的出現(xiàn)和發(fā)展,區(qū)塊鏈已經(jīng)被越來越多的人所熟知。區(qū)塊鏈最具代表性的一個特點是它的分布式賬本,它非常強大,可以提供互聯(lián)網(wǎng)級別的交易記錄,這使得在現(xiàn)在應(yīng)用領(lǐng)域都有很多技術(shù)創(chuàng)新,比如說金融系統(tǒng)、供應(yīng)鏈還有醫(yī)療健康等等。但現(xiàn)有的公鏈系統(tǒng)里,它仍然很大程度上受到性能問題的干擾,使得它在實際場景落地時受到一些阻礙。比如說比特幣,它每秒處理7筆交易,確認一筆比特幣交易需要1個小時。以太坊是30筆交易/秒,確認的話要10分鐘。但是像中心化的系統(tǒng)VISA,它可以很輕松提供3千TPS吞吐率,并且在秒級確認。

      我們知道一個公鏈系統(tǒng)里有很多組件,不同的組件有不同的性能特點。比如說存儲,我們需要存儲來存區(qū)塊鏈賬本。網(wǎng)絡(luò),需要網(wǎng)絡(luò)交換區(qū)塊和交易。我們需要計算資源執(zhí)行這個交易。但公鏈里還有一個很重要的一環(huán):共識。現(xiàn)在的公鏈系統(tǒng)共識是一個最主要的。我們認識到這個問題,并且找到了一些解決方法,于是就有了這樣一個團隊。我們的團隊是以姚期智院士作為首席科學家,他也是唯一一個獲得圖靈獎的華人科學家。另外兩個創(chuàng)始人龍凡和周冬,海外留學回國來創(chuàng)業(yè)做這個項目,他們也是國際奧林匹克信息競賽金牌得主。

      我們認為一個理想的公鏈系統(tǒng)應(yīng)該具備以下三個特點:

      1.足夠的魯棒性(Robustness)。也就是說,它能夠抵抗雙發(fā)攻擊以及存活性攻擊,存活性攻擊就是說你的系統(tǒng)應(yīng)該在任何時候都能持續(xù)的有進展。

      2.高性能。所謂高性能,就是這個系統(tǒng)應(yīng)該同時有很高的吞吐率和很短的交易確認延遲。

      3.去中心化。這個系統(tǒng)能夠承接成千上萬節(jié)點,這些節(jié)點不經(jīng)過允許可以加入和離開這個網(wǎng)絡(luò)。去中心化的好處可以不依賴于對每一個中心實體的信任。

      Screenshot_1

      據(jù)我們所知,現(xiàn)有所有系統(tǒng),沒有任何一個公鏈系統(tǒng)在這三個方面同時取得很好的效果。比如比特幣和以太坊這類系統(tǒng),它有很好的魯棒性、很好的去中心化,但它的性能非常糟糕。還有一類系統(tǒng)是基于拜占庭協(xié)議來做的,這樣的系統(tǒng)魯棒性可以,性能也OK,但是犧牲了去中心化,因為它的共識機制是靠選出一個很小的委員會完成的,Conflux是唯一一個可以在這三方面都可以做得非常好的系統(tǒng)。

      為什么Conflux系統(tǒng)比現(xiàn)有其它系統(tǒng)更加優(yōu)秀呢,先看一下比特幣和以太坊是怎么工作的。比特幣、以太坊這類去中心化公鏈,它們要部署在一個P2P gossip network,區(qū)塊和區(qū)塊之間形成一條鏈,鏈實際上就是存儲交易記錄的賬本,這個賬本也會被復(fù)制到所有的節(jié)點上。雖然去中心化有信任的好處,但去中心化也會遭到攻擊。任何節(jié)點都可以加入到這個網(wǎng)絡(luò),也就是壞人可以隨意構(gòu)造很多節(jié)點操控成本,于是在比特幣和以太坊里使用了工作量證明的機制,你要去對賬本產(chǎn)生影響,就要去付出算力。如果你想做的話,就要付出成本。

      在比特幣和以太坊網(wǎng)絡(luò)里采用“中本聰共識”,一個很重要的原則就是最長鏈規(guī)則。在“最長鏈”規(guī)則里說的是,所有的好人節(jié)點,他們都只會是認為最長的鏈作為有效的交易記錄。這里一個安全假設(shè),只要好人擁有超過50%的算力,最長鏈就應(yīng)該是好人節(jié)點所產(chǎn)生的。

      Screenshot_4

      這樣的系統(tǒng)通常會采用非常慢的出塊速度,比特幣是每10分鐘出1MB大小的塊,以太坊是出一個塊是15秒,吞吐率非常低。為什么不能直接把區(qū)塊大小增加,就可以讓系統(tǒng)吞吐率變高了?但簡單地這么做是不行的,因為如果這么做的話,賬本的結(jié)構(gòu)就會看起來如圖中所示,會有很多分叉。原因是出塊是并行的,所有節(jié)點都是并發(fā)的出塊。當出來一個塊之后,這個塊在網(wǎng)絡(luò)上傳播需要時間延遲。也就是說,當出了一個塊再往上廣播,其它的節(jié)點并不能馬上看到這個塊,他們還會跟著老的區(qū)塊去挖,這樣就會產(chǎn)生分叉。如果區(qū)塊大小越大,在網(wǎng)絡(luò)上延遲越長,所以產(chǎn)生的并發(fā)區(qū)塊就會更多,分叉也會越多。如果出塊率變高,效果也是一樣的。

      分叉很多賬本會帶來什么問題,首先根據(jù)“最長鏈”規(guī)則,只有最長鏈里區(qū)塊才會被認為有效,其它分叉上的區(qū)塊就會被丟掉,這樣就會造成網(wǎng)絡(luò)和處理上資源的浪費。另外一個很重要的點,它也犧牲了安全性。具體來說,假設(shè)固定數(shù)目的區(qū)塊,如果分叉越多的話,最長鏈越短。假設(shè)最長鏈的區(qū)塊只占所有區(qū)塊10%,那就意味著壞人可以只用10%的算力,就可以隨意篡改你的賬戶。

      后來有些研究人員發(fā)明了GHOST協(xié)議,克服分叉帶來的安全性問題。在GHOST里面,所有的節(jié)點仍然要選擇一條主鏈,它選擇的規(guī)則不是根據(jù)最長鏈規(guī)則,而是根據(jù)最重子樹規(guī)則。我們選擇主鏈也是從創(chuàng)世塊開始,把創(chuàng)世塊選擇主鏈。會迭代去看它的子區(qū)塊,比如創(chuàng)始區(qū)塊有兩個子區(qū)塊A和B,A的子樹有6個區(qū)塊,B有5個,因為A的子樹比B重,我們會把A加入主鏈里。根據(jù)相同規(guī)則依次做這樣的事情,可以把CEH選到主鏈。當產(chǎn)生一個新的區(qū)塊時,跟著主鏈里最后一個區(qū)塊產(chǎn)生就好了。

      最重子樹規(guī)則和最長鏈規(guī)則區(qū)別在于,我們對子樹的選擇不僅是最長鏈上子樹做出貢獻,包括分叉上區(qū)塊也會對主鏈選擇做出貢獻,這樣的話“壞人”必須需要50%的算力,才能影響主鏈的選擇。A假設(shè)是主鏈上的區(qū)塊,如果壞人想用A.上區(qū)塊,替換A在主鏈上的位置,需要產(chǎn)生A.指數(shù),比A還要重。壞人需要超過50%的算力,才能夠篡改A在主鏈上的位置。這樣的情況下我們想確認一筆交易,需要A的子樹比A.大很多。A.想替換A在主鏈上的位置,概率隨著時間是下降的。出塊量越高的話,確認的時間越短。

      有了GHOST協(xié)議之后,可以以很高的出塊率出塊,同時不用擔心雙發(fā)攻擊。問題是不是解決了呢?沒有,GHOST還會受到存活攻擊的影響。假如好人區(qū)塊會分成GroupA和B,假設(shè)Group內(nèi)部區(qū)塊之間通信沒有延遲,好人和壞人之間通信沒有延遲。因為兩個Group之間有延遲,某一個時候有可能賬本會結(jié)構(gòu)A和B兩個分叉。壞人可以暗自觀察賬本結(jié)構(gòu),偷偷在這兩個分叉上產(chǎn)生新的區(qū)塊,這些區(qū)塊不告訴好人。當GroupA節(jié)點產(chǎn)生一些新的區(qū)塊時,它會把這個節(jié)點傳給B,但傳輸需要一段時間。在這個過程中壞人先發(fā)生這件事情,于是就把原來在B分叉上偷偷挖的區(qū)塊告訴B,B就會認為原來B的分叉是比A分叉更加重,它就會接著B的分叉去挖。相反,壞人也會選擇適當?shù)臅r機把它在A分叉上預(yù)先挖的塊再告訴A,會認為A的節(jié)點是更重的,這個過程可以持續(xù)下去,造成分叉一直保持,也就是交易沒有辦法確認。

      解決這個問題的方法叫做結(jié)構(gòu)化的GHOST方法,我們不應(yīng)該讓所有區(qū)塊都能影響主鏈的選擇,只讓一個很小部分的區(qū)塊去影響主鏈的選擇。很小部分的區(qū)塊能夠影響主鏈的選擇,意味著這些區(qū)塊出現(xiàn)的概率是比較低的,它們并發(fā)出現(xiàn)的概率是比較低的。在這些影響主鏈選擇的區(qū)塊之間,它們不容易出現(xiàn)分叉。

      結(jié)構(gòu)Ghost

      比如上圖里虛線區(qū)塊就是沒有權(quán)重的區(qū)塊,不影響主鏈。在某一時刻,比如A的分叉上出現(xiàn)一個有權(quán)重的區(qū)塊,這時候B可能不會馬上看,所以B仍然會在B的分叉上產(chǎn)生區(qū)塊。但當過了一個延遲以后,B早晚會發(fā)現(xiàn)有權(quán)重的A區(qū)塊,這時候B就可以判斷出原來A的分叉是比B的分叉重,因為A上面有一個有權(quán)重的區(qū)塊,這時候B就可以在A的分叉上產(chǎn)生新的區(qū)塊,從而打破平衡。

      那些沒有權(quán)重的區(qū)塊怎么辦呢,我們?nèi)匀幌M切﹨^(qū)塊的交易能夠貢獻系統(tǒng)的吞吐率,所以我們需要一個確定性的排序算法,能夠讓所有區(qū)塊交易順序被一致的決定出來,這樣的話系統(tǒng)的吞吐率就可以提高。但是這樣的系統(tǒng)仍然有確認延遲問題,因為我們?nèi)匀恍枰却銐蚨嗟挠袡?quán)重區(qū)塊出現(xiàn)以后,才能去確認這個區(qū)塊,時間仍然是很長的。

      回顧一下剛才說的兩個情況,一個是原始的GHOST方法,它可以在沒有攻擊情況下迅速的確認交易。但有攻擊的情況下沒有progress(進展)。有沒有一種方法,讓這兩個系統(tǒng)在有攻擊的情況下,沒有攻擊的情況也能保證progress。有的,我們的一個方法是GHAST,讓所有節(jié)點選一個主鏈,最重子樹規(guī)則。我們的主鏈叫做數(shù)軸鏈,我們還發(fā)明一個確定的排序算法,使得所有節(jié)點根據(jù)主鏈就能對所有區(qū)塊做一個一致排序,可以讓所有區(qū)塊交易貢獻系統(tǒng)的吞吐率,從而提高系統(tǒng)的效率。系統(tǒng)操作在原有GHOST模式上,從而取得最有的效率。我們的系統(tǒng)會去attack攻擊發(fā)生,如果攻擊發(fā)生會給一部分區(qū)塊很小的權(quán)重,從而保證系統(tǒng)的progress。

      Edge

      如何自動的做模式切換,區(qū)塊組成樹突的結(jié)構(gòu),這里一個重要概念是PAST集合,根據(jù)這個集合,如果follow所有的邊(Edges)可以編輯到一個區(qū)塊的集合,這個區(qū)塊都是發(fā)生在這個區(qū)塊之前,這個叫做PAST集合。比如這個圖顯示的是E的區(qū)塊PAST集合,這個顯示的是A區(qū)的PAST集合。怎么自適應(yīng)給區(qū)塊權(quán)重呢,看一個區(qū)塊Past樹突長什么樣子。如果發(fā)現(xiàn)Past集合不夠穩(wěn)定,我們以很小的概率,1/H,把區(qū)塊賦為H,把其它區(qū)塊賦為0。一個賬本每個Past是固定的,所有節(jié)點能夠一致決定一個區(qū)塊的權(quán)重。一個正常的情況,對于一個區(qū)塊,比如區(qū)塊A來講,系統(tǒng)運行一段時間之后,賬本結(jié)構(gòu),賬本的子樹會聚集在某一個孩子下,比如A.下,A.的子樹應(yīng)該在A所有的后繼區(qū)塊里占絕大部分。對于每個區(qū)塊Past集合里,判斷有沒有違反,如果違反了就切換到GHOST結(jié)構(gòu)下。

      epoch

      如何確定區(qū)塊的順序,讓所有的區(qū)塊能夠貢獻系統(tǒng)的吞吐率?我們的想法是引入一個Epoch概念,每個樹軸鏈上區(qū)塊都定義Epoch,其它分叉區(qū)塊可以根據(jù)規(guī)則散到相應(yīng)的Epoch里。這樣的話根據(jù)Epoch給區(qū)塊做排序,在Epoch內(nèi)部根據(jù)圖的拓撲序做排序。這樣的方法可以抵御雙發(fā)攻擊,主要原理是這樣的,因為區(qū)塊的排序是由樹軸鏈決定的,樹軸鏈如果不變的話,區(qū)塊排序不會被改變。另外,我們樹軸鏈的選擇,因為是應(yīng)用了最重子樹規(guī)則,只有超過50%算力的人才能夠去改變樹軸鏈的選擇。基于這兩點假設(shè),系統(tǒng)能夠和比特幣一樣假設(shè)條件下,取得對雙發(fā)攻擊防范。

      確認規(guī)則是說對于任何一筆交易,我們會先發(fā)現(xiàn)交易在哪個Epoch里,找到Epoch對應(yīng)的樹軸鏈區(qū)塊,可以理論去估計這個區(qū)塊被篡改了一個概率是不是小于用戶所能承擔的風險,如果小于用戶所能承擔的風險,我們就能確認這筆交易。正常情況下,確認時間是非常短的。我們上層執(zhí)行環(huán)境是兼容以太坊智能合約,測試網(wǎng)已經(jīng)發(fā)布,主網(wǎng)計劃在明年Q1上線,也就是3月份時上線。

      再說一下應(yīng)用場景的事情,我們認為在Conflux最關(guān)注的應(yīng)用場景,一個是跨境的支付,跨境的匯款。另一個是如何去支持更加高效的去中心化交易所。還有關(guān)注一個場景,如何支持toC端存證應(yīng)用,讓用戶可以在互聯(lián)網(wǎng)數(shù)據(jù)中享受到具有信用價值的數(shù)據(jù)。我們相信有了Conflux這樣高性能的公鏈后,這些場景的落地都是有可能實現(xiàn)的。

      另外,我們最近在上海市政府的支持下落地了樹突區(qū)塊鏈研究中心,以此不斷推動區(qū)塊鏈技術(shù)進步,使我國的區(qū)塊鏈技術(shù)能夠在世界上保持領(lǐng)先的地位。

      關(guān)閉
      精彩放送
      亚洲毛片免费视频| 亚洲韩国精品无码一区二区三区| 亚洲高清国产拍精品26U| 亚洲色偷偷综合亚洲AV伊人| 亚洲国产精品日韩av不卡在线| 97se亚洲国产综合自在线| 亚洲videosbestsex日本| 亚洲成人免费在线观看| 亚洲视频在线免费看| 久久久无码精品亚洲日韩京东传媒| 亚洲视频在线观看一区| 亚洲尹人九九大色香蕉网站| 亚洲人成网站在线播放影院在线| 亚洲an天堂an在线观看| 亚洲电影中文字幕| 亚洲视频网站在线观看| 亚洲狠狠ady亚洲精品大秀| 中文字幕亚洲综合久久| 亚洲国产精品综合一区在线| 亚洲一区免费视频| 在线a亚洲老鸭窝天堂av高清| 亚洲国产日韩综合久久精品| 亚洲色偷偷色噜噜狠狠99网| 亚洲成在人线aⅴ免费毛片| 亚洲av无码国产精品色在线看不卡| 国产精品亚洲专区无码唯爱网| 国产精品亚洲色婷婷99久久精品| 成人伊人亚洲人综合网站222| 亚洲精品高清在线| 亚洲日韩中文无码久久| 久久久亚洲精品国产| 久久精品国产亚洲AV电影| 亚洲a∨无码男人的天堂| 亚洲砖码砖专无区2023| 国产精品亚洲AV三区| 亚洲日韩国产成网在线观看| 亚洲区小说区图片区QVOD| 亚洲激情中文字幕| 国产成+人+综合+亚洲专| 国产精品日本亚洲777| 亚洲自偷自偷图片|