中科院博導區塊鏈實驗室主任張毅:真正“殺手級”應用是需要靠沉澱慢慢的發掘的

12月26日-27日,2021CCF中國區塊技術大會在海南海口舉辦,本次會議由中國計算機學會(CCF)主辦,中國計算機學會區塊鏈專業委員會、海南大學承辦,中科國鼎數據科學研究院協辦。大會戰略合作媒體巴比特現場報道。

中科院計算所研究員、博導區塊鏈實驗室主任張毅出席並發表主題演講《區塊鏈輕量化技術》。他在演講中表示,跨鏈本身是一個複雜的問題,有架構上面設計輕量化的考慮,有算法方面設計輕量的考慮。我們基本核心的思想就是要按需,針對不同場景我們選擇不同的技術路線。真正“殺手級”的應用是需要靠沉澱慢慢的發掘的。

中科院博導區塊鏈實驗室主任張毅:真正“殺手級”應用是需要靠沉澱慢慢的發掘的

以下整理的演講全文(略有刪減):

十四五科技部立了區塊鏈重點研發的專門的專項,在國家的層面已經把區塊鏈技術放到了一個非常重要的位置和高度,我們作為專家組的一員,我們在企業十四五專項實施方案的時候,突然思考了一些問題。

首先,區塊鏈核心的科學問題到底是什麼。針對這個我們的專家組經過了一系列討論,提出了區塊鏈裡面當前所面臨的幾個關鍵的科學問題。

第一個科學問題是大家總是在提的,我們的CAP的問題,我們的三大困境的問題,我們的區塊鏈要在性能安全性和我們所謂的公平性之間做一個聯合優化的問題,其實我們提的是一個三難的困境,因為三難困境分佈式系統裡面一個非常經典的問題,實際上區塊鏈上可能我們要同時兼顧的會更加多,而且他們的關係是錯綜複雜的,我們改善一維的時候,通常就意味着我們在另外的維度上會有所損失、有所犧牲。

怎麼樣解決多種指標之間複雜耦合的問題,這可能是我們區塊鏈系統裡面面臨的第一個科學問題。

第二個科學問題是,區塊鏈是一個大家共同維護的多方的帳本,在這種情況下,當我的數據被別人存儲了以後,我一定非常關心的是我的隱私如何得到保護,隱私保護機制一直是在區塊鏈做數據共享裡面一個不可迴避、不可繞過的問題,今天上午有很多的報告,金老師的報告在醫療領域裡面特彆強調了隱私性對於大家選用區塊鏈技術是多麼重要,但是從另一個層面,在隱私保護的時候,也給我們的監管帶來一定的挑戰和問題。怎麼樣保證我們監管友好的隱私技術,怎麼樣在隱私保護和可監管性之間做一個協同的優化,這也是一個非常值得去研究的問題。

第三個問題是區塊鏈系統。前兩天我跟閆鶯總在工信部的可信區塊鏈的峰會上做了一場原作,我們提到區塊鏈作為一個單一的技術,他其實並沒有辦法提供全鏈條、閉環的信任,區塊鏈能保證數據一旦上鏈以後是不可篡改、不可消除、不可替代,不可偽造的,區塊鏈保證不了數據在上鏈之前、下鏈之後如何是真實、可信的。

所以,怎麼樣把區塊鏈系統和外部的實踐高效可信的互聯起來,怎麼樣讓真實的數據從外部可信的傳到區塊鏈上,怎麼樣讓區塊鏈系統的數據能夠真實的傳到鏈外,區塊鏈系統和外部世界的高效可信互聯問題是一個非常值得去研究的問題,這裡面就牽扯到區塊鏈和很多技術的交叉融合。

我們要考慮跟可信硬件技術的融合,要考慮跟物聯網的融合,跟AI的融合等等。

第四個問題,我們說了區塊鏈作為一個規則治理的分佈式系統,它是有它自己非常重要的優勢,如果說我們現在很多輔助系統的人為治理,人為治理不可繞過的就是我們有規則不透明、規則不公開,規則會被任意篡改的問題,但是在區塊鏈上我們強調代碼即法律,當我們把規則變成區塊鏈的代碼,寫到區塊鏈系統裡面的時候,這個一定可以按照我們即定的規則自動化出現。

我們哪些規則可以被寫到區塊鏈上,哪些規則容易使用我們現在的技術可編成來指導我們的行動,這是一個非常重要的問題,這個問題是一個前技術的問題,因為我們現在在智能合約裡面大家都知道,我們很多時候在這份合約裡面的能力有限,並不是所有複雜的技術都可以放到合約裡面。

