波卡的跨鏈是如何實現(xiàn)的?


“波卡知識圖譜”是我們針對波卡從零到一的入門級文章,我們嘗試從波卡最基礎(chǔ)的部分講起,為大家提供全方位了解波卡的內(nèi)容,當然這是一項巨大的工程,也充滿了挑戰(zhàn),然而我們希望通過這樣的努力讓大家能夠正確認知波卡,也讓不了解波卡的人方便快速掌握波卡相關(guān)知識,今天是該欄目的第8期,了解一下波卡跨鏈的原理究竟是怎樣的。
我們之前提到,由于Substrate框架的誕生,開發(fā)者可以高效、安全地完成一條鏈從無到有的過程,這為區(qū)塊鏈的生態(tài)帶來了一次革新的同時,也為區(qū)塊鏈帶來了更多的可能。
近幾年新興公鏈層出不窮,各自發(fā)展出特有的生態(tài),另一方面,基于Substrate的技術(shù),各種各樣的波卡平行鏈項目也開始蓬勃發(fā)展,各家公鏈各顯神通,生態(tài)欣欣向榮好不熱鬧。然而這份熱鬧之下,隨之而來的就是鏈與鏈之間的信息孤島問題了。而跨鏈作為波卡最擅長的解決方案,正逐漸成為當下的熱門話題,那么跨鏈背后的原理究竟是什么呢?
波卡中的三大角色
首先我們需要搞清楚在波卡的架構(gòu)中的三個非常重要的角色,分別是驗證者,提名者,整理者。
1
驗證者(Validator)
驗證者是要維護波卡網(wǎng)絡(luò)的安全共識和穩(wěn)定的一類人,需要運行波卡的全節(jié)點,質(zhì)押DOT,負責打包波卡網(wǎng)絡(luò)中的新區(qū)塊,為網(wǎng)絡(luò)提供服務(wù)之后,會獲得一些獎勵。這些驗證者是被那些持有DOT的提名者投票選舉出來的,獲得投票票數(shù)最多的節(jié)點就可以充當驗證者。
2
提名者(Nominator)
DOT的持有者可以選擇成為提名者,他們會質(zhì)押自己的DOT來為節(jié)點投票,可以通過提名一個或多個驗證者來獲得DOT的獎勵。不過提名者需要仔細挑選驗證者——如果驗證者行為不當,他們將被懲罰,提名者也會失去DOT。
提名者在投票后會獲得投票獎勵,而獎勵的多少取決于驗證者所獲得的節(jié)點獎勵,以及驗證人所收取的傭金,傭金是驗證者在獎勵分配給提名者之前獲得的驗證者獎勵的百分比。作為提名者,可能認為最低的傭金是最好的。然而,這并不總是正確的。
因為驗證者必須能夠在盈虧平衡點運行,以便可持續(xù)地繼續(xù)運行。依靠傭金來支付服務(wù)器成本的獨立驗證器有助于保持網(wǎng)絡(luò)去中心化。反之,提名者也不必擔心驗證者設(shè)定的傭金比例過高,因為這樣會導致提名者將會投票給其他的驗證者。
3
整理者(Collator)
整理者通過從用戶那里收集平行鏈交易,并為中繼鏈驗證者生成狀態(tài)轉(zhuǎn)換證明來維護平行鏈。換句話說,整理者通過將平行鏈上的交易整合為平行鏈的一個候選區(qū)塊,并基于這些區(qū)塊為驗證者生成狀態(tài)轉(zhuǎn)換證明來維護平行鏈。在他們向中繼鏈驗證者提出的候選區(qū)塊得到驗證之前,整理者不能繼續(xù)在平行鏈上構(gòu)建區(qū)塊。
整理者既為中繼鏈維護一個全節(jié)點,也為其特定的平行鏈維護一個全節(jié)點,這意味著他們保留了所有必要的信息,以便能夠像礦工在當前的PoW區(qū)塊鏈上所做的那樣(收集交易并創(chuàng)建到區(qū)塊中),創(chuàng)作新的區(qū)塊并執(zhí)行交易。在正常情況下,他們會整理和執(zhí)行交易以創(chuàng)建一個未密封的區(qū)塊,并將其與狀態(tài)轉(zhuǎn)換證明一起提供給一個或多個負責提出平行鏈區(qū)塊的驗證者。
另外,整理者也將負責審查,防止驗證者作惡,如果被抓到現(xiàn)行,作惡的驗證者將會失去他們所質(zhì)押的DOT以示懲罰。
請注意,最初設(shè)計中有四個角色驗證者,提名者,收集者和釣魚者,之后收集者和釣魚者的功能被整合到一起,現(xiàn)在被統(tǒng)一稱為整理者。其實之前的收集者的英文也是Collator,但是由于其作用還有整理交易的部分,所以筆者覺得以整理者來命名會更合適一些。

