Vite:不一樣的去中心化應用平臺
(修路者,梵高)
區塊鏈承載了很多夢想,其中一個最大的夢想就是,它要成為去中心化應用的基礎設施,尤其是公鏈或作業系統,都期待在自己的生態系統上生長出無數的去中心化應用來。因為有了去中心化應用,才會有更多的使用者進來,才能讓平臺具有網路效應,也才能擁有真正的價值。
雖然目前區塊鏈世界中處於食物鏈最頂端的是交易所,但其實區塊鏈最大的競爭還是公鏈等基礎設施的競爭。交易所之所以成為中心,是因為目前行業處於早期,專案還沒有真正落地,交易是最大的剛需。但行業的根基必然不能是交易所,而是公鏈等其他基礎設施。
有了完善的基礎設施,才會有走向主流人群的應用,才能讓區塊鏈真正影響人們生活和工作,才能讓價值真正落地,才能有所謂的價值投資。
由此,作為區塊鏈行業發展的基石,所有能夠完善區塊鏈基礎設施的技術路線都值得關注,迄今為止,我們也看到了不少探索。區塊鏈基礎設施要解決幾個問題,如可擴充套件性、安全、低延遲、低費用等。目前行業普遍認為,區塊鏈存在不可能三角,高效能、安全和去中心化不能兼而得之。當然,最近也有技術路線宣稱自己有辦法破解,當然,且不管工程落地如此,即使是理論上的突破也值得支援。
對於區塊鏈基礎設施的探索,一直是藍狐筆記關注的重中之重。藍狐筆記最近關注到Vite專案,它的目標也是要成為通用的去中心化應用平臺,在保證安全的前提下,它要滿足高擴充套件、低延遲的要求。它想要成為區塊鏈行業的重要基礎設施。這也是很多專案在努力做的事情,包括以太坊、EOS、ADA、NEO、Tezos等無數公鏈或系統試圖達成的目標,同時還有很多在路上。
那麼,問題來了。已經有了這麼多的平臺,Vite跟其他基礎設施有什麼不一樣?目標相同,在落地上有什麼不同的技術路線?為什麼它值得關注?
Vite的幾個關鍵詞
Vite跟其他區塊鏈基礎設施一樣,具有很遠大的目標,都有一個去中心化應用的平臺夢想。它希望有足夠的安全性,有高效能,有足夠的擴充套件性,是一個通用的平臺,能夠在Vite上搭建無數的去中心化應用,能滿足資產釋出和流通、遊戲、金融、共享經濟、社交等諸多現實場景的需求。
在實現這個夢想的路上,Vite提出了自己的技術路線,探索不同的路徑。其中幾個關鍵詞是理解Vite的核心:DAG賬本結構、快照鏈、分層共識演算法HDPoS、非同步架構、虛擬機器相容等。另外,它在經濟模型、治理、合約升級、定時排程、命名服務、區塊裁剪等方面都有自己的設計。
從Vite的技術路線看,從目標出發,它進行了底層的原創思考,也考慮了可落地的平衡性,有獨特之處,值得研究。下面是它的幾個關鍵部分。
DAG賬本結構
區塊鏈是按照時間順序把區塊相連的鏈式資料結構。區塊包括了區塊頭和區塊主體。區塊頭包括連線上一個區塊的雜湊、時間戳、隨機數、挖礦難度、Merkle樹根資料等;區塊主體包含交易資料,包括區塊大小、交易數量、魔法數等。後一區塊引用前一區塊的雜湊,形成雜湊相連的鏈式結構。鏈式結構具有較高的防篡改性,因為任何交易的順序更改,都會影響雜湊引用。要想篡改一個區塊的交易,需要更換該區塊之後整個鏈式區塊,代價非常高。這種結構一般會把最長鏈作為主鏈,即使出現分叉,也會有一條公認主鏈。
但區塊鏈的鏈式結構也存在問題,它的吞吐量低。區塊鏈每次只能新增一個區塊,區塊有一個出塊時間,區塊的傳播、確認都需要時間,區塊也有容量限制,這導致區塊鏈的tps一直很難提升。比特幣tps僅為7左右,以太坊僅為15左右,這遠遠無法滿足現實場景的需求。目前看,除非在layer 2上做文章,在主鏈上,鏈式結構的區塊鏈很難取得根本性的效能突破。
Vite為了滿足高效能的現實場景需求,它把目光轉向了DAG的賬本結構。目前有IOTA、Nano、Byteball等在使用基於DAG的賬本結構。
(賬本結構比較)
DAG也稱為有向無環圖,是不同於區塊鏈的資料結構。區塊鏈一段時間只能產生一個新區塊,DAG的賬本機構,區塊可以隨時產生,一個區塊與多個父區塊相連線,一個新的區塊隨機選擇兩個次新的區塊進行連線,同時對相連線的區塊進行交易資訊的驗證。一旦經歷了多次驗證,區塊交易內容存在衝突的可能很低。這樣,記賬的速度極大提高。
當然,DAG的一致性驗證也可能會有一些問題。比如一致性驗證依賴於網路的增長;比如交易資訊確切驗證時間的可能延誤;節點之間的網路通訊帶來的延遲等。
跟鏈式結構相比,DAG結構帶來了更高的效能,但在防篡改方面,不如區塊鏈的賬本結構。不過,由於Vite目標不是數字貨幣,而是要成為去中心化應用的平臺,沒有高效能,這一目標無從談起。
所以,前提一定是要實現高效能,Vite由此採用了DAG的賬本結構,在DAG賬本機構中,有IOTA的tangle賬本和Nano的block-lattice賬本,Vite採用了Nano的block-lattice賬本,可以追求更高的效能。當然,也有一個缺點,就是防篡改較差,有潛在安全威脅。
為了解決這個問題,Vite提出了一個新的解決方案:快照區塊鏈。它的主要目的就是為了解決block-lattice的安全隱患問題。
那麼,什麼是快照鏈?
快照鏈
快照鏈可以說是Vite最大的原創解決方案。因為Nano的block-lattice賬本結構優劣勢都很明顯,既有傳統區塊鏈難以企及的高效能優勢,也有比區塊鏈弱很多的安全劣勢。
Nano的block-lattice結構的交易是按賬戶分組,一個交易會附加到其歸屬賬戶的賬戶鏈末端,大部分其他賬戶的交易不會自動成為該交易的後繼節點。為了增強安全,避免雙花,Nano採用投票的共識演算法。由一組使用者選擇的代表節點對交易進行簽名,不同的代表節點有不同的權重,交易必須獲得足夠的權重簽名才能被確認。不過投票也會面臨一些問題:比如需要保證足夠的代表節點線上才能保證足夠的權重;交易的確認深度不會隨著時間增加而增加,可能會影響安全性。
在Vite看來,快照鏈的推出,可以解決block-lattice賬本結構的短板,同時利用它的高效能優勢。Vite把投票結果看作是對賬本狀態的一個快照,快照通過去中心化方式儲存在不同節點中。它可以充分發揮鏈式結構的防篡改性特質。
那麼,快照鏈具體是什麼?
快照鏈也是區塊相連的鏈式結構,只不過它的區塊是快照區塊。一個快照區塊儲存一個Vite賬本的狀態快照,狀態包含賬戶餘額、合約狀態的Merkle根、每個賬戶鏈中最後一個塊的雜湊。
快照塊在不發生分叉情況下,可以確定Vite賬本的共識結果。有了快照鏈,可以彌補block-lattice結果的安全性缺陷。因為攻擊者想要篡改交易,不僅要重建Vite賬本的雜湊引用,還需要重建快照鏈中快照該交易的快照塊之後的全部區塊,且需要產生最長鏈。攻擊代價極大提高。
(快照鏈)
Vite的交易被快照塊快照之後,交易被確認,隨著快照鏈的增長,被確認的交易的確認數也在不停增長。這意味著,雙花攻擊的代價隨著快照鏈的不斷增長而增加,安全性逐漸提高。另外,如果快照鏈發生分叉,它會選取最長鏈作為主鏈。
從這個角度來看,快照鏈是Vite賬本的安全基礎。
最後,快照鏈的區塊儲存所有賬戶的狀態,儲存壓力大,快照鏈採用增量儲存的方式來解決這個問題。也就是,一個快照區塊只儲存比前一個區塊發生變化的資料。
對於Vite來說,有了DAG的賬本結構和快照鏈,那麼共識是如何達成的?採用什麼演算法?由誰來生產賬本中的交易區塊和快照鏈中的快照塊?接下來讓我們來看看Vite的分層共識演算法HDPoS。
分 層共識演算法HDPoS
前面我們也提到過Vite要成為去中心化應用的平臺,一個繞不過去的就是它需要高效能、高擴充套件性,兼具安全性。
目前看,PoW安全性最好,但擴充套件性低,無法滿足dApp 的效能要求,PoS存在權益碾壓及權益在區塊鏈多個分支鑄造代幣的可能。DPoS則在區塊生成許可權上做了限制,取得較好的效能和擴充套件性,但在去中心化方面做了一定的妥協。
考慮到以上演算法的優劣,Vite根據去中心化應用平臺的目標,採用了DPoS的共識演算法作為基礎演算法,並在此基礎上進行優化,形成了分層共識演算法HDPoS,試圖進一步提升整體效能。
Vite的HDPoS系統共識分為區域性共識和全域性共識。區域性共識主要涉及交易寫入賬本;全域性共識涉及對賬本中的資料進行快照,生產快照區塊。Vite的HDPoS決定誰有權生產賬本的交易區塊和快照鏈的快照塊。
Vite賬本結構採用的是Nano的結構,按賬戶不同組織成多條賬戶鏈。根據這個特點,可以按賬戶緯度來限定賬本區塊的生產權。Vite把若干賬戶鏈或快照鏈歸入一個共識組,在共識組內部,通過統一方式來生產區塊。
Vite共識組包括了私有共識組、快照共識組、委託共識組。私有共識組適用於賬本中的交易區塊的生產,區塊只能由賬戶的私鑰擁有者來生產。預設所有的使用者賬戶都是私有共識組。由於只有一個使用者有權生產區塊,可降低分叉概率,除非使用者主動發起雙花攻擊。私有共識組的缺點是使用者節點必須線上才能打包交易。這對合約賬戶來說,會降低dApp的可用性。
快照共識組是快照鏈所在的共識組,也是Vite安全的基石。它採用DPoS演算法,它根據引數來指定代理節點數和出塊間隔。委託共識組則是一組指定的代理節點,通過DPoS演算法,進行鏈上交易的打包。Vite有預設的委託共識組,使用者也可以設定單獨的代理節點,建立新的委託共識組。其中,Vite預設的委託共識組,相當於公共共識組,主要是幫助沒有單獨建立委託共識組的賬戶打包交易。合約賬戶尤其需要委託共識組,因為合約賬戶的交易大多屬於合約響應交易,有委託共識組則利於提高可用性和降低延遲。
在Vite中,全域性共識優先於區域性共識。區域性共識發生分叉,以全域性共識結果為準。最後,Vite為了提高整體效能,還提出自己的非同步模型,包括“請求-響應非同步模型”,“交易寫入-確認非同步模型”,“合約間通訊非同步模型”。它把交易拆分成基於“請求-響應”模式的交易對,當一個請求交易寫入賬本,代表交易成功發起。交易的寫入和確認也是非同步,它不會被確認過程堵塞,交易的確認通過快照鏈完成,快照的動作也是非同步處理。
虛擬機器的相容性和擴充套件性
Vite從目前的區塊鏈開發者生態出發,為開發者提供更大的便利。它考慮到以太坊生態中,已有不少開發者,也有不少基於Solidity和EVM開發的智慧合約已在實際執行。
Vite決定在Vite的虛擬機器上提供EVM相容性,大部分EVM指令集在Vite中可以保持原有語義,也有一些EVM指令語義需要重新定義。
以太坊的交易是滿足ACID特性的剛性事務,缺乏擴充套件性。Vite採用滿足BASE語義的方案,採用事件驅動架構,實現可擴充套件。
在智慧合約語言方面,Vite對以太坊的Solidity語言進行了擴充套件,稱為Solidity++。它支援大部分Solidity的語法,同時開發者可利用Solidity++實現跨合約通訊。
Vite計劃在Solidity++中提供標準庫,包括浮點運算、字串處理、基本數學運算、容器、排序等,可以滿足更復雜的應用需求。
基於配額的資源配置模型
大家都知道,以太坊上有Gas的概念,主要用於量化EVM程式碼執行所消耗的計算和儲存,同時也可確保EVM程式碼停機。有了手續費用,可以鼓勵節點貢獻算力和儲存。
跟以太坊的ETH一樣,Vite也有原生代幣vite,當用戶獲得資源配額或進行部署合約、註冊域名、發行代幣等時都需要消耗或抵押代幣。
但,Vite的設計也有不同。它跟以太坊通過gas 價格競價來競爭寫入賬本機會不同,Vite採用的是基於配額的資源配置協議。它沒有Gas 價格的概念。協議允許使用者通過三種方式來獲得更高的資源配額。一是在發起交易時計算一個PoW;二是在賬戶中抵押一定數量的vite代幣;三是一次性銷燬少量的vite代幣。通過計算PoW,獲得配額發起交易,可以防止粉塵攻擊。
Vite節點在驗證交易時,會根據配額來判斷。如果不滿足配額條件,交易會被拒絕。使用者需要重新打包一個交易,支付一次性費用等方式增加配額,或等待一段時間後再發起交易。當然,這也就引出了配額租賃市場,有使用者持有比較多vite代幣,可以把多餘的配額租賃給其他使用者。
Vite其他一些特點
除了以上的不同,Vite還有其他值得關注的點。
Vite支援使用者發行代幣,支援跨鏈價值傳輸,Vite有一個VCTP的跨鏈協議,允許在不同的區塊鏈進行跨鏈價值傳輸,比如在Vite和以太坊之間進行跨鏈價值傳輸。
另外Vite把路印協議內建到Vite中,也可以幫助Vite加速數字資產的流通。尤其是當用戶發行自己的數字代幣,可以通過Vite的跨鏈協議傳輸鏈外資產,利用路印協議實現資產交換。
不同於以太坊的智慧合約,Vite還把定時排程加入到內建合約,保障了時鐘觸發合約功能的安全性。在命名服務中,Vite內建了VNS服務,使用者可以註冊容易記憶的名字,更具使用者友好性。
以太坊的智慧合約一旦部署就不能修改,對開發者很不友好。Vite提供支援智慧合約升級的方案:部署新版本合約,繼承原合約的狀態;在VNS命名中把合約的名字指向新地址;通過SELFDESTRUCT指令刪除舊合約。
Vite為提高效能,還提供對賬本中的區塊進行裁剪的方案。把賬本中用不到的歷史交易刪除。不過快照鏈會完整儲存。
最後,在治理方面,Vite採用鏈上和鏈下結合的治理體系。鏈上部分基於協議投票,鏈下部分主要是針對協議本身提出改進方案。
投票方面,Vite有全域性和區域性投票。全域性投票根據Vite的比例來計算權益比重,也是投票權重的依據。全域性投票用來選舉快照共識組代理節點。區域性投票主要是針對智慧合約,用於選舉該合約的委託共識組代理節點。
快照共識組代理節點有權決定是否對Vite系統進行非相容性升級,委託共識組節點有權決定是否允許合約進行升級。代理節點的權力受共識協議約束,要達成決議,需要多數節點通過。使用者也可通過投票取消代理節點資格。
鏈下治理非常重要。Vite社群成員通過對Vite協議提出改進方案,由Vite系統參與者決定是否實施,由代理節點做最終決策。
Vite落地進展
在落地上,Vite推進較快,已經發布測試網路。同時,近期推出五款新產品,包括Vite Web版錢包、Vite APP ios版、Vite區塊鏈瀏覽器、Vite Store、Vite Pay。目前這些產品都是基於Vite測試網路釋出。
結語
通過對Vite系統要點的簡要闡述,可以看出,它有一個平衡的底層思想,為了在兼具安全的情況下,達成高效能、可擴充套件、低延遲等目標,它平衡了不同的技術路線,最終選擇了自己獨有的解決路徑。
Vite的目標很清晰,它就是要成為去中心化應用的平臺,成為區塊鏈的基礎設施。它的訴求很明確,它要達成高效能、可擴充套件、可用、能形成價值閉環,同時兼具安全的目標。
為此,圍繞這個目標,Vite採用了DAG的賬本結構,加速交易寫入和確認速度;引入了HDPoS的共識演算法,通過代理節點的協作方式輪流產生區塊,降低出塊間隔時間,多個委託共識組之間也可並行工作,提高了處理速度;同時,Vite有非同步的合約通訊模型,提高了系統的吞吐能力。
Vite的賬本交易按照賬戶緯度進行分組,不同賬戶的區塊生產由不同節點完成,提高了擴充套件性。Vite在Solidity++中提供標準庫支援,提供定時排程、VNS命名、合約升級等服務,提高了可用性。
Vite在資產流通上,支援數字資產發行,支援跨鏈價值傳輸,支援基於路印協議的代幣交換,是一個較為完整的價值流通體系。最後它通過配額的資源配置模式,提高系統資源的利用效率。
最後它推出快照鏈的鏈式結構來彌補DAG賬本結構防篡改性不足的缺點,從而提供整個Vite系統的安全性。
從Vite這些解決方案的思考中,可以看出在構建一個可以落地的去中心化應用平臺方面進行了底層思考,有一些原創探索,期待這樣的探索,能夠真正落地,能夠推動區塊鏈基礎設施發展,加速去中心化應用落地,加速區塊鏈走向更大人群。
------
風險警示:藍狐筆記所有文章都 不構成投資推薦,投資有風險 ,投資 應該考慮個人風險承受能力 ,建議對專案進行深入考察,慎重做好自己的投資決策。
通往區塊鏈的新世界 : 關注“藍狐筆記”區塊鏈公眾號: lanhubiji
或加入藍狐筆記的 知識星球 :https://t.zsxq.com/iaQNnIq