當然了,它也不僅僅是一個信息技術,它還牽扯到我們跟法律、跟很多政策交叉融合的問題,不管怎麼說,怎麼把經濟活動,特別是區塊鏈未來在元宇宙這個大的空間裡面,怎麼樣更好的承擔規則的功能,一直是一個非常重要的問題。

這就是我們現在根據當前的形勢整理出的四個區塊鏈領域的科學問題,科學問題一定是隨着技術的發展不斷變化的,我們也相信未來會有更多更新的科學問題出現。

今天,我們主要想談一下輕量級的區塊鏈。所謂輕量級區塊鏈就是指在資源受限的情況下部署區塊鏈的系統,這裡的資源包括我們的計算資源,我們的存儲資源,也包括我們的帶寬資源,也包括我們的能量資源,設置一個輕量化的區塊鏈的系統,它一定是一個全鏈條的,多層級的設計的方案,貫穿了整個區塊鏈系統裡面設計的各個層面,從我們的系統機構,到我們的存儲方式,到我們的共識機制,到我們的算法,到我們的協議,到我們的合約等等,在所有的層面里我們都應該去考慮輕量化設計的一些需求。那麼首先我們在架構的層面,大家現在考慮做區塊鏈輕量化的時候,一個非常樸素的想法就是我分而治之,我把傳統的一條鏈給它打散,但是很多的通道,很多的子鏈,很多的共識組等等說法不一樣,但是基本的思想就是我減少,我把它採用分而治之的方法來平衡大家資源的損耗。

但是傳統的這種分片的系統,其實有一些不同的架構,有一些是基於星型的架構,比如說以太坊最早提出來的,它就是基於這種架構,我用一個主分片來連接其他分片的時候,我們原來就發現他這裡面會有性能的一些瓶頸,所以我們認真的去分析和建模了一下。在不同的時候,它的這種採用分辨星型架構的分辨系統時,它的TPS會存在一些不同性能的瓶頸。

在負載比較低的時候,在我們分片程度不是特別大的時候,在我們并行化程度還不是特別高的時候,那麼這時候我們系統整體的性能實際上可以隨着我們并行化程度的提高,隨着我們分片數量的增加而提升,但是如果採用星型架構當數量一旦超過一定的範圍,超過一定的限制,我們會發現這個主分片會成為你新的性能瓶頸。

這個在進一步去做并行化時可能你的性能是不升反降的,那我們這部分理論分析的結果做了真實的實踐很好的去模擬出了一些效果。

當然我們把這條鏈發成多條鏈以後,其實我們剛才說了為什麼他會出現一個性能的拐點,很重要的一點是採用星型架構的時候,如果我們跨鏈的交易,跨分片的交易太多后,所有跨分片的交易就要涉及到主分片的處理。所以主分片就會變成新的瓶頸。

那麼怎麼減少跨分片的交易,這其實就是會影響到我們這個性能的拐點出現的位置。我們做的越好,我們的拐點出現的越好,這裡面我們採用了一些很簡單的,也很樸素AI的方法,我們通過去學習鏈上的行為,然後改進我們的策略,從而使得我們對這個性能瓶頸有明顯的提升。

那麼這是第一步,如果我們採用星型的架構,怎麼樣會出現性能分析的問題,更近一步的是我們考慮到即使我們採用再好的方法,我們仍然沒辦法完全避免我們跨片交易的這種產品。那麼跨片交易一旦出現之後,它一定會非常顯著影響我們整個系統的性能。

有沒有可能我們不採用星型的架構,我們就採用完全分佈式網狀的架構去設計,那麼在這塊我們最新提出了一種,基於同構多鏈設計的“無中繼鏈”平行的架構,我們這裡面部署了自己的一些協議,然後保證它的原子性,另外我們也提出一系列處理負載均衡的算法。

我們把我們這個同構多鏈的設計用到了很多的鏈條上去實現,我們在比特幣上去實現了,都去鏈的性能有很重要的提升,我們也拿國產比較好的聯盟鏈去實現,現在基本上TPS是可以達到10萬以上的。

那麼更近一步在共識算法的層面,其實做輕量化大家主要的思想還是在確保公平性、安全性的前提下,儘可能去減少參與共識節點的開銷,那麼我們共識算法,我們知道把它分為工鏈和聯盟鏈的話,我們會發現這兩個共識算法他們性能的瓶頸可能是由不同的因素去制約的,那麼在供應鏈的裡面,其實更多採用的是競爭性的共識。

競爭性的共識其實就是一開始大家提到的,不可避免的一些能量的損耗、一些資源的損耗,而聯盟鏈的這些共識我們現在採用BFT類的共識,很多時候它的性能瓶頸是局限在消息傳輸的時候造成的,所以我們把那部分我們一會方法到傳輸那塊。那麼在這部分共識裡面,我們主要想跟大家分享的還是在競爭性共識裡面所做的工作。

