作者:CryptoYCTech
Avalanche共識協議
一條鏈最基本的任務就是確保網絡安全性,這涉及到的東西就是共識。所以我們在了解Avalanche的時候,首先需要介紹的就是Avalanche的共識協議。
一個通用的共識引擎
首先需要明確的一點,Avalanche原本是一個通用共識協議。我們所熟悉的“Avalanche”去中心化平臺實際上是該共識協議+一系列配套設施組成的。而Avalanche共識協議本身用一句話概括的話就是“通過不斷反復對網絡中的節點進行抽樣,收集他們對某個提議/交易的響應,達成最終共識。
所以本質上,Avalanche是為有關聯的交易提供一個PartialOrder,形成沒有沖突的交易集合。
當然,這樣的敘述過于抽象,所以我們不妨舉個例子來看下這個共識是什么樣子。
假設在一個房間里擠滿了人,他們試圖就午餐吃什么這一問題達成共識。通常來說,有些人最初喜歡披薩,有些人最初喜歡烤肉。我們的目標就是最后確定要吃哪一種。這時候,每個人都會隨機詢問房間里的一部分人,問午餐想吃哪一個,如果超過一半的人選擇了披薩,那么他也會選擇披薩,反之就是燒烤。因為每個人都在重復這個過程,所以每一輪都會越來越多的人有了相同的偏好,經過足夠多的回合,就會達成最終的共識。
我們用稍微條理的方式來看下這個過程:
我們假設房間里有n個人,他們在決定吃什么之前,會每次隨機問k個人的偏好,每次有大于等于α人數給予同一個回應的時候,本次詢問結束,進入下一輪,一直到連續β次的詢問輪次得到的結果一致,則最后吃什么也就確定了。
這也解釋了這種共識之所以成立的一個原理,由隨機抽樣引起的偏好隨機變化會導致網絡對一個選擇的偏好,這會導致網絡對該選擇的偏好更多,直到它變得不可逆,然后節點才能做出決定。我們可以發現這個過程本身就和比特幣的概率最終性確認的過程很像,后面我們會詳細來說這個事情。
而對于整個共識的形象化體驗,可以去其demo網站玩一玩:
https://tedyin.com/archive/snow-bft-demo/#/snow
上述就是對于共識過程的一個簡單概覽。但是,如果想要深入了解Avalanche是如何發展到現在的,就需要回顧下它的歷史發展過程。所以接下來,我們就來看下Avalanche的共識發展史。
共識協議歷史發展
Slush
一開始,Avalanche提出的協議并不是叫雪崩,而是叫Slush,采用UTXO模型。這個協議實現了我們上述達成“中午吃啥”這個共識的基本功能。其過程用人話來說就是:
派盾:jimbos protocol被攻擊是由于缺乏對流動性轉移操作的滑點控制:5月28日消息,派盾(PeckShield)監測顯示,今日遭遇攻擊損失 4090 枚 ETH(約 750 萬美元)的 jimbos protocol 是由于缺乏對流動性轉移操作的滑點控制,協議擁有的流動性被投入到一個傾斜 / 不平衡的價格范圍,這在反向交換中被攻擊以獲利。
金色財經此前報道,jimbos protocol 項目疑似遭受攻擊,累計損失約 750 萬美元[2023/5/28 9:47:09]
1.一開始每個人都沒有偏好,不知道吃披薩還是燒烤。
2.由于某些觸發條件,比如節點收到交易,其有了偏好,并且開始多次隨機選取一組很小的樣本k個人去詢問,過程和前面類似。
3.但是不同的是,在這個過程中,沒有偏好的人被有偏好的人詢問時,自己會變成詢問人的偏好,比如我沒想法,但是有個人過來問我:“我今天吃披薩,你想吃啥”。那么我就也會選擇吃披薩。如果我本身有偏好,比如我愛燒烤,我就會回復自己的偏好給詢問人。
4.如果每次有超過α的人回復了同一種偏好給我,而我本身的偏好和這個大多數偏好不同,那么這個我也會改變成大多數偏好。然后重復詢問過程,一直到詢問X輪為止,才會決定最終的偏好。這個X是為了不讓這個過程無限重復下去的一個保險。
從這個過程中我們可以發現Slush的特點:
只會記錄當前輪次的狀態,不會記錄歷史狀態,進而會有最后的拜占庭問題。
詢問樣本小,不用和其他鏈一樣詢問所有節點,效率高的概率最終性。
反復抽樣,放大隨機擾動,完成最終性確認最重要的特點。
但是,如果遇到惡意節點故意改變自己的偏好來和大眾偏好不同,擾亂平衡的話,那么整個網絡的安全性將大大降低。由此可見,Slush是一種非拜占庭協議,即無法容忍惡意節點的存在。
Snowflake
由于Slush本身的特點并不足以支撐起一個安全的網絡共識,所以Avalanche在其基礎推出了升級版的協議,snowflake,雪花協議。其新加入了一個counter功能,讓每個節點來記錄自己當前偏好的可信度,即每次詢問其他節點后,如果收到大于α的統一偏好回復,節點的counter就會給該偏好+1,反之則重置為0。當counter到達閾值β時,節點就接受當前偏好,不再改變。這樣的好處是節點不需要等x輪結束才能確定自己的偏好,受到惡意節點信息干擾的效果也會減少。這樣,snowflake成了拜占庭容錯協議。
不過,其依舊有個問題,Snowflake可以保證對最小的狀態做出很強的保證,但是其狀態記錄也是較為短暫的,counter的值在每次偏好變化的時候都會被reset,同時,這種狀態的保留也只是針對節點本身的狀態,而不是對整個網絡的歷史狀態進行保留。說白了就是沒法做整個網絡的狀態歷史比較,,依舊會有安全問題。所以為了解決這個問題,Avalanche又對協議做出了改進,同時也是整Avalanche未來的基石---snowball。
兩名俄羅斯人因從加密礦工竊取86枚比特幣而受審:金色財經報道,俄羅斯托木斯克市的兩名居民將因“大規模搶劫”而受審,罪名是從當地一名加密貨幣礦工處盜竊加密貨幣。他們當時從他那里勒索了價值超過3.6億盧布(超過480萬美元)的加密貨幣。兩人強迫受害者在加密貨幣交易所登錄賬戶,并從一個有90BTC的錢包中向他們轉賬86BTC。他們將面臨最高15年的監禁和最高100萬盧布的罰款。[2023/2/16 12:11:07]
Snowball
雪球協議的改進其實說起來也很簡單。既然雪花和slush都無法保留長久的狀態,那么為什么不讓網絡保存多種狀態,然后新加一個變量用來判斷哪個才是正確的狀態呢?所以Snowball引入了一個confidencecounter。這樣的話,每次詢問成功,就會讓confidencecounter+1,如果遇到對方和我的偏好不一樣,那就比誰的偏好confidencecounter高,選高的。這樣提高了協議共識結果的可靠性,也提升整個網絡的安全性。當然,這樣看的話Snowball已經可以達到我們的安全目的了,不過Avalanche并不會局限于此,于是其推出了我們現在看到的最終協議---Avalanche。
Avalanche
Avalanche在snowball上引入了動態并且僅限追加的DAG結構來提高自己的效率和安全性。我們直接用一張圖來看下AvalancheDAG結構:
從上圖中我們看到,所謂的“動態并且僅限追加的DAG“,其實就是新的節點只能在后面追加,而不能在已有節點之前添加。
同時這里需要明確里面的一個概念,就是祖先和后輩。在一個節點之后追加的任何與它有聯系的節點都是其后輩,而它自己就是祖先。按照上圖來說的話,bcde都是a的后輩,de是c的后輩,但是e不是d的后輩。
但是,可以看到,如果用交易組成DAG的話,會發現這種結構沒有處理“沖突交易”,也就是類似雙花的問題。所以Avalanche做出了規定:沖突交易集中只能有一個交易可以被包含在DAG中,每個節點都只能偏好沖突集中的一個交易。當然,這里不止是交易,是所有沖突的提議。
知道這個概念,我們就可以去了解下Avalanche新增的另一個特點----傳遞投票,給后輩投票,同時也相當于給它的所有祖先投票。這也是高效解決沖突交易的一種方式。
舉例來說,假設我們目前運行著一個有以下參數的Avalanche網絡,每次隨機選取的樣本數為k=4,單次通過閾值α=3,需要連續成功的次數是β=4。
我們先來看下正常情況下這個網絡是如何工作的:這時候,如果我收到了一筆交易Y,并且把這筆交易廣播到被選中的樣本節點,詢問偏好的時候,結果應該是這些節點會有個多數偏好,如下:
ChatGPT概念股開盤領跌:2月9日消息,云從科技、海天瑞聲雙雙跌超10%,凡拓數創、天璣科技跌超5%,東港股份、高鴻股份、拓爾思、漢王科技、神思電子等跟跌。
?消息面上,上交所8日晚間對近期熱門ChatGPT概念股海天瑞聲、云從科技下發監管工作函。此前一天,ChatGPT人氣股漢王科技亦收到關注函。[2023/2/9 11:56:03]
可以看到,它得到了三個yes和一個no。這意味著它在這輪詢問中獲得了肯定,所以這筆交易的合法性更新成true。而該節點更新的DAG如下:
這里先看幾個變量的定義,Chit,本次詢問該交易的合法性,confidence,該交易的可信度,consecutivesuccess是連續幾輪獲得合法性的記錄。這里面chit是布爾值,只有真假,confidence是只要該交易在一輪詢問中被確認合法,自己本身會+1,同時其祖先也會+1,一直傳遞到確認了最終性的祖先。consecutivesuccesses則是連續幾輪確認合法就一直+1,一旦出現非法或無結果的輪次,就會歸零。祖先同理。
現在,我們可以回到這個例子本身,我們發現這個DAG是由V,W,X,Y四筆交易組成。雖然本輪詢問的是交易Y,但是因為V,W,X都是其祖先節點。
所以按照avalanche里的“給后輩投票也相當于給祖先投票”的思路,其祖先節點會在各自的confidence,consecutivesuccess上各加1,變成如圖里的樣。同時,因為需要連續成功的次數β=4,我們可以看到交易V的β已經是4了,所以交易V的最終性被確認,不會參與下一輪的打分。
如果這時候發生了一筆沖突交易Y’,情況會變得怎么樣呢?
我們依舊按照之前的過程,但是假設Y’被大家否決了,那么按照我們說的幾個參數的更新規則,這次我的DAG會變成什么樣?如下:
各個值的更新規則和上一輪一樣,這里就不再贅述。這里主要注意的是TxW,因為其新的后輩Y’是沖突交易而且被拒絕,會導致它的consecutivesuccess歸零,同時confidence-1.
所以,我們可以看到,通過DAG這種數據結構,其最終性確認的效率很高,同時因為沒有采用單一的狀態復制機,而是由節點各自維護自己的狀態機,獨立狀態轉換,但是又可以最終同步,所以其安全性很高。
到此,我們已經分析了Avalanche整個協議的發展歷程和特點。現在可以做一下簡單的總結。
共識小結
1.?用BTC的機制,做了公鏈的事情。同時分離了共識層和應用層,性能和擴展性都提升了非常多。
2.?兩大創新,subsamlping&?transitivevoting,無論網絡規模多大都能做到高速響應和最終性確認。所以,其推出的subnet具有很大的可行性。我們會在后面講
21Shares推出首個加密質押指數ETP:金色財經報道,ETP發行商21Shares宣布與指數提供商Vinter合作推出加密貨幣質押指數ETP(21Shares Staking Basket Index ETP),該 ETP 追蹤基于 PoS 區塊鏈的原生Token,包括 BNB、ADA、ATOM、DOT、SOL、XTZ。該指數將在 3 月和 9 月進行每半年一次的重新平衡,以反映市場變化。[2023/1/18 11:19:30]
3.?缺點也是有,處理不了鏈下交易,或者說很難處理鏈下交易。
當然。前面的都是他們理論上是怎么設計共識的,最終我們還得落實到技術實現上。這一點Avalabs本身對設計進行了一些優化。我們來簡單看下。
Avalanche工程實現上的優化
引入頂點
如果完全按照白皮書中的設計來,被選中的節點需要對每筆交易進行投票確認,這在出現大量交易的時候勢必會影響網絡整體的效率。所以為了減少這種情況的出現,在工程實現的時候,Avalabs引入了“頂點”的概念,就和區塊一樣。
具體來說,節點在收到新交易的時候,不會直接把交易廣播到網絡中進行詢問,而是會把交易打包到“頂點”Vertex中。每個Vertex可以包含大量交易,而每輪被選中的節點現在成了對Vertices投票,而這個投票本身就被視作了對vertices里包含的所有交易進行投票。這樣AvalancheDAG的節點就是由一個個包含了大量交易的頂點組成。而不是單個交易。
同時,在真正的詢問中,節點問的不是說“你喜歡這個頂點嗎?”,而是“比起這個頂點,你更喜歡哪個頂點?”,這樣其他節點返回的都是他們認為更加合法的交易集,省去了該節點的排序,直接更新DAG的結果就行。進一步提高效率。尤其是它并沒有刪除非法頂點這個操作,而是讓其無效,這和比特幣還有以太坊是不一樣的。比特幣和以太坊是會刪除不良區塊。
如果一個頂點包含惡意交易,那么整個頂點都會被拒絕。該頂點里其他合法交易會被打包到下一個頂點里。同時,因為最終性的確認并不是出一個頂點就確認一個,而是有一定的延遲性,所以包含非法交易的節點及其所有后代節點都會被拒絕。而其中躺槍的合法交易將會被打包到下一個頂點,被重新投票。
與算法匹配的節點質押模型
我們都知道Avalanche用的也是PoS的方式來讓節點參與安全維護,但是我們也看到了Avalanche的機制是隨機抽樣詢問,而不是全部節點詢問。這就提出一個問題,不同質押數量的節點在這個機制里會有什么樣的不同。Avalanche的答案很簡單:
節點質押的數量越多,其被隨機選中當做被詢問的對象的可能性就越高。被選中的越多,回應的越快,又是良性節點,就會獲得豐厚的獎勵。
美聯儲主席鮑威爾:穩定幣需要被適當監管:9月8日消息,美聯儲主席鮑威爾表示,無擔保加密貨幣在支付方面沒有提供太多公共利益,這是一種投機性資產,穩定幣需要被適當監管,穩定幣可以在我們的金融系統中發揮作用,我們需要立法解決(穩定幣)問題。[2022/9/8 13:17:41]
除了節點質押和委托質押都是有鎖定時間這一點外,Avax還規定了節點接受的委托質押數量不能超過自己質押數量的倍數,同時還規定了一個上限。不過,我們都知道,治理嘛,參數當然是隨時可以調整的。所以具體的數值我們也就不說了。
整體架構
整體架構這塊其實不用我多說,大家應該得挺多的。其結構主要是官方推出的三個子網。結構圖大家也見過很多次了,我就簡單貼一下:
圖片來源:https://docs.avax.network/
這里需要說明的是有幾點:
1.Snowman是在Avalancheconsensus基礎上為智能合約進行過優化的鏈,本身的共識還是Avalancheconsensusprotocol。所以并沒有單獨說明。
2.可以說說子網subnet,也叫專用節點驗證網絡:
Avalanche最近在強推子網。其最關鍵的一點就是關于高度可定制以及安全性的問題。一個節點可以擔任多個子網的節點,自由選擇,同時子網也可以設立自己的門檻,例如硬件要求,質押數量等。但是,無論如何,子網節點必須也是主網的節點。同時Avalanche推薦第三方子網的gasfee和官方官方gasfee一樣,都是固定值或者是0。
子網同時也是Avalanche無限拓展性的重要因素。因為每個節點都可以參與多個子網。只要節點自己的硬件條件沒有問題,則整個網絡的速度會隨著子網的增加,例如一個節點支持一個子網1000TPS的速度,他支持三個子網的話,整個網絡就變成了3000的TPS。同時,因為成為子網節點的前提必須是主網節點,理論上說,子網越多,avalanche越安全,而主網節點越多,能直接為子網服務的節點也就越多,減少了子網門檻,雙方互相促進,形成一個正向循環。
子網之間的資產理想條件下可以無縫快速轉移,但是因為目前的第三方子網太少,所以具體情況還要觀察。同時各個子網如何設計自己的代幣經濟激勵節點來參與也是需要研究的事情。
有人會說這樣是不是就能說子網是不是都是共享安全性?個人認為這種說法是有問題的。因為雖然節點可以共享,但是每個子網具體有哪些節點,每個子網自己的規則都是不同的,比如惡意節點是slash?還是只是退回撤掉節點資格?這都是問題。但是這并不是說子網的安全性完全沒有保障。這里面牽扯到諸多博弈,例如如果一個子網的規則是節點資格被撤銷影響該節點在其他子網里的功能,那么節點在作惡的時候就要考慮很多因素了。更別說,成為節點還得KYC/AML
目前主要流量都在C鏈,defi和NFT都離不開他。不過看這三個官方子網的關系,還是得結合生態來看。所以我們來直接看下Avalanche的生態。
生態現狀
這個其實沒啥好說的,各種數據網站上都有,我這邊就直接貼一下defilima的數據。
基本數據
截止到4月11日,Avalanche有186個項目。而根據deflima,現在AVALANCHE的TVL是14.88b,比其最高峰時期23.88b下降不少。而且可以直觀的看到,目前整個生態最重要的應用是Aave。其實這不難理解,,我們都知道一條公鏈里最重要的基礎設施就是defi基礎施設,dex,借貸,收益聚合器等。而以太坊上的老牌項目本身的體量已經很大,市場教育也做的較為出色,尤其是老牌項目基本都是DeFi項目,既然本身已經是市場龍頭,為什么不直接利用他,這樣的成本可是比自己從頭搭建這些基礎施設要小的多。
圖片來源:https://defillama.com/chain/Avalanche
所以不止是Aave,整個Avalanche里體量排行在前的項目都是我們較為熟悉的DeFi,或者是老DeFi的分叉,還有就是上面說的收益類產品。當然這個圖里的項目很多不止在Avalanche里,但是哪怕如此,點開每個項目里的TVL分布,依舊是這個排名。
我們可以看到,目前Avalanche上交易量排名前十位的基本都是P2E的東西。
Avalanche的未來?
看完基本的數據,我們現在可以思考一個問題:如果Avalanche只是和其他公鏈一樣,沒有自己的生態特色,那么如何才能持續的發展自己呢?尤其是目前這些項目都還是用的C鏈,并沒有用到自己特色的subnet,那么Avalanche是否可以利用自己的subnet這個特色去做些什么呢?
為了解決這個問題,我們需要先考慮下一條公鏈想要一直保持競爭力,應該做什么?這個答案說起來很簡單:
“招商引資,吸引人流,吸引外部資金”。換成我們區塊鏈的話就是,“吸引資金,拉高TVL,增強整體生態的流動性”。傳統思路是引入更多DeFi項目,但是現在的defi用戶都很聰明,這樣吸引的資金和人都較為短期
而新人想要加入DeFi的門檻并不低,比如計劃LP損益,計算staking風險和收益等。而普通的PFPNFT,第一對于項目方運營要求高,第二是哪怕真有什么優秀的PFP項目出來,其帶來的流動性又不如DeFi。加上現在絕大多數的PFP并不能需要其特色的subtnet功能。
這時候我們就可以看到Game-fi就是一個非常好的切入點。現在的絕大多數GAME-FI本質上是DeFi,通過游戲化的交互,完成LP提供,stake過程。既能有較好的流動性,又能有一個合理的“理由”鎖定資金。而且,通過子網和Game-fi的結合,能形成一個雙贏的局面:
對于現在的game-fi來說。無論可玩性好與壞,游戲的成分有多少,其鏈上交互對比其他應用來說都不是一個量級的。尤其是最近出現的一些有傳統游戲影子的game-fi,其對于公鏈性能的要求很高。而Avalanche這種1~2秒就可以最終性確認并且還能定制VM的公鏈就是理想的選擇。尤其是如何提現體現
Avalanchesubnet的優勢?Game-fi相對而言就是試錯成本最小的一種形式。
更何況,現在有一些霸王級Game-fi,比如DeFiKingdom,本身的體量就可以頂的上小型公鏈。其本身的交互需求也能頂得上一些小公鏈。同時,如何更好的利用自己這龐大的體量也是困擾他們的問題。這時候Avalanche的subnet出現了。任何人都可以創建自己的“區塊鏈”并且兼容EVM,移植成本很低。一旦這樣做,自己Game-fi里的代幣本身就成了一種底層資產,讓自己代幣的價值捕獲能力超越游戲本身。其Game-fi本身也有了變成生態/xverse的可能性,尤其是理論上subnet之間的資產可以無縫轉移,這代表通過subnet建立的xverse的互操作性遠遠比其他區塊鏈上的項目要高,最終形成一個獨立而又互通的生態,構筑自己的競爭壁壘。
我想Avlanche本身也是這么考慮的,比如其在3月8號推出的Avalanchemultiverse的獎勵激勵子網的增長),而3月上線的第一個subnet就是dfk,同時獲得了1500w的Avalanchemultiverse資助。上線后,DFK確實把自己的JEWEL變成了subnet的手續費,同時發行了新的代幣,CRYSTAL作為游戲內的通用資產。最近也有消息說,螃蟹也準備上Avalanche去搞一搞了,所以我們可以拭目以待,看看最后Avalanche會變成什么樣。
還有一點很重要,即使子網用的代幣不是AVAX,但是因為子網的節點必須同時也是主網節點,代幣節點必須購買AVAX,隨著子網增多,節點也越來越多,配合上AVAX的mint/burn機制,其AVAX代幣本身的價值捕獲不會衰減很多。
可以看到,Avalanche要想保持長久的競爭力,就要合理的發揮自己子網的優勢,是否會形成不同于其他鏈獨樹一幟的x-versechain,我們可以拭目以待。
對比polkadot和cosmos
簡單對比下三者網絡本身的特點:
關于Cosmos和Polkadot的詳細對比,我在最近的文章中已經講過了,詳細內容可以點擊《異構雙王》這篇文章看看。
而Avalanche的設計范式是一種更加貼合區塊鏈原生的東西。確保自由的同時,還強調互操作性,而且其子網和主網的關系注定它的擴展性和效率不會隨著體量增大而衰減的很快,比起一些公鏈,其提升效率的方案是確實可行的。
總結
今天的總結比較簡單。Avalanche繼承了比特幣概率最終性確認的機制,但是又從底層設計上加入了自己的特色,尤其是子網的引入增添了它的“自下而上“的特。這種氣質更加貼合我對復雜系統的看法:我們始終處在一個復雜系統里,而一個復雜系統勢必是由下而上形成的。
但是,這并不是說什么樣的應用都適合有自己的子網,只是Avalanche給了你更多的選擇罷了。如果能發揮自己subnet的優勢,我個人相信Avalanche會發展出一些很好玩的東西。
作者:谷昱,鏈捕手 在等待超過半年、候補人數超400萬后,CoinbaseNFT市場今晚終于上線測試版并揭開其神秘的面紗.
1900/1/1 0:00:00鏈捕手消息,游戲公會OlaGG完成800萬美元種子輪融資,GalaxyInteractive、BITKRAFT、Arca、Com2Us、Cultur3d、HuobiVentures、SparkC.
1900/1/1 0:00:00原標題:《NFTthemesontherise》原作者:WilliamM.Peaster,Bankless 編譯:Yangz NFT生態正在經歷一個快速增長的時期.
1900/1/1 0:00:00作者:ZKCross 原文標題:《DataAvailabilityinLayer-2Blockchains》 編譯:麟奇,鏈捕手 區塊鏈數據可用性 最新的以太坊分片路線圖優先考慮數據分片.
1900/1/1 0:00:00作者:秦曉峰,Odaily星球日報過去一個多月,隨著Stepn的大漲,MoveToEarn的模式開始破圈,引起越來越多非加密人士的關注。與此同時,各類XToEarn項目也陸續興起,備受關注.
1900/1/1 0:00:00鏈捕手消息,中國人民銀行今日召開數字人民幣研發試點工作座談會,總結前期研發試點工作情況,安排部署下階段工作.
1900/1/1 0:00:00