解巖凱,魏凌波,2,張 馳,王慶濤,孫啟彬
1.中國(guó)科學(xué)技術(shù)大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,合肥 230027
2.中國(guó)電子科技南湖研究院,嘉興 341000
中本聰于2008年發(fā)表比特幣(bitcoin,BTC)的白皮書(shū)[1],宣告了基于區(qū)塊鏈的加密貨幣的誕生.得益于區(qū)塊鏈去中心化、不可篡改與公開(kāi)透明等特點(diǎn),加密貨幣受到了越來(lái)越多的關(guān)注.截止2021年2月,使用加密貨幣的人數(shù)已經(jīng)超過(guò)了六千萬(wàn)[2].但隨著用戶(hù)規(guī)模與交易數(shù)量的快速增長(zhǎng),加密貨幣的低交易吞吐量成為亟待解決的重要問(wèn)題.由于區(qū)塊大小與區(qū)塊產(chǎn)生時(shí)間均受到限制,比特幣交易驗(yàn)證速度平均只能達(dá)到7筆/秒,只相當(dāng)于現(xiàn)有中心化支付系統(tǒng)VISA的約七千分之一[3].雖然第二代加密貨幣以太坊實(shí)現(xiàn)了更高的交易吞吐量,但目前平均交易速度也僅為11.5筆/秒[4,5].以上數(shù)據(jù)表明,低交易吞吐量是主流加密貨幣面臨的共性問(wèn)題.
由于P2P網(wǎng)絡(luò)中消息傳播速度的限制以及節(jié)點(diǎn)性能的影響,直接對(duì)區(qū)塊鏈進(jìn)行擴(kuò)容的方案會(huì)導(dǎo)致區(qū)塊鏈系統(tǒng)安全性、可靠性和去中心化程度的下降,因此無(wú)法在比特幣社區(qū)中得到一致認(rèn)同.以擴(kuò)展區(qū)塊大小為例,如果比特幣希望達(dá)到與VISA相同的交易吞吐量,則比特幣需要在出塊時(shí)間不變的前提下將區(qū)塊擴(kuò)大至8 GB,但是幾乎沒(méi)有多少礦工有能力承受維護(hù)這樣的區(qū)塊鏈帶來(lái)的巨額成本,這將使比特幣網(wǎng)絡(luò)去中心化程度急劇下降,甚至回歸中心化支付系統(tǒng)[3].正是基于這個(gè)原因,比特幣歷史上對(duì)區(qū)塊鏈進(jìn)行直接擴(kuò)容的方案[6-10]均無(wú)法在比特幣社區(qū)得到一致認(rèn)同.加密貨幣低吞吐量的問(wèn)題意味著加密貨幣的一部分交易將無(wú)法及時(shí)被記入鏈上[11],用戶(hù)需要通過(guò)增加交易費(fèi)的方式提高交易寫(xiě)入?yún)^(qū)塊鏈的優(yōu)先級(jí),目前比特幣交易的平均交易費(fèi)已經(jīng)超過(guò)19美元1數(shù)據(jù)來(lái)源于https://www.blockchain.com/charts/fees-usd-per-transaction,訪(fǎng)問(wèn)時(shí)間2021年3月18日..低交易吞吐量與高交易費(fèi)問(wèn)題嚴(yán)重制約了小額交易與高頻交易在區(qū)塊鏈網(wǎng)絡(luò)上中的生存.
由于直接對(duì)區(qū)塊鏈擴(kuò)容的方案存在上述問(wèn)題,區(qū)塊鏈研究者提出了鏈下方案[12].鏈下方案在不改變區(qū)塊鏈共識(shí)規(guī)則的前提下將當(dāng)前區(qū)塊鏈上的交易轉(zhuǎn)移至鏈外處理.鏈下方案主要分為側(cè)鏈[13]與支付通道網(wǎng)絡(luò)[3]兩大類(lèi),支付通道網(wǎng)絡(luò)在交易速度、隱私性和效率等方面均優(yōu)于側(cè)鏈[14].支付通道網(wǎng)絡(luò)是由運(yùn)行支付通道節(jié)點(diǎn)軟件的節(jié)點(diǎn)形成的對(duì)等網(wǎng)絡(luò),節(jié)點(diǎn)通過(guò)支付通道[15]與其他節(jié)點(diǎn)形成點(diǎn)對(duì)點(diǎn)連接.支付通道允許交易雙方改變支付通道內(nèi)資金的結(jié)算方案實(shí)現(xiàn)鏈下交易(off-chain transaction),區(qū)塊鏈只記錄通道的開(kāi)啟和關(guān)閉,并對(duì)鏈下交易提供安全保障.交易雙方只將創(chuàng)建與關(guān)閉支付通道的交易寫(xiě)入?yún)^(qū)塊鏈,而鏈下交易數(shù)目沒(méi)有任何限制,這從根本上解決了區(qū)塊鏈低吞吐量和高交易費(fèi)的問(wèn)題[16],為小額交易與高頻交易在區(qū)塊鏈網(wǎng)絡(luò)上的應(yīng)用提供了很好的解決方案.
為了避免支付通道中一方離線(xiàn)而導(dǎo)致另一方無(wú)法關(guān)閉支付通道取回資金,支付通道允許參與者在任意時(shí)刻公布支付通道的最新?tīng)顟B(tài)獨(dú)立關(guān)閉支付通道.但是區(qū)塊鏈無(wú)法判斷被提交的狀態(tài)是否是最新的,惡意的支付通道參與者可能向區(qū)塊鏈公布過(guò)期的狀態(tài)關(guān)閉支付通道,從而獲得本不應(yīng)屬于他的通道份額.為了解決這個(gè)問(wèn)題,關(guān)閉通道的交易擁有一個(gè)特殊的爭(zhēng)議時(shí)間(dispute period)屬性,公布了關(guān)閉通道交易的一方的資金在爭(zhēng)議時(shí)間內(nèi)會(huì)被凍結(jié),這使得通道內(nèi)誠(chéng)實(shí)的用戶(hù)可以在爭(zhēng)議時(shí)間內(nèi)取出凍結(jié)的資金,挽回惡意關(guān)閉通道交易可能造成的損失,并懲罰惡意的參與者.這樣的安全保障機(jī)制要求通道參與者必須在每段爭(zhēng)議時(shí)間內(nèi)至少監(jiān)視一次區(qū)塊鏈,否則參與者可能無(wú)法發(fā)現(xiàn)已經(jīng)被提交上鏈的惡意關(guān)閉通道交易或是來(lái)不及對(duì)鏈上的惡意交易進(jìn)行反制.但在現(xiàn)實(shí)應(yīng)用場(chǎng)景中,運(yùn)行在手機(jī)等資源受限設(shè)備上的輕節(jié)點(diǎn)難以在每段爭(zhēng)議時(shí)間內(nèi)都同步區(qū)塊鏈,因此他們?cè)趨⑴c支付通道時(shí)存在資金損失風(fēng)險(xiǎn).截止到2021年,比特幣網(wǎng)絡(luò)中僅有10 126個(gè)能夠持續(xù)同步區(qū)塊鏈的“活躍”全節(jié)點(diǎn),以太坊中“活躍”的全節(jié)點(diǎn)只有6061個(gè)2數(shù)據(jù)來(lái)源于https://etherscan.io/charts,訪(fǎng)問(wèn)時(shí)間2021年3月18日.,這還不到加密貨幣總用戶(hù)數(shù)的0.1%.可見(jiàn)大部分區(qū)塊鏈用戶(hù)使用支付通道實(shí)現(xiàn)鏈下交易時(shí)存在安全隱患,提高支付通道的安全性迫在眉睫.
為解決無(wú)法實(shí)時(shí)監(jiān)聽(tīng)區(qū)塊鏈帶來(lái)的安全隱患,輕節(jié)點(diǎn)可以將監(jiān)聽(tīng)惡意交易的任務(wù)外包給一個(gè)被稱(chēng)為“瞭望塔”(watchtower)的第三方[17].瞭望塔是一個(gè)或一組特殊的全節(jié)點(diǎn),他們作為代理協(xié)助輕節(jié)點(diǎn)監(jiān)視區(qū)塊鏈,一旦發(fā)現(xiàn)支付通道以過(guò)期的狀態(tài)進(jìn)行結(jié)算,就啟動(dòng)支付通道的安全保障機(jī)制,幫助用戶(hù)挽回?fù)p失并懲罰惡意參與者.雖然瞭望塔的引入提升了輕節(jié)點(diǎn)的安全性,但卻帶來(lái)了額外的安全與隱私泄露問(wèn)題.首先,瞭望塔可能對(duì)支付通道安全性造成影響.如果瞭望塔是一個(gè)可信第三方,則支付通道的安全隱患已被解決,輕節(jié)點(diǎn)可以隨意離線(xiàn)而不必?fù)?dān)心支付通道被惡意關(guān)閉.但在現(xiàn)實(shí)中,瞭望塔和支付通道參與者均不一定是可信的,瞭望塔可能會(huì)消極怠工,或是和通道中的惡意節(jié)點(diǎn)合謀令誠(chéng)實(shí)節(jié)點(diǎn)蒙受損失.其次,瞭望塔亦存在泄露用戶(hù)隱私的可能.為了保證支付通道安全性,瞭望塔需要收集支付通道的更新日志以便于識(shí)別惡意關(guān)閉通道交易,但這侵犯了用戶(hù)的隱私,瞭望塔可以獲知通道內(nèi)交易的內(nèi)容,進(jìn)而推斷用戶(hù)在真實(shí)世界的身份[18].最后,應(yīng)用于比特幣支付通道的瞭望塔存在效率問(wèn)題.比特幣支付通道瞭望塔需要保存支付通道的每一次更新才能幫助用戶(hù)挽回?fù)p失以及懲罰惡意的參與者,這代表著為多個(gè)用戶(hù)服務(wù)的比特幣瞭望塔需要存儲(chǔ)龐大的更新日志,并在每個(gè)新區(qū)塊產(chǎn)生后都遍歷一次數(shù)據(jù)庫(kù)方可完成監(jiān)視.因此,如何降低存儲(chǔ)與計(jì)算開(kāi)銷(xiāo)也是比特幣支付通道瞭望塔協(xié)議設(shè)計(jì)的關(guān)鍵一環(huán).
截至目前已有大量的綜述總結(jié)了近年來(lái)支付通道的研究進(jìn)展[14,19,20],但僅有Gudgeon等人[12]在其關(guān)于支付通道的綜述中介紹了瞭望塔的概念,并認(rèn)為瞭望塔是解決支付通道安全問(wèn)題的可行方案.但Gudgeon等人的綜述主要圍繞支付通道方案展開(kāi),并未對(duì)瞭望塔方案進(jìn)行深入的研究,因此本文填補(bǔ)了支付通道網(wǎng)絡(luò)中瞭望塔方面綜述的空白.
瞭望塔方案設(shè)計(jì)需考慮支付通道的安全性、通道參與者的隱私性和瞭望塔的效率,已有的瞭望塔方案均試圖解決其中一個(gè)或多個(gè)問(wèn)題.本文對(duì)目前支付通道網(wǎng)絡(luò)中各類(lèi)瞭望塔方案進(jìn)行了整理,基于方案的應(yīng)用背景將其分為比特幣中的瞭望塔和以太坊中的瞭望塔兩大類(lèi),詳細(xì)闡述了每種方案的原理,并從隱私性、安全性與效率等多個(gè)角度衡量?jī)深?lèi)方案的優(yōu)劣.最后,我們對(duì)瞭望塔的未來(lái)研究進(jìn)行了展望,提出了可行的研究思路.
支付通道允許交易雙方執(zhí)行鏈下交易,進(jìn)而降低交易費(fèi),提升交易速度.目前比較成熟的支付通道技術(shù)有比特幣閃電網(wǎng)絡(luò)中的支付通道[3]和以太坊的狀態(tài)通道[21]等.接下來(lái)我們分別概述比特幣和以太坊中的支付通道.
比特幣支付通道中交易雙方通過(guò)多重簽名腳本建立一個(gè)聯(lián)合賬戶(hù)以鎖定資金,每次雙方進(jìn)行交易,他們?cè)阪溝赂略撡~戶(hù)中資金的分配方案,并簽署新的承諾交易(commitment transaction)以完成分配狀態(tài)的更新.如圖1所示,在比特幣區(qū)塊鏈中,我們假設(shè)愛(ài)麗絲(以下簡(jiǎn)稱(chēng)A)和鮑勃(以下簡(jiǎn)稱(chēng)B)分別向支付通道中注入了0.5個(gè)比特幣(交易中黑底白字黑框代表已簽名,白底黑字黑框代表花費(fèi)輸出需要的簽名),此時(shí)支付通道中總共擁有1個(gè)比特幣,其中0.5個(gè)屬于A(yíng),0.5個(gè)屬于B.一旦A和B發(fā)生了鏈下交易,A和B更新支付通道中的資金分配方案,簽署新的承諾交易.如果A和B不再進(jìn)行交易了,他們將通道中最后一個(gè)承諾交易用作通道結(jié)算交易,并向區(qū)塊鏈廣播,將支付通道中鎖定的資金結(jié)算給交易雙方.
圖1 支付通道概述Figure 1 Payment channel overview
只要交易雙方?jīng)]有關(guān)閉支付通道,他們就可以生成新的承諾交易來(lái)改變支付通道中資金的分配方案.所有承諾交易除輸出不同外并無(wú)實(shí)質(zhì)性差別,因此過(guò)期的承諾交易并不隨著新承諾交易生成而自動(dòng)作廢,支付通道中惡意的一方可以在最新承諾交易被記入?yún)^(qū)塊鏈前向區(qū)塊鏈提交對(duì)自己更為有利的過(guò)期承諾交易,由于過(guò)期的承諾交易也是合法交易,因此也能通過(guò)比特幣礦工驗(yàn)證并記入新區(qū)塊,這最終會(huì)導(dǎo)致誠(chéng)實(shí)參與者蒙受損失.為了避免這種情況的發(fā)生,支付通道通過(guò)設(shè)計(jì)序列到期可撤銷(xiāo)合約(revocable sequence maturity contract,RSMC)引入爭(zhēng)議時(shí)間,以實(shí)現(xiàn)承諾交易的安全更新.
RSMC定義了三類(lèi)交易:承諾交易、可撤銷(xiāo)的交付交易(revocable delivery transaction)和違約補(bǔ)救交易(breach remedy transaction).承諾交易的功能與前文是一致的,但為了保護(hù)誠(chéng)實(shí)通道參與者的資金安全,承諾交易會(huì)將承諾交易發(fā)布者應(yīng)得的通道份額輸出到通道參與者的新共同賬戶(hù)中,而另一個(gè)通道參與者的通道份額則可以立即到賬.可撤銷(xiāo)的交付交易允許承諾交易發(fā)布者將承諾交易輸出到共同賬戶(hù)中的資金取出,但這筆交易只有在鎖定時(shí)間過(guò)后才能上鏈,因此承諾交易發(fā)布者的通道份額會(huì)被鎖定一段時(shí)間,RSMC中這段鎖定時(shí)間被稱(chēng)為通道爭(zhēng)議期,也就是爭(zhēng)議時(shí)間.違約補(bǔ)救交易的作用是對(duì)過(guò)期承諾交易進(jìn)行反制.每當(dāng)生成新的承諾交易后,交易雙方交換生成違約補(bǔ)救交易所需要的密鑰以作廢過(guò)期的承諾交易.如果惡意的參與者提交一筆過(guò)期的承諾交易,在爭(zhēng)議期內(nèi)另一個(gè)參與者只需向區(qū)塊鏈提交與過(guò)期承諾交易對(duì)應(yīng)的違約補(bǔ)救交易就可以獲得支付通道內(nèi)的全部份額,這不僅挽回了損失還懲罰了惡意參與者;如果上鏈的是最新的承諾交易,通道參與者則無(wú)法生成對(duì)應(yīng)的違約補(bǔ)救交易,因此提交承諾交易的參與者可以在爭(zhēng)議期過(guò)后將通道中自己的份額取出.
然而,只有在爭(zhēng)議時(shí)間內(nèi)提交違約補(bǔ)救交易,違約補(bǔ)救交易才會(huì)生效.這是因?yàn)槿绻峤怀兄Z交易的一方是誠(chéng)實(shí)的,即公布了最新的承諾交易,那么區(qū)塊鏈不能無(wú)限期凍結(jié)其資金.這也避免了另一方突然掉線(xiàn)而導(dǎo)致提交承諾交易的一方無(wú)法結(jié)算支付通道內(nèi)資金的問(wèn)題.但這也意味著即使惡意的一方向區(qū)塊鏈提交了一筆過(guò)期的承諾交易,如果爭(zhēng)議時(shí)間內(nèi)另一方?jīng)]有向區(qū)塊鏈提交違約補(bǔ)救交易以取出鎖定資金,其依然會(huì)遭受資金損失.為了防止這種攻擊,交易雙方需要實(shí)時(shí)監(jiān)視區(qū)塊鏈,以監(jiān)測(cè)對(duì)方是否公布過(guò)期的承諾交易.如果B在爭(zhēng)議時(shí)間內(nèi)始終離線(xiàn),那么惡意的一方就可以公布一筆過(guò)期的承諾交易實(shí)現(xiàn)對(duì)另一方的攻擊.
通過(guò)智能合約,Miller等人[21]將比特幣中的支付通道拓展到以太坊為代表的第二代區(qū)塊鏈中.將支付通道建立在智能合約上有三點(diǎn)優(yōu)勢(shì):第一,智能合約大幅簡(jiǎn)化了通道鏈下更新的流程.通過(guò)在交易中維護(hù)一個(gè)名為“狀態(tài)”的遞增參數(shù),以太坊中的支付通道可以在生成新鏈下交易的同時(shí)直接將舊承諾交易作廢.由于智能合約可以通過(guò)比對(duì)狀態(tài)參數(shù)的大小來(lái)判斷鏈下交易發(fā)生的時(shí)序3與以太坊支付通道思路相同,Decker等人使用浮動(dòng)交易對(duì)比特幣支付通道進(jìn)行改進(jìn),從而將交易時(shí)序引入比特幣支付通道中,簡(jiǎn)化了通道鏈下更新流程[22].但目前比特幣區(qū)塊鏈并不支持浮動(dòng)交易,因此該方案并不能直接用于比特幣區(qū)塊鏈.,因此對(duì)過(guò)期交易的反制只需向智能合約提交狀態(tài)參數(shù)更大的交易即可完成,支付通道參與者只需存儲(chǔ)狀態(tài)通道的最新?tīng)顟B(tài),這也最小化了用戶(hù)的存儲(chǔ).第二,智能合約還可以允許用戶(hù)根據(jù)其需求設(shè)計(jì)更為復(fù)雜的金融衍生工具,例如期權(quán)、擔(dān)保交易和對(duì)賭協(xié)議等.第三,由于智能合約的圖靈完備性,建構(gòu)于智能合約的支付通道還可以允許多于兩名參與者在同一個(gè)通道內(nèi)執(zhí)行鏈下交易.正因?yàn)榛谥悄芎霞s的支付通道在合約中維護(hù)的狀態(tài)參數(shù),這類(lèi)支付通道又被稱(chēng)為“狀態(tài)通道”[21].
總的來(lái)說(shuō),支付通道不僅僅提升了區(qū)塊鏈的吞吐量,還提升了區(qū)塊鏈用戶(hù)的交易效率以及隱私保護(hù)[23].相比于鏈上交易,支付通道使交易雙方在限額內(nèi)實(shí)現(xiàn)不限數(shù)量的鏈下交易,而只需要負(fù)擔(dān)支付通道創(chuàng)建交易以及結(jié)算交易的交易費(fèi).此外,支付通道也顯著增強(qiáng)了區(qū)塊鏈的支付速度.區(qū)塊鏈常規(guī)交易需要幾十秒乃至數(shù)十分鐘才能被區(qū)塊鏈確認(rèn),而基于支付通道的支付可以在數(shù)毫秒之內(nèi)完成[24].最后,該方案還能增強(qiáng)用戶(hù)隱私保護(hù)效果.通過(guò)支付通道與其他節(jié)點(diǎn)相連的用戶(hù)可以形成支付通道網(wǎng)絡(luò),交易雙方并不需要向區(qū)塊鏈提交交易建立直接的支付通道,而是通過(guò)現(xiàn)有支付通道網(wǎng)絡(luò)進(jìn)行支付,此時(shí)所有的交易都是鏈下進(jìn)行的,因此全節(jié)點(diǎn)無(wú)法通過(guò)公開(kāi)的區(qū)塊鏈獲取任何用戶(hù)的交易信息,這也契合了加密貨幣最大化保護(hù)用戶(hù)隱私的設(shè)計(jì)目標(biāo)[25].
運(yùn)行在手機(jī)等資源受限設(shè)備中的輕節(jié)點(diǎn)無(wú)法保證時(shí)實(shí)在線(xiàn)并監(jiān)視區(qū)塊鏈.只要輕節(jié)點(diǎn)的離線(xiàn)時(shí)間大于爭(zhēng)議時(shí)間,就可能面臨丟失通道資金的風(fēng)險(xiǎn).為規(guī)避上述風(fēng)險(xiǎn),通道參與者可以設(shè)置較長(zhǎng)的爭(zhēng)議時(shí)間以避免損失,然而這會(huì)極大降低通道結(jié)算效率.但是對(duì)于輕節(jié)點(diǎn)來(lái)說(shuō),更長(zhǎng)的通道結(jié)算時(shí)間將導(dǎo)致輕節(jié)點(diǎn)面臨更大的通道資金安全性風(fēng)險(xiǎn).如果輕節(jié)點(diǎn)的離線(xiàn)時(shí)間超過(guò)了爭(zhēng)議時(shí)間,那么他就可能損失通道內(nèi)屬于他的部分乃至全部資金.為解決長(zhǎng)時(shí)間離線(xiàn)問(wèn)題,輕節(jié)點(diǎn)會(huì)將監(jiān)視操作外包給時(shí)時(shí)在線(xiàn)的瞭望塔.一旦支付通道中的惡意參與者在輕節(jié)點(diǎn)離線(xiàn)時(shí)公布過(guò)期承諾交易,瞭望塔就可以監(jiān)測(cè)到這種行為,代替用戶(hù)向區(qū)塊鏈提交違約補(bǔ)救交易,挽回輕節(jié)點(diǎn)的損失,并懲罰惡意的用戶(hù).
文獻(xiàn)[17]中給出了原始的瞭望塔的實(shí)現(xiàn).在比特幣支付通道中,用戶(hù)需要將每一筆過(guò)期承諾交易對(duì)應(yīng)的違約補(bǔ)救交易上傳到瞭望塔中.瞭望塔實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈中每一筆交易,并與違約補(bǔ)救交易中的地址進(jìn)行匹配.一旦匹配到過(guò)期的承諾交易,瞭望塔就將對(duì)應(yīng)的違約補(bǔ)救交易提交到區(qū)塊鏈來(lái)進(jìn)行反制.舉個(gè)例子,交易方A和B通過(guò)RSMC建立了一個(gè)支付通道:如圖2所示,在支付通道初始化時(shí)會(huì)生成了實(shí)線(xiàn)框中的所有交易,帶有A標(biāo)識(shí)的弧線(xiàn)框交易為A持有的交易,帶有B標(biāo)識(shí)的直角框交易為B持有的交易.對(duì)于A(yíng)來(lái)說(shuō),即使B不響應(yīng),她也可以向區(qū)塊鏈提交承諾交易1A獨(dú)立關(guān)閉支付通道,當(dāng)承諾交易A被區(qū)塊鏈確認(rèn)后,B立即得到支付通道中他的份額,而A的資金會(huì)被提交到一個(gè)新的多簽名地址(A1,B1)中,只有在承諾交易1A被確認(rèn)1000個(gè)區(qū)塊后,礦工才會(huì)接受A提交的可撤銷(xiāo)的交付交易并將其寫(xiě)入新區(qū)塊內(nèi),允許A將多簽名地址(A1,B1)中的資金提取到自己的地址中4這是通過(guò)比特幣交易輸入中的Sequence_no屬性實(shí)現(xiàn)的,支付通道參與者可以根據(jù)需求靈活配置爭(zhēng)議時(shí)間..同理,如果B向區(qū)塊鏈提交承諾交易1B,A會(huì)立即得到她的份額,而B(niǎo)的資金也會(huì)被凍結(jié)相同的時(shí)間.
圖2 瞭望塔參與的支付通道更新流程Figure 2 Watchtower-based payment channel workflow
當(dāng)支付通道更新時(shí),交易雙方需要作廢代表更新前狀態(tài)的承諾交易,即生成作廢更新前狀態(tài)的對(duì)應(yīng)違約補(bǔ)救交易,并將該違約補(bǔ)救交易上傳到瞭望塔中.例如,當(dāng)支付通道更新至承諾交易2A與2B時(shí),交易雙方需要將過(guò)期的承諾交易1A和1B作廢.為實(shí)現(xiàn)這樣的目標(biāo),通道雙方需要交換過(guò)期承諾交易1A與1B的多簽名輸出中各自的私鑰,進(jìn)而允許交易雙方生成針對(duì)過(guò)期承諾交易的違約補(bǔ)救交易來(lái)處理違約.具體地說(shuō),A需要將過(guò)期承諾交易1A中自己的公鑰A1對(duì)應(yīng)的私鑰發(fā)送給B;同理,B亦需要將公鑰B2對(duì)應(yīng)的私鑰發(fā)送給A.為了避免實(shí)時(shí)監(jiān)視區(qū)塊鏈帶來(lái)的開(kāi)銷(xiāo),交易雙方可以使用私鑰生成過(guò)期承諾交易對(duì)應(yīng)的違約補(bǔ)救交易,并上傳到瞭望塔中.每次更新交易雙方都會(huì)重復(fù)這種操作,上傳作廢每一個(gè)對(duì)應(yīng)過(guò)期承諾交易的違約補(bǔ)救交易至瞭望塔中.瞭望塔實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈中每一筆交易,并與違約補(bǔ)救交易中的地址進(jìn)行匹配.如果發(fā)現(xiàn)匹配,則提交對(duì)應(yīng)的違約補(bǔ)救交易幫助用戶(hù)挽回?fù)p失.例如,一旦A發(fā)布過(guò)期承諾交易1A,實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈的瞭望塔就會(huì)捕捉到這筆過(guò)期的承諾交易,他會(huì)將收到的違約補(bǔ)救交易1B提交到區(qū)塊鏈中,將(A1,B1)中的0.5個(gè)比特幣全部轉(zhuǎn)移到B的地址中.而公布過(guò)期承諾交易1A的A由于沒(méi)有公鑰B1對(duì)應(yīng)的私鑰,因此只能等待承諾交易1A被確認(rèn)1000次之后,才能提交可撤銷(xiāo)的交付交易1A提現(xiàn)(A1,B1)中的全部比特幣.此時(shí),即使B不監(jiān)視區(qū)塊鏈,他也不會(huì)損失任何資金.
不幸的是,這種簡(jiǎn)單的瞭望塔機(jī)制存在諸多問(wèn)題.在效率方面,由于使用的密鑰不同,因此每一個(gè)過(guò)期的承諾交易對(duì)應(yīng)唯一的違約補(bǔ)救交易,因此瞭望塔需要存儲(chǔ)全部的違約補(bǔ)救交易,并在新區(qū)塊產(chǎn)生后遍歷支付通道中所有的違約補(bǔ)救交易進(jìn)行匹配,這為瞭望塔帶來(lái)了巨大的開(kāi)銷(xiāo).雖然瞭望塔開(kāi)發(fā)者重新設(shè)計(jì)了違約補(bǔ)救交易的存儲(chǔ)結(jié)構(gòu),壓縮了瞭望塔存儲(chǔ)違約補(bǔ)救交易的開(kāi)銷(xiāo),但是存儲(chǔ)一筆違約補(bǔ)救交易仍需要300-350字節(jié).只要支付通道沒(méi)有結(jié)算,瞭望塔就必須存儲(chǔ)所有的違約補(bǔ)救交易.隨著支付通道數(shù)目的不斷增長(zhǎng),瞭望塔的存儲(chǔ)壓力也會(huì)不斷增大.不僅如此,一旦一筆承諾交易被提交到區(qū)塊鏈,瞭望塔就需要遍歷整個(gè)數(shù)據(jù)庫(kù).隨著數(shù)據(jù)庫(kù)規(guī)模的增加,交易匹配也需要越來(lái)越多的計(jì)算資源[26].
構(gòu)建于以太坊狀態(tài)通道之上的原始瞭望塔不存在效率問(wèn)題.與比特幣支付通道瞭望塔不同,基于智能合約以太坊狀態(tài)通道瞭望塔繼承了狀態(tài)通道的優(yōu)點(diǎn),最小化了瞭望塔存儲(chǔ)的數(shù)據(jù)量進(jìn)而提升了效率.舉個(gè)例子,如圖3所示,在A(yíng),B和C參與的狀態(tài)通道中,每次交易后他們?nèi)齻€(gè)共同生成新的通道份額分配方案,更新?tīng)顟B(tài)序號(hào)并對(duì)其進(jìn)行簽名.隨后通道參與者將最新的狀態(tài)信息上傳到瞭望塔,在接受到最新的狀態(tài)信息后瞭望塔就可以刪除舊狀態(tài)最小化其存儲(chǔ)開(kāi)銷(xiāo).一旦惡意的參與者(假設(shè)為A)發(fā)布過(guò)期的狀態(tài)state2,實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈的瞭望塔就會(huì)捕捉到這種行為,并向合約提交最新?tīng)顟B(tài)state3.由于瞭望塔提交了狀態(tài)序號(hào)大于2的狀態(tài),則A的鏈上更新請(qǐng)求無(wú)效,在爭(zhēng)議時(shí)間結(jié)束后通道以狀態(tài)序號(hào)最高的狀態(tài)進(jìn)行結(jié)算.如果爭(zhēng)議時(shí)間內(nèi)沒(méi)有新于state3的狀態(tài)被提交,則通道合約將把state3視為最新的合法狀態(tài)并將其記錄到區(qū)塊鏈上,完成狀態(tài)的鏈上結(jié)算.
圖3 瞭望塔參與的狀態(tài)通道更新流程Figure 3 Watchtower-based state channel workflow
這兩種原始瞭望塔都面臨著隱私和安全問(wèn)題.在隱私方面,將監(jiān)視任務(wù)外包給瞭望塔會(huì)泄露用戶(hù)的隱私.簡(jiǎn)單來(lái)說(shuō),每次支付通道的更新都會(huì)產(chǎn)生新的違約補(bǔ)救交易,或者最新?tīng)顟B(tài),用戶(hù)需要將全部更新信息提交給瞭望塔以便于瞭望塔提供監(jiān)視服務(wù).然而,通過(guò)用戶(hù)每次提交的更新信息,瞭望塔可以了解用戶(hù)支付通道的全部狀態(tài)變化,進(jìn)而推斷出用戶(hù)進(jìn)行的每一筆交易信息,造成對(duì)用戶(hù)隱私的侵犯.更重要的是,將監(jiān)視任務(wù)外包給原始瞭望塔還面臨安全隱患.信任單一瞭望塔違反了區(qū)塊鏈去中心化的原則:如果瞭望塔因?yàn)榫W(wǎng)絡(luò)等故障而無(wú)法監(jiān)視區(qū)塊鏈,或者欺騙用戶(hù)而實(shí)際上不監(jiān)視區(qū)塊鏈,甚至與支付通道中惡意的一方共謀,這都將導(dǎo)致用戶(hù)遭受無(wú)法索賠的資金損失.而且原始瞭望塔協(xié)議無(wú)法幫助用戶(hù)收集證據(jù),來(lái)向瞭望塔追償[27].一種可行的方案是讓用戶(hù)與多個(gè)瞭望塔相連,只要有一個(gè)瞭望塔是誠(chéng)實(shí)的,用戶(hù)的資金就是安全的.最后,激勵(lì)機(jī)制也會(huì)影響支付通道資金的安全,若沒(méi)有足夠的激勵(lì),瞭望塔就沒(méi)有動(dòng)力為用戶(hù)提供服務(wù).
針對(duì)文獻(xiàn)[17]中原始瞭望塔的缺陷,區(qū)塊鏈開(kāi)發(fā)者已經(jīng)提出了多種解決方案.我們搜集了目前的瞭望塔解決方案[26-34],根據(jù)其底層支付通道的不同,將它們分為比特幣支付通道瞭望塔協(xié)議和以太坊狀態(tài)通道瞭望塔協(xié)議兩大類(lèi),并從瞭望塔效率、鏈下交易隱私保護(hù)以及支付通道資金安全性等三個(gè)方面衡量每一種方案.接下來(lái)我們首先介紹兩類(lèi)支付通道瞭望塔協(xié)議.
針對(duì)原始比特幣支付通道瞭望塔存在的隱私、安全性與效率問(wèn)題,比特幣開(kāi)發(fā)者提出了許多解決方案.由于解決瞭望塔的效率挑戰(zhàn)是通過(guò)減少上傳到瞭望塔的數(shù)據(jù)實(shí)現(xiàn)的,這必然提升了用戶(hù)隱私.因此,我們把隱私和效率視為一個(gè)整體,將這些方案按其核心側(cè)重點(diǎn)分為隱私提升方案以及安全提升方案,并分別闡述方案的實(shí)現(xiàn)細(xì)節(jié)以及優(yōu)缺點(diǎn).
為了保護(hù)用戶(hù)的鏈下交易隱私,比特幣開(kāi)發(fā)者利用比特幣部分操作符的特性改進(jìn)了瞭望塔協(xié)議.Dryja[28]提出使用過(guò)期承諾交易的ID(transaction ID,TXID)作為密鑰來(lái)加密違約補(bǔ)救交易,以提升輕節(jié)點(diǎn)的隱私保護(hù)效果.
當(dāng)支付通道更新時(shí),B就使用過(guò)期承諾交易的TXID加密對(duì)應(yīng)的違約補(bǔ)救交易,并將其提交給瞭望塔.只要A是誠(chéng)實(shí)的,她就不會(huì)將過(guò)期的承諾交易提交到區(qū)塊鏈中.那么瞭望塔就無(wú)法獲取解密違約補(bǔ)救交易所需的TXID,因此瞭望塔無(wú)法獲知交易雙方的通道份額.一旦A提交了過(guò)期的承諾交易(即A希望竊取B的資金),瞭望塔就可以從區(qū)塊鏈中獲取過(guò)期承諾交易的TXID,并用該TXID解密對(duì)應(yīng)的違約補(bǔ)救交易并將其提交到區(qū)塊鏈中挽回B的損失.除了提交到公開(kāi)區(qū)塊鏈中的交易信息,瞭望塔無(wú)法破解其余承諾交易.如果B擁有多個(gè)支付通道,這樣還可以隱藏每個(gè)支付通道的更新頻率,因?yàn)椴t望塔無(wú)法通過(guò)加密數(shù)據(jù)定位更新的支付通道.故該瞭望塔方案最大程度地保護(hù)了用戶(hù)的隱私.
為了安全提取對(duì)方過(guò)期承諾交易的TXID,Dryja的瞭望塔方案還使用了隔離見(jiàn)證技術(shù)[35].隔離見(jiàn)證技術(shù)通過(guò)引入SIGHASH_NOINPUT操作符,將交易的TXID與簽名分離,B只需要知道A過(guò)期承諾交易對(duì)應(yīng)的輸入輸出,即可計(jì)算出交易的TXID.由于沒(méi)有簽名,B亦無(wú)法惡意公布A持有的過(guò)期承諾交易以竊取A在支付通道中的份額.隔離見(jiàn)證技術(shù)解決了TXID獲取過(guò)程中的安全性問(wèn)題,是Dryja的瞭望塔方案的基石.
另一方面,雖然支付通道中資金分配方案信息熵較低,但即使瞭望塔猜中違約補(bǔ)救交易對(duì)應(yīng)的過(guò)期承諾交易中的資金分配方案,他也無(wú)法推導(dǎo)出過(guò)期承諾交易的TXID,解密對(duì)應(yīng)的違約補(bǔ)救交易獲得隱私數(shù)據(jù)佐證其猜測(cè).如圖2所示,在承諾交易每次更新時(shí),A和B每次都會(huì)隨機(jī)生成新的一次性地址鎖定交易輸出,這是因?yàn)樽鲝U舊狀態(tài)需要向?qū)Ψ焦兼i定輸出地址對(duì)應(yīng)的私鑰.由于這些地址在區(qū)塊鏈上從未出現(xiàn)過(guò),因此瞭望塔無(wú)法猜測(cè)過(guò)期交易使用的地址.即使瞭望塔猜中過(guò)期承諾交易中的資金分配方案,他也無(wú)法猜中隨機(jī)生成的地址,故無(wú)法推導(dǎo)出TXID來(lái)破壞B的隱私.
雖然Dryja的瞭望塔方案提升了輕節(jié)點(diǎn)的隱私保護(hù)效果,但瞭望塔所需的資源仍是整個(gè)系統(tǒng)的瓶頸.每當(dāng)監(jiān)測(cè)到一筆承諾交易,瞭望塔就需要提取其TXID,并遍歷數(shù)據(jù)庫(kù)中存儲(chǔ)的全部加密信息以提取違約補(bǔ)救交易.由于引入了加密算法,這種方法所需的計(jì)算資源更多;另一方面,這種方法也會(huì)增加瞭望塔的存儲(chǔ)開(kāi)銷(xiāo).最后,沒(méi)有支付通道參與方的幫助,瞭望塔無(wú)法識(shí)別已關(guān)閉的支付通道對(duì)應(yīng)的違約補(bǔ)救交易,因?yàn)樗鼈儽籘XID加密.這帶來(lái)了額外的存儲(chǔ)開(kāi)銷(xiāo).
Khabbazian等人在Dryja的瞭望塔方案基礎(chǔ)上提出了Outpost協(xié)議[26],在保護(hù)用戶(hù)隱私的前提下顯著提升了瞭望塔效率.在Outpost協(xié)議中,瞭望塔僅存儲(chǔ)解密違約補(bǔ)救交易的密鑰,提交承諾交易的一方必須向區(qū)塊鏈提交一筆數(shù)據(jù)輸出交易(通過(guò)OP_RETURN操作符實(shí)現(xiàn))才可以關(guān)閉支付通道提取相應(yīng)份額,數(shù)據(jù)輸出交易以密文的形式記錄了對(duì)應(yīng)的違約補(bǔ)救交易.如果上鏈的是過(guò)期的承諾交易以及相應(yīng)數(shù)據(jù)輸出交易,瞭望塔就可以使用用戶(hù)提交的密鑰解密違約補(bǔ)救交易.因此這種方案顯著提升瞭望塔的存儲(chǔ)效率,且沒(méi)有犧牲用戶(hù)的隱私.
該方案重新設(shè)計(jì)了比特幣支付通道的更新支付通道的流程以及鏈下交易的數(shù)據(jù)結(jié)構(gòu),使得提交承諾交易的一方必須向區(qū)塊鏈提交數(shù)據(jù)輸出交易,否則他無(wú)法提取支付通道中的份額.如圖4所示,新承諾交易有三個(gè)輸出,除了原有的兩個(gè)結(jié)算輸出,該方案使用第三個(gè)輸出生成一筆數(shù)據(jù)輸出交易以記錄當(dāng)前承諾交易的違約補(bǔ)救交易.為了保證惡意的支付通道參與者A一定需要生成并公布數(shù)據(jù)輸出交易,數(shù)據(jù)輸出交易包含另一個(gè)有少量比特幣的輸出,A在提取其支付通道余額時(shí)必須將該輸入包含在可撤銷(xiāo)的交付交易的輸入中,否則她將無(wú)法關(guān)閉支付通道.可撤銷(xiāo)的交付交易的兩個(gè)輸入存在兩個(gè)相互獨(dú)立的鎖定時(shí)間,只有這兩個(gè)鎖定都解除,參與者A才能夠提交可撤銷(xiāo)的交付交易取回資金.在這兩個(gè)鎖定時(shí)間形成的爭(zhēng)議期間內(nèi),只要瞭望塔監(jiān)視到這筆數(shù)據(jù)輸出交易,他就可以從中提取違約補(bǔ)救交易并將其提交到區(qū)塊鏈,幫助合法用戶(hù)挽回?fù)p失.
圖4 Outpost方案示例Figure 4 Outpost scheme overview
在該方案中,違約補(bǔ)救交易以密文的形式被打包到數(shù)據(jù)輸出交易中,這是為了保證誠(chéng)實(shí)的用戶(hù)能夠正常關(guān)閉支付通道.如前所述,當(dāng)前承諾交易對(duì)應(yīng)的數(shù)據(jù)輸出交易記錄的是當(dāng)前承諾交易的違約補(bǔ)救交易,如果違約補(bǔ)救交易是以明文存儲(chǔ)的,當(dāng)A公布最新的承諾交易時(shí)B就可以從數(shù)據(jù)輸出交易中提取違約補(bǔ)救交易以竊取A的資金.為了避免這種情況,A會(huì)加密違約補(bǔ)救交易.當(dāng)支付通道更新時(shí),交易雙方不僅要交換過(guò)期承諾交易中鎖定輸出地址的私鑰,還需要交換加密違約補(bǔ)救交易的密鑰.在每次更新支付通道后,B只需要將128比特的密鑰上傳給瞭望塔.相比于動(dòng)輒幾百字節(jié)的違約補(bǔ)救交易,該方案顯著壓縮了瞭望塔的存儲(chǔ)開(kāi)銷(xiāo).此外,該方案也繼承了Dryja的瞭望塔中的隱私保護(hù)的特性,除了被提交到區(qū)塊鏈中用于關(guān)閉支付通道的承諾交易,瞭望塔無(wú)法破解B的鏈下交易內(nèi)容.
總的來(lái)說(shuō),Outpost協(xié)議顯著提升了瞭望塔效率以及用戶(hù)隱私,并與現(xiàn)有比特幣區(qū)塊鏈完全兼容.但是這類(lèi)方案沒(méi)有討論瞭望塔面臨的資金安全隱患:信任單一瞭望塔違反了區(qū)塊鏈去中心化的原則[36,37].并且這類(lèi)方案缺乏針對(duì)惡意瞭望塔反制措施:假使瞭望塔不作為,甚至共謀則導(dǎo)致用戶(hù)資金損失,用戶(hù)也無(wú)法收集證據(jù)向瞭望塔索賠.
為了解決原始瞭望塔方案中存在的安全隱患,Avarikioti等人首次將分布式理念引入瞭望塔協(xié)議中,為支付通道中的資金提供了更強(qiáng)的安全保障.安全性提升的另一種思路是通過(guò)引入保證金作為抵押,即使用戶(hù)因瞭望塔不作為等原因損失了通道中的份額,他仍可以向區(qū)塊鏈提交瞭望塔違約的證據(jù),從而獲得瞭望塔的保證金以補(bǔ)償損失.
4.2.1 分布式瞭望塔協(xié)議
單一瞭望塔架構(gòu)在瞭望塔不作為或共謀的情況下存在安全問(wèn)題,將單一瞭望塔擴(kuò)充為一組瞭望塔節(jié)點(diǎn)形成的分布式瞭望塔系統(tǒng)可以為用戶(hù)提供更強(qiáng)的安全保障.Avarikioti等人在2018年首次提出分布式瞭望塔協(xié)議DCWC[29]以提升支付通道的安全性,并設(shè)計(jì)了相應(yīng)的激勵(lì)機(jī)制獎(jiǎng)勵(lì)誠(chéng)實(shí)的瞭望塔:為支付通道安全做出貢獻(xiàn)的瞭望塔可以參與分配支付通道中惡意參與者的份額.在DCWC中,只要有一個(gè)瞭望塔是誠(chéng)實(shí)的,惡意參與者就無(wú)法竊取用戶(hù)的資金.
DCWC中的違約補(bǔ)救交易是由支付通道參與者B生成,并層層轉(zhuǎn)發(fā)到多個(gè)瞭望塔的.如果支付通道的另一個(gè)參與者A違約,先收到違約補(bǔ)救交易的瞭望塔有優(yōu)先追索權(quán)與優(yōu)先受償權(quán).換句話(huà)說(shuō),按照接收到違約補(bǔ)救交易的順序,瞭望塔形成了一個(gè)隊(duì)列.當(dāng)區(qū)塊鏈中出現(xiàn)過(guò)期的承諾交易時(shí),只有隊(duì)列前端的瞭望塔不作為,后續(xù)瞭望塔才能獲得相應(yīng)激勵(lì)份額.舉個(gè)例子,如果B向瞭望塔W1提交了違約補(bǔ)救交易,這筆違約補(bǔ)救交易經(jīng)由瞭望塔W2傳播到瞭望塔W3.如果A違約,并且W1履行了他的義務(wù),他將獲得全部的獎(jiǎng)勵(lì).如果W1在規(guī)定的時(shí)間內(nèi)不作為,W2最終幫助B挽回了損失,那么W1獲得轉(zhuǎn)發(fā)獎(jiǎng)勵(lì),W2獲得支付通道中A剩余的份額.只有當(dāng)W1與W2皆不作為時(shí),W3才會(huì)獲得獎(jiǎng)勵(lì).
這種瞭望塔的激勵(lì)策略是通過(guò)切割爭(zhēng)議時(shí)間實(shí)現(xiàn)的.其分配方式如圖5所示:當(dāng)A違約時(shí),按照協(xié)議,所有瞭望塔都會(huì)向區(qū)塊鏈提交違約補(bǔ)救交易,我們假設(shè)違約補(bǔ)救交易中有1.5 BTC的輸出用于激勵(lì)瞭望塔.激活該輸出的解鎖腳本有兩種策略:如果瞭望塔W1實(shí)時(shí)在線(xiàn),他就可以向區(qū)塊鏈提交交易T11提取所有獎(jiǎng)勵(lì).若在區(qū)塊鏈生成s個(gè)區(qū)塊后,W1仍未提取這筆輸出,這代表W1實(shí)際上掉線(xiàn)了,違約補(bǔ)救交易是后續(xù)瞭望塔提交的.在這種情況下,后續(xù)瞭望塔可以提交交易T12,此時(shí)W1僅獲得轉(zhuǎn)發(fā)獎(jiǎng)勵(lì),即0.5個(gè)比特幣.同樣,對(duì)于瞭望塔W2,他同樣有生成s個(gè)區(qū)塊的時(shí)間提取剩余全部獎(jiǎng)勵(lì).若未提取,在扣除轉(zhuǎn)發(fā)獎(jiǎng)勵(lì)后,通道內(nèi)剩余比特幣會(huì)被提交給后續(xù)瞭望塔進(jìn)行分配.以此類(lèi)推直至最后一個(gè)瞭望塔.所有生成s個(gè)區(qū)塊對(duì)應(yīng)時(shí)間之和即支付通道的爭(zhēng)議時(shí)間.
圖5 DCWC方案示例Figure 5 DCWC scheme overview
使用樹(shù)狀結(jié)構(gòu)代替隊(duì)列可以進(jìn)一步提升支付通道的安全.在例子中,每個(gè)瞭望塔僅轉(zhuǎn)發(fā)了一次違約補(bǔ)救交易,而在實(shí)際情況中,每個(gè)瞭望塔可以向多個(gè)瞭望塔轉(zhuǎn)發(fā)違約補(bǔ)救交易,進(jìn)而形成一個(gè)樹(shù).引入更多的瞭望塔進(jìn)一步保證了用戶(hù)的通道資金安全.不同分支中的瞭望塔是相互競(jìng)爭(zhēng)的,換句話(huà)說(shuō),只有一條分支中的瞭望塔會(huì)獲得獎(jiǎng)勵(lì).
但是DCWC的激勵(lì)措施缺乏吸引力,這會(huì)使DCWC方案在現(xiàn)實(shí)中無(wú)法達(dá)到預(yù)期的安全水平.由于瞭望塔只能從參與者惡意行為中獲利,而理性的參與者并不會(huì)作惡,因此DCWC中的瞭望塔并無(wú)穩(wěn)定的期望收益.另一方面,DCWC中越靠近葉子節(jié)點(diǎn)的瞭望塔存儲(chǔ)壓力會(huì)越大,而期望收益卻越少.如圖5所示,對(duì)于瞭望塔W2,他不僅僅需要存儲(chǔ)違約補(bǔ)救交易,還需要存儲(chǔ)交易T12.以此類(lèi)推,相比于W2,瞭望塔W3需要再多存儲(chǔ)一筆交易.總的來(lái)說(shuō),越靠近葉子節(jié)點(diǎn)的瞭望塔,所需要存儲(chǔ)的交易就越多,由于需要向父節(jié)點(diǎn)分配轉(zhuǎn)發(fā)獎(jiǎng)勵(lì),其獲得的獎(jiǎng)勵(lì)卻更少.綜上所述,理性瞭望塔不會(huì)參與這種協(xié)議[31],在現(xiàn)實(shí)中實(shí)現(xiàn)DCWC幾乎是不可能的.
Leinweber等人認(rèn)為可以通過(guò)分布式瞭望塔和可信執(zhí)行環(huán)境(trusted execution environments,TEE)設(shè)計(jì)可靠的日志審查機(jī)制,以解決瞭望塔不作為的問(wèn)題.該方案在現(xiàn)有瞭望塔系統(tǒng)中引入日志機(jī)制,通過(guò)日志審查識(shí)別不作為的瞭望塔.為了保證日志的可靠性,他們提出結(jié)合TEE,例如目前最受歡迎的Intel SGX[39],設(shè)計(jì)可靠的瞭望塔日志審查系統(tǒng)[30].簡(jiǎn)單來(lái)說(shuō),通過(guò)在服務(wù)器內(nèi)部TEE運(yùn)行瞭望塔以及日志程序,進(jìn)而為用戶(hù)提供可審查的瞭望塔服務(wù).為了避免服務(wù)器中不可信部分干擾TEE中的代碼執(zhí)行,TEE被設(shè)計(jì)為與操作系統(tǒng)分開(kāi)的隔離部分,以確保TEE中處理的數(shù)據(jù)不被具有特權(quán)的操作系統(tǒng)識(shí)別、修改.換句話(huà)說(shuō),具有管理權(quán)限的服務(wù)提供者不能影響TEE中信任代碼的執(zhí)行和輸出,也不能識(shí)別其內(nèi)部數(shù)據(jù)或者篡改其內(nèi)部狀態(tài),因此惡意的服務(wù)器無(wú)法干擾TEE內(nèi)部的日志生成程序,進(jìn)而保證了日志的準(zhǔn)確性.
但是依靠單一瞭望塔仍無(wú)法為用戶(hù)提供強(qiáng)安全保證.這是因?yàn)閻阂獾姆?wù)器可以切斷TEE與外部的通信,或者切斷電源.不僅如此,由于TEE內(nèi)部存儲(chǔ)空間有限,因此TEE會(huì)將日志數(shù)據(jù)外包到不可信的外部存儲(chǔ)中.盡管惡意的服務(wù)器無(wú)法篡改日志,但是他可以刪除這些數(shù)據(jù).為了解決這個(gè)問(wèn)題,該方案將單瞭望塔擴(kuò)展為分布式瞭望塔,從而為用戶(hù)提供支付通道的強(qiáng)安全保障以及可靠的日志審查服務(wù).當(dāng)區(qū)塊鏈產(chǎn)生新的區(qū)塊,或者支付通道的狀態(tài)發(fā)生更新,瞭望塔之間會(huì)互相審查并創(chuàng)建相關(guān)的審查日志,并對(duì)其進(jìn)行簽名.通過(guò)對(duì)比不同瞭望塔之間的日志數(shù)據(jù),用戶(hù)就可以驗(yàn)證瞭望塔是否持續(xù)監(jiān)視區(qū)塊鏈.
該方案亦利用TEE保護(hù)其內(nèi)部數(shù)據(jù)機(jī)密性的特點(diǎn),結(jié)合了BOLT#3方案[39]中的密鑰推導(dǎo)算法生成RSMC中進(jìn)行鏈下交易所需的密鑰集,壓縮了瞭望塔的存儲(chǔ)開(kāi)銷(xiāo),并保護(hù)了用戶(hù)的隱私.只需要一個(gè)前面都是字節(jié)的種子,支付通道參與者就可以使用BOLT#3方案中的密鑰推導(dǎo)算法生成248?1對(duì)公私鑰,這完全滿(mǎn)足支付通道更新的需求.因此,在支付通道初始化時(shí),運(yùn)行在TEE中的瞭望塔只需要獲取支付通道雙方的私鑰種子.如果支付通道惡意的一方A提交過(guò)期的承諾交易,TEE使用種子生成對(duì)應(yīng)私鑰,進(jìn)而生成對(duì)應(yīng)違約補(bǔ)救交易,并將其提交到區(qū)塊鏈幫助瞭望塔用戶(hù)B挽回?fù)p失.相比于Outpost協(xié)議,這種方案進(jìn)一步壓縮了瞭望塔的存儲(chǔ)開(kāi)銷(xiāo).由于TEE只按照規(guī)定的代碼提供瞭望塔服務(wù),具有管理權(quán)限的服務(wù)提供者也不能識(shí)別TEE內(nèi)部數(shù)據(jù),因此惡意的服務(wù)器也無(wú)法獲知支付通道雙方用于更新支付通道的密鑰種子,亦無(wú)法窺探用戶(hù)隱私.
雖然這種方案可以允許用戶(hù)識(shí)別不作為的瞭望塔,但是使用這種瞭望塔的用戶(hù)仍需要向多個(gè)瞭望塔支付服務(wù)費(fèi).此外,信任TEE可能會(huì)威脅支付通道雙方的資金安全.目前有很多研究者指出SGX面臨信息泄露風(fēng)險(xiǎn)[40-44].如果惡意的服務(wù)器能夠識(shí)別SGX內(nèi)部的數(shù)據(jù),這不僅僅破壞了用戶(hù)的隱私,攻擊者還可以獲取支付通道雙方用于更新支付通道的私鑰種子,進(jìn)而竊取其在支付通道中的資金.
4.2.2 保證金擔(dān)保方案
文獻(xiàn)[31]借鑒了以太坊狀態(tài)通道瞭望塔PISA[29]的設(shè)計(jì)思路,提出了Cerberus channel方案,該方案通過(guò)重新設(shè)計(jì)比特幣支付通道協(xié)議,將保證金機(jī)制引入到比特幣支付通道瞭望塔中以增強(qiáng)瞭望塔安全性.在提供服務(wù)前,瞭望塔通過(guò)抵押交易將一大筆擔(dān)保金鎖定在與用戶(hù)形成的聯(lián)合賬戶(hù)中,作為瞭望塔提供服務(wù)的擔(dān)保.與之前的方案不同,在該方案中瞭望塔需要參與支付通道的更新環(huán)節(jié):當(dāng)支付通道更新時(shí),交易雙方與瞭望塔不僅要生成新的承諾交易、可撤銷(xiāo)的交付交易、違約補(bǔ)救交易,還需要生成對(duì)應(yīng)反制瞭望塔的懲罰交易.在關(guān)閉支付通道結(jié)算通道內(nèi)余額時(shí),即使A公布承諾交易,B亦無(wú)法直接獲得屬于他的通道余額.只有在爭(zhēng)議時(shí)間過(guò)后,或者獲得瞭望塔的簽名授權(quán),他才能夠提取屬于他的份額.這是為了便于反制惡意的瞭望塔:舉個(gè)例子,如圖6所示,如果A公布過(guò)期的承諾交易,若在爭(zhēng)議時(shí)間內(nèi)瞭望塔不作為,B就可以在一個(gè)索賠時(shí)限內(nèi)公布懲罰交易,進(jìn)而沒(méi)收保證金以彌補(bǔ)損失.如果瞭望塔及時(shí)向區(qū)塊鏈提交了違約補(bǔ)救交易,即使B再向區(qū)塊鏈提交懲罰交易,這筆交易也不會(huì)被區(qū)塊鏈接受,因?yàn)樗麄兓ㄙM(fèi)了一筆相同的輸出.
圖6 Cerberus channels方案示例Figure 6 Cerberus channels scheme overview
需要注意的是,比特幣區(qū)塊鏈也不能無(wú)限鎖定瞭望塔的保證金,在索賠時(shí)限后瞭望塔就可以贖回保證金,但用戶(hù)索賠的時(shí)間期限遠(yuǎn)大于支付通道的爭(zhēng)議解決時(shí)限.總的來(lái)說(shuō),該方案繼承了PISA方案的部分優(yōu)點(diǎn):通過(guò)引入保證金擔(dān)保的瞭望塔,在沒(méi)有增加爭(zhēng)議時(shí)間的前提下延長(zhǎng)了用戶(hù)的離線(xiàn)時(shí)間,在沒(méi)有犧牲通道資金靈活性的前提下提升了安全性.
另一方面,惡意的支付通道雙方無(wú)法騙取誠(chéng)實(shí)瞭望塔的保證金.首先,如果A是誠(chéng)實(shí)的,B是無(wú)法通過(guò)公布懲罰交易騙取誠(chéng)實(shí)瞭望塔的保證金.如果沒(méi)有過(guò)期的承諾交易,懲罰交易花費(fèi)的輸出就是不存在的,自然不會(huì)被區(qū)塊鏈礦工接受.其次,即使A和B共謀,他們也無(wú)法騙取瞭望塔保證金.這是因?yàn)椴t望塔需要參與支付通道的每一次更新.換句話(huà)說(shuō),沒(méi)有瞭望塔的幫助,他們無(wú)法更新支付通道生成新的懲罰交易.因此,只要瞭望塔實(shí)時(shí)監(jiān)測(cè)區(qū)塊鏈,惡意的支付通道雙方不可能騙取瞭望塔保證金.
雖然該方案保證了用戶(hù)資金安全,但并不保護(hù)用戶(hù)隱私,因?yàn)椴t望塔需要參與每一次支付通道的更新.此外,該方案不僅增加了瞭望塔的存儲(chǔ)與計(jì)算壓力,還增加了用戶(hù)的存儲(chǔ)開(kāi)銷(xiāo).不僅瞭望塔需要存儲(chǔ)全部的違約補(bǔ)救交易,用戶(hù)也需要存儲(chǔ)全部的懲罰交易,以保證支付通道被惡意關(guān)閉時(shí)能索取保證金補(bǔ)償.
以太坊智能合約的引入使得瞭望塔可以同時(shí)兼顧用戶(hù)的隱私性與安全性.在隱私性方面,通過(guò)使用哈希函數(shù)重新設(shè)計(jì)狀態(tài)通道合約以及通道結(jié)算流程,瞭望塔無(wú)需知曉承諾交易的細(xì)節(jié),亦可保證用戶(hù)的通道資金安全.而在安全性方面,借助智能合約,開(kāi)發(fā)者引入了保證金機(jī)制,即使瞭望塔未及時(shí)對(duì)過(guò)期交易做出反制,用戶(hù)亦可以向合約提交瞭望塔違約的證據(jù),來(lái)提取瞭望塔抵押在智能合約中的保證金,從而獲得補(bǔ)償.
最早的基于智能合約的瞭望塔由McCorry等人提出,作者設(shè)計(jì)了名為PISA的瞭望塔方案[27],來(lái)改善以太坊支付通道瞭望塔中存在的隱私問(wèn)題.PISA調(diào)整了狀態(tài)通道的結(jié)算流程,通道參與者只需向合約上傳包含所有參與者簽名的狀態(tài)序號(hào),以及狀態(tài)序號(hào)對(duì)應(yīng)的支付通道狀態(tài)的哈希值即可開(kāi)啟鏈上結(jié)算.舉個(gè)例子,在支付通道參與者進(jìn)行狀態(tài)更新的時(shí)候,瞭望塔用戶(hù)只需要上傳所有通道參與者簽名的狀態(tài)序號(hào)以及哈希值即可.在爭(zhēng)議時(shí)間內(nèi),瞭望塔也僅需向合約發(fā)送上述最新的狀態(tài)信息(包括狀態(tài)序號(hào)和狀態(tài)哈希值)即可完成對(duì)過(guò)期交易的反制,狀態(tài)哈希值的原像將在爭(zhēng)議時(shí)間過(guò)后才需要被發(fā)送至區(qū)塊鏈上.這樣的調(diào)整使得瞭望塔只需要獲得最新?tīng)顟B(tài)的哈希值,以及所有通道參與者對(duì)哈希值的簽名,即可擁有反制過(guò)期狀態(tài)的能力,而不再需要獲知完整的狀態(tài),從而最大化通道參與者的隱私.此外,這樣的設(shè)計(jì)還減少了鏈上內(nèi)容對(duì)通道參與者隱私的泄露,因?yàn)椴怀晒Φ逆溕蠌?qiáng)制結(jié)算請(qǐng)求將不再泄露狀態(tài)的內(nèi)容.
然而,簡(jiǎn)單地將通道狀態(tài)替換為狀態(tài)的哈希值并不能很好地保護(hù)通道參與者的隱私.這是因?yàn)橥ǖ乐匈Y金分配方案信息熵較低,瞭望塔可以枚舉通道可能的狀態(tài)并計(jì)算哈希值.通過(guò)與狀態(tài)通道參與者上傳的哈希值進(jìn)行比較,瞭望塔就可以獲知通道參與者的資金分配狀態(tài),也就破壞了通道參與者的隱私.為此,通道參與者向支付通道狀態(tài)中添加了一個(gè)隨機(jī)數(shù)以提升隱私.簡(jiǎn)單來(lái)說(shuō),狀態(tài)哈希值對(duì)應(yīng)的原象中包含了一個(gè)隨機(jī)數(shù)用于最大化分配狀態(tài)的信息熵.在這種情況下,即使瞭望塔猜中對(duì)應(yīng)狀態(tài)中的資金分配方案,他也無(wú)法猜中該隨機(jī)數(shù),故無(wú)法推導(dǎo)出狀態(tài)哈希來(lái)破壞其用戶(hù)的隱私.
另一方面,PISA中的瞭望塔還引入了保證金機(jī)制以進(jìn)一步提升用戶(hù)資金安全性.簡(jiǎn)單來(lái)說(shuō),通過(guò)維護(hù)一個(gè)保證金合約賬戶(hù)實(shí)現(xiàn)保證金的抵押機(jī)制,一個(gè)瞭望塔的所有服務(wù)都在同一個(gè)合約賬戶(hù)上完成,這樣獨(dú)立又唯一的賬戶(hù)設(shè)置有利于瞭望塔宣傳與開(kāi)展服務(wù).如圖7所示,在提供服務(wù)前,瞭望塔需要向保證金合約中存入一大筆保證金,以作為瞭望塔提供服務(wù)的擔(dān)保.當(dāng)B向瞭望塔訂購(gòu)服務(wù)時(shí),他需要向瞭望塔發(fā)送需要瞭望塔監(jiān)視的通道狀態(tài)哈希值hstate3和所有參與者對(duì)該狀態(tài)的簽名供瞭望塔使用,這表示state2及之前的狀態(tài)不應(yīng)被用于通道鏈上更新.如果瞭望塔同意提供服務(wù),瞭望塔會(huì)向B發(fā)送一個(gè)用自己私鑰簽名的收據(jù),這個(gè)收據(jù)包含了瞭望塔應(yīng)該監(jiān)視的通道狀態(tài)信息,隨后雙方建立一個(gè)單向支付通道供B支付服務(wù)費(fèi).在向B發(fā)送收據(jù)后,瞭望塔監(jiān)視區(qū)塊鏈上與通道合約相關(guān)的交易,一旦發(fā)現(xiàn)A將hstate2用于鏈上狀態(tài)更新,瞭望塔就可以在通道的爭(zhēng)議解決時(shí)限前提交{hstate3,3}和所有參與者對(duì){hstate3,3}的簽名來(lái)完成對(duì)過(guò)期狀態(tài)hstate2的反制.一旦B發(fā)現(xiàn)瞭望塔沒(méi)有完成監(jiān)視通道的任務(wù),他可以在一個(gè)索賠時(shí)限內(nèi)向保證金合約提供這個(gè)收據(jù)和狀態(tài)通道當(dāng)前狀態(tài),證明瞭望塔不作為,從而將瞭望塔鎖定在保證金合約里的保證金取出,而瞭望塔只能在這個(gè)索賠時(shí)限后才能贖回保證金.需要注意的是,B索賠的時(shí)間期限應(yīng)遠(yuǎn)大于狀態(tài)通道的爭(zhēng)議解決時(shí)限.總的來(lái)說(shuō),PISA通過(guò)引入保證金機(jī)制,在沒(méi)有犧牲通道資金靈活性的前提下提升了安全性.
圖7 PISA方案示例Figure 7 PISA scheme overview
相比于之前的方案,PISA瞭望塔方案在實(shí)現(xiàn)了強(qiáng)安全性的同時(shí)保護(hù)了用戶(hù)的隱私.首先,由于持有瞭望塔簽名過(guò)的收據(jù),用戶(hù)可以在瞭望塔未正常提供服務(wù)后通過(guò)保證金合約單方面取走瞭望塔的保證金.其次,狀態(tài)通道參與者也無(wú)法私下更新?tīng)顟B(tài)通道進(jìn)而騙取瞭望塔的保證金,因?yàn)橹灰簧蟼髯钚聽(tīng)顟B(tài),他們就無(wú)法獲得帶有瞭望塔簽名的收據(jù),保證金合約不會(huì)接受沒(méi)有瞭望塔簽名收據(jù)的索賠請(qǐng)求.基于以上兩點(diǎn),用戶(hù)與瞭望塔的資金安全都得到了保障.在隱私性方面,PISA中的瞭望塔只會(huì)獲得狀態(tài)的哈希值而無(wú)法獲知狀態(tài)的內(nèi)容,這有效地維護(hù)了通道的隱私性.除此以外,相比于分布式瞭望塔協(xié)議,該方案顯著降低了用戶(hù)服務(wù)費(fèi).只需要一個(gè)瞭望塔,該方案就能提供合理的安全保障,另外,用戶(hù)只有在更新?tīng)顟B(tài)時(shí)才需要付費(fèi),這種付費(fèi)機(jī)制對(duì)于絕大部分交易量不大的用戶(hù)也更為友好.
但PISA方案設(shè)計(jì)存在兩個(gè)核心缺陷.首先,PISA瞭望塔可以向多個(gè)通道提供服務(wù),這些通道中包含的資金總額可能超過(guò)瞭望塔抵押的保證金,這使得保證金帶來(lái)的安全性擔(dān)保會(huì)隨著用戶(hù)數(shù)量增多而嚴(yán)重減弱.當(dāng)瞭望塔對(duì)多個(gè)用戶(hù)不作為時(shí),后提交證據(jù)的用戶(hù)將無(wú)錢(qián)可取,這是PISA方案最致命的安全漏洞.第二,瞭望塔用戶(hù)需要監(jiān)視瞭望塔是否正常工作,雖然用戶(hù)索賠的時(shí)間期限長(zhǎng)于通道爭(zhēng)議期限,但用戶(hù)仍不能完全離線(xiàn).PISA方案只是延長(zhǎng)了用戶(hù)可以安全離線(xiàn)的時(shí)間,但并未從根本上解決用戶(hù)無(wú)法離線(xiàn)的問(wèn)題.
Avarikioti等人提出了BRICK方案,該方案通過(guò)引入分布式瞭望塔機(jī)制實(shí)現(xiàn)了比PISA更強(qiáng)的安全性保證[32].BRICK方案將瞭望塔從單個(gè)節(jié)點(diǎn)擴(kuò)充為多個(gè)節(jié)點(diǎn)構(gòu)成的委員會(huì),并假設(shè)委員會(huì)中至少三分之二以上的節(jié)點(diǎn)是誠(chéng)實(shí)的.與PISA不同,BRICK方案采取了“主動(dòng)防御”策略:瞭望塔不再對(duì)過(guò)期交易進(jìn)行反制,而是讓過(guò)期交易無(wú)法被合約接受,從根本上失去上鏈的可能.為此,該方案直接讓瞭望塔委員會(huì)介入鏈下?tīng)顟B(tài)更新與鏈上通道關(guān)閉中.在鏈下?tīng)顟B(tài)更新環(huán)節(jié),每個(gè)通道參與者都需要將包含所有參與者簽名的通道狀態(tài)哈希hstatei發(fā)送給瞭望塔委員會(huì)并等待委員會(huì)成員對(duì)hstatei進(jìn)行簽名,只有超過(guò)t個(gè)委員會(huì)成員簽名的狀態(tài)才被視為合法狀態(tài),t是綜合考慮委員會(huì)成員離線(xiàn)或懷有惡意等問(wèn)題后設(shè)定的閾值,一般按照拜占庭容錯(cuò)機(jī)制設(shè)置為瞭望塔節(jié)點(diǎn)總數(shù)的三分之二.對(duì)于鏈上關(guān)閉通道環(huán)節(jié),如果關(guān)閉通道的close(statei)指令集齊了所有通道參與者的簽名,則通道無(wú)需經(jīng)過(guò)委員會(huì)即可關(guān)閉.如果參與者無(wú)法集齊簽名,則任何通道參與者都可以將當(dāng)前通道狀態(tài)statei連同一個(gè)關(guān)閉通道請(qǐng)求發(fā)送給委員會(huì)成員.委員會(huì)成員會(huì)在一個(gè)共識(shí)周期內(nèi)驗(yàn)證此狀態(tài)是否為他們簽署過(guò)的最新通道狀態(tài),所有認(rèn)同statei的委員會(huì)成員對(duì)statei簽名并發(fā)送給通道參與者,只有收集到超過(guò)t個(gè)委員會(huì)成員簽名的關(guān)閉通道請(qǐng)求才會(huì)被合約接受,完成委員會(huì)批準(zhǔn)的通道關(guān)閉操作.
BRICK方案的安全性來(lái)源于分布式系統(tǒng)和保證金兩個(gè)方面.與單瞭望塔相比,這種分布式瞭望塔能夠在三分之一的節(jié)點(diǎn)是惡意的情況下提供可靠的服務(wù),而進(jìn)行惡意行為的瞭望塔節(jié)點(diǎn)也會(huì)在初次作惡后被沒(méi)收保證金并開(kāi)除出瞭望塔委員會(huì).這說(shuō)明BRICK方案的安全性不再完全依賴(lài)于瞭望塔抵押的保證金,與PISA方案相比實(shí)現(xiàn)了更高的安全性保證.與此同時(shí),分布式的瞭望塔設(shè)計(jì)使得瞭望塔委員會(huì)抵押的保證金由全部瞭望塔節(jié)點(diǎn)分?jǐn)?單一瞭望塔不在需要抵押大額保證金.但BRICK沒(méi)有設(shè)計(jì)與分布式瞭望塔相匹配的激勵(lì)機(jī)制,而是讓全部參與簽署新?tīng)顟B(tài)的瞭望塔均攤用戶(hù)的服務(wù)費(fèi).在不提升用戶(hù)服務(wù)費(fèi)總額的情況下,這種方案在實(shí)際中很難部署.
Liu等人提出了Fail-safe方案[33]進(jìn)一步減少了BRICK中所需的用戶(hù)服務(wù)費(fèi).該方案通過(guò)引入審查機(jī)制進(jìn)而使用單一瞭望塔取代了瞭望塔委員會(huì).在Fail-safe方案中,瞭望塔不但需要介入鏈下?tīng)顟B(tài)更新與鏈上通道關(guān)閉,它還必須定期向通道合約發(fā)送通道最新?tīng)顟B(tài)序列號(hào),并以此來(lái)向通道參與者證明其可靠性.
然而fail-safe方案只能提供與PISA方案相同的安全性保障.因?yàn)閷彶闄C(jī)制并不能保證瞭望塔不與惡意的參與者共謀,用戶(hù)仍需監(jiān)視區(qū)塊鏈來(lái)收集瞭望塔違約的證據(jù).因此Fail-safe方案在安全性保證方面和PISA完全相同,將安全性完全依托于瞭望塔抵押的保證金.不僅如此,定期向保證金合約提交最新?tīng)顟B(tài)序列號(hào)還增加了運(yùn)行瞭望塔的成本,如果狀態(tài)通道的參與者交易頻率不高,提交狀態(tài)所需要的交易費(fèi)可能超過(guò)直接進(jìn)行鏈上交易所需的交易費(fèi).
從整體上講,雖然瞭望塔方案可以通過(guò)保證金機(jī)制實(shí)現(xiàn)更強(qiáng)的安全保障,但必須超過(guò)所有用戶(hù)通道內(nèi)資金總和的高額保證金也極大地增加了瞭望塔運(yùn)營(yíng)的成本,使瞭望塔運(yùn)營(yíng)者面臨巨大的資金壓力.因此,如何降低瞭望塔運(yùn)行成本并實(shí)現(xiàn)強(qiáng)安全性保障是這些方案面臨的一個(gè)十分重要的待解決問(wèn)題.
為了保證輕節(jié)點(diǎn)能夠安全地使用支付通道進(jìn)行交易,區(qū)塊鏈開(kāi)發(fā)者提出了瞭望塔技術(shù).但瞭望塔技術(shù)設(shè)計(jì)面臨效率、用戶(hù)鏈下交易隱私以及用戶(hù)通道資金安全三個(gè)挑戰(zhàn).本文系統(tǒng)地整理了自支付通道瞭望塔出現(xiàn)以來(lái)關(guān)于瞭望塔的研究進(jìn)展,根據(jù)其底層支付通道的不同將其分為比特幣支付通道的瞭望塔技術(shù)和以太坊支付通道的瞭望塔技術(shù),詳細(xì)闡述了每一種瞭望塔技術(shù)的原理,并將這些方案納入到統(tǒng)一的框架中進(jìn)行比較,為了方便讀者比較,我們繪制了表1展示這些方案的優(yōu)勢(shì)以及缺陷.
表1 各方案性能對(duì)比Table 1 Comparison of each watchtower scheme
在比特幣支付通道瞭望塔中,現(xiàn)有的解決方案只能解決瞭望塔面臨的部分挑戰(zhàn).由表1所示,Dryja的瞭望塔顯著提升了用戶(hù)隱私保護(hù)效果,Outpost協(xié)議在此基礎(chǔ)上引入數(shù)據(jù)輸出交易進(jìn)一步提升了瞭望塔效率,DCWC瞭望塔與Cerberus瞭望塔分別使用分布式協(xié)議以及保證金機(jī)制提升了用戶(hù)資金安全性.但是這些方案均無(wú)法在高隱私性低開(kāi)銷(xiāo)的前提下實(shí)現(xiàn)高安全性,僅有基于TEE的方案可以同時(shí)實(shí)現(xiàn)瞭望塔設(shè)計(jì)的這三個(gè)目標(biāo).然而該方案將用戶(hù)私鑰托管入TEE中,這將用戶(hù)的通道資金安全完全托付于TEE,這種TEE的使用策略至今尚有爭(zhēng)議,不斷涌現(xiàn)出對(duì)TEE的側(cè)信道攻擊手段使得基于TEE的方案面臨安全挑戰(zhàn)[44].一旦攻擊者通過(guò)側(cè)信道攻擊破解TEE中存儲(chǔ)的私鑰,攻擊者就可以竊取支付通道中的資金.
在以太坊狀態(tài)通道中,雖然基于保證金的方案可以為瞭望塔用戶(hù)提供高資金安全性保證,但它們也顯著增加了運(yùn)行瞭望塔的成本,終將提升用戶(hù)服務(wù)費(fèi),而這可能超過(guò)了用戶(hù)自己運(yùn)行一個(gè)全節(jié)點(diǎn)的成本,進(jìn)而降低了瞭望塔的吸引力.不僅如此,除了服務(wù)費(fèi)更高的BRICK方案,其余方案僅僅提升了支付通道參與者監(jiān)視區(qū)塊鏈的間隔,并不能允許用戶(hù)徹底離線(xiàn).
綜上所述,支付通道的瞭望塔技術(shù)通過(guò)引入第三方(即瞭望塔)的方式為支付通道用戶(hù)提供了一道額外的安全防線(xiàn).然而,由于瞭望塔并不一定可信,因此將監(jiān)視區(qū)塊鏈的任務(wù)委托給瞭望塔并不能保證用戶(hù)鏈下交易的安全.除此以外,瞭望塔的介入所導(dǎo)致的鏈下交易隱私泄露,和第三方提供服務(wù)的效率也同樣是瞭望塔技術(shù)亟待解決的關(guān)鍵問(wèn)題.目前已有的方案均未能同時(shí)兼顧安全性、隱私性與效率,這說(shuō)明瞭望塔技術(shù)尚需進(jìn)一步完善.完善現(xiàn)有的瞭望塔技術(shù)可以從以下兩個(gè)方面入手:
第一種思路是設(shè)計(jì)可約束瞭望塔行為的協(xié)議.為了避免因瞭望塔的不可信或不作為而導(dǎo)致用戶(hù)通道資金或者交易隱私遭受損失,約束瞭望塔的行為或許是一種可行的思路.舉例來(lái)說(shuō),使用TEE設(shè)計(jì)瞭望塔協(xié)議可以實(shí)現(xiàn)約束瞭望塔行為的目標(biāo),提供可信執(zhí)行的TEE不會(huì)執(zhí)行惡意的操作.雖然目前學(xué)術(shù)界已經(jīng)存在基于TEE的瞭望塔方案[30],但該方案將用戶(hù)私鑰托管于TEE中,雖然提升了瞭望塔的效率,但無(wú)法抵抗對(duì)TEE的側(cè)信道攻擊,這是此方案的核心缺陷.因此,如何在TEE不持有用戶(hù)私鑰的情況下,設(shè)計(jì)高效的基于TEE瞭望塔方案,是未來(lái)瞭望塔技術(shù)的研究熱點(diǎn).更加抽象地說(shuō),將TEE視為一道額外的安全防線(xiàn),而不是完全取代現(xiàn)有的安全機(jī)制[45],或許是將TEE應(yīng)用至瞭望塔領(lǐng)域的可靠思路.這樣,即使TEE出現(xiàn)安全漏洞,系統(tǒng)的信任假設(shè)也只會(huì)收縮至未使用TEE之前,而不會(huì)威脅支付通道參與者的資金安全.
另一種思路是改進(jìn)現(xiàn)有的保證金體系.現(xiàn)有基于保證金的瞭望塔運(yùn)行成本過(guò)高,且并沒(méi)有完全免除用戶(hù)監(jiān)視區(qū)塊鏈的責(zé)任.通過(guò)引入信譽(yù)擔(dān)保機(jī)制取代保證金擔(dān)保機(jī)制可以降低瞭望塔的押金成本,并為用戶(hù)提供可靠的擔(dān)保.目前,基于區(qū)塊鏈的身份信譽(yù)系統(tǒng)已有諸多詳盡的研究,最受歡迎的區(qū)塊鏈自主身份管理系統(tǒng)如uPort[46]與ShoCard[47]已經(jīng)在學(xué)術(shù)界和商業(yè)界都有較大的影響力,并積累了一定的用戶(hù)群體.這些身份系統(tǒng)允許瞭望塔運(yùn)行者將其身份信息綁定到區(qū)塊鏈中,從而以其身份信譽(yù)取代或部分取代基于保證金的擔(dān)保機(jī)制.假使瞭望塔作惡,其作惡的證據(jù)將會(huì)被永遠(yuǎn)記錄在區(qū)塊鏈中,用戶(hù)可以隨時(shí)同步區(qū)塊鏈?zhǔn)占t望塔作惡的證據(jù),并根據(jù)瞭望塔身份信息向其索賠.由于瞭望塔的身份信息與作惡的證據(jù)會(huì)被永遠(yuǎn)記錄在區(qū)塊鏈中,用戶(hù)可以在任意時(shí)間同步區(qū)塊鏈?zhǔn)占C據(jù),并向瞭望塔運(yùn)行者索賠.這種設(shè)計(jì)思路不僅通過(guò)身份信譽(yù)作為抵押降低了運(yùn)行瞭望塔的成本,也進(jìn)一步減輕了用戶(hù)定期監(jiān)視區(qū)塊鏈的責(zé)任,因此值得進(jìn)一步研究.
得益于交易速度、隱私性、效率等方面的優(yōu)勢(shì),支付通道協(xié)議已經(jīng)成為鏈下擴(kuò)容的研究熱點(diǎn).作為支撐區(qū)塊鏈支付通道協(xié)議中不可或缺的一環(huán),瞭望塔技術(shù)近年來(lái)也得到廣泛關(guān)注和大量研究.本文系統(tǒng)梳理了區(qū)塊鏈瞭望塔技術(shù)的主要進(jìn)展,詳細(xì)分析了現(xiàn)有瞭望塔技術(shù)的不足,并對(duì)其發(fā)展趨勢(shì)進(jìn)行了展望,從而為研究人員和開(kāi)發(fā)者提供有用參考.