來源:萬向區塊鏈
編者注:原標題為《賈瑤琪:Web3.0落地的必由之路—區塊鏈的可擴展性和互操作性》。本文作了不改變作者原意的刪減。
本文為萬向區塊鏈蜂巢學院第十三期,Parity亞洲區技術總監、區塊鏈和信息安全技術專家賈瑤琪博士的演講內容。賈博士在演講中介紹了Web3.0的定義和應用,并分享了實現Web3.0的技術和手段。
大家好!我是賈瑤琪,Parity亞洲區工程總監,主要負責技術研發和Substrate開發者生態建設。今天我將和大家分享區塊鏈里難度比較大但很有意思的兩個話題,一個是可擴展性,另一個是互操作性。今天講的內容更偏技術一些,我會舉一些例子幫助大家去理解里面的技術細節。
Web3.0定義和應用
Web3.0是目前一個比較熱門的概念,許多從事區塊鏈行業的人也會認為自己開發的應用是面向Web3.0的。究竟什么是Web3.0呢?Web3.0有很多不同的定義,上圖采納了其中的一個。Web1.0時代,網頁是只讀的,用戶只能搜集信息,瀏覽信息。Web2.0時代是社交網絡的時代,像臉書、推特、人人、新浪、微信,以及最新的快手、抖音等等。作為用戶的我們不僅可以瀏覽,還可以自己創建內容并上傳到網上。Web3.0更往前一步,除了可以發布內容,未來可以去做更多去中介化的事情。這樣就不得不提到其中需要的一些方法,包括一些理念。
Web2.0時代數據被大公司控制,像谷歌、臉書以及亞馬遜。當你使用他們的服務的時候,協議中寫明可以免責使用你的數據。雖然谷歌早期的slogan是don’tdoevil,但是有時候卻把自己的數據提供給第三方。在Web3.0的時代,我們不需要他們保證don’tdoevil,而是通過代碼使他們can’tdoevil。
Web3.0時代,為了實現愿景,需要什么樣的技術呢?區塊鏈是一個基礎。區塊鏈可以提供的特性,一是不可篡改,二是公開透明,三是點對點的網絡。
OKX Web3錢包已首發接入Sui主網:據OKX官方消息,OKX Web3錢包已于5月3日17:00(HKT)接入Sui主網,是首個支持Sui主網的多鏈錢包。用戶可前往OKX Web3錢包查看自己在Sui鏈上資產,支持使用App端進行Sui資產管理和交易,并領取相關活動獎勵。此外,OKX Web3錢包將陸續推出Sui質押、DEX支持Sui主幣兌換等產品功能,用戶可使用OKX Web3錢包一站式體驗公鏈。[2023/5/3 14:40:33]
再具體到一些細節如Web3.0技術棧,簡單的可以劃分為這幾層,最上層是客戶端,比如去中心化的瀏覽器。在這之下包含了一些協議支持的開發工具,對應API和特定編程語言。臉書的Libra有自己的編程語言Move,以太坊也有自己的編程語言Solidity。再下一層是Layer2的協議,比如說Governance、Statechannels等。一個區塊鏈應用不能隨意獲取互聯網上的信息,比如說想看天氣預報,區塊鏈不能直接提供這樣的數據,這里我們就需要Layer2協議棧中預言機協議,通過協議本身預言機機制獲取互聯網上的信息放在區塊鏈上。Layer1協議,就是廣為人知的區塊鏈底層協議,比特幣、以太坊等各種各樣的公鏈,聯盟鏈都采用了類似的底層協議,它提供了支撐整個Web3.0愿景的基礎。再往下是網絡層,如P2P網絡傳輸。
有了這樣的技術棧,才使得web3.0之路變得更加現實。在眾多的Layer1協議中,Polkadot的跨鏈協議擁有很多優勢,比如共享安全、互操作性等。Polkadot本身是基于Parity開源的Substrate開發的。Substrate作為一個通用的區塊鏈開發框架,既可以用來開發Layer1協議如跨鏈操作,也可以用來實現Layer2協議如預言機。
基于以上介紹的技術棧實現的早期應用有哪些呢?上圖列出了一些典型的的Web3.0應用。除了大家熟悉的公鏈系統外,還有一些網絡協議層的項目,更多的位于應用層,例如去中心的金融服務如借貸。但對于非區塊鏈領域的用戶,有沒有真正的主流應用呢?目前其實沒有。是什么導致現在沒有主流的應用呢?在這里舉幾個例子進行解釋。
Web3金庫管理基礎設施Coinshift集成資金流協議SuperFluid:9月20日消息,Web3金庫管理基礎設施初創公司Coinshift宣布集成資金流協議Super Fluid,允許用戶直接在Coinshift創建和管理實時工資流。Coinshift為DAO和Web3公司提供金庫管理平臺,建立在多簽名智能合約平臺Safe(原Gnosis Safe)之上。
此前5月份,Coinshift完成1500萬美元A輪融資,TigerGlobal領投,紅杉資本印度、Alameda Ventures、Spartan Group、Ethereal Ventures、Polygon Studios等參投。[2022/9/21 7:09:29]
案例一,以太小怪獸。這是一兩年前在以太坊上特別流行的游戲應用。它的方法跟電子怪獸一樣,你去購買這樣一個怪獸去跟其它的怪獸進行打斗,如果贏的話可以升級。游戲在初期很火爆,但是后來發現這個游戲太花錢了。如果把一個小怪獸升到四級要花15美金的交易費,一直支撐他打怪獸或者進行訓練。
案例二,以太貓。一兩年前比較火爆,大家可以購買各種各樣的加密貓,兩個加密貓可以再生成一個新的加密貓。最火爆的時候,有的加密貓價值十萬美金。但是也有問題。玩兒的人越多,手續費增加越高,因為以太坊的吞吐量只有這么多,如果大家想玩,需要用更高的手續費買到這樣一個加密貓,同時出生費也相應增加。現在加密貓應用已經淡出人們的視線。
總結出來的一個結論是,目前對于區塊鏈行業,由于低吞吐量帶來的高手續費,給開發DApp帶來很多功能限制。
可擴展性
無論是學術界還是產業界都致力于解決區塊鏈低吞吐量的問題。其中一個方法是增加區塊大小。如果把區塊大小增加,吞吐量會有一個提升。但是由于帶寬限制,這不是個提升吞吐量的高效解決方案。
方案二,通過鏈下交易。鏈下處理所有交易,將結算部分上鏈。因為可以使用中心化的服務器處理交易,那么可以輕松實現每秒上千/萬筆交易。通過這樣的方式可以有效提高吞吐量。但是也有劣勢,因為不是所有交易都在鏈上完成,那么中心化的服務器本身會不會進行一些作弊?透明度是個問題。
Web3憑證數據網絡Project Galaxy更名并品牌重塑為“Galxe”:金色財經消息,Web3憑證數據網絡Project Galaxy更名并品牌重塑為“Galxe”,旨在由單個項目向Web3生態演變,截至目前其Web3身份套件Galxe ID有420多萬用戶,可記錄Web3用戶的鏈上和鏈下足跡。[2022/9/6 13:12:15]
方案三,我們不再采用鏈式的數據結構,而是采用圖結構,不同的節點可以生產不同的區塊進行廣播。當一個節點想打包區塊的時候,可以基于過去的區塊,建立一個有向無環圖,再打包分發給其它節點。好處是可以包含多種交易,同時提高吞吐量。在圖結構里面可能很多交易是有沖突的,對于最終要執行的智能合約是有分歧的,這就是圖結構所遇到的難題。
方案四,代理人機制。參與共識協議的節點越少,跑起來越快,吞吐量越高。只有少量的超級節點參與共識協議可以達到一個高吞吐量,但是容易被大家垢病的是少量的代理節點能否代表整個社區。如果節點越少,這些節點不太喜歡某一些交易或者某一些應用,其實可以拒絕這個應用提交的交易。這就回到了中心化的弊端。
還有,就是分片以及多鏈。這個解決方案代表了一個趨勢,在不損失很多去中心化特性的同時,可以達到比較好的吞吐量。大家看到最新的以太坊2.0和新的分片項目,還有一些跨鏈項目,大家會發現這中間的區別已經變得很模糊,很多時候可以把一個分片看成一個同構的鏈。在處理多鏈跨鏈交易的原子性協議和分片協議里面提到的原子性協議區別不大,有的采用同樣的技術。只不過多鏈技術以及分片技術,有的時候會有一個中繼鏈或者中繼分片來協調不同的分片或者不同的鏈。但是歸根到底,技術本身其實有很多相似的地方,這里統一起來進行講解。
分片就是將交易分而治之,從而提高吞吐量。舉個例子,有一千道問題,同時有一百個人解決問題。現在可以分組,一百個人分成十個小組,將一千道問題分給十個小組,每個小組十個人處理一百道問題,根據絕大多數人的答案形成一個共識,那么我們其實可以保證每個小組正確的解決一百道問題,這樣整個解決時間就從一千減小到一百。未來如果有更多的聽眾,例如一千個,我們可以把一千人分成一百個小組,一百小組解決一千個問題,一個小組只解決十個問題,最終只用解決十個問題的時間把一千個問題都解決了。然而可能會出現一些攻擊情形,假如如果有十個攻擊者,他們合謀分到第一個小組,達成共識的時候不遵循一些原則,例如把一分錢掰成一萬塊人民幣來進行雙花攻擊。如果攻擊者能控制一個分片,產生的攻擊在一些協議里面其它分片是不能進行阻止的。
Polygon在Nothing Phone智能手機中啟用 Web3 功能:7月6日消息,Polygon已與科技初創公司Nothing達成合作,將Polygon的技術整合到該公司智能手機Nothing Phone(1)中,為基于Android的Nothing Phone(1)注入輕松訪問Polygon平臺上的應用程序、游戲、以及Polygon ID。
此外,雙方還將推出一個NFT會員俱樂部,為眾籌Nothing發布的人以及預購Nothing Phone(1)的人提供基于Polygon區塊鏈的NFT系列Nothing's Black Dot NFT。(Decrypt)[2022/7/6 1:53:30]
如何避免這樣的攻擊呢?
首先,要設立很高的門檻,讓攻擊者不容易加入到網絡中,防止女巫攻擊。一個方法就是工作量證明,需要使用特定的礦機做足夠時間的計算,才能作為節點提交區塊。第二個方法,權益證明。
一旦有了一百個聽眾,進行隨機分組可以保證聽眾分到不同的小組。我們需要根據一個什么樣的隨機數進行分組呢?一種方法是用上一個工作量證明的結果作為隨機數將大家分到不同的小組。另外一個方法,在權益證明中,使用隨機數生成協議(如VRF),讓大家分到不同的分片里面。
如果已經有了比較合理的分組,且每個分組能保證正常節點占絕大多數,那么之后就是如何將上面提到的一千個問題分給不同組。為了保證不同的分片或者整個系統的數據一致性及有效性,我們需要一個方法來防止同一個交易被不同分片處理多次或者同一個數據被改變多次。常用解決方案是用兩段式提交協議保證數據一致性。
剛剛講到網絡分片,節點可以安全的分到不同的分片或者鏈里面,之后的交易也可以分到不同的分片里,然后來進行交易處理,同時保證數據的有效性及一致性。如果做狀態分片例如ETH2.0,每個分片有自己的數據存儲,不同的分片存儲不同的數據,這樣會有單個分片數據丟失的風險。
比較直觀的解決方法,首先就是通過一些權益獎勵,鼓勵節點長期在線,而且要做大量交易驗證和共識協議來保證不會受到懲罰。如果長期掉線會被移出分片,而且抵押的權益會被系統拿走。當我們有了健壯的分片系統,那么我們可以整合多個分片或者鏈的吞吐量,從而極大地提升整個系統的吞吐量。
動態 | Ripple旗下Xpring為開發人員啟動社區web頁面和論壇:據Cointelegraph消息,Ripple的Xpring將為其開發人員平臺啟動一個稱為“開發人員關系”(developer relations)或“DevRel”的社區web頁面和論壇。Xpring網站的一篇博客文章解釋說,Xpring的大多數員工都是在工程和產品部門工作。該帖子寫道:“我們將DevRel視為Xpring的耳朵和嘴巴。” Xpring最初是Ripple的投資部門。在2019年10月,Ripple還推出了一個Xpring開發者平臺,為創作者提供了一個數字化貨幣的平臺。[2020/2/2]
有了分片和多鏈的方法之后,我們更多想的是對于單鏈有哪些方法可以進一步提高它的吞吐量呢?更快的解決方法就是通過更改共識協議。目前比特幣或者以太坊使用中本聰共識協議,節點通過工作量證明,每過一段時間生成一個區塊,并將區塊廣播給其它節點,其它節點看到這個區塊的時候,會選擇擁有最長鏈的區塊來進行確認。中本聰共識協議的優點是去中心化和異步。即使有上萬個節點在網絡里面,而且有不同的網絡延遲,中本聰共識協議還是可以很好的在全網達成共識。當然缺點就是吞吐量太低。
拜占廷共識協議(BFT),是學術界產業界常用的共識協議。簡單來講,比如現在我要去買一張票,我要保證現場一百個人中的絕大多數都知道我要買票,大家都同意我買票。我的做法是廣播給所有人,我要去買票的信息。其他人收到這樣一個消息之后,同意這個信息,再把這個信息廣播出去。當每個人收到2/3節點的確認信息之后,再廣播一個自己收到絕大都數人確認的確認信息。當每個人收到2/3節點的最終確認信息之后,就確定了全網已經同意并確認買票的這個消息。
拜占庭共識協議的優勢是速度快,如果去實現這樣一個BFT控制協議很容易達到超過1000TPS,而且有絕對的最終性,一旦協議跑完,交易馬上可以確認最終性。
缺點是傳統拜占庭共識協議只能用于不到一百個節點,超過一百個節點,信息交換量太過龐大使得網絡擁塞不能提升吞吐量。與此同時,它不是完全異步的。每個階段都有一個等待時間,例如中間可以等十秒,如果沒到就進行下一個階段。如果長時間協議沒有向前推進,就會進行視圖轉換,切換指揮者重新運行協議。
Polkadot整合和改進了中本聰共識協議和拜占庭共識協議。它采用了一個混合式的算法,GRANDPA協議和BABE協議。BABE協議是負責區塊生成,GRANDPA協議是提供最終性的。BABE協議和傳統的比特幣、以太坊的協議一樣。每過幾秒鐘選擇一個節點進行出塊,節點出塊以后,進行一個廣播,再過幾秒選第二個節點進行一個出塊,不同的節點也是根據最長鏈原則選擇區塊進行確認。
GRANDPA算法,它是根據BFT進行改進的版本,是非異步的共識協議。BABE協議生成的區塊,GRANDPA協議最終會做一個敲定。BABE協議生成不同長度的鏈,GRANDPA協議會選擇這里面包含最多投票的有效鏈進行確認。以往的區塊鏈里面,如果進行共識協議,通常是一個塊一個塊進行敲定,但是Polkadot是根據不同的鏈進行敲定。比如每過一段時間,生成十個區塊或者二十個區塊,那么運行GRANDPA協議,將二十個區塊直接一次性的確認。這樣GRANDPA可以在有限的時間里確認更多的區塊。
通過以上講解,我們可以看到想要吞吐量高的區塊鏈解決方案,同時擁有比較好的去中心化特性,最好的方法就是選擇高吞吐量的單鏈解決方案加上安全高效的分片或者跨鏈解決方案。
互操作性
除了從可擴展性的角度出發,我們也需要從實際角度出發思考,為什么需要互操作性,或者為什么需要跨鏈。傳統來講,區塊鏈可以解決信任的問題,如果可拓展性可以被解決,那么性能的問題也將被解決。互操作性其實是在上面兩個問題被解決的情況下,可以解決更廣泛的信任問題。
目前不同的應用場景有不同的聯盟鏈和公有鏈。有了這些鏈之后,我們需要用互通性才能將有用的數據溝通起來。這里會涉及到跨鏈或者互操作性的不同方法。未來會看到一個界限極其模糊的區塊鏈系統,就是私有鏈、聯盟鏈、公鏈通過某種方式來進行互聯。
區塊鏈領域的互操作性,為什么在傳統的互聯網應用里不明確提這樣的要求呢?因為現在的互聯網基礎設施已經把這些功能都提供好了,例如各種各樣的SDK和API。你如果做一個應用想調用微信上面的數據,那么可以通過微信上面的SDK和接口把數據拿下來。如果想做支付,支付寶也有對應的支付通道,寫代碼的時候可以把API調用一下就可以做支付了。目前在區塊鏈上無法做到的原因,是由于各種區塊鏈不同的共識協和區塊結構導致了我們的數據目前還是屬于孤島狀態。為了讓不同的孤島上面的數據進行溝通,我們必須通過互操作性以及跨鏈的系統將不同的區塊鏈連通起來。
互操作性以及跨鏈協議有哪些具體的方式呢?第一種方式就是公證人模式,不同鏈之間有一個公證人。相對比較去中心化的第二種方式就是側鏈模式。通過側鏈的方式,在鏈B上面可以驗證鏈A上哪些交易被寫到區塊里,那么鏈B就可以驗證A上面的操作并在B上面進行對應操作例如轉賬。第三種方式是哈希時間鎖,這是相對一個比較復雜的協議,它是一個集去中心化以及透明交易的資產轉換為一體的跨鏈操作。簡單來講,如果我做比特幣兌換以太坊的交易,我在比特幣這邊放一個鎖,同時對方也要在以太坊放一個鎖。我把密鑰給他,同樣的密鑰我可以獲得對應的以太坊,同時他可以根據密鑰獲得對應的比特幣。還有一個時間鎖,保證雙方只能在限定時間內去解鎖以太坊和比特幣,否則協議會自動終止,雙方都沒有獲得對方的資產。
剛剛提到的方法都是很好的數字資產跨鏈的解決方案,無論是從效率還是去中心化的角度。如果想做到數據以及邏輯層面上的跨鏈,我們就需要更復雜的系統,例如多鏈系統里面的中繼鏈。具體到Polkadot上,系統使用中繼鏈來協調不同平行鏈的跨鏈操作。根據不同的商業環境,開發者可以使用Substrate開發和搭建不同的平行鏈。中繼鏈的驗證節點用于驗證平行鏈區塊的正確性從而保證每條平行鏈具有相同的的安全性,與此同時協調不同平行鏈之間的通信。一些已有的區塊鏈,例如以太坊、比特幣,暫時沒有基于Substrate的平行鏈版本。目前的方法是使用橋,將它們橋接到平行鏈當中,再通過中繼鏈與其它鏈進行溝通。
在這樣的框架結構中,最中心的是中繼鏈,它連接不同的平行鏈。剛剛提到橋接鏈,橋接鏈不是直接連到中繼鏈上,而是通過一個橋,先連接到平行鏈,之后通過中繼鏈跟其它鏈進行通信。
每個平行鏈都有中繼鏈的輕節點,用來接收和驗證中繼鏈的消息。同時平行鏈有自己的校對節點稱為collator。校對節點搜集對應平行鏈上的數據,將這些數據傳遞給中繼鏈。中繼鏈會分派不同的驗證節點,去驗證平行鏈上的區塊是否是正確的,是否有雙花的攻擊,如果一些區塊有問題,中繼鏈會根據協議沒收對應平行鏈插槽,或者對一些節點進行懲罰。
上圖來自Polkadot的白皮書,將不同的角色都包含在里面,包括不同的平行鏈以及平行鏈里面是怎么運作的,如處理交易、廣播交易以及最終交易寫成區塊,區塊最后要寫入到中繼鏈里面等。
如果中繼鏈想要支撐成千上萬個平行鏈,那么我們如何實現更高的橫向擴展呢?方法就是將二級中繼鏈作為一個平行鏈接入到中繼鏈里面,構建出一個更加分散的連接中繼鏈的跨鏈平臺。
目前Parity正在開發三個至關重要的功能。第一個是Cumulus。平行鏈需要一個連接器連接到中繼鏈,這個連接器就是Cumulus。現在用Substrate開發出來的代碼,未來只需要很少的改動,就可以使用Cumulus連接到中繼鏈,前提是拿到對應的插槽。
第二個是XCMP跨鏈信息交互協議,不同的平行鏈如果想調用或者發送消息給其它的平行鏈,就需要通過這樣一個協議去傳輸。
第三個是SPREE。講到跨鏈,大家通常默認是資產跨鏈,資產A放在鏈B上面,做好一點可以做成去中心化的。再好一點就是現在提到的不同的鏈可以通過中繼鏈或者其它的方法將信息發送過去,對方鏈可以執行對應的交易,或者智能合約。但前提是,不同的平行鏈他們是相對比較同態的架構。同構就是不同的平行鏈執行處理交易的邏輯是大致一樣的。鏈A是用EVM處理智能合約,鏈B也是用EVM處理交易,那么鏈A發送交易給鏈B,鏈B是可以處理的。如果鏈A是EVM,鏈B是WASM,那么鏈B收到A的交易也不知道怎么處理。SPREE可以支持跨鏈執行代碼的交互。就是鏈A將自己的執行邏輯進行打包,打包以后生成一個可執行的runtime通過一些渠道發送給鏈B,鏈B收到后可以去執行鏈A的交易。即使鏈A和B的處理交易的方式不同,因為B收到了A的代碼和數據,那么B就可以處理A上的交易了。這三個功能都在緊鑼密鼓的進行研發。之后有了這三個協議,我們進行任何的跨鏈交易和數據的處理操作。
在過去兩年間,Substrate已經有超過20萬行代碼,還有很多的社區貢獻者。在第一季度Substrate會從1.0升級到2.0版本,會有更好的性能以及更穩定的組件。同時,目前已經有超過80個團隊基于Substrate/Polkadot進行開發。歡迎大家共同在Substrate/Polkadot上構建有意思的聯盟鏈和平行鏈。
今天的分享就到這里,謝謝大家!
信用卡巨頭Visa的加密負責人CuySheffield認為,比特幣聰是購買力不到1美分的互聯網本地帳戶單位。他認為這是比特幣這種領先資產可以取代法定資產的主要用例.
1900/1/1 0:00:00來源:鏈捕手 作者/胡韜 未經授權,謝絕轉載 從此次疫情事件來看,它的確可以并已經在為社會各方帶去實際價值,部分地方政府亦已經加快對區塊鏈技術的培育、落地,這無疑向行業釋放了相當積極的信號.
1900/1/1 0:00:00據Cointelegraph報道,比特幣和其他加密貨幣因其網絡效應被比作FAANG(Facebook、Apple、Amazon、Netflix和Google)公司.
1900/1/1 0:00:00作者:DanielGoldman自由軟件工程師、技術顧問、作家譯者:Emma、Snow?Lu校對:Samuel完整的EVM:Layer2虛擬機為了使Layer2智能合約計算保持無需信任.
1900/1/1 0:00:00本周加密貨幣市場整體震蕩幅度較大。市值最高的加密貨幣比特幣多次在10000美元的關鍵阻力位上下,并接連刷新年內高點的記錄,雖然周六凌晨再次跌破10000美元,但目前市場數據、技術指標和投資者情緒.
1900/1/1 0:00:00來源|forbes 編譯|張濤 責編|Carol 出品|區塊鏈大本營 雖然媒體對區塊鏈、比特幣和分布式賬本技術的炒作熱情開始消退,但過去的一年,各大企業仍然持續對相關技術的研發和部署.
1900/1/1 0:00:00