1姨裸、為什么要研究資源和多鏈管理
依據(jù)區(qū)塊鏈實(shí)際發(fā)展的情況我們認(rèn)為蹄溉,區(qū)塊鏈 3.0 應(yīng)該能成為分布式應(yīng)用(DAPP)的平臺(tái)屎暇。為DAPP提供分布式的信任計(jì)算和資源存儲(chǔ)。作為提供信任計(jì)算的平臺(tái)况脆,我們就要設(shè)計(jì)完善的資源策略來(lái)促進(jìn)鏈上生態(tài)的繁榮饭宾,同時(shí),提供良好的擴(kuò)容方案來(lái)支持更多應(yīng)用需求格了。
因此嚴(yán)格意義上說(shuō)看铆,本文重點(diǎn)討論的是資源管理策略,而多鏈管理是我們提供資源擴(kuò)容的一種手段笆搓。
2性湿、主流的開(kāi)放區(qū)塊鏈的資源方案
資源分配方案
首先,我們來(lái)分析一下主流的開(kāi)放區(qū)塊鏈的資源分配方式:
以太坊满败,圍繞著Gas,有幾個(gè)重要概念Gas叹括,Gas Price算墨,Gas Limit。Gas 用來(lái)衡量執(zhí)行某些動(dòng)作需要多少“工作量”汁雷,也就是消耗了鏈上多少資源净嘀。Gas Limit是用戶(hù)在執(zhí)行某個(gè)操作,比如某個(gè)智能合約方法時(shí)侠讯,愿意承擔(dān)的最大的Gas量挖藏,Gas Price 是用戶(hù)愿意承擔(dān)的Gas 的價(jià)格。另外還有塊的Gas limit厢漩,同樣一個(gè)操作膜眠,Used Gas 量會(huì)有不同總之概念還是很復(fù)雜的。更麻煩的是这吻,不僅以太坊DAPP的開(kāi)發(fā)者要理解這些概念闷板,他們的普通用戶(hù)也要理解迁酸,更甚者,用戶(hù)還要理解辟躏,同樣操作每次消耗費(fèi)用不一樣,同樣支付參數(shù)土全,昨天能成功的交易捎琐,今天就可能失敗。
EOS裹匙,采用代議制的模式瑞凑,利用超級(jí)節(jié)點(diǎn)大幅度提高了全網(wǎng)的TPS,但是這并沒(méi)有使他逃脫資源陷阱幻件。之前發(fā)生的EIDOS?事件拨黔,就充分說(shuō)明了這個(gè)問(wèn)題。這完全是由EOS資源模型的先天缺陷導(dǎo)致的。它采用抵押EOS token 篱蝇,按比例分配資源的方式贺待,用戶(hù)可以免費(fèi)使用這些資源×憬兀看似公平高效麸塞,其實(shí)隱藏了很大風(fēng)險(xiǎn)。本質(zhì)上涧衙,是EOS 資源模型的不確定性導(dǎo)致哪工。它跟以太坊一樣,是一個(gè)超賣(mài)的模型弧哎。這個(gè)復(fù)雜的模型不僅面向DAPP的開(kāi)發(fā)者雁比,而且面向普通用戶(hù)。任何潛在的用戶(hù)都必須先邁過(guò)這個(gè)門(mén)檻撤嫩,大大增加了DAPP的獲客難度偎捎。
資源擴(kuò)容方案
以太坊2.0 在向POS 轉(zhuǎn)型的同時(shí),也實(shí)現(xiàn)了分片的概念序攘,進(jìn)而實(shí)現(xiàn)了資源擴(kuò)容茴她。
它通過(guò)信標(biāo)鏈來(lái)協(xié)調(diào)所分片,實(shí)現(xiàn)程奠,諸如分片區(qū)塊提議者丈牢,獎(jiǎng)勵(lì)和懲罰,提供隨機(jī)性瞄沙,組織委員會(huì)投票等等功能己沛。由于以太坊1.0的存在,以太坊Serenity做了很多適配帕识,大大拖延了Serenity 面世的時(shí)間泛粹,至今該版本仍在開(kāi)發(fā)中。
圖2?以太坊 serenity
EOS 則完全依賴(lài)超級(jí)節(jié)點(diǎn)的高性能來(lái)提供擴(kuò)容肮疗,無(wú)論是計(jì)算資源還是存儲(chǔ)資源晶姊,現(xiàn)在并沒(méi)有實(shí)質(zhì)的多鏈的方案,因此前文提到的問(wèn)題伪货,依然繼續(xù)存在们衙。
以波卡(Polkadot),Cosmos為代表的跨鏈方案更傾向于萬(wàn)鏈互聯(lián)碱呼,其核心思想是通過(guò)網(wǎng)關(guān)將不同鏈的協(xié)議進(jìn)行轉(zhuǎn)換蒙挑,進(jìn)而實(shí)現(xiàn)萬(wàn)鏈互聯(lián)的目的,聽(tīng)起來(lái)非常誘人愚臀,讓人眼前一亮忆蚀,但實(shí)際效果有待考量。比如,高安全性鏈(比如以太坊馋袜,比特幣)與一個(gè)低安全性鏈互聯(lián)的意義上在哪里男旗,它只會(huì)使得這種不安全性在其他鏈上蔓延。而且應(yīng)用范圍也有限欣鳖,多用于鏈上貨幣轉(zhuǎn)賬察皇。關(guān)于萬(wàn)鏈互聯(lián),我們會(huì)在后續(xù)文章詳細(xì)闡述泽台,本文不做過(guò)多介紹什荣。
3、鏈化未來(lái)的資源分配方案
本著降低用戶(hù)進(jìn)入?yún)^(qū)塊鏈門(mén)檻的原則怀酷,鏈化未來(lái)借鑒了廣為人知的云服務(wù)的模式設(shè)計(jì)了鏈化未來(lái)的資源模型稻爬。(注:資源指的是鏈上的計(jì)算資源,傳輸帶寬和存儲(chǔ)介質(zhì))
資源只面向DAPP開(kāi)發(fā)商
DAPP的開(kāi)發(fā)商胰坟,作為專(zhuān)業(yè)提供區(qū)塊鏈應(yīng)用的開(kāi)發(fā)者因篇,必須理解鏈上資源的管理,所以我們的模型是平臺(tái)只提供資源給開(kāi)發(fā)者笔横,開(kāi)發(fā)者利用這些資源開(kāi)發(fā)DAPP,提供具體的服務(wù)給用戶(hù)咐吼。用戶(hù)通過(guò)企業(yè)應(yīng)用注冊(cè)到鏈上吹缔,成為鏈化未來(lái)的用戶(hù)后,就可以使用鏈化未來(lái)上其他的應(yīng)用服務(wù)锯茄。在整個(gè)過(guò)程中厢塘,普通用戶(hù)不需要考慮任何跟資源相關(guān)的概念,只需要選擇應(yīng)用肌幽,得到一定的服務(wù)晚碾,并按照應(yīng)用的要求支付服務(wù)費(fèi)用即可。服務(wù)費(fèi)的形式可以是UGAS(注:UGAS?是鏈化未來(lái)資源套餐的結(jié)算單位喂急,下同)格嘁,也可以是商家發(fā)行的其他服務(wù)結(jié)算單位。
圖3?鏈化未來(lái)資源模型
開(kāi)發(fā)者購(gòu)買(mǎi)的資源是確定的
我們采用了預(yù)售模式廊移,將一條鏈的資源分成若干份糕簿,每份資源的容量都是確定的,開(kāi)發(fā)者可以選擇購(gòu)買(mǎi)資源數(shù)量和時(shí)間狡孔,一旦交易成功懂诗,DAPP的資源就確定了,不會(huì)受到其他應(yīng)用的影響苗膝。這樣可以使得開(kāi)發(fā)者穩(wěn)定的運(yùn)維DAPP殃恒。
企業(yè)服務(wù)和系統(tǒng)服務(wù)分開(kāi)
基于我們主側(cè)鏈的架構(gòu),我們將企業(yè)服務(wù)和系統(tǒng)服務(wù)分開(kāi),主鏈只部署系統(tǒng)合約离唐,提供賬號(hào)管理病附,UGAS轉(zhuǎn)移,資源購(gòu)買(mǎi)侯繁,委員會(huì)注冊(cè)等核心功能胖喳,企業(yè)應(yīng)用部署到側(cè)鏈上去,從而保證鏈化未來(lái)的核心功能不會(huì)受到其他應(yīng)用的影響贮竟。
資源可以在資源市場(chǎng)交易
我們相信市場(chǎng)的力量丽焊!
在側(cè)鏈上的應(yīng)用,必然會(huì)出現(xiàn)優(yōu)勝劣汰咕别,有些DAPP發(fā)展壯大技健,需要越來(lái)越多的資源,有些DAPP逐漸萎縮惰拱,甚至關(guān)閉雌贱,資源無(wú)人使用。這個(gè)時(shí)候偿短,逐漸退出的DAPP開(kāi)發(fā)商可以像變賣(mài)資產(chǎn)一樣把資源拿到資源市場(chǎng)上欣孤,出售給需要的DAPP。
從這個(gè)資源模型可以看出昔逗,鏈化未來(lái)并沒(méi)有壓縮已有客戶(hù)的資源來(lái)超售資源降传。鏈化未來(lái)的愿景,是真實(shí)的為實(shí)體企業(yè)服務(wù)勾怒,幫助他們使用區(qū)塊鏈這項(xiàng)新技術(shù)解決當(dāng)前的痛點(diǎn)婆排。
4、鏈化未來(lái)的多鏈管理
解決了資源分配策略笔链,我們?cè)賮?lái)聚焦資源擴(kuò)容段只。
鏈化未來(lái)采用一級(jí)主側(cè)鏈擴(kuò)容的方案。主側(cè)鏈?zhǔn)峭瑯?gòu)鏈鉴扫,均采用R-POS共識(shí)算法赞枕。這樣兩個(gè)設(shè)計(jì)大大簡(jiǎn)化了工程的復(fù)雜度,提高了網(wǎng)絡(luò)的穩(wěn)定性幔妨,使我們可以在2019年4月份上線(xiàn)服務(wù)鹦赎。
下面我們從多鏈的運(yùn)行機(jī)制, 委員會(huì)的鏈間隨機(jī)調(diào)度误堡,主側(cè)鏈通信三個(gè)方面進(jìn)行詳細(xì)闡述古话。
圖4?鏈化未來(lái)多鏈架構(gòu)模型
鏈化未來(lái)多鏈架構(gòu)的運(yùn)行機(jī)制
礦工通過(guò)主鏈的系統(tǒng)合約注冊(cè)成為鏈化未來(lái)的礦工,這個(gè)過(guò)程需要在主網(wǎng)上抵押鏈化未來(lái)的資源結(jié)算單位UGAS锁施;成功后會(huì)進(jìn)入到等待隊(duì)列陪踩,等待時(shí)間過(guò)后會(huì)被主鏈系統(tǒng)合約隨機(jī)調(diào)度到特定的側(cè)鏈進(jìn)行挖礦杖们。
礦工在側(cè)鏈挖礦(出塊)的結(jié)果會(huì)被上報(bào)到主鏈的系統(tǒng)合約,被確認(rèn)有效后由主鏈來(lái)分發(fā)挖礦獎(jiǎng)勵(lì)肩狂。同時(shí)摘完,側(cè)鏈塊頭成為主側(cè)鏈通信的基礎(chǔ)構(gòu)建。
主鏈系統(tǒng)合約會(huì)定時(shí)的對(duì)礦工做隨機(jī)調(diào)度傻谁,所以礦工不會(huì)一直停留在某條側(cè)鏈挖礦孝治,這是出于全網(wǎng)安全的考慮,后續(xù)章節(jié)會(huì)詳述這個(gè)安全設(shè)計(jì)审磁;調(diào)度對(duì)礦工來(lái)說(shuō)是透明的谈飒,他的長(zhǎng)期經(jīng)濟(jì)收益預(yù)期不會(huì)受到調(diào)度影響。
對(duì)普通用戶(hù)來(lái)說(shuō)态蒂,用戶(hù)賬號(hào)的第一次創(chuàng)建必需通過(guò)主鏈的系統(tǒng)合約進(jìn)行杭措;主鏈有著全網(wǎng)所有賬戶(hù)的全貌;當(dāng)用戶(hù)需要和某條側(cè)鏈上特定的DApp發(fā)生交互的時(shí)候钾恢,可以申請(qǐng)授權(quán)(empower)到特定的側(cè)鏈手素,主側(cè)鏈通信機(jī)制會(huì)為用戶(hù)在被授權(quán)的側(cè)鏈上創(chuàng)建同名賬戶(hù)。
對(duì)DApp開(kāi)發(fā)者來(lái)說(shuō)瘩蚪,當(dāng)他希望在某個(gè)側(cè)鏈上部署他的DApp的時(shí)候泉懦,他需要通過(guò)主鏈的系統(tǒng)合約來(lái)購(gòu)買(mǎi)針對(duì)特定側(cè)鏈的系統(tǒng)資源套餐(cpu/storage/netcombo),然后這個(gè)資源套餐購(gòu)買(mǎi)信息也會(huì)被同步到特定的側(cè)鏈疹瘦,這樣這個(gè)開(kāi)發(fā)者就可以在特定的側(cè)鏈上部署和運(yùn)行他的DApp了.
原生的主側(cè)鏈之間的UGAS 跨鏈轉(zhuǎn)移流通功能祠斧。
委員會(huì)的鏈間隨機(jī)調(diào)度
多鏈的水平擴(kuò)容面臨一個(gè)問(wèn)題就是算力/stake 稀釋。當(dāng)原有委員會(huì)擴(kuò)容成N條鏈后拱礁,每條鏈的stake就只有原來(lái)的1/N,也就是攻擊這條鏈難度變成了原來(lái)1/N辕漂。為了解決這個(gè)問(wèn)題呢灶,鏈化未來(lái)采用隨機(jī)調(diào)度委員會(huì)的方案,來(lái)大大增加攻擊者的難度钉嘹。
假設(shè)p 為攻擊者在全網(wǎng)算力/stake 的總占比鸯乃,那么, 攻擊者能實(shí)現(xiàn)控制特定側(cè)鏈的概率(在R-PoS 共識(shí)下需要>=2/3委員會(huì)成員)是一個(gè)二項(xiàng)式展開(kāi)公式:
我們可以看到,當(dāng)單側(cè)鏈的委員會(huì)數(shù)目達(dá)到80以上的時(shí)候跋涣,即使惡意攻擊者在全網(wǎng)的算力能占到40%, 他能在特定的側(cè)鏈占到大于2/3委員會(huì)成員的概率也是非常非常低的缨睡。所以在我們的多鏈架構(gòu)下,我們?cè)O(shè)定的單側(cè)鏈冷啟動(dòng)最少委員會(huì)成員為40陈辱,安全運(yùn)行的建議值是至少大于80個(gè)委員會(huì)成員奖年。
鏈間調(diào)度帶來(lái)一個(gè)新的問(wèn)題,鏈狀態(tài)的同步沛贪。隨著鏈運(yùn)行的越久陋守,數(shù)據(jù)量就越大震贵,同步需要的時(shí)間就越多,為此我們采用了了世界狀態(tài)快照機(jī)制:
新加入的節(jié)點(diǎn)可以從世界狀態(tài)快照來(lái)恢復(fù)世界狀態(tài)水评,極大提高調(diào)度效率猩系。那么如何保證快照的真實(shí)性,就變得尤為重要中燥。為此我們?cè)O(shè)計(jì)了Oracle機(jī)制來(lái)將側(cè)鏈?zhǔn)澜鐮顟B(tài)上到主鏈寇甸,供新加入側(cè)鏈的節(jié)點(diǎn)進(jìn)行世界狀態(tài)快照的校驗(yàn)。
每隔一定的周期疗涉,某條側(cè)鏈的所有礦工節(jié)點(diǎn)會(huì)把當(dāng)前的世界狀態(tài)做成一份快照存儲(chǔ)在本地拿霉,并把這份快照的hash 值記錄到主鏈上。
主鏈的系統(tǒng)合約負(fù)責(zé)記錄側(cè)鏈的世界快照hash, 只有當(dāng)某條側(cè)鏈在特定時(shí)刻的所有委員會(huì)成員的2/3以上的礦工節(jié)點(diǎn)上傳了一樣的世界狀態(tài)hash, 主鏈才會(huì)認(rèn)為這個(gè)世界狀態(tài)的hash值是有效的博敬;這個(gè)可以認(rèn)為是一次近似的對(duì)特定世界狀態(tài)的共識(shí)過(guò)程友浸。
當(dāng)?shù)V工節(jié)點(diǎn)被調(diào)度到某個(gè)側(cè)鏈的時(shí)候,它可以從主鏈獲取目標(biāo)鏈最新的若干個(gè)世界快照的hash值偏窝;當(dāng)?shù)V工節(jié)點(diǎn)從目標(biāo)側(cè)鏈的其他節(jié)點(diǎn)同步世界狀態(tài)文件的時(shí)候收恢,他就知道他接收并恢復(fù)的世界狀態(tài)是否是安全有效的世界狀態(tài)。
主側(cè)鏈通信
既然采用主側(cè)鏈架構(gòu)祭往,主鏈和側(cè)鏈必然是融合一體的伦意。因此要引入鏈間的通信(Inter-Blockchain Communication) 機(jī)制,來(lái)建立他們的聯(lián)系硼补。我們建立了兩種原生基礎(chǔ)設(shè)施來(lái)支持鏈間通信驮肉。
提供原生的主鏈與側(cè)鏈互相為輕客戶(hù)端的支持,也就是主鏈和側(cè)鏈互相保存了對(duì)方的塊頭信息已骇,能夠互相驗(yàn)證對(duì)方鏈的有效性以及某個(gè)交易確實(shí)在對(duì)方的鏈上發(fā)生且確認(rèn)离钝。
提供基于委員會(huì)投票的通用跨鏈通信機(jī)制,e.g. 當(dāng)側(cè)鏈A 需要同步主鏈的某個(gè)信息的時(shí)候褪储,可以由側(cè)鏈A的委員會(huì)成員在側(cè)鏈A的系統(tǒng)多簽合約發(fā)起對(duì)主鏈某個(gè)信息的投票卵渴,當(dāng)大于2/3的委員會(huì)投票達(dá)成的時(shí)候,即可認(rèn)為主鏈的某個(gè)信息在A(yíng)鏈的到了確認(rèn)鲤竹,并觸發(fā)后續(xù)的操作.可以看到浪读,這個(gè)是一種將通用的預(yù)言機(jī)(Oracle, 將鏈下數(shù)據(jù)上鏈的機(jī)制)運(yùn)用在跨鏈通信的使用實(shí)例。
當(dāng)前版本辛藻,我們啟用了模式a碘橘,也就是基于輕客戶(hù)端模式來(lái)搭建IBC 通道≈。基于這個(gè)IBC 通道痘拆,我們系統(tǒng)原生支持了:
礦工在側(cè)鏈間的調(diào)度信息從主鏈同步到側(cè)鏈;
主鏈的賬號(hào)同步到側(cè)鏈岩榆;
DApp開(kāi)發(fā)者購(gòu)買(mǎi)的資源套餐從主鏈同步到側(cè)鏈错负;
UGAS 可以在主側(cè)鏈同一賬戶(hù)之間流轉(zhuǎn)坟瓢。
接下來(lái),我們來(lái)討論如何基于輕客戶(hù)端完成信息的同步犹撒。其核心就是在鏈B上證明某交易T在鏈A上發(fā)生了折联,然后將其結(jié)果反映到鏈B上。
圖?5?鏈化未來(lái)輕客戶(hù)端模型
從圖5 可以看出识颊,當(dāng)鏈A的塊頭已經(jīng)同步到鏈B后诚镰,就可以針對(duì)某個(gè)交易T(比如用戶(hù)U轉(zhuǎn)賬到B鏈),提交它的merkle proof 給鏈B來(lái)證明交易T確實(shí)在鏈A發(fā)生了祥款。然后將資產(chǎn)在B鏈反映出來(lái)清笨。這樣就完成了跨鏈轉(zhuǎn)賬。其余的跨鏈同步也是一樣的道理刃跛。
那么新的問(wèn)題來(lái)了抠艾,我們?nèi)绾伪WC鏈B得到的塊頭,確實(shí)是鏈A產(chǎn)生的呢桨昙?如圖5检号,在我們的設(shè)計(jì)中,塊頭信息除了常規(guī)的proposer, transaction merkle, previous hash 等等之外蛙酪,還有兩個(gè)optional 的數(shù)據(jù)結(jié)構(gòu)會(huì)周期性的出現(xiàn)在塊頭里齐苛。
Confirm Point包含了當(dāng)前委員會(huì)成員對(duì)上一塊的有效性的聚合簽名。我們知道桂塞,PoW的塊頭是“自證清白”的凹蜂,也就是只要塊頭里的nonce 值是對(duì)的,那區(qū)塊的鏈接就必然是有效的阁危;但是PoS 是基于委員會(huì)成員的投票的玛痊,有效的委員會(huì)簽名代表了有效的投票,那一種思路是把每輪共識(shí)過(guò)程中委員會(huì)的投票信息都放到塊頭里面去狂打,但是這樣就需要消耗大量的存儲(chǔ)空間(另外一個(gè)難點(diǎn)是要對(duì)哪些投票信息記錄到塊頭里進(jìn)行共識(shí)卿啡,所以只能是下一塊記錄上一塊的投票信息);我們采用的方法是周期性的選取一個(gè)塊把對(duì)這個(gè)塊的簽名投票信息放到塊頭里菱父;這樣對(duì)于只維護(hù)塊頭的輕客戶(hù)端來(lái)說(shuō),只有當(dāng)遇到包含Confirm Point 的塊頭的時(shí)候剑逃,才能夠把這之前的塊頭都一起確認(rèn)了浙宜;可見(jiàn)的壞處是跨鏈的塊頭/交易確認(rèn)的延遲受限于Confirm Point的出現(xiàn)頻率,而提高這個(gè)頻率會(huì)有額外的存儲(chǔ)和計(jì)算的開(kāi)銷(xiāo)蛹磺,這個(gè)也算是效率與存儲(chǔ)/計(jì)算資源之間的一種tradeoff粟瞬。
Epoch Point 包含了當(dāng)前所有委員會(huì)成員的全列表;Epoch Point 只有委員會(huì)成員發(fā)生變化的時(shí)候才會(huì)出現(xiàn)在塊頭里萤捆;上面提到了Confirm Point 是當(dāng)前委員會(huì)成員的簽名投票的聚合裙品,但是輕客戶(hù)端既然不維護(hù)目標(biāo)鏈的世界狀態(tài)俗批,它如何知道當(dāng)前有效的委員會(huì)成員是哪些呢?那他就需要從最新的Epoch Point 里面來(lái)拿到全列表了市怎。
綜上所述岁忘,可以看到Confirm point &Epoch point 的設(shè)計(jì)理念就是把PoS 的核心固化在塊頭信息里:誰(shuí)stake了成為了委員會(huì)成員以及委員會(huì)的變化歷史,哪些委員會(huì)成員簽名投票承認(rèn)了塊的有效性;只有當(dāng)輕客戶(hù)端對(duì)接收到的塊頭信息的有效性有足夠的信心的時(shí)候区匠,跨鏈通信的有效性確認(rèn)才成為了可能干像。
5、跨鏈
我們支持非常靈活的跨鏈方案驰弄。
比如以太坊麻汰,比特幣,還有一些基于超級(jí)賬本(Hyperledger)?的聯(lián)盟鏈都可以基于這個(gè)方案戚篙,非常方便的跟鏈化未來(lái)連接起來(lái)五鲫,實(shí)現(xiàn)跨鏈交易。
下面基于我們的一個(gè)聯(lián)盟鏈的案例來(lái)詳細(xì)闡述一下鏈化未來(lái)的跨鏈方案岔擂。
我們假設(shè)有一個(gè)聯(lián)盟鏈位喂,它上面有很多數(shù)據(jù)和交易,是可以對(duì)外公開(kāi)并產(chǎn)生價(jià)值的智亮。聯(lián)盟鏈就可以選擇鏈化未來(lái)作為合作平臺(tái)忆某,公開(kāi)部分?jǐn)?shù)據(jù)和交易。
異構(gòu)鏈跨鏈到鏈化未來(lái)
圖 6 ????異構(gòu)鏈跨鏈
首先阔蛉,我們假設(shè)聯(lián)盟鏈驗(yàn)證節(jié)點(diǎn)的驗(yàn)證公鑰是已知的弃舒。聯(lián)盟鏈驗(yàn)證節(jié)點(diǎn)是有限的,并且公鑰作為身份的公開(kāi)信息状原,是應(yīng)該被公開(kāi)的聋呢。因此這個(gè)條件很容易滿(mǎn)足。接下來(lái)需要建立一個(gè)聯(lián)盟鏈到鏈化未來(lái)的轉(zhuǎn)換合約颠区,我們稱(chēng)之為跨鏈合約削锰。這個(gè)合約要做以下三個(gè)功能:
接受聯(lián)盟鏈的塊頭,并按照Hyperledger的協(xié)議驗(yàn)證這個(gè)塊頭的有效性毕莱。
接受聯(lián)盟鏈的交易器贩,并根據(jù)Hyperledger 的協(xié)議驗(yàn)證這個(gè)交易是否有效。
如果被提交的聯(lián)盟鏈的交易是有效的朋截,就根據(jù)跨鏈的協(xié)議將這筆交易反映到鏈化未來(lái)上蛹稍,從而實(shí)現(xiàn)聯(lián)盟鏈到鏈化未來(lái)的跨鏈交易。
當(dāng)然部服,這個(gè)跨鏈合約的部署需要按照鏈化未來(lái)DAPP 的部署方案唆姐,首先購(gòu)買(mǎi)套餐后才能部署成功。
鏈化未來(lái)向外跨鏈
類(lèi)似的廓八,鏈化未來(lái)也可以跨鏈到其他區(qū)塊鏈奉芦。前提是這個(gè)鏈提供了跨鏈的方案赵抢。比如波卡(polkadot)。
下面我們以鏈化未來(lái)跨鏈到波卡(Polkadot)?為例來(lái)說(shuō)明這一過(guò)程声功。首先在波卡(Polkadot)上建立一條平行鏈并記錄當(dāng)前驗(yàn)證節(jié)點(diǎn)的賬號(hào)和公鑰烦却。這條平行鏈需要完成以下功能:
接受鏈化未來(lái)的塊頭,并根據(jù)鏈化未來(lái)協(xié)議如圖 5 所示减噪,驗(yàn)證塊頭的有效性短绸。
接受鏈化未來(lái)的交易,根據(jù)交易筹裕,merkle proof醋闭,以及所在塊的塊頭驗(yàn)證該交易的有效性。
當(dāng)被提交交易被驗(yàn)證有效后朝卒,就根據(jù)跨鏈的協(xié)議將這筆交易反映到波卡(Polkadot)鏈上证逻,完成交易跨鏈。
從以上兩個(gè)案例可以看出抗斤,主流的跨鏈結(jié)束的核心都是相似的囚企,只是根據(jù)不同鏈的特點(diǎn)表現(xiàn)形式有所不同。波卡(Polkadot)采用了平行鏈的形式瑞眼,也就是任何跨鏈需求龙宏,或者業(yè)務(wù)需求需要去建立一條平行鏈,將業(yè)務(wù)邏輯以為一個(gè)模塊實(shí)現(xiàn)在平行鏈上伤疙,這顯然是一種非常重資產(chǎn)的實(shí)現(xiàn)方式银酗,而鏈化未來(lái)采用了合約層跨鏈,跨鏈合約的資源套餐可以根據(jù)需求靈活調(diào)整徒像,是一種更輕量級(jí)的解決方案黍特。
以上介紹最基本的跨鏈方案,在此基礎(chǔ)上還有很多跨鏈的變種方案锯蛀,比如將驗(yàn)證部分從跨鏈合約/平行鏈中剝離出來(lái)灭衷,跨鏈合約/平行鏈只提供鏈上資產(chǎn)抵押和管理。這里就不一一列舉了旁涤。
6翔曲、該領(lǐng)域面臨的問(wèn)題及發(fā)展方向 –?技術(shù)創(chuàng)新路線(xiàn)
這個(gè)領(lǐng)域未來(lái)的創(chuàng)新方向主要集中在跨鏈/分片技術(shù)的發(fā)展,如何實(shí)現(xiàn)高效隨機(jī)的選取側(cè)鏈/分片/平行鏈的驗(yàn)證者(委員會(huì)成員)是提高資源安全擴(kuò)容的關(guān)鍵劈愚。在這方面部默,除了上述介紹的鏈化未來(lái)的研究,業(yè)界知名的波卡(Polkadot)造虎,以太坊2.0也都有各自的解決方案。他們的愿景更宏大帶來(lái)的開(kāi)銷(xiāo)和限制也更大纷闺。
波卡(Polkadot)主打的共享安全策略算凿,本質(zhì)就是用有限的驗(yàn)證者為多條平行鏈做驗(yàn)證工作份蝴,它們期望驗(yàn)證者可以在不同平行鏈之間瞬間切換,這就要求驗(yàn)證者可以無(wú)狀態(tài)的驗(yàn)證平行鏈的交易氓轰。收集人需要?jiǎng)?chuàng)建未打包區(qū)塊婚夫,并提供零知識(shí)證明給驗(yàn)證人,來(lái)輔助驗(yàn)證人無(wú)狀態(tài)驗(yàn)證交易署鸡。并且其安全性強(qiáng)烈依賴(lài)釣魚(yú)人的審計(jì)案糙。這里面又涉及到不同角色間利益合理分配問(wèn)題,可能帶來(lái)的審計(jì)的有效性問(wèn)題靴庆。
以太坊2.0 serenity时捌,同樣將依賴(lài)無(wú)狀態(tài)客戶(hù)端來(lái)輔助隨機(jī)選取驗(yàn)證者,驗(yàn)證者被隨機(jī)分配到某個(gè)shard炉抒,需要在前瞻期間下載保存根狀態(tài)奢讨。交易發(fā)送者需要提供見(jiàn)證數(shù)據(jù),以此來(lái)驗(yàn)證交易對(duì)賬戶(hù)產(chǎn)生影響的“前狀態(tài)”(pre-state)焰薄,并提供足夠的信息來(lái)計(jì)算交易執(zhí)行后的“后狀態(tài)根”(post-state root)拿诸。
兩大項(xiàng)目都依賴(lài)無(wú)狀態(tài)范式(stateless paradigm),如何植入到區(qū)塊的生產(chǎn)和驗(yàn)證過(guò)程中塞茅,是研究的重點(diǎn)亩码。至今,兩個(gè)項(xiàng)目跨鏈/分片的核心功能仍在開(kāi)發(fā)中野瘦,可見(jiàn)其工程的復(fù)雜性描沟。在瞬息萬(wàn)變的互聯(lián)網(wǎng)/區(qū)塊鏈領(lǐng)域,若不是這兩個(gè)項(xiàng)目深厚的背景缅刽,很難相信市場(chǎng)能給予如此的耐心啊掏。因此解決方案的選擇要根據(jù)項(xiàng)目自身特點(diǎn),在開(kāi)發(fā)效率和設(shè)計(jì)完備性上做出取舍衰猛。鏈化未來(lái)采用敏捷迭代開(kāi)放迟蜜,在當(dāng)前實(shí)現(xiàn)的跨鏈架構(gòu)上,也將考慮加入無(wú)狀態(tài)范式啡省,在一定場(chǎng)景下提高多鏈的管理效率娜睛。