當然,競爭性共識其實對我們現在的聯盟鏈用的一些,協作共識或者說這種,其實他比起來還是有自己的一些特殊點和優勢,比如說在競爭共識時,我們在沒有數塊之前我們永遠是猜不到下一個的節點,但是我們現在如果用BFT類這種方法,我們實際上是在一個塊產生完了之後就可以預見到下一個的一些節點。

那麼在競爭性共識裡面,我們現在要解決保證他的不可預測性,保證他的這種情況下來提升他其他的性能,這裡面其實我們做了一些簡單的工作,比如說我們原來在針對POW這種方法,我們提了一系列改進POW的方法,針對單個節點在純POW的這種環境裡面,它的共識開銷、能量損耗、算力損耗太高的問題,我們提出了一個基於一致性的共識機制。

我們採用了兩個階段,先通過篩選,然後再用POW去完成競爭,這樣的話在每一輪裡面其實參與競爭的這些節點,數量相對比較有些受控,可以減少我們競爭的開銷。

更盡一步,其實我們現在也在研究在這種場景下,如果我們針對我們大規模的聯盟鏈的場景,我們的節點更多,我們要保證聯盟鏈的公平性,還要保證聯盟鏈節點不可預測性,我們叫做隨機性。

那麼在保證這種情況下還要保證它的高效性,我們也提出了一條新共識機制,我們現在在初步的實驗結果裡面,也都證實了我們的有效性。在單鏈上的共識或者在多鏈的環境下,我們跟創新工廠我們有一個區塊鏈聯合實驗室,這是在2019年的時候我們做了一套共識的機制,其實它就是把單一的一筆交易劃分成兩筆交易,然後把它放到不同的分片上去做。

原來如果我們分片之前採用同步的機制,那麼整個系統的性能就會被阻塞到另外的分片上,隨着我們分片的數量增多,我們單一分片裡面的結果數目變低后,整個安全性會受到影響。

我們這裡面提了一個鏈路共識的機制,我們把一個同步的共識分成了異步,把異步交易拆成兩筆交易,我們保證最終的一致性,通過這個機制,讓一個節點在一個分片上的競爭共識的這種機制擴散到整個全鏈上,從而使得對單個分片的攻擊難度,就跟我們對整條鏈的供給難度一樣。這裡面我們也做了一些實踐,取得了很不錯的效果,這是在共識的層面。

那麼在存儲的層面,大家現在針對區塊鏈的存儲資源相對比較寶貴,在這種情況下提出了各種各樣數據壓縮的方法,所以大家都要靠數據壓縮來解決,那麼我們在比較早期的時候其實也提出了一些數據壓縮的方法,當時我們針對像傳統比特幣等那種數據庫,我們提出了一個節段和一致性衝突檢測的機制,我們可以把我們放到更低的位數上,但是會產生衝突,那我們又設計了一套衝突檢測。

對這部分我們是區分熱數據和冷數據,我們把當前的熱數據放在第一層上,把他歷史上一些數據放到二層上,這樣根據我們的經驗,其實大家絕大多數的時候還是在熱數據上,所以在底層裡面就能夠幫助我們解決很多的問題。

那麼這一塊我們的數據壓縮力和整個通過我們做數據壓縮以後,對性能都做了測試。接下來就是傳輸層面,傳輸層面其實會在整個區塊鏈系統的設計裡面還是一個非常重要的,現在隨着我們節點規模越來越多,隨着我們要在鏈上傳的東西越來越多的時候,怎麼樣減少數據的冗餘傳輸,可能會成為影響我們系統非常重要的因素。

傳統大家基本上都是在採用經典的一些B2B傳輸的協議,無論是基於BCT的方案提出各種各樣傳輸的協議,但是這些傳輸的協議,這些B2B傳輸的協議,其實無論是結構化的也好,還是非結構化的也好,最早期的時候,他其實都不是為了區塊鏈來設計的。

那麼他跟區塊鏈做B2B傳輸的需求,是有明顯的不同。我們有兩個分析的發現,那麼第一個就是在傳統的B2B的場景里,無論我們傳一個視頻還是傳一個文件,我們要傳輸的內容是很多的,我們數據載荷這個階段是很多的,從而使得我們前面的區塊頭,他的開銷沒有那麼明顯,但在區塊鏈上我們可能一筆交易很短,我們甚至也很多空區塊,這個時候我們前面頭部的開銷盡量要壓縮,這是第一。

