作為一個(gè)嚴(yán)謹(jǐn)?shù)目珂溂夹g(shù)項(xiàng)目,我們準(zhǔn)備通過本文闡述我們的觀點(diǎn),并希望引起整個(gè)區(qū)塊鏈行業(yè)對(duì)這一問題的深入探討和思考。同時(shí)我們也將在本文中公布Wanchain的跨鏈機(jī)制。
區(qū)塊鏈發(fā)展至今,創(chuàng)造了無數(shù)的token,不同的token本質(zhì)上是一種記賬符號(hào),某種價(jià)值的符號(hào)表現(xiàn)。這一符號(hào)可以是作為價(jià)值尺度的“貨幣”符號(hào)(如比特幣),或者是某種“內(nèi)在價(jià)值”的虛擬化符號(hào)。暫且拋開貨幣型的token不談,基于區(qū)塊鏈token的“內(nèi)在價(jià)值”類似于傳統(tǒng)金融意義上的資產(chǎn)“內(nèi)在價(jià)值”:現(xiàn)代金融的重要特征是實(shí)際資產(chǎn)的價(jià)值化,實(shí)際資產(chǎn)被以貨幣為度量的金融虛擬資產(chǎn)(如股票、金融衍生品等)所表征,社會(huì)實(shí)際資產(chǎn)的積累也表現(xiàn)為虛擬資產(chǎn)的積累。區(qū)塊鏈為某種“內(nèi)在價(jià)值”提供了更加便捷、透明和公平的記賬方式,區(qū)塊鏈上的token可以讓更大范圍的“內(nèi)在價(jià)值”被體現(xiàn)。
簡單來看跨鏈就是解決如何讓一條鏈上的token轉(zhuǎn)移到另一條鏈上,從技術(shù)層面來看token是一段數(shù)字信息,很多人會(huì)將token理解為信息的傳遞,如果token的傳遞只是簡單信息傳遞的過程,那在分布式的系統(tǒng)中,中本聰也沒有必要設(shè)計(jì)精巧的POW機(jī)制來解決雙重支付問題。
正如上文中所述,token代表的是某種價(jià)值,價(jià)值就需要有精確的記賬作為保證,否則價(jià)值將煙消云散。在傳統(tǒng)世界中,中心化的記賬體系下,無論是出于責(zé)任、義務(wù)還是商業(yè)利益,央行、商業(yè)銀行、支付機(jī)構(gòu)、證券交易所、證券登記機(jī)構(gòu)、房產(chǎn)登記機(jī)構(gòu)在確保各類價(jià)值記賬的精確性。而在區(qū)塊鏈?zhǔn)澜缰校涃~的精確性就由一個(gè)個(gè)分布式的區(qū)塊鏈賬本保障,所以說跨鏈的不只是信息流,更是信息流背后的需要被精確記賬的價(jià)值。
區(qū)塊鏈記錄的是價(jià)值,跨鏈的也是價(jià)值,如果從記賬的角度,單一區(qū)塊鏈解決的是分布式情況下如何精確記賬的問題,跨鏈解決的是兩個(gè)分布式賬本針對(duì)同一用戶或不同用戶控制的賬戶發(fā)生token轉(zhuǎn)移時(shí),如何在兩個(gè)賬本中精確記賬的問題。
很多白皮書或者技術(shù)文章中把跨鏈稱為協(xié)議,但這個(gè)協(xié)議不完全等同于互聯(lián)網(wǎng)的TCP/IP那樣的信息傳輸協(xié)議。因?yàn)樾畔鬏攨f(xié)議只需要確保接收方收到完整信息,發(fā)送方得到相應(yīng)的反饋,在這個(gè)過程中如果出現(xiàn)傳輸障礙是可以多次反復(fù)的發(fā)送,而不用考慮信息重復(fù)發(fā)送的問題。
但是在賬本之間同步數(shù)據(jù),就需要確保兩個(gè)賬本的變動(dòng)是一致的,否則就會(huì)出現(xiàn)雙重支付或者價(jià)值丟失的問題。在這過程中信息傳遞只是兩個(gè)賬本同步數(shù)據(jù)的過程,而不是最終的目的和結(jié)果??珂湵举|(zhì)是在價(jià)值守恒定律前提下,價(jià)值在不同區(qū)塊鏈之間流動(dòng)的過程。
由于區(qū)塊鏈技術(shù)快速發(fā)展,每一條鏈的記賬機(jī)制、共識(shí)機(jī)制都有區(qū)別,建立通用的跨鏈協(xié)議就變的更加復(fù)雜。這完全不同于互聯(lián)網(wǎng)中所說的“協(xié)議”(protocol),而更像是“協(xié)定”(agreement)。
如果用現(xiàn)實(shí)世界舉例,“協(xié)議”(protocol)類似于傳真機(jī)和集裝箱,這類協(xié)議相對(duì)容易達(dá)成,而且一旦達(dá)成,將被更大范圍內(nèi)使用,規(guī)模效應(yīng)明顯。而跨鏈“協(xié)定”(agreement)更像是雙邊和多邊的貿(mào)易協(xié)定,在達(dá)成和實(shí)現(xiàn)過程中個(gè)性化更加明顯,大范圍的統(tǒng)一更加困難。如果把每一個(gè)區(qū)塊鏈生態(tài)看成一個(gè)經(jīng)濟(jì)體,“協(xié)定”就更加貼切了。
現(xiàn)實(shí)世界中的“協(xié)定”(agreement)不只是一個(gè)技術(shù)問題,協(xié)定的達(dá)成是需要參與方協(xié)商一致的,但是在區(qū)塊鏈的世界中,“協(xié)定”(agreement)的對(duì)象不是一個(gè)主體,而是一個(gè)分布式的網(wǎng)絡(luò),希望通過傳統(tǒng)的主體談判模式達(dá)成“協(xié)定”基本不可能——因?yàn)闆]有主體,比特幣生態(tài)內(nèi)部調(diào)整內(nèi)部協(xié)議(如擴(kuò)容)都無法達(dá)成共識(shí),與其他區(qū)塊鏈網(wǎng)絡(luò)達(dá)成跨鏈協(xié)定更加不可行。
區(qū)塊鏈?zhǔn)澜绲目珂?ldquo;協(xié)定”(agreement)變成了一個(gè)技術(shù)問題,需要通過技術(shù)的方法實(shí)現(xiàn)兩個(gè)賬本的跨賬本精確記賬問題。
分析到此,跨鏈稱為協(xié)定(agreement)和協(xié)議(protocol)都是不準(zhǔn)確的,而是一種機(jī)制(mechanism)。
跨鏈本質(zhì)上是一套鏈和鏈之間的清算機(jī)制,而清算的本質(zhì)就是精確記賬。中本聰把比特幣描述為一套點(diǎn)對(duì)點(diǎn)的現(xiàn)金系統(tǒng),實(shí)際上是一套點(diǎn)對(duì)點(diǎn)的賬本或者說是一套點(diǎn)對(duì)點(diǎn)的清算機(jī)制。如果全球只有一套比特幣賬本,中本聰?shù)哪繕?biāo)就實(shí)現(xiàn)了。而區(qū)塊鏈的發(fā)展趨勢看,無論是技術(shù)實(shí)現(xiàn)的角度還是商業(yè)應(yīng)用的角度,一套賬本是不可能實(shí)現(xiàn)的。相反無數(shù)的區(qū)塊鏈出現(xiàn),區(qū)塊鏈?zhǔn)澜缯谙蚬嗣枋龅淖杂墒袌龇较虬l(fā)展。清算能力是任何價(jià)值交換市場存在的基礎(chǔ),沒有便捷的清算,市場就會(huì)缺乏流動(dòng)性,更繁榮的市場就無法出現(xiàn)。
數(shù)字貨幣發(fā)展至今,交易所功不可沒,交易所除了提供價(jià)格發(fā)現(xiàn)的能力外,更重要的能力在于增強(qiáng)流動(dòng)性。但成也蕭何敗也蕭何,交易所中心化的弊端一直伴隨著數(shù)字貨幣的發(fā)展,黑客攻擊、交易所跑路、后臺(tái)不透明等問題成為數(shù)字經(jīng)濟(jì)的阿克琉斯之踵。跨鏈的意義之一就在于通過分布式的方式提供鏈和鏈之間轉(zhuǎn)賬的清算機(jī)制。
很多時(shí)候,大家會(huì)把交易所的能力與跨鏈提供的能力混為一談。實(shí)際上是有區(qū)別的,首先交易所本身為token提供價(jià)格撮合機(jī)制,其次交易所是一個(gè)集合了各種token賬本的清算中心,只不過這個(gè)清算中心是中心化的。應(yīng)該說后者是前者的基礎(chǔ),沒有后者撮合交易是不可行的。而跨鏈機(jī)制是通過分布式的方式提供更基礎(chǔ)的清算能力。分布式跨鏈清算能力的建立也是分布式交易所產(chǎn)生的前提。
記賬和清算是一切金融活動(dòng)的基礎(chǔ),現(xiàn)代金融業(yè)的所有金融活動(dòng)都是基于銀行系統(tǒng)提供的基礎(chǔ)清算能力而展開的。無論是簡單的轉(zhuǎn)賬業(yè)務(wù)、存貸,還是跨國支付,第三方支付,基金,保險(xiǎn)、金融衍生品都是基于銀行系統(tǒng)提供的基礎(chǔ)清算能力。類比到區(qū)塊鏈?zhǔn)澜缡峭瑯拥牡览恚瑪?shù)字世界的泛金融應(yīng)用創(chuàng)新與跨鏈清算能力密切相關(guān)。
當(dāng)前的區(qū)塊鏈?zhǔn)澜绲那逅泱w系是由一個(gè)個(gè)分布式的區(qū)塊鏈網(wǎng)絡(luò)與一個(gè)個(gè)中心化的交易所共同構(gòu)成的。在很多時(shí)候,中心化交易所的作用甚至超過了區(qū)塊鏈網(wǎng)絡(luò)本身,例如很多擁有Token的用戶從始至終都沒有使用過區(qū)塊鏈錢包,而是把交易所的機(jī)制當(dāng)成了區(qū)塊鏈的全部,甚至根本不關(guān)心區(qū)塊鏈的意義所在。中心化交易所在放大區(qū)塊鏈意義的同時(shí)也在扭曲它。
讓我們回顧區(qū)塊鏈經(jīng)濟(jì)簡短的交易發(fā)展史,在最初只有比特幣的時(shí)代,法幣與比特幣的交易機(jī)制讓比特幣這個(gè)極客圈子的“玩具”有機(jī)會(huì)與現(xiàn)實(shí)世界接軌,讓更多人有機(jī)會(huì)持有比特幣。隨著更多Token的誕生,法幣交易通道的減少,幣幣交易讓區(qū)塊鏈?zhǔn)澜缈焖侔l(fā)展成為了一個(gè)相對(duì)獨(dú)立的經(jīng)濟(jì)體系,比特幣成為了區(qū)塊鏈?zhǔn)澜缰械挠餐ㄘ浐蛢r(jià)值度量尺度。
在整個(gè)過程中,中心化交易所居功至偉,他們不但是現(xiàn)實(shí)世界與區(qū)塊鏈?zhǔn)澜绲某鋈肟冢€是不同區(qū)塊鏈網(wǎng)絡(luò)的連接器。但是問題也隨之而來,交易所成為了流量的入口,掌握了區(qū)塊鏈?zhǔn)澜缱畲蟮脑捳Z權(quán),任何一個(gè)獨(dú)立的區(qū)塊鏈網(wǎng)絡(luò)無論大小,都要看交易所的眼色行事,否則無法獲得進(jìn)入?yún)^(qū)塊鏈?zhǔn)澜绲娜肟冢豢赡芘c傳統(tǒng)世界連接。簡單來說,交易所決定了一個(gè)新的token是否有資格接入其他token以及法幣共同構(gòu)成的清算網(wǎng)絡(luò)。很多區(qū)塊鏈項(xiàng)目的發(fā)展在被扭曲為滿足交易所需求的方向上越走越遠(yuǎn)。
區(qū)塊鏈經(jīng)濟(jì)網(wǎng)絡(luò)急需分布式的清算機(jī)制加入,他的意義不在于要迅速替代中心化的交易所,而是帶來一種新的選擇與制衡,讓被扭曲的部分有被矯正的可能,讓區(qū)塊鏈的真正價(jià)值被再次發(fā)掘,讓用分布式的方式解決分布式的問題成為可能。
所以我們認(rèn)為跨鏈能力實(shí)現(xiàn)后的最重要的應(yīng)用場景是分布式交易,這里包括分布式交易所、分布式場外交易、中心化競價(jià)撮合與分布式清結(jié)算混合模式的交易所等多種實(shí)現(xiàn)模式。
在以太坊的白皮書中,Vitalik提到的最重要的應(yīng)用場景之一就是金融衍生品或者類金融合約應(yīng)用,這也是智能合約似乎可以發(fā)揮最大價(jià)值的應(yīng)用場景之一。我們依然相信Vitalik的判斷和理想,只是現(xiàn)實(shí)發(fā)展情況出現(xiàn)了一些變化。
大量的競爭鏈(無論是公鏈還是聯(lián)盟鏈)的出現(xiàn),讓無論是數(shù)字資產(chǎn),傳統(tǒng)上鏈金融資產(chǎn)存在于很多條不同的鏈上,也就是記賬的基礎(chǔ)賬本不同。在此情況下,要實(shí)現(xiàn)數(shù)字金融創(chuàng)新的前提條件除了智能合約之外,還需加上分布式的清算能力(跨鏈能力)。否則基于智能合約的應(yīng)用場景將十分有限。
舉個(gè)例子,如果一個(gè)傳統(tǒng)的金融資產(chǎn)在某個(gè)銀行聯(lián)盟鏈中,一個(gè)數(shù)字資產(chǎn)在以太坊網(wǎng)絡(luò),一個(gè)穩(wěn)定貨幣在Wanchain網(wǎng)絡(luò),要基于這兩個(gè)基礎(chǔ)資產(chǎn)創(chuàng)設(shè)一個(gè)以穩(wěn)定貨幣作為對(duì)價(jià)的金融合約(以智能合約的方式而非中心化的方式),在沒有跨鏈能力的時(shí)候是完全不可行的。因?yàn)橐獎(jiǎng)?chuàng)建這樣一個(gè)智能合約,需要首先將上述三個(gè)資產(chǎn)轉(zhuǎn)移到一個(gè)區(qū)塊鏈網(wǎng)絡(luò)中,然后在該網(wǎng)絡(luò)中部署智能合約,才能實(shí)現(xiàn)通過合約控制三個(gè)資產(chǎn)的相互關(guān)系。簡單解釋就是先把三個(gè)資產(chǎn)放到一個(gè)賬本中,再通過智能合約統(tǒng)一控制這個(gè)賬本。
具體的應(yīng)用場景會(huì)十分豐富,單純從技術(shù)上來看傳統(tǒng)金融可以實(shí)現(xiàn)的,數(shù)字金融可以實(shí)現(xiàn)的更多。描述類似場景的文章很多,在此不再一一展開。
Wanchain在白皮書中就提到過,區(qū)塊鏈技術(shù)在傳統(tǒng)資產(chǎn)上鏈和數(shù)字資產(chǎn)兩個(gè)領(lǐng)域的發(fā)展如同兩個(gè)平行的世界。從長遠(yuǎn)來看,區(qū)塊鏈帶來的社會(huì)經(jīng)濟(jì)變革總會(huì)讓這兩條平行線交匯在一起。
從技術(shù)上來看,無論是已經(jīng)出現(xiàn)的以傳統(tǒng)資產(chǎn)上鏈為代表的商業(yè)聯(lián)盟鏈,還是以穩(wěn)定幣、虛擬資產(chǎn)上鏈為代表的公鏈項(xiàng)目,甚至是國家數(shù)字貨幣為代表的主權(quán)公鏈,最終要發(fā)揮更大的商業(yè)價(jià)值和產(chǎn)生更多的創(chuàng)新應(yīng)用,都需要跨鏈能力作為支撐。
跨鏈能力是推動(dòng)基于區(qū)塊鏈的數(shù)字經(jīng)濟(jì)全面發(fā)展和融合的技術(shù)驅(qū)動(dòng)力。我們無法預(yù)知未來基于區(qū)塊鏈的金融是怎樣的一番景象,但是回看歷史,互聯(lián)網(wǎng)技術(shù)催生的第三方支付、科技金融創(chuàng)新正在以巨大的力量重新雕刻著傳統(tǒng)金融的輪廓,深刻的影響著人類金融的進(jìn)程。
跨鏈從Blockstream提出側(cè)鏈概念以來,一直是區(qū)塊鏈技術(shù)的重點(diǎn)攻關(guān)方向。目前并沒有被普遍認(rèn)可的跨鏈機(jī)制,原因除了在此之前需求的強(qiáng)烈程度沒有那么高之外,技術(shù)上的難點(diǎn)也是一大障礙。
跨鏈需要解決的兩個(gè)難點(diǎn)問題。一個(gè)是如何通過分布式的方式驗(yàn)證原鏈上的交易狀態(tài)。原鏈上的交易信息對(duì)于另一條鏈來說是一個(gè)外部信息(Oracle),如何保證這個(gè)外部信息進(jìn)入另一條鏈時(shí)是正確的就是整個(gè)跨鏈機(jī)制的重要環(huán)節(jié)。如果要考慮到使用POW機(jī)制的區(qū)塊鏈上沒有終局狀態(tài)(始終存在分叉的情況,只是隨著確認(rèn)塊的增加,概率逐漸變?。?,這個(gè)問題的復(fù)雜度會(huì)更高。為了后文描述的便利性,本文把這個(gè)難點(diǎn)定義為難點(diǎn)Alpha。
可能對(duì)區(qū)塊鏈分布式機(jī)制不熟悉的讀者會(huì)難以理解這個(gè)難點(diǎn),因?yàn)樵谥行幕瘷C(jī)制下,這個(gè)難題簡單很多。舉個(gè)例子,如果Alice用A銀行的信用卡在B銀行的POS機(jī)上進(jìn)行消費(fèi),POS機(jī)上的指令會(huì)通過Visa這樣的組織將刷卡信息傳遞到A銀行確認(rèn),當(dāng)Visa收到A銀行確認(rèn)信息后,跨行支付就完成了。A銀行確認(rèn)的就是Alice的交易合法,這時(shí)候B銀行或者Visa不用考慮這筆交易是否真的合法,因?yàn)檫@時(shí)候A銀行已經(jīng)承擔(dān)了付款的責(zé)任,無論Alice是否真有足夠的余額還是A銀行的系統(tǒng)錯(cuò)誤,都是A銀行與Alice的事情了。而在區(qū)塊鏈分布式記賬的情況下,沒有一個(gè)中心化A銀行來確認(rèn)并承諾付款。如果將A、B銀行替換為A、B鏈,確認(rèn)A鏈上Alice的與跨鏈有關(guān)的付款交易是否完成就變成了一個(gè)難題。
如果驗(yàn)證跨鏈交易的是分布式的節(jié)點(diǎn),這個(gè)難題會(huì)衍生為如何確保處理跨鏈的節(jié)點(diǎn)不作惡。節(jié)點(diǎn)作惡就會(huì)導(dǎo)致鏈之間信息驗(yàn)證的錯(cuò)誤,進(jìn)而產(chǎn)生雙重支付而給跨鏈用戶造成損失,這與在單一賬本中記賬的節(jié)點(diǎn)作惡面臨的情況類似,但是當(dāng)這個(gè)問題放在兩條互不識(shí)別的鏈上時(shí),問題的復(fù)雜性就變高了。
另一個(gè)難點(diǎn)是跨鏈交易要確保原鏈上的token總量不會(huì)因?yàn)榭珂湺鴾p少或增多(即價(jià)值守恒定律定義為難點(diǎn)Beta)。原鏈上Token總量減少的后果是當(dāng)token需要跨回原鏈時(shí),原鏈無法產(chǎn)生新的token,也就是只能單向跨鏈。原鏈token增多是名義上的增多,實(shí)際上是本來已經(jīng)跨到另一個(gè)賬本的token在原鏈上被雙重支付了,這種情況違背了精確記賬的原則,是在任何時(shí)候都無法接受的。因此當(dāng)token跨出原鏈時(shí),原鏈上的token必然需要進(jìn)入“鎖定”的狀態(tài),當(dāng)token跨回原鏈時(shí),這些token需要被解鎖。如何通過去信任的管理機(jī)制完成“鎖定”“解鎖“的過程就成為了跨鏈的關(guān)鍵。
確保難點(diǎn)Beta實(shí)現(xiàn)的另一個(gè)關(guān)鍵是保證交易的原子性。交易的原子性,簡單來說是指交易處理的某個(gè)環(huán)節(jié)停止,整個(gè)交易能夠撤銷,而不會(huì)存在部分成功,部分失敗的情況。無法保證原子性會(huì)造成雙重支付。
以上問題將在后文描述Wanchain跨鏈的實(shí)現(xiàn)模式時(shí)進(jìn)一步論述。
繁雜的跨鏈技術(shù)分析文章都試圖對(duì)跨鏈技術(shù)進(jìn)行分類,經(jīng)常被提到的如中繼模式(Relay),側(cè)鏈模式(Sidechain)等,這些分類文章往往沒有弄清楚不同模式解決的是跨鏈中的什么難題,不同的模式往往只是解決了跨鏈中的某一難題而存在的,放在一起分類不夠嚴(yán)謹(jǐn)和科學(xué)。下文中我們將詳細(xì)介紹和分析目前跨鏈中常用的模式,而不是簡單、粗暴的去做分類。
BTC-Relay是一個(gè)在以太坊上部署的Relay合約,其目標(biāo)是通過第三方提交BTC的區(qū)塊頭,為以太坊上的跨鏈等其他應(yīng)用提供一個(gè)可信的BTC數(shù)據(jù)源。在Relay合約會(huì)校驗(yàn)區(qū)塊頭的合法性,由于BTC強(qiáng)大的算力保證,第三方偽造合法區(qū)塊頭幾乎不可能,因此理論上BTC-Relay能夠提供一個(gè)客觀的比特幣鏈上的數(shù)據(jù)。但是BTC-Relay的問題在于,由于存儲(chǔ)區(qū)塊頭和驗(yàn)證合法性需要大量的Gas,第三方提交區(qū)塊頭將花費(fèi)大量的手續(xù)費(fèi),而調(diào)用Relay的交易較少無法覆蓋提交區(qū)塊頭花費(fèi)的手續(xù)費(fèi),如果提交方將調(diào)用手續(xù)費(fèi)提高,則調(diào)用Relay的交易會(huì)變少,最終仍然無法覆蓋手續(xù)費(fèi),對(duì)于數(shù)據(jù)的提交者是不經(jīng)濟(jì)的。
BTC-Relay是平均10分鐘提交一次(比特幣出塊速度),如果是提交出塊速度很快的鏈的區(qū)塊頭,提交所有區(qū)塊頭本身將是一筆巨大的開銷。
Relay本身并不是一個(gè)完整的跨鏈方案,而是為解決跨鏈中的原鏈數(shù)據(jù)的客觀性問題(難點(diǎn)Alpha),該機(jī)制不涉及交易的處理。
跨鏈概念的鼻祖毫無疑問是Sidechain的提出者,Blockstream團(tuán)隊(duì)。其論文中對(duì)于跨鏈涉及到的難題,提出使用雙向錨定(two-way peg)的方法:為了將父鏈幣轉(zhuǎn)移為側(cè)鏈幣,父鏈幣被發(fā)送到父鏈上的一個(gè)特殊輸出中,該輸出只能由側(cè)鏈上擁有的一個(gè)SPV證明來解鎖。SPV是一個(gè)包含了交易所在的區(qū)塊頭和交易本身的密碼信息。
這種方法存在兩個(gè)問題,一個(gè)是SPV證明的大小和驗(yàn)證過程的復(fù)雜性都要遠(yuǎn)大于普通交易的驗(yàn)證。另一個(gè)是,現(xiàn)有區(qū)塊鏈的協(xié)議中是不包含SPV驗(yàn)證的,兩條鏈都需要更改協(xié)議才能實(shí)現(xiàn)跨鏈,也就是說需要通過協(xié)議的更改讓一條鏈能夠讀懂另一條鏈,甚至進(jìn)行聯(lián)合挖礦。對(duì)于后者,前文中我們已經(jīng)論述過,這幾乎是不可能完成的任務(wù)。
無論如何Sidechain是第一個(gè)將跨鏈的定義清晰描述的,其提出的方案中包含了如何保證交易的原子性(難點(diǎn)Beta),以及如何通過SPV去驗(yàn)證另一條鏈上的交易狀態(tài)(難點(diǎn)Alpha),整個(gè)方案是完整的而且在理論上也十分合理。
Sidechain還提到了另一種更為簡易的方案:原子交換(Atomic Swap),利用時(shí)間鎖及一個(gè)密數(shù),直接在需要跨鏈的兩人之間完成交易。這種模式在閃電網(wǎng)絡(luò)和ripple的機(jī)制中也被應(yīng)用到,原子交換是一種非常巧妙的跨鏈設(shè)計(jì)。當(dāng)然可以說閃電網(wǎng)絡(luò)和ripple本身也是一種跨鏈的機(jī)制。Wanchain在2.0版本實(shí)現(xiàn)跨鏈的過程中也應(yīng)用了該機(jī)制,后文中我們將詳細(xì)描述。
Polkadot擁有一個(gè)比任何跨鏈方案更加宏偉的設(shè)想,他提出的機(jī)制不只是要解決跨鏈的問題,還是要?jiǎng)?chuàng)造一種異構(gòu)的,具有可擴(kuò)展性(Scalability)的架構(gòu)。相比于Sidechain方案只是解決了比特幣與其側(cè)鏈的跨鏈問題,Polkadot的提出者Gavin Wood希望用一條中繼鏈(Relay-chain)來實(shí)現(xiàn)其他所有鏈的交易的驗(yàn)證工作(難點(diǎn)Alpha),在通過平行鏈的創(chuàng)建實(shí)現(xiàn)與原鏈的交易與通信(難點(diǎn)Beta)。
對(duì)于中繼鏈,通過多種角色的劃分與分組來實(shí)現(xiàn)去信任的驗(yàn)證機(jī)制。而其驗(yàn)證過程本身并沒有超出Sidechain提出的基本的驗(yàn)證理論。Polkadot白皮書展示了一個(gè)宏偉的框架,但其也承認(rèn)只是一個(gè)框架性的描述,對(duì)于細(xì)節(jié)性的實(shí)現(xiàn)邏輯還未展開和進(jìn)行可行性的驗(yàn)證。
Cosmos在某些理念上與Polkadot相似,也是希望創(chuàng)造一個(gè)異構(gòu)的系統(tǒng)解決跨鏈問題。其引入了Hub與Zone的概念,但同樣的問題是跨鏈要面臨的兩個(gè)難題并不會(huì)因?yàn)槭且粋€(gè)異構(gòu)設(shè)計(jì)而變得容易解決。根據(jù)Cosmos目前最新的進(jìn)展,我們并未看到解決如上問題的細(xì)節(jié)方案。
由于篇幅原因,更多的跨鏈項(xiàng)目在此不詳細(xì)展開。無論是架構(gòu)上的新思路還是引入很多新的概念,跨鏈都無法繞開我們提到的兩個(gè)難點(diǎn)。讀者在剖析跨鏈時(shí),可以更好的從如上兩個(gè)點(diǎn)去分析,更容易理解到本質(zhì)并且不被一些新的名詞或概念所迷惑。
Wanchain在進(jìn)行跨鏈設(shè)計(jì)及實(shí)現(xiàn)的過程中,無疑借鑒和參考了眾多前人的經(jīng)驗(yàn)并在此基礎(chǔ)上以可用性為目標(biāo),進(jìn)行了理論和工程上的創(chuàng)新。如果說每一篇關(guān)于跨鏈的論文都在為跨鏈理論做出貢獻(xiàn),Wanchain希望基于理論創(chuàng)新在工程上為區(qū)塊鏈的跨鏈做出貢獻(xiàn),并推動(dòng)跨鏈技術(shù)的落地。
基于密碼學(xué)原理的安全保障
前文提到跨鏈的本質(zhì)是價(jià)值的轉(zhuǎn)移,因此安全性是考慮的重中之重。Wanchain的跨鏈機(jī)制通過巧妙設(shè)計(jì)和使用密碼學(xué)機(jī)制解決難點(diǎn)Alpha和Beta,整個(gè)跨鏈流程的安全性基于密碼學(xué)原理,這樣從根本上給予了萬維鏈跨鏈機(jī)制安全支撐。
異構(gòu)性與延展性
從架構(gòu)上來看,Wanchain是一個(gè)異構(gòu)跨鏈框架,也就是說Wanchain跨鏈的機(jī)制不只針對(duì)某一條具體的鏈,而是希望搭建一個(gè)可以不斷延伸拓展的通用機(jī)制。這個(gè)通用機(jī)制確保未來通過社區(qū)的開發(fā)力量,可以不斷與更多的鏈和鏈上的多種Token實(shí)現(xiàn)跨鏈交易。
可用性
Wanchain的跨鏈機(jī)制不單純的追求純粹的理論創(chuàng)新和概念設(shè)計(jì),而是讓理論設(shè)計(jì)能夠與工程實(shí)現(xiàn)有機(jī)結(jié)合,在開發(fā)過程的每個(gè)階段體現(xiàn)出工程上的開發(fā)成果以及對(duì)于最終用戶或者開發(fā)人員的可用性。
迭代開發(fā)
考慮到跨鏈機(jī)制的復(fù)雜性,在跨鏈實(shí)現(xiàn)上Wanchain進(jìn)行迭代開發(fā),一方面在確保最小可用功能的情況下完成每一個(gè)版本的升級(jí)直到最終實(shí)現(xiàn)較為完美的解決方案,另一方面確保代碼的可拓展性,保證每一次迭代的平滑進(jìn)行。
下文中我們將通過描述Wanchain是如何解決跨鏈的兩個(gè)難點(diǎn)來說明我們的跨鏈實(shí)現(xiàn)方案。
如何去信任的驗(yàn)證另一條鏈上的交易,Wanchain在白皮書中提出了一個(gè)角色Voucher,Voucher不是單一的個(gè)體,而是一個(gè)共識(shí)組,通過共識(shí)去驗(yàn)證另一條鏈的交易合法性和終局性。
Voucher共識(shí)的模式目前正在理論驗(yàn)證和工程驗(yàn)證的階段,Voucher面臨的主要障礙在于工程上和經(jīng)濟(jì)上。工程上Voucher信息的提交和驗(yàn)證如果上鏈,需要耗費(fèi)較高的鏈上資源,會(huì)嚴(yán)重限制交易的吞吐量;經(jīng)濟(jì)上,如何通過更合理的激勵(lì)機(jī)制讓Voucher成員積極參與并消極作惡。
在Voucher機(jī)制沒有完美實(shí)現(xiàn)之前,基于可用性與迭代開發(fā)原則,我們?cè)诩磳⑸暇€的2.0方案中引入了原子互換完成跨鏈的過程。
原子互換的基本原則是不需要第三方公證人,而是讓交易的參與雙方自行判定對(duì)方的交易是否完成,通過哈希時(shí)間鎖(hash time lock)和密數(shù)(Secret)控制,實(shí)現(xiàn)交易雙方“一手交錢一手交貨”,也就是兩種不同token的互換。這種方式能夠有效的規(guī)避第三方公證人不完美的問題。
在Wanchain的跨鏈過程中,兩種互換的token分別是指原鏈token與Wanchain上的映射token. 當(dāng)原鏈上的某個(gè)用戶需要發(fā)送一筆跨鏈交易使原鏈token能夠轉(zhuǎn)移到Wanchain上時(shí),用戶的錢包會(huì)構(gòu)造一筆原鏈交易,這筆原鏈交易被哈希時(shí)間鎖鎖定,Wanchain上負(fù)責(zé)處理跨鏈交易的Storeman在檢測到這筆跨鏈交易后,會(huì)在Wanchain上發(fā)起一筆跨鏈的合約交易,該筆交易負(fù)責(zé)產(chǎn)生映射token并轉(zhuǎn)移到用戶指定的跨鏈接收賬戶,此時(shí)該筆交易被跨鏈合約鎖定。
當(dāng)用戶的錢包檢測到被跨鏈合約鎖定的交易后,主動(dòng)釋放密數(shù)到跨鏈合約中,Storeman通過該密數(shù)獲得鎖定賬戶中對(duì)應(yīng)的原鏈token的控制權(quán),用戶獲得Wanchain上映射token的控制權(quán)。如果這個(gè)過程中,用戶在哈希時(shí)間鎖的時(shí)間范圍內(nèi)沒有釋放密數(shù),則哈希時(shí)間鎖到期后,用戶重新獲得原鏈token的控制權(quán),跨鏈合約中的交易自動(dòng)失效。
以上跨鏈過程看似復(fù)雜,但多數(shù)功能都由錢包和合約完成,用戶只需要在發(fā)起交易、釋放密數(shù)、撤銷交易的環(huán)節(jié)進(jìn)行操作。對(duì)于參與跨鏈的Storeman,Wanchain會(huì)提供專門的客戶端,客戶端根據(jù)協(xié)議進(jìn)行無需值守的自動(dòng)化運(yùn)行。
對(duì)于原鏈鎖定賬號(hào)的去信任管理機(jī)制,Wanchain采用了首創(chuàng)的安全多方計(jì)算+門限秘鑰的方式,鎖定賬號(hào)的管理者命名為Storeman。相關(guān)內(nèi)容詳見Wanchain白皮書及黃皮書。簡單描述,對(duì)于鎖定賬號(hào)的生成到轉(zhuǎn)賬操作,我們通過密碼學(xué)安全多方計(jì)算和門限的方法實(shí)現(xiàn)了一種小型的共識(shí),參與方必須共同參與計(jì)算才能生成鎖定賬號(hào)的公私鑰,而鎖定賬戶的私鑰嚴(yán)格來說只是理論存在,從沒有實(shí)際出現(xiàn)在網(wǎng)絡(luò)中,而是以碎片的方式分散在各Storeman手中,通過多方計(jì)算的方式參與賬戶控制,當(dāng)需要進(jìn)行交易時(shí),參與方要再次合力才能共同構(gòu)造簽名,為了保證可用性,構(gòu)造簽名的參與方并不需要完全參與,而只需要達(dá)到一個(gè)門限值即可(N個(gè)參與者中的M個(gè),M<=N)。
理論上N與M的數(shù)量越大,安全性越高,計(jì)算代價(jià)越大。經(jīng)過我們理論和工程上的驗(yàn)證,我們?cè)?.0版本中暫時(shí)選取N=21,M=16的參數(shù)運(yùn)行(與EOS的21個(gè)超級(jí)節(jié)點(diǎn)數(shù)量相同完全是巧合)。經(jīng)過測試,以如上參數(shù)進(jìn)行交易簽名的吞吐量遠(yuǎn)遠(yuǎn)大于所需要連接的主流的區(qū)塊鏈,也就是說安全多方計(jì)算和門限秘鑰方法不會(huì)是跨鏈的吞吐量瓶頸。
根據(jù)如上機(jī)制,16個(gè)以上的Storeman成員合謀會(huì)造成原鏈Token丟失。為了避免這一問題,類似POW或者POS的設(shè)計(jì),任何參與者都需要付出參與的代價(jià)并獲得參與的回報(bào),如果發(fā)生合謀行為,不但整個(gè)網(wǎng)絡(luò)受害,其自身的投資和未來的收益都將損失。在POW中這個(gè)代價(jià)是購買礦機(jī),在POS中這個(gè)代價(jià)是鎖定一定數(shù)量的Token。我們?cè)赟toreman機(jī)制中引入了類似機(jī)制,任何Storeman的參與者(Storeman menbers)都必須繳納一定數(shù)量的WAN到管理Storeman的智能合約中鎖定,Storeman能夠處理的跨鏈token數(shù)量與繳納的鎖定金相關(guān)。同時(shí)Storeman作為保證跨鏈機(jī)制運(yùn)行的參與者,會(huì)同時(shí)獲得系統(tǒng)獎(jiǎng)勵(lì)和跨鏈?zhǔn)掷m(xù)費(fèi)。
必須指出的是,當(dāng)Storeman繳納的鎖定金WAN相對(duì)原鏈token的市場價(jià)值出現(xiàn)長期的巨大的貶值時(shí),Storeman依然有合謀的動(dòng)機(jī)。最大限度的避免這一情況,我們引入了兩個(gè)機(jī)制,一個(gè)機(jī)制是Storeman從申請(qǐng)退出到完全退出,有一個(gè)較長的時(shí)間周期。在這個(gè)周期內(nèi),Storeman無法準(zhǔn)確預(yù)測市場的波動(dòng),也就無法準(zhǔn)確判斷是作惡還是按規(guī)則游戲獲得的收益(或者遭受的損失)更大,短時(shí)的市場波動(dòng)就不會(huì)造成影響。另一個(gè)機(jī)制是,通過Oracle輸入調(diào)整鎖定金的比例。這個(gè)Oracle輸入在2.0版本中會(huì)通過基金會(huì)完成,之后的版本會(huì)通過節(jié)點(diǎn)投票的形式完成。
對(duì)于保證交易的原子性,我們通過智能合約控制Storeman的交易行為,Storeman在Wanchain上有一個(gè)跨鏈的額度(Credit),當(dāng)從原鏈跨出時(shí),相應(yīng)額度被凍結(jié),交易完成時(shí),額度轉(zhuǎn)換為等量的Wanchain上的映射token(以太坊的映射token用WETH表示),如果交易撤銷,額度解鎖。當(dāng)映射token返回原鏈時(shí),映射token銷毀后解鎖Storeman額度。在這個(gè)過程中,嚴(yán)格遵循原鏈token與Storeman額度保持同方向記賬,Storeman額度與映射token保持反方向記賬的邏輯,以確保整個(gè)交易過程中任何一個(gè)環(huán)節(jié)的原子性。
2.0是Wanchain跨鏈功能的第一個(gè)版本,這個(gè)版本的意義在于從工程上驗(yàn)證我們理論設(shè)計(jì)的可行性以及瓶頸障礙,便于后期的迭代。2.0跨鏈功能并非一個(gè)相對(duì)完美的跨鏈版本,但肯定是一個(gè)可用的跨鏈版本。為了保證安全性,我們會(huì)謹(jǐn)慎的推進(jìn),包括在初期限制Storeman的數(shù)量,限制跨鏈的金額等。
2.0實(shí)現(xiàn)與Ethereum的跨鏈,基于此我們會(huì)推出:
1、Storeman客戶端(Command Line模式)
2、同時(shí)支持Ethereum和Wanchain的雙幣種錢包,能夠進(jìn)行兩條鏈的鏈內(nèi)轉(zhuǎn)賬和跨鏈轉(zhuǎn)賬
Storeman調(diào)用的RPC接口
3、與Ethereum網(wǎng)絡(luò)和Wanchain網(wǎng)絡(luò)交互的節(jié)點(diǎn)API接口(供輕錢包等發(fā)送和查詢交易)
4、能夠查詢Ethereum與Wanchain跨鏈交易的官方瀏覽器
5、針對(duì)開發(fā)者的開發(fā)文檔及針對(duì)普通用戶的操作文檔
2.0實(shí)現(xiàn)后可以使用的應(yīng)用場景:
部署WAN,ETH與Wanchain上其他token的分布式交易合約
部署能夠同時(shí)支持WAN與ETH 的投資
部署WAN,ETH與Wanchain上其他token的借貸合約
2018年
Wanchain將在即將發(fā)布的2.0版本中支持Ethereum到Wanchain的跨鏈。在之后的2.x版本中,隨著跨鏈功能的穩(wěn)定,我們將逐步開放Storeman的注冊(cè)機(jī)制。最終形成分布式的、大規(guī)模的Storeman參與跨鏈生態(tài)。
在Storeman注冊(cè)機(jī)制開放之后,我們將預(yù)留給節(jié)點(diǎn)獎(jiǎng)勵(lì)的WAN中預(yù)置10%作為Storeman的系統(tǒng)獎(jiǎng)勵(lì)。獎(jiǎng)勵(lì)每10,000個(gè)區(qū)塊結(jié)算一次。經(jīng)過更嚴(yán)格的測算和測試后,我們將公布獎(jiǎng)勵(lì)的具體規(guī)則。
Wanchain將在今年年底前支持BTC的跨鏈,并爭取完成一到兩種以太坊ERC20token的跨鏈。
Wanchain將在今年繼續(xù)完善Storeman的共識(shí)機(jī)制,包括完善對(duì)于Storeman的作惡,不作為等惡意行為的懲罰機(jī)制。
2019年
在2.0版本穩(wěn)定之后,我們將鼓勵(lì)更多的開發(fā)者,利用Wanchain的跨鏈機(jī)制,開發(fā)更多的其他鏈上的Token的跨鏈,并對(duì)于開發(fā)者給予獎(jiǎng)勵(lì),以加快Wanchain與更多的公鏈實(shí)現(xiàn)跨鏈的進(jìn)展。
明年的重點(diǎn)研發(fā)方向?qū)⒃赪anchain的POS機(jī)制及普通交易性能及跨鏈交易性能的提升上。
參考文獻(xiàn)
[1] Satoshi Nakamoto,Bitcoin whitepaper: http://bitcoin.org/bitcoin.pdf,2008年11月1日
[2] Vitalik Buterin,Ethereum whitepaper: https://github.com/ethereum/wiki/wiki/White-Paper,2013年
[3] Adam Back, Matt Corallo, Luke Dashjr,Sidechains: https://www.blockstream.com/sidechains.pdf,2014年10月22日
[4] DR. GAVIN WOOD,POLKADOT whitepaper: https://github.com/w3f/polkadot-white-paper/blob/master/PolkaDotPaper.pdf, 2017年6月19日
[5] Jae Kwon,Cosmos whitepaper:https://github.com/irisnet/translation/blob/master/Cosmos/Whitepaper_Chinese.md?from=singlemessage&isappinstalled=0#the-zones , 2016年6月
[6] Jack Lu,Wanchain whitepaper: https://wanchain.org/files/Wanchain-Whitepaper-EN-version.pdf, 2017年8月3日
[7] Jack Lu,Wanchain yellowpaper: https://wanchain.org/files/Wanchain-Yellowpaper-EN-version.pdf, 2017年8月10日
作者:呂旭軍 楊濤 張英 Demmon, Shi
來源:區(qū)塊鏈新金融實(shí)驗(yàn)室
網(wǎng)上經(jīng)營許可證號(hào):京ICP備18006193號(hào)-1
copyright?2005-2022 3dtdv.cn all right reserved 技術(shù)支持:杭州高達(dá)軟件系統(tǒng)股份有限公司
服務(wù)熱線:010-59231580