波卡中的XCMP是怎么運轉(zhuǎn)的
跨鏈其實并不是把A公鏈上的資產(chǎn)轉(zhuǎn)到B公鏈上的資產(chǎn)。而是說A公鏈的某些信息可以傳遞到B公鏈上,并在B公鏈上執(zhí)行某個行為,反之B公鏈也可以傳遞信息到A公鏈上,并使得A公鏈上發(fā)生某些行為,而這就是互操性,也就是跨鏈。所以,跨鏈的關(guān)鍵點在于安全、且去中心化的在不同的鏈之間傳遞消息,而這就是波卡的跨鏈消息傳遞XCMP的重要作用了。
XCMP作為波卡跨鏈系統(tǒng)重要的組成部分,解決了不同鏈之間的數(shù)據(jù)通信的難題,保證了信息處理的一致性。簡單來說,跨鏈信息傳遞XCMP是兩條不同鏈之間的橋,保證信息可以被有序、及時、公平的傳遞和處理,在信息被另一方接收到并執(zhí)行了相關(guān)操作之后,由中繼鏈幫助驗證執(zhí)行的結(jié)果,同時對驗證結(jié)果提供共識的安全保障。
打個比方,假如張三在平行鏈A上有10個AToken,李四在平行鏈B上有30個BToken,那么,李四需要在平行鏈A上創(chuàng)建一個地址,而張三則需要在平行鏈B上創(chuàng)建一個地址。之后,張三會將10個AToken轉(zhuǎn)到李四在平行鏈A上的地址上,并且生成一個狀態(tài)轉(zhuǎn)換證明,在這個證明上是要求李四在平行鏈B上把30個BToken轉(zhuǎn)移給張三在平行鏈B上的地址。
平行鏈A上的整理者準備將這個信息聯(lián)通目的地與時間戳一并傳到平行鏈B上,不過這些信息會先放置在平行鏈A的輸出隊列中,傳遞之前需要經(jīng)過平行鏈A的驗證者確認這筆交易后,就會經(jīng)過中繼鏈將該信息從平行鏈A的輸出隊列放置到平行鏈B的輸入隊列中。
當平行鏈B的驗證者收到該信息后,通過平行鏈B的整理者會執(zhí)行信息中的要求,也就是通過執(zhí)行智能合約并按預期完成資產(chǎn)轉(zhuǎn)移,將李四在平行鏈B上把30個BToken轉(zhuǎn)移給張三在平行鏈B上的地址。
整理者隨后會將此區(qū)塊交給驗證者,驗證者將驗證此消息是否已處理。如果消息已經(jīng)被處理了,并且區(qū)塊的所有其他方面都是有效的,則驗證者會將平行鏈B的這個區(qū)塊包含到中繼鏈中,由此完成了整個過程。
有人會說這種交換資產(chǎn)通過交易所不就可以做到不同鏈之間的資產(chǎn)互換了嗎?其實這里面有明顯的區(qū)別,交易所則是中心化的,而波卡跨鏈的整個過程是全部由區(qū)塊鏈和智能合約執(zhí)行,是以去中心化的方式做到鏈間通訊。
請注意,XCMP目前正在開發(fā)中,細節(jié)可能會發(fā)生變化,具體情況以最終實際推出的版本為準。

后記
隨著區(qū)塊鏈行業(yè)的發(fā)展,未來一定會出現(xiàn)多種區(qū)塊鏈并存,并且不同的區(qū)塊鏈有不同的功能和特點以滿足不同的需求。而一條滿足所有需求的區(qū)塊鏈,達到“一勞永逸”的想法是不切實際的。因此鏈與鏈之間的互操性變得尤為重要。這樣的未來正在臨近,波卡作為不同于一般只做單向跨鏈的項目,其目標是成為能鏈接所有區(qū)塊鏈的區(qū)塊鏈網(wǎng)絡(luò),將會是區(qū)塊鏈未來發(fā)展中舉足輕重的角色。
歡迎關(guān)注 PolkaWorld 視頻號「波卡世界」,每周四晚 7 點在直播間與大家見面!還可以參與 Gavin Wood 博士同款 T-shirt 的抽獎!
歡迎學習 Substrate:
https://substrate.dev/
關(guān)注 Substrate 進展:
https://github.com/paritytech/substrate
關(guān)注 Polkadot 進展:
https://github.com/paritytech/polkadot

更多內(nèi)容:
Kusama 已開啟農(nóng)耕時代,流動性挖礦正式開始!
Kusama 網(wǎng)絡(luò)什么時候開啟第二輪 Auction?
Centrifuge:加密投資人 Joel John 對鏈下 Assets Lending 的看法!
掃碼關(guān)注公眾號,回復 “1” 加入波卡群
關(guān)注 PolkaWorld
發(fā)現(xiàn) Web 3.0 時代新機遇
點個 “在看” 再走吧!