第二,我們傳統做B2B的時候,我們開發一個直播系統,開發一個文件下載系統,我們要把一個單一的數據源把它擴散到全網裡面去,我們關心的是最早一批能夠接受到我這個數據拷貝的那些節點,它的性能。

換句話說早期有人幫我接收了以後,我就可以有人來幫我更多的去分擔我下游傳輸的需求。但是在區塊鏈上不一樣,區塊鏈我們因為是在為共識機制去設計了很多B2B的傳輸,所以我們關注的是最晚那一批的節點,當網絡中絕大多數的節點,他們收到我們的數據拷貝他的性能,所以優化的目標不一樣,以前人家一定是關注最早那一批人,讓他們要儘快的去輸導。

而我們現在更關注的是所有的人都要在規定的時間內儘快接收到。針對這個問題我們也提出我們自己的一套專門針對區塊鏈的B2B傳輸協議,現在已經做了真實的實驗,針對我們現有區塊鏈系統,無論是結構化還是我們針對現在已有的經典的結構化方法,我們都有一個比較明顯的性能提升。

那麼在合約的層面我們剛才也講了,我們現在雖然不斷的再去優化,但是對於很多輕量化應用裡面,他可能我們還是很難去滿足他的需求,特別是現在大家核心的思想都是通過優化虛擬機,通過增加一些操作,來把我們合約方面的一些處理下沉到區塊鏈的底層去做。

這一部分我們也有一些簡單的嘗試,比如說我們最幾年一塊去承擔的科學部的項目裡面,我們在區塊鏈域名項目里,針對專門的域名系統,區塊鏈域名的操作設計了專門的操作服務。我們來支持區塊鏈上做運營查找的一些高效和安全。

那麼在跨鏈裡面也是,我們需要一個什麼樣的跨鏈架構,其實跨鏈它本身也是一個複雜的問題,它這裡面有架構上面設計輕量化的考慮,有算法方面設計輕量的考慮。我們基本核心的思想就是要按需,針對不同場景我們選擇不同的技術路線。

在跨鏈時或者在單鏈裡面,其實我們都有一個問題,我們現在如果說是一個節點它的能力特別弱,我們現在給它提了一些輕量級的驗證方法,我們可以讓它做一個新客戶端,做SPV的驗證,但是即使是做這種驗證,其實仍然是需要去算一些東西,所以你還需要有一定計算的能力。那麼SPV驗證時你可能需要去保存一些關鍵的、頭部的信息,所以你還有一定存儲的開銷。

在做SPV驗證時,你可能跟一個節點通信不能夠完全保證真實性的時候,你需要去跟多個節點通信,所以對你的傳輸帶寬也有一定的要求,如果我一個節點特別弱,我連這樣的計算、存儲和傳輸都承受不了時,我們也給它提出一套新的區塊鏈輕量級,區塊鏈驗證的方法,我們採用一個隨機分組的方式,通過組內一致性的執行,幫助每一個我們這裡面的客戶端,他其實只需要一次就可以零次計算幫助他得到可信的驗證結果。

在這裡我們也去看了一下跟SPV比起來,它的存儲、通信和確認時間這方面都有一些改善。那麼最後我想講一下,因為這次也是在上一次場合里討論時大家很關注的問題。

區塊鏈技術誕生到現在其實才十幾年,我們火起來這個技術也就是最近五六年的時候,而您現在想到的這些問題,哪個其實都是在區塊鏈之前都已經存在的問題。對於這種場景里的問題它怎麼可能沒有區塊鏈技術,就完全做不到,所以我們現在不需要過多的去糾結什麼場景一定離了區塊鏈不行。

也就所謂的,只有區塊鏈才能解決這種“殺手級”的應用,真正“殺手級”的應用是需要靠沉澱慢慢的發掘的,我們的互聯網就是一個例子,我們早期的互聯網傳個文字、視頻,那時候傳個圖片都費勁,到了九十年代初我們有了門戶網站,大家說互聯網的“殺手級”應用出現了。

再到今天真正互聯網進入到我們生活的方方面面,進入到我們衣食住行各個方面時,我們才會發現這才是真正它的一些“殺手級”應用,所以區塊鏈技術當前我們可能很難去預見將來完全基於它。也可能元宇宙裡面將來就會有一些技術,只有區塊鏈能去解決,有一些應用的場景。

但當前這個階段,我們還是踏踏實實的,我們就找我們現實生活中的場景,如果這個東西用了區塊鏈以後它的成本能降起來,它的效率能提上去,我覺得對區塊鏈技術的使用應該是加以支持的。

本文鏈接:https://www.8btc.com/article/6719104

轉載請註明文章出處

(0)
上一篇 2021-12-30 10:13
下一篇 2021-12-30 10:44

相关推荐