Neutrino 追問 AMA 第17期
在3月20日 Neutrino 追問 AMA 第17期交流中,我們邀請到 Conflux 創始團隊成員兼 CTO 伍鳴博士與 Neutrino 中國社區用戶進行了一場關于《如何如何打破區塊鏈共識機制的性能瓶頸》的線上分享。在關于開發團隊先做公鏈在拓展 Dapp還通過 Dapp 升維做公鏈的問題上,伍鳴表示,從一個應用發展出一條公鏈,從積累用戶上來說,或許是一個更容易的途徑。先有應用再搭平台,我相信搭出來的平台會很好滿足應用的需求,但底層技術很難往前邁進一個時代。
以下爲第17期Neutrino追問®AMA交流整理
話題主持@Neutrino 問題1:在最新項目介紹報道中,說 Conflux 使用了樹圖結構。在此,請教一下伍博士什麽是樹圖結構?它與DAG是有什麽不同的地方?另外,有一種觀點說 DAG 或樹圖不是區塊鏈,因爲它的數據結構不是鏈表而是 Graph 圖,對此您是怎麽看的?
伍鳴:如果從一兩千字才能說清楚的Conflux共識機制中,精煉出一個詞來描述最本質的內容,我們認爲用 DAG 結構概括可能會給人帶來誤解。樹圖結構可以更接近本質。
在Conflux裏有兩種類型的邊,父邊和引用邊。如果我們只看父邊,賬本的結構只是一棵樹。當我們同時去看父邊和引用邊的時候,賬本的結構才是一個圖。所以我們所說的樹圖結構就是在圖中包含了一顆樹的結構。這個樹的結構非常重要,它幫助我們決定了主鏈如何選擇。而現存的其他的基于DAG結構的系統中都只有一種連接區塊或交易的邊。
在Conflux裏有兩種類型的邊,父邊和引用邊。如果我們只看父邊,賬本的結構只是一棵樹。當我們同時去看父邊和引用邊的時候,賬本的結構才是一個圖。所以我們所說的樹圖結構就是在圖中包含了一顆樹的結構。這個樹的結構非常重要,它幫助我們決定了主鏈如何選擇。而現存的其他的基于DAG結構的系統中都只有一種連接區塊或交易的邊。
話題主持@Neutrino 問題2:公鏈項目非常依賴開發者社區和用戶群。之前看到一個討論,大致是說,現在國內很多團隊走入做公鏈的誤區,都在從上向下做降維,從底層公鏈到應用。但相反由落地應用升維做公鏈相對會更可行些,比如幣安 dex 等,畢竟從應用來說從一個公鏈到另一個相對會更輕松。因爲Conflux就是致力于打造下一代高性能的 DApp 公鏈平台,伍博士您是怎麽看待這個問題的?另外,你們如何擴大自己的社區影響力及吸引開發者進入?
伍鳴:我覺得這不能叫做誤區。至少來說,打造一個真正能夠推動底層技術的公鏈,並不是一個錯誤的事情。
1.底層技術決定應用的形態。
在黑白屏的手機時代,你只有像素遊戲可以玩。在觸屏手機出現之前,按鍵是遊戲進行交互的唯一途徑。智能手機普及以後,才迎來了移動互聯網應用的爆發。如果沒有網速的提升,就不可能有快手抖音這樣的小程序應用。
從一個應用發展出一條公鏈,從積累用戶上來說,或許是一個更容易的途徑。先有應用再搭平台,我相信搭出來的平台會很好滿足應用的需求,但底層技術很難往前邁進一個時代。一個爆款按鍵遊戲廠商如果去做手機,一定以適配自己的遊戲爲第一目標。他可能會做出更舒適,更靈敏的按鍵,或者更大的屏幕。但很難超越時代,做出一個觸摸屏手機出來。
2. 複制現有的技術很容易,但推動底層技術的進步,並不是一個低門檻的事情。
在過去一波的區塊鏈泡沫中,出現了很多不靠譜的項目,雖然很多不靠譜的項目死掉了,但留下了一個不好的影響,就是讓很多人誤以爲搭建一個高性能的公鏈,是一件很容易的,已經被解決很好的問題。但其實不是這樣,搭建一個高性能的公鏈和 DApp 平台,需要有理論安全性保證,需要不依賴于中心化的安全,需要能夠抵抗各種攻擊,需要代碼足夠健壯,能夠應對在高負載的場景,需要有合理的機制設計、讓遵守協議成爲礦工的最優策略。這些都不是一個很簡單的事情。
3. 即使公鏈是一個底層技術,也不妨礙 Conflux 積累社區和用戶群。
現在我們已經和很多優秀的dapp開發者和團隊建立了聯系,大家已經達成了一些共識,Conflux測試網上線後,他們很快會圍繞Conflux的測試網來做一些對應的DApp的開發,以及Bata版的測試,在測試網階段我們也會和他們保持聯系,對開發者們提出的問題作出解答。
除了技術的交流和結合之外,在早期我們也會給DApp開發者提供很多的支持,比如你是一個DApp開發者,如果你的dapp被用戶所使用,在早期Conflux基金會將會覆蓋掉開發的手續費。
然後就是社區宣傳上予以支持,我們會聯合大家一起去各地做路演,也會在我們的公衆號裏去轉載大家的技術文章以及他們對行業的一些思考等,這個大家已經可以看到,我們已經轉了一些關于隨機數,還有預言機等等的一些文章。
Conflux的價值在于爲DApp提供了更加安全和性能更好的區塊鏈基礎設施。這將幫助開發者做出更加好的更有意義的DApp,用戶將能夠享受到更好的性能以及更多的DApp的功能,隨著我們3月底測試網的上線,我們的社區也會更快的發展。
關于怎樣更多的參與Conflux中和社區的激勵設計這樣的問題,我們運營的同事也已經准備好了一篇詳細介紹這件事的文章:《面對這個社區,我不會袖手旁觀!- 星星之火還是烏合之衆》。
也歡迎社區的小夥伴爲Conflux做出貢獻,大家也可以關注一下我們Conflux官方公衆號:Conflux中文社區,了解更多的內容。
話題主持@Neutrino 問題3:根據你們的設計,未來 Conflux 會有怎樣的性能表現?有具體的量化數據嗎?目前公鏈比較常見的擴容解決方案,如分片與分層,而Conflux與它們相比,有什麽不同或創新的地方?還有現在大家都比較重視layer2方案,在這點上你們有什麽規劃嗎?
伍鳴:在目前 Conflux 的開發進度中,在現實網絡條件設定下,實現了智能合約等功能的測試網實現了 3000 TPS 的穩定運行。
Conflux 致力于提高基礎鏈的性能,而分片與分層基于基礎鏈的特點,實現一些應用場景下進一步的性能提升。其實Conflux 和分片與分層的技術是不同方面的技術,是正交的,並不矛盾。
這些技術可以應用在比特幣等區塊鏈上,提升它們的效率。自然也可以應用在 Conflux 上。
話題主持@Neutrino 問題4:Conflux 如何確認交易,如何防止雙花問題,如何解決樹形結構下的交易冗余問題?
伍鳴:關于雙花攻擊的解決。我們首先來看一下一個攻擊者如何能夠逆轉在賬本中的一個交易,比如下圖中交易:
爲了做到這一點,一個攻擊者需要産生一個交易4的雙花交易,打包到一個區塊裏面,並且將這個區塊在區塊的全序中插入到區塊B的前面。但攻擊者很難做到這一點,主要有兩個原因。第一個就是除非攻擊者能夠改變主鏈,不然他不能夠逆轉交易,因爲交易的順序是由主鏈來決定的。比如一個攻擊者想把一個塊插在靠前的位置,他能做就是在一個很早的Epoch裏面的區塊後面接著産生新塊。但是只要這個塊不在主鏈上,它就最終還是會屬于一個很晚的Epoch。因爲當一個誠實的新塊産生以後,它會通過引用邊把這個攻擊者的區塊給拉到新的Epoch裏面。
第二個原因就是,如果攻擊者沒有超過50%的算力,他就沒有辦法改變主鏈。爲什麽是50%呢。下圖給出一個直觀的解釋。
假設區塊A是一個主鏈上的塊,一個攻擊者想要用區塊A’來取代A在主鏈上的位置。那麽所有攻擊者産生的塊都會在A’的子樹下面,然而所有誠實的節點所産生的塊都會在A的子樹下面,這樣的話,攻擊者就需要超過50%的算力才能讓A’的子樹超過A的子樹。根據理論的分析,A’能夠取代A的概率是隨著時間的增加而指數下降的。
因此,一個交易的確認就包含以下幾步。用戶首先對攻擊者的算力比例以及他所能承受的風險有一個假設。給定這個假設,Conflux首先找到這個交易所屬的Epoch,然後找到和這個Epoch相應的主鏈區塊。最後再檢查這個主鏈區塊被逆轉的概率是否小于用戶所能承受的風險。如果小于,則該交易可以確認。
對于交易冗余問題,也是一個和激勵機制緊密相關的問題,解決這一問題,概括來說就是兩句話:
- 礦工從交易等待池(加權)隨機選取交易 ;
- 設計激勵機制,鼓勵礦工遵守上一條規則。
在比特幣和以太坊系統中,每個節點會選擇交易費最高的若幹交易來打包,這樣的選擇在比特幣或以太坊這樣鏈式結構的的系統中是沒有任何問題的。
但是在 Conflux 中,如果依然采用這樣的策略,就可能會導致每個節點選擇的交易都差不多一樣,都是那幾筆交易費最貴的。那麽區塊中就會出現大量的重複交易,導致吞吐率降低。而對于每個礦工節點來說,這種情況下,交易費最貴的交易必然很多人去搶,平均每個人能分到的就不多。
所以,在 Conflux 中,這樣的策略並不是最優選擇。礦工只需要選擇那些交易費稍低,但沒什麽人競爭的交易,就可以獲得更高的收益。
那麽我們在代碼中,設計的策略是,那就讓礦工們從交易等待池中,根據交易費選擇權重,隨機地選取交易。交易等待池中的交易越多,重複交易的比例就越小。
話題主持@Neutrino 問題5:據了解,Conflux 在第一階段依然會采用經典的 POW工作量證明機制。但在比特幣上我們也看到了它存在諸多限制,如區塊大小、出塊時間、資源浪費等,後來因此還出現了擴容爭議與分叉事件,你們是基于什麽考慮來選擇 POW 的?這看上去與解決擴容有些矛盾。還有你們會有預挖礦嗎?如果有,哪些人會有這個機會?
伍鳴:首先我們需要區分清楚,哪些局限性是比特幣特有的問題,哪些問題是 PoW 公有的問題。
比如說,在最長鏈規則下,無論如何調整出塊大小和出塊時間,提高吞吐率必然要以增加孤塊數量爲代價,而孤塊的比例又與安全性直接相關。但是,我們不能把比特幣的設計當成金科玉律,如果把最長鏈規則改成最重鏈規則,避免孤塊對安全性的影響,其實就可以解決比特幣這個效率難題。也就是說,這個難題並不是 PoW 帶來的,而是最長鏈規則帶來的。而對于擴容爭議和分叉事件,這和社區治理有關,和 PoW 自身的問題。
需要消耗大量能源,這確實是 PoW 的特性。但消耗的能源,其實變成了保障安全的屏障。就像和平年代的軍費開支一樣,一個國家的武裝力量足夠強大,可能沒人敢進攻。武器從生産到退役可能都沒有上過戰場。但你要是敢把這筆開支省了,虎視眈眈的敵人可能就真的來打你了。所以能源的消耗究竟是浪費,還是必要的運行成本,是不確定的。這取決于是否有替代方案實現同樣的安全保障。
在現階段,PoS 等方案並沒有實現等同于 PoW 的去中心化和安全性,所以我們選擇了 PoW 方案。考慮 PoW 方案的原因有很多,主要是考慮到 PoS 中無利害攻擊和長程攻擊的安全性,以及擔心早期代幣的相對集中使 PoS 鏈成爲一個本質上中心化的東西。具體關于我們的選擇,可以讀我們的一篇文章《在公鏈項目早期,爲什麽PoW是一個更好選擇?》。
話題主持@Neutrino 問題6:相比于比特幣、以太坊用交易費和區塊獎勵來激勵礦工,Conflux的激勵機制又是怎麽樣的呢? 對于不誠實節點或作惡行爲,你們如何判斷及預防此類情況發生?
伍鳴:與比特幣,以太坊類似,Conflux 對礦工的獎勵包括2部分,一部分是區塊獎勵,一部分是交易費獎勵。我們的文章《DAG 下的激勵機制的挑戰與對策》很詳細地討論了這件事情。這裏我簡單講一下要點。
首先對于區塊獎勵,Pivot Chain 和不在 Pivot Chain 上的獎勵規則是一致的,我們分析的結果表示沒必要區別對待這兩類區塊。但是,每個區塊的獎勵不是一個定值,而是取決于這個區塊的 anti-cone block 有多少。
其次對于交易獎勵,我們主要考慮的是如何設計合理的交易獎勵機制避免交易重複問題。關于這個問題,其實我們之前避免交易重複的那個問題已經討論過了。
時間有限,更詳細的內容可以讀一下我們的文章。
話題主持@Neutrino 問題7:我們發現對于新興公鏈,有一個項目常拿來和Conflux 比較,同樣聲稱解決區塊鏈不可能三角的Algorand,而且也有著強大的學術科研背。伍博士您是怎麽看待Algorand的?兩者有哪些可比性?
伍鳴:Algorand 其實也是一個很不錯的項目,但 Conflux 和 Algorand 在公鏈建設上選擇了兩個不同的方向,Algorand 使用 VRF,基于 Stake 加權選擇出塊者,是一個典型的基于 PoS 的共識機制。如果將 Conflux 和 Algorand 進行對比,其實更多的就是基于 PoW 和基于 PoS 兩個技術路線的對比。這兩個技術路線可能就像芯片曆史上 CISC 和 RISC 之爭一樣,需要在兩個方向進行長時間的研究投入,才能夠發現各自的極限在哪裏。
之前我們已經講了爲什麽 Conflux 認爲在公鏈早期 PoW 是一個更好的選擇,但 PoS 也有自己的優點。比如,基于 PoS 設計的鏈往往在確認時間上有更好的表現。我們也有一篇技術文章《Conflux楊光:PoW和PoS的全面比較》,從相對客觀的角度,對比了 PoS 和 PoW 各自的優缺點。
話題主持@Neutrino 問題8:目前我們了解到,DAG(有向無環圖)結構的代表項目包括IOTA、Hashgraph等項目。Conflux 相比于這些項目有哪些不一樣的地方?
伍鳴:我們最近被問得實在是太多了,尤其是像以IOTA爲首的DAG,當時我們不想談論這些事情。但還是有人不停的在問我們,我們有一天總得面對這些問題,那不如一吐爲快。于是我們開了一個吐槽專欄,現在已經寫了兩期,《IOTA物聯網電磁爐-讓PoW的耗電沒有遺憾》、《Conflux 吐槽君:Hashgraph 是一個真正的企業級去中心化平台嗎?》,之後我們也會一直做下去。
話題主持@Neutrino 問題9:像以太坊、EOS等這些相對成熟的公鏈在不斷升級優化,而在2019年,我們也看到好幾個具有影響力的公鏈項目也在加速推進上線, Conflux 作爲後起之秀,您覺得機會在哪裏?近期Conflux有什麽規劃或進展?
伍鳴:Conflux是一個技術創新爲主的公有鏈項目,Conflux的特點是不犧牲任何去中心化和安全性的情況下去提高吞吐量。
這種情況下,有很多之前受到吞吐量限制的這些去中心化應用就可以在Conflux 上的得到施展的舞台,近期已經有很多包括去中心化交易所等最頂尖的團隊和我們聯系,因爲他們覺得在以太坊上吞吐量的限制沒有辦法很好的承載他們的分布式應用。
而在EOS上,因爲中心化和安全性的的問題,他們又不能很好的吸引大量的機構的用戶,這些機構的用戶往往牽扯的金額都比較高,所以他們還是決定選擇Conflux,和我們進行了很深度的洽談,包括很多傳統的金融行業包括信托、銀行、信貸等等的機構都和Conflux進行了密切的洽談,一旦測試網上線之後我們就會看到一些分布式應用開始逐漸的搭建。
本周末Conflux將在上海舉辦一場主題爲《下一代公鏈和應用場景前瞻》的線下沙龍,到時候我和我們Conflux COO 張元傑、上海交通大學副教授TEEX首席科學家 夏虞斌還有紅杉資本的資深投資經理會一起在本次沙龍和大家一起聊一下未來公鏈和應用場景,歡迎上海和上海周邊的朋友們到時候一起線下交流。
————現場答疑————
Neutrino 社群成員: 在一些文章中,看到 ConfluX 能在分鍾級別的延時內確認交易,這種延時因安全需要而特意設計的還是因爲技術或什麽方面限制?另外能否承載像交易所這種高頻交易的應用?
伍鳴: 首先,基于 PoW 鏈,分鍾級別的延遲基本上是極限。因爲你永遠無法避免攻擊者運氣好,在短時間內挖出了比平均值多的區塊來進行雙花攻擊。你必須等一段時間,在後續的區塊變多以後,才能夠確認一筆交易。
其次,對于高頻交易所需要的延遲,其實完全去中心化的系統是無法做到的。但是我們可以通過犧牲去中心化來實現。比如,做一個基于 BFT 的側鏈來實現高頻交易中的低延遲,然後這個側鏈定期將每個人的持倉情況同步到 PoW 鏈。風險在于,交易完成以後,同步到 PoW 鏈之前,你需要信任參與這個BFT的多數人。
Neutrino 社群成員: Conflux 對于智能合約的設計是如何考量的?
伍鳴: Conflux目前的實現是兼容以太坊的solidity。這個我們目前通過移植EVM來實現。但是我們認識到EVM以及solidity的一些缺陷,同時也正在討論和設計智能合約語言以及虛擬機的改進方案。
Neutrino 社群成員: 您好,Conflux對于落地項目怎麽看?是否會在遊戲這塊先取得突破呢?據我所知,電競名人2009伍聲和你是堂兄弟關系,遊戲圈資源非常厲害,本來就有自己的遊戲産業,而且和鬥魚,王思聰,丁磊都有很大的交集 。
伍鳴: 我們正在積極的思考和探索Conflux上應用的落地方案。我們目前比較看好的一些場景有去中心化交易所,預言機,以及企業數據共享等等。我們在和一些相關的團隊進行一些交流,以建立更好的合作關系。我們的確認爲區塊鏈在遊戲中的應用會是一個比較好的落地點。我們之前在北京的meetup中,cobo錢包的VP李堯也提到過區塊鏈遊戲的前景和挑戰。這個對公鏈系統的吞吐率的要求是很高的。因此我們認爲Conflux在解決這個問題上是很有希望的。
Neutrino 社群成員: 當TPS提高以後,執行交易與合約時,勢必會出現對賬本狀態的大量讀寫,這個穩定性、安全性如何保障?ConfluX 是如何解決的。
伍鳴: 沒錯,在高交易TPS下,執行交易時,賬本狀態讀寫的吞吐量過低會導致很嚴重的問題。
我們設計並實現了新的賬本數據結構來實現高效地對賬本狀態進行讀寫。近期,我們正在進行一些實驗,將以太坊的交易作爲測試數據,賬本狀態讀寫的吞吐量可以支持多高的交易 TPS, 也會和以太坊的實現進行對比。
Neutrino 社群成員: :公鏈在運行幾年後會有大量數據,conflux如何應對大規模存儲?
伍鳴:這個問題很好。首先conflux的網絡中會有一種archive node,它具有超大規模的存儲,可以存儲所有的曆史數據。而對于普通的全節點,我們會設計checkpoint的機制來可靠的裁剪掉很老的曆史數據。
End
——————————————
Neutrino.Global
Neutrino 是原生于區塊鏈的分布式創新協作社區。秉持開放協作、共享共贏的理念,致力于推動區塊鏈技術的宣傳普及與落地應用,並通過多元形式幫助不同領域的相關人員及團隊建立價值連接。目前,我們已在東京、新加坡、北京、上海等地建立實體協作空間,並計劃拓展至首爾、泰國、紐約、倫敦等重要區塊鏈創新城市。即日起至2019年06月30日止,Neutrino 針對中國市場特別推出會員“越冬計劃”,優秀區塊鏈初創團隊更可獲得會費 50% 的孵化贊助。打開連接申請https://wj.qq.com/s2/3065797/61e0/
Neutrino 區塊鏈協作社區會員越冬計劃
Neutrino追問®AMA
這是一檔以Ask Me Anything(簡稱AMA)形式進行的在線互動問答交流活動,每期Neutrino會結合當下技術趨勢、政策風向、項目應用等行業熱點話題,邀請相關領域嘉賓大咖就該話題進行深度探討拆解,旨在幫助社區夥伴答疑解惑,掃除知識盲點,擴大認知邊界。目前追問 AMA 分享嘉賓已開放注冊,歡迎優秀的去中心化項目方來 Neutrino 進行線上社群交流分享,申請通道:https://wj.qq.com/s2/3065313/2bda/ 提交資料後將會有專人進行對接溝通。