• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      區(qū)塊鏈鏈下通道研究綜述*

      2024-04-28 06:55:20劉懿中陳若楠劉建偉
      密碼學(xué)報(bào) 2024年1期
      關(guān)鍵詞:參與方合約參與者

      劉懿中, 姜 楠, 陳若楠, 劉建偉

      1.北京航空航天大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 北京 100191

      2.密碼科學(xué)技術(shù)全國(guó)重點(diǎn)實(shí)驗(yàn)室, 北京 100878

      1 引言

      2008 年, 比特幣[1]的出現(xiàn)帶動(dòng)了對(duì)數(shù)字貨幣的研究熱潮, 而作為數(shù)字貨幣底層技術(shù)的區(qū)塊鏈技術(shù)也成為了一個(gè)備受關(guān)注的研究領(lǐng)域.區(qū)塊鏈的本質(zhì)是一種分布式、去中心化的賬本, 此賬本記錄了所有參與者的一系列交易和事件, 這些記錄以區(qū)塊的形式鏈接在一起, 形成一個(gè)不可篡改的鏈條.區(qū)塊鏈的發(fā)展為各種領(lǐng)域帶來(lái)了創(chuàng)新的可能與機(jī)遇, 尤其是在醫(yī)療、金融等領(lǐng)域[2].但區(qū)塊鏈在可擴(kuò)展性方面的缺陷也限制了其應(yīng)用與推廣.當(dāng)前, 比特幣的交易吞吐量大約為3–7 TPS (transactions per second), 以太坊[3]大約為10–20 TPS, 而中心化支付服務(wù)提供商VISA 大約為3000 TPS[4].顯然, 當(dāng)前的區(qū)塊鏈數(shù)字貨幣平臺(tái)難以滿足人們的支付愿景, 因此, 解決區(qū)塊鏈的可擴(kuò)展性問題進(jìn)而提高交易性能是必須的.

      1.1 區(qū)塊鏈概述

      區(qū)塊鏈?zhǔn)且粋€(gè)分布式數(shù)據(jù)庫(kù), 其中存儲(chǔ)了各種記錄的有序列表.記錄存儲(chǔ)在鏈接的塊中.塊之間的鏈接通過哈希函數(shù)實(shí)現(xiàn).

      一個(gè)區(qū)塊主要由區(qū)塊頭和區(qū)塊體構(gòu)成.區(qū)塊頭記錄了區(qū)塊的基本信息, 例如版本號(hào)(version number)、前一區(qū)塊的哈希值(previous block hash)、默克爾樹根值(Merkle root)、時(shí)間戳(timestamp)、隨機(jī)數(shù)(nonce) 等.區(qū)塊體一般記錄了當(dāng)前區(qū)塊內(nèi)的交易信息, 例如轉(zhuǎn)賬的發(fā)送方、接收方、交易金額等.

      默克爾樹(Merkle tree)[5]是一種哈希樹的數(shù)據(jù)結(jié)構(gòu).這個(gè)樹結(jié)構(gòu)是由計(jì)算機(jī)科學(xué)家Merkle 在1987年首次提出的, 默克爾樹在區(qū)塊鏈中的應(yīng)用主要包括快速比較大量數(shù)據(jù)、快速定位修改、隸屬證明、隱私保護(hù)等.

      在區(qū)塊鏈的交易過程中, 通常需要用到智能合約[6]技術(shù).智能合約是根據(jù)預(yù)先編寫好的規(guī)則誠(chéng)實(shí)執(zhí)行的合約, 交易雙方的協(xié)議條款直接編寫成代碼, 該代碼及其中包含的協(xié)議存儲(chǔ)于分布式的區(qū)塊鏈網(wǎng)絡(luò)上,而不是中央位置.區(qū)塊鏈的不可篡改性確保了智能合約一定會(huì)誠(chéng)實(shí)地按照其預(yù)先定義的規(guī)則(編寫的代碼) 執(zhí)行而不會(huì)被篡改.

      兩種最典型的基于區(qū)塊鏈的加密貨幣是比特幣(Bitcoin) 和以太坊(Ethereum).比特幣于2008 年由中本聰(Nakamoto) 提出, 使用工作量證明(proof of work, PoW) 共識(shí)算法來(lái)驗(yàn)證和添加新的交易到區(qū)塊鏈.礦工通過解決復(fù)雜的數(shù)學(xué)問題來(lái)創(chuàng)建新的區(qū)塊, 并獲得比特幣獎(jiǎng)勵(lì)作為激勵(lì).比特幣具備一定的稀缺性, 因?yàn)槠淇偣?yīng)量被固定在2100 萬(wàn)枚, 因此也被用于投資和交易.以太坊由Buterin 等人于2015 年創(chuàng)立, 作為一種開源的區(qū)塊鏈平臺(tái), 以太坊不僅是一種數(shù)字貨幣, 還是一個(gè)智能合約平臺(tái), 允許開發(fā)者創(chuàng)建去中心化的應(yīng)用程序(DApps), 以實(shí)現(xiàn)更廣泛的區(qū)塊鏈應(yīng)用.以太幣(ETH) 是以太坊的貨幣.

      1.2 區(qū)塊鏈三元悖論

      如表1 所示, 區(qū)塊鏈系統(tǒng)有三個(gè)重要特性: 第一是可擴(kuò)展性[7].在面對(duì)增加的用戶數(shù)量、交易量或數(shù)據(jù)量時(shí), 區(qū)塊鏈網(wǎng)絡(luò)的性能和吞吐能力可能會(huì)受到限制, 導(dǎo)致系統(tǒng)變得緩慢、不穩(wěn)定甚至不可用; 第二是安全性[8].網(wǎng)絡(luò)容易受到各種安全漏洞的影響, 例如51% 攻擊、女巫攻擊、零錢攻擊、分布式拒絕服務(wù)攻擊(DDoS)、合謀攻擊等; 第三是去中心化[9].雖然區(qū)塊鏈被設(shè)計(jì)成一個(gè)去中心化的系統(tǒng), 但在實(shí)際運(yùn)行中, 一些問題可能導(dǎo)致權(quán)力集中在少數(shù)節(jié)點(diǎn)或?qū)嶓w手中, 從而破壞了系統(tǒng)的原本去中心化目標(biāo).

      表1 區(qū)塊鏈三特性Table 1 Three characteristics of blockchain

      類似于傳統(tǒng)分布式系統(tǒng)的三元悖論(CAP 定理[13]), 區(qū)塊鏈系統(tǒng)也存在著三元悖論問題[14]: 可擴(kuò)展性、安全性、去中心化無(wú)法同時(shí)滿足, 即最多只能滿足其中的兩個(gè).例如, 比特幣是一種典型的去中心化虛擬貨幣, 采用工作量證明的共識(shí)機(jī)制來(lái)保證安全性, 但正是由于共識(shí)機(jī)制的限制降低了其交易處理速度;分片技術(shù)是一種提高區(qū)塊鏈可擴(kuò)展性的途徑, 將區(qū)塊鏈分割為不同區(qū)塊, 每個(gè)分片可以并行處理交易, 但在一些情況下某些分片可能會(huì)集中大量的交易, 因此降低整體的去中心化程度.所以, 平衡甚至實(shí)現(xiàn)這三個(gè)方面的性質(zhì), 使區(qū)塊鏈能夠更適合生活中更復(fù)雜、更大規(guī)模的場(chǎng)景, 對(duì)于區(qū)塊鏈的未來(lái)發(fā)展尤為重要.

      1.3 可擴(kuò)展性問題及解決方案

      影響區(qū)塊鏈可擴(kuò)展性[15]的主要因素如下:

      (1) 吞吐量: 吞吐量是指每秒確認(rèn)的交易數(shù)量.在比特幣中, 吞吐量大致為每秒3–7 個(gè)交易, 而對(duì)于以太坊, 它是15 TPS 左右.這些都無(wú)法與現(xiàn)今流行的支付系統(tǒng)相比, 如VISA 提供3000 TPS, Paypal 提供193 TPS, Apple Pay 的吞吐量為385 TPS.有限的交易吞吐量將導(dǎo)致區(qū)塊鏈網(wǎng)絡(luò)的擁塞.當(dāng)交易的數(shù)量超過最大區(qū)塊大小時(shí), 一些交易將不得不等待另一個(gè)區(qū)塊被包括在區(qū)塊鏈中.

      (2) 交易延遲: 交易延遲指的是提交交易到網(wǎng)絡(luò)并最終寫入?yún)^(qū)塊鏈的整個(gè)過程所花費(fèi)的時(shí)間.當(dāng)用戶發(fā)送一筆交易時(shí), 這筆交易需要被網(wǎng)絡(luò)中的節(jié)點(diǎn)廣播、驗(yàn)證、打包成區(qū)塊, 并被添加到區(qū)塊鏈上.交易延遲涉及從交易發(fā)送到交易確認(rèn)的整個(gè)時(shí)間間隔.隨著區(qū)塊鏈的不斷增長(zhǎng), 更多的交易將被提交到區(qū)塊鏈, 延遲也會(huì)受到影響.

      (3) 交易費(fèi)用: 交易費(fèi)用是指在進(jìn)行區(qū)塊鏈上的交易時(shí)需要支付的費(fèi)用.這些費(fèi)用用來(lái)激勵(lì)礦工或驗(yàn)證節(jié)點(diǎn), 以激勵(lì)他們驗(yàn)證、打包和添加交易到區(qū)塊鏈中.交易費(fèi)用通常以加密貨幣的形式支付, 如比特幣.

      (4) 存儲(chǔ): 區(qū)塊鏈的存儲(chǔ)限制是由于區(qū)塊鏈的不斷增長(zhǎng)以及參與交易的每個(gè)節(jié)點(diǎn)都需要在區(qū)塊鏈上保存完整的數(shù)據(jù)記錄導(dǎo)致的.所有參與節(jié)點(diǎn)都必須擁有大量的存儲(chǔ)容量, 以確保區(qū)塊鏈上寫入數(shù)據(jù)的安全性.但隨著區(qū)塊鏈規(guī)模的發(fā)展, 越來(lái)越少的節(jié)點(diǎn)能夠在其硬件上存儲(chǔ)整個(gè)區(qū)塊鏈, 網(wǎng)絡(luò)的分散性將降低.

      針對(duì)區(qū)塊鏈可擴(kuò)展性問題的解決方案主要有兩種: Layer-1 擴(kuò)容和Layer-2 擴(kuò)容.Layer-1 擴(kuò)容也稱為鏈上擴(kuò)容, 主要針對(duì)區(qū)塊鏈協(xié)議本身進(jìn)行改進(jìn)或優(yōu)化, 以增加整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的交易處理能力和吞吐量.Layer-1 擴(kuò)容的目標(biāo)是通過提升底層區(qū)塊鏈協(xié)議的性能, 實(shí)現(xiàn)更高效的交易確認(rèn)和區(qū)塊生成, 從而應(yīng)對(duì)網(wǎng)絡(luò)擁堵和交易延遲的問題.Layer-1 擴(kuò)容的主要方案包括: 區(qū)塊生成時(shí)間和大小優(yōu)化、共識(shí)機(jī)制[16]改進(jìn)、分片技術(shù)[17].Layer-1 擴(kuò)容可以在一定程度上提高區(qū)塊鏈的性能, 包括交易吞吐量和交易延遲, 但對(duì)于區(qū)塊鏈底層協(xié)議的變更可能會(huì)引入新的安全風(fēng)險(xiǎn)和漏洞, 例如, 分片技術(shù)增加了區(qū)塊鏈設(shè)計(jì)的復(fù)雜性和困難性, 同時(shí)因?yàn)槟承┓制刑幚泶罅拷灰? 從而降低了整體網(wǎng)絡(luò)的去中心化程度.

      Layer-2 擴(kuò)容[18]也叫做鏈下擴(kuò)容.與Layer-1 擴(kuò)容不同的是, Layer-2 擴(kuò)容通常不需要對(duì)底層區(qū)塊鏈進(jìn)行大規(guī)模的修改, 這意味著現(xiàn)有的區(qū)塊鏈可以通過附加Layer-2 協(xié)議來(lái)獲得更好的性能.在Layer-2 擴(kuò)容方案中, 實(shí)際交易在Layer-2 上發(fā)生, 但最終的結(jié)算結(jié)果會(huì)被提交到底層區(qū)塊鏈, 以確保安全性和可審計(jì)性.同時(shí), 通過將交易從底層區(qū)塊鏈遷移到Layer-2, 可以降低交易費(fèi)用, 因?yàn)長(zhǎng)ayer-2 上的交易通常更便宜且更快速.Layer-2 擴(kuò)容的主要方案包括: 鏈下通道(off-chain channels)、側(cè)鏈(side chains)、跨鏈(cross chains).其中, 側(cè)鏈[19]是獨(dú)立于主鏈且與主鏈并行運(yùn)行的區(qū)塊鏈, 其主要目的是分擔(dān)主鏈上復(fù)雜的計(jì)算任務(wù), 同時(shí), 它還允許資產(chǎn)在不同區(qū)塊鏈間進(jìn)行轉(zhuǎn)移.一般而言, 每一個(gè)側(cè)鏈都有自身的共識(shí)機(jī)制來(lái)處理交易, 側(cè)鏈與主鏈之間通過雙向錨定(two-way peg) 進(jìn)行通信和資金轉(zhuǎn)移.跨鏈[20]可以幫助不同種區(qū)塊鏈之間的用戶完成資產(chǎn)轉(zhuǎn)移, 從本質(zhì)上來(lái)看, 跨鏈相當(dāng)于區(qū)塊鏈間交易的中介.

      Layer-2 擴(kuò)容方案往往更適合區(qū)塊鏈, 因?yàn)樗鼈儾恍枰獙?duì)區(qū)塊鏈的原本設(shè)計(jì)進(jìn)行重大修改, 更容易直接在現(xiàn)有平臺(tái)上應(yīng)用, 同時(shí)能夠保證去中心化和安全性等區(qū)塊鏈特性.

      1.4 鏈下通道概述

      鏈下通道[21]是Layer-2 擴(kuò)容的一種重要技術(shù)手段, 旨在將交易轉(zhuǎn)移至鏈下進(jìn)行, 而只將最終結(jié)果提交到區(qū)塊鏈, 從而提高交易吞吐量和降低交易成本.鏈下通道對(duì)底層區(qū)塊鏈系統(tǒng)有較大的依賴性, 因?yàn)闉榱吮WC安全, 必須假設(shè)在通道上發(fā)生的任何交易都可以在需要時(shí)在鏈上發(fā)布.鏈下通道要求參與者在鏈上鎖定一部分資產(chǎn)以用于交易和獎(jiǎng)懲, 此種機(jī)制能夠滿足在用戶之間建立信任的要求, 并且能夠保證各方根據(jù)協(xié)議進(jìn)行操作, 因?yàn)閰⑴c者都在鏈上鎖定了資產(chǎn), 任何違反協(xié)議的操作都將導(dǎo)致資產(chǎn)的損失.在實(shí)際應(yīng)用中, 鏈下通道一般有兩種工作狀態(tài): 在樂觀情況下, 沒有參與者試圖欺騙他人, 參與者之間的交易能夠在鏈下準(zhǔn)確有序進(jìn)行; 在悲觀情況下, 系統(tǒng)中可能存在試圖欺騙他人的參與者, 此時(shí)需要區(qū)塊鏈采取一定的爭(zhēng)議解決機(jī)制, 對(duì)爭(zhēng)議進(jìn)行處理.

      狀態(tài)通道是一種基于區(qū)塊鏈技術(shù)的擴(kuò)展方案, 用于提高區(qū)塊鏈網(wǎng)絡(luò)的吞吐量和效率.在狀態(tài)通道中,參與者可以在鏈外進(jìn)行交易, 只在需要時(shí)將最終結(jié)果提交到區(qū)塊鏈上, 從而減輕了區(qū)塊鏈上的交易負(fù)擔(dān).這種方法可以有效減少交易的處理時(shí)間和費(fèi)用, 并且能夠?qū)崿F(xiàn)更高的吞吐量.狀態(tài)通道可以應(yīng)用于各種場(chǎng)景, 包括游戲、身份驗(yàn)證、去中心化交易所(decentralized exchange, DEX)、供應(yīng)鏈管理等.它們是一種被廣泛認(rèn)可的解決方案, 可用于提高區(qū)塊鏈網(wǎng)絡(luò)的可擴(kuò)展性和效率.

      鏈下通道的主要工作階段包括:

      ? 創(chuàng)建階段.在此階段, 參與者必須通過協(xié)議創(chuàng)建通道.參與者需要將一定數(shù)量的資金鎖定在通道的智能合約中.這些資金將用于通道內(nèi)的交易, 并當(dāng)參與者作惡時(shí)扣除作為懲罰.如果在爭(zhēng)議解決階段判定參與者有惡意行為, 智能合約將罰沒他們預(yù)存的資金.通道參與者必須簽署一個(gè)他們一致同意的初始狀態(tài).該初始狀態(tài)表示鏈下通道的開通, 之后用戶可以開始交易.

      ? 更新階段.此階段是鏈下通道功能實(shí)現(xiàn)的核心階段.在此階段, 參與者通常通過加密簽名的消息直接進(jìn)行相互通信, 而不與鏈上互動(dòng).此消息通常包括一個(gè)隨機(jī)數(shù), 用于標(biāo)記交易的序列號(hào), 并防止重放攻擊.通過這樣的消息, 一個(gè)參與者可以向其他參與者提出交易, 同時(shí)也能驗(yàn)證并接受其他參與者提出的交易.消息的交互是在鏈下進(jìn)行的, 這與鏈下通道最大限度減少鏈上負(fù)擔(dān)的目標(biāo)一致.

      ? 爭(zhēng)議階段.如果參與者的行為偏離或者違背協(xié)議, 則鏈下通道進(jìn)入到爭(zhēng)議階段.參與者如果對(duì)通道的交易或者狀態(tài)有異議, 可以提出爭(zhēng)議, 爭(zhēng)議通常涉及交易的金額、順序、時(shí)間戳等方面.提出爭(zhēng)議的參與者需要將爭(zhēng)議提交到鏈上進(jìn)行解決.在提交爭(zhēng)議后, 相關(guān)的參與者需要提供與爭(zhēng)議有關(guān)的證據(jù), 如簽名、交易數(shù)據(jù)等.這些證據(jù)將幫助區(qū)塊鏈了解爭(zhēng)議的背景和內(nèi)容.區(qū)塊鏈依據(jù)證據(jù)進(jìn)行評(píng)估和仲裁, 以解決爭(zhēng)議, 并在鏈上執(zhí)行相應(yīng)的仲裁結(jié)果.當(dāng)爭(zhēng)議被解決時(shí), 通道可以返回到更新階段或前進(jìn)到關(guān)閉階段.

      ? 關(guān)閉階段.在此階段, 鏈下交易的最終結(jié)果將被寫入?yún)^(qū)塊鏈, 同時(shí), 將根據(jù)交易結(jié)果計(jì)算預(yù)先鎖定資金的剩余值, 并返還給參與者.在樂觀情況下, 當(dāng)參與者完成交互并且所有人都同意將其結(jié)果發(fā)布到區(qū)塊鏈系統(tǒng)時(shí), 通道順利關(guān)閉.但當(dāng)通道內(nèi)發(fā)生爭(zhēng)議時(shí), 將根據(jù)區(qū)塊鏈的仲裁結(jié)果完成資產(chǎn)重新分配, 通道關(guān)閉.

      1.5 本文貢獻(xiàn)

      本文主要研究了以下內(nèi)容:

      (1) 總結(jié)了區(qū)塊鏈的三元悖論問題, 詳細(xì)解釋了區(qū)塊鏈可擴(kuò)展性問題的影響因素以及現(xiàn)有解決方案.(2) 總結(jié)了鏈下支付通道的基本工作流程, 包括通道創(chuàng)建、通道更新、爭(zhēng)議解決、通道關(guān)閉.

      (3) 總結(jié)了鏈下支付通道方案的評(píng)判標(biāo)準(zhǔn), 包括魯棒性、隱私性、是否允許多方參與、是否支持即時(shí)存取款等內(nèi)容.表2 展示了各類鏈下通道方案的特點(diǎn), 其中, 適用性指鏈下通道可應(yīng)用于何種區(qū)塊鏈加密貨幣平臺(tái), 魯棒性指的是通道在面對(duì)各種異常情況時(shí)的穩(wěn)健性和可靠性, 靈活性指的是通道允許節(jié)點(diǎn)的隨時(shí)加入和退出, 隱私性指的是參與者在通道內(nèi)部進(jìn)行交易時(shí)的隱私保護(hù)程度, 多方參與指通道支持多節(jié)點(diǎn)參與其中, 即時(shí)性是指通道允許節(jié)點(diǎn)隨時(shí)向通道內(nèi)存取款, 跨節(jié)點(diǎn)指通道支持兩個(gè)不直接相連的節(jié)點(diǎn)跨中間節(jié)點(diǎn)進(jìn)行交易.

      表2 鏈下通道總結(jié)Table 2 Summary of payment channels

      (4) 分類研究了鏈下支付通道方案, 分析了各類鏈下通道的基本原理(各支付通道的核心技術(shù)概括性比較如表3 所示)、典型方案和優(yōu)缺點(diǎn).根據(jù)支付通道中參與者的數(shù)量可以分為雙方支付通道和多方支付通道.對(duì)于雙方支付通道, 依據(jù)實(shí)現(xiàn)原理和功能的不同, 又可分為普通支付通道、基于HTLC 的支付通道、虛擬通道、支付通道再平衡.根據(jù)通道的匿名性, 又可單獨(dú)分出匿名支付通道.

      表3 鏈下通道核心技術(shù)比較Table 3 Comparison of off-chain channel core technologies

      雙方支付通道在兩個(gè)用戶之間構(gòu)建可信的鏈下通道, 以實(shí)現(xiàn)對(duì)區(qū)塊鏈的擴(kuò)展.典型方案包括雷電網(wǎng)絡(luò)[22]、AuxChannel[23]、Sleepy Channels[24]、閃電網(wǎng)絡(luò)[25]等.

      基于HTLC 的支付通道利用HTLC 路由技術(shù), 實(shí)現(xiàn)跨界點(diǎn)的鏈下交易.典型方案包括閃電網(wǎng)絡(luò)[25]、RobustPay[26]、RobustPay+[27]等.

      支付通道再平衡解決通道內(nèi)參與方資金枯竭的問題, 通過在鏈下通道間進(jìn)行余額的重新分配來(lái)避免鏈上“充值” 的代價(jià).典型方案包括Revive[32]、Cycle[33]、Hide & Seek[34]、Shaduf[35]、Musketeer[36]等.

      虛擬通道為兩個(gè)不存在直連通道的節(jié)點(diǎn)建立虛擬連接, 以完成雙方交易.典型方案包括Perun[28]、BCVC[29]、Elmo[30]、CCVPV[31]等.

      多方支付通道實(shí)現(xiàn)通道內(nèi)的交易可以有多個(gè)用戶參與, 在某些場(chǎng)景下能夠提高通信的效率.典型方案包括Sprites[37]、Garou[38]、Magma[39]等.

      匿名支付通道實(shí)現(xiàn)通道內(nèi)節(jié)點(diǎn)及交易信息的匿名性, 以保護(hù)用戶隱私.典型方案包括Bolt[40]、MAPPCN[41]、A2L[42]、BlindHub[43]等.

      各種鏈下通道方案之間存在著諸多聯(lián)系.普通支付通道是一種簡(jiǎn)單的雙方通道, 只允許兩個(gè)參與者之間進(jìn)行交易.基于HTLC 的鏈下通道在普通支付通道的基礎(chǔ)上進(jìn)行構(gòu)建, 多個(gè)普通支付通道線性鏈接在一起, 并利用HTLC 協(xié)議進(jìn)行資金轉(zhuǎn)移和跨鏈支付.虛擬通道是一種擴(kuò)展的支付通道, 允許節(jié)點(diǎn)在已有通道的基礎(chǔ)上建立虛擬鏈接, 以實(shí)現(xiàn)跨節(jié)點(diǎn)的高速交易.多方支付通道允許多個(gè)參與者之間進(jìn)行交易, 而不僅僅是兩個(gè)參與者之間, 這種通道可以通過在多個(gè)參與者之間建立連接來(lái)實(shí)現(xiàn)資金的流動(dòng), 從而支持多方之間的復(fù)雜交易.匿名支付通道在支付通道的基礎(chǔ)上增強(qiáng)用戶的隱私保護(hù)特性, 通常使用零知識(shí)證明或其他匿名化技術(shù)來(lái)隱藏交易的相關(guān)信息, 以確保參與者的身份不被公開.不同種通道在實(shí)現(xiàn)方式、功能和適用場(chǎng)景上有所不同, 但它們都是為了解決區(qū)塊鏈技術(shù)中的可擴(kuò)展性和性能問題而設(shè)計(jì)的, 它們共同的目標(biāo)是提高交易效率、降低交易成本、保護(hù)用戶隱私和增強(qiáng)交易安全性.

      (5) 分析了未來(lái)鏈下支付通道的研究熱點(diǎn)和發(fā)展方向.

      1.6 相關(guān)工作

      鏈下支付通道是解決區(qū)塊鏈可擴(kuò)展性問題的一個(gè)可行方案, 能在一定程度上保證區(qū)塊鏈的去中心化、可擴(kuò)展性和安全性, 近年來(lái)國(guó)內(nèi)外對(duì)于鏈下支付通道的綜述研究主要包括以下內(nèi)容:

      在國(guó)外研究方面, 文獻(xiàn)[44] 主要梳理了鏈下通道的發(fā)展歷史, 解釋了各種鏈下通道的由來(lái)以及發(fā)展趨勢(shì), 但對(duì)具體技術(shù)細(xì)節(jié)缺乏分析.文獻(xiàn)[45] 研究了區(qū)塊鏈可擴(kuò)展性問題的主要解決思路, 包括Layer-1 擴(kuò)容和Layer-2 擴(kuò)容, 總結(jié)了每種擴(kuò)容思路基本流程, 但缺少對(duì)典型方案的總結(jié)和對(duì)比; 文獻(xiàn)[46] 主要關(guān)注Layer-2 擴(kuò)容方案, 包括支付通道、側(cè)鏈、跨鏈技術(shù)、鏈下計(jì)算等, 對(duì)于每種方案, 給出了基本原理和典型案例, 但對(duì)于每一類方案的介紹較為簡(jiǎn)單.

      在國(guó)內(nèi)研究方面, 文獻(xiàn)[47] 主要研究鏈下通道路由算法, 梳理了10 種典型算法及其發(fā)展歷程, 并對(duì)算法進(jìn)行了評(píng)價(jià)分析, 但缺乏從整體角度對(duì)鏈下通道的解釋和探討; 文獻(xiàn)[48] 研究了比特幣區(qū)塊鏈擴(kuò)容技術(shù), 包括鏈上擴(kuò)容和鏈下擴(kuò)容兩方面, 對(duì)鏈上擴(kuò)容的安全性以及鏈下擴(kuò)容的效果進(jìn)行了分析, 研究方面更為寬泛但對(duì)鏈下通道的總結(jié)不夠詳實(shí); 文獻(xiàn)[49] 總結(jié)了4 種區(qū)塊鏈可擴(kuò)展性問題的解決方案, 包括鏈下通道、Bitcoin-NG、分片機(jī)制和跨鏈技術(shù), 分析對(duì)比了不同方案的特性、適用場(chǎng)景及優(yōu)缺點(diǎn), 但缺乏對(duì)鏈下通道的進(jìn)一步分類和解析.

      本文對(duì)鏈下通道的研究總結(jié)如表2 所示.其中, 符號(hào)“/” 代表當(dāng)前系統(tǒng)沒有該特性值或沒有具體可查的系統(tǒng)參數(shù); 符號(hào)“√” 代表滿足當(dāng)前特性; 符號(hào)“×” 代表不滿足當(dāng)前特性.

      2 雙方支付通道

      2.1 概念

      一個(gè)雙方支付通道是一個(gè)構(gòu)建在兩個(gè)參與者之間的可信鏈下支付通道, 以實(shí)現(xiàn)兩個(gè)參與者的快速鏈下支付.雙方支付通道中, 兩方參與者首先需要在鏈上鎖定一部分資金, 然后在鏈下進(jìn)行多次交易, 每次交易都會(huì)更新雙方的資金分配, 但不會(huì)廣播到鏈上.只有當(dāng)雙方想要關(guān)閉通道時(shí), 才會(huì)將最終的資金分配結(jié)果提交到鏈上, 解鎖資金并分配給雙方.這樣可以減少鏈上的交易次數(shù)、提高支付效率、降低手續(xù)費(fèi), 并保證雙方的資產(chǎn)安全.雙方支付通道可以分為以下三類: 第一類是一般的支付通道, 是后續(xù)對(duì)鏈下通道改進(jìn)工作的基礎(chǔ); 第二類是基于HTLC 的狀態(tài)通道, 是一種利用哈希時(shí)間鎖機(jī)制對(duì)支付通道的擴(kuò)展方案; 第三類是虛擬通道, 是一種基于一般支付通道建立的更深層次的鏈下通道.

      2.2 典型方案分析

      2.2.1 支付通道

      (1) 閃電網(wǎng)絡(luò)(lightning network)

      閃電網(wǎng)絡(luò)[25]是一種典型的支付通道方案, 旨在解決比特幣的可擴(kuò)展性和性能問題, 是一個(gè)與比特幣區(qū)塊鏈并行運(yùn)行的鏈下支付通道網(wǎng)絡(luò).在閃電網(wǎng)絡(luò)中, 大部分交易都是鏈下進(jìn)行的, 而不是立即記錄在比特幣主鏈上.這意味著交易不必等待區(qū)塊鏈的確認(rèn), 從而避免了區(qū)塊鏈上的交易延遲.從理論上講, 閃電網(wǎng)絡(luò)每秒可實(shí)現(xiàn)的交易數(shù)量達(dá)百萬(wàn)級(jí)別.同時(shí), 鏈下交易也意味著更低的交易費(fèi)用, 這也是閃電網(wǎng)絡(luò)的主要優(yōu)勢(shì)之一.

      閃電網(wǎng)絡(luò)包括三個(gè)階段: 建立通道、交易、關(guān)閉通道.其主要工作過程如下:

      ? 通道開啟.在開始交易之前, 雙方首先在通道中保存了一定數(shù)量的比特幣作為存款(大于后續(xù)交易所涉及的總金額), 用于后續(xù)鏈下交易, 同時(shí)被記錄在比特幣主鏈上.

      ? 通道更新.通道開啟后, 雙方可以在通道中相互交易, 如果其中一方作弊, 該通道中的所有存款將被發(fā)送給對(duì)方作為懲罰.

      ? 通道關(guān)閉.當(dāng)關(guān)閉通道時(shí), 雙方的最終余額提交給比特幣主鏈, 主鏈將通道內(nèi)的資金根據(jù)交易雙方各自的最終余額分配給參與者.

      多個(gè)支付通道可以構(gòu)成支付通道網(wǎng)絡(luò)(payment channel network, PCN)[50], 使沒有直接建立支付通道的雙方之間能夠完成鏈下交易, 即兩個(gè)想要交易的節(jié)點(diǎn)之間沒有直接支付通道, 但有諸多中間節(jié)點(diǎn), 這兩個(gè)節(jié)點(diǎn)便可以通過路由技術(shù)借助中間節(jié)點(diǎn)完成交易.例如, 閃電網(wǎng)絡(luò)的網(wǎng)絡(luò)示意圖如圖1 所示, 其中, 節(jié)點(diǎn)1 可以通過兩個(gè)通道(節(jié)點(diǎn)1-節(jié)點(diǎn)2-節(jié)點(diǎn)3) 完成與節(jié)點(diǎn)3 之間的交易.

      圖1 支付通道網(wǎng)絡(luò)Figure 1 Payment channel network

      閃電網(wǎng)絡(luò)中的多個(gè)交易都是在鏈下完成的, 整個(gè)流程只產(chǎn)生兩條提交給主鏈的交易記錄, 即建立通道時(shí)的資金鎖定記錄和關(guān)閉通道時(shí)的余額上傳記錄, 因此可以大大提高交易吞吐量.不過, 閃電網(wǎng)絡(luò)的缺陷也非常明顯.第一, 鏈下通道要求雙方同時(shí)在線; 第二, 閃電網(wǎng)絡(luò)的大額交易成功率較低, 即目前閃電網(wǎng)絡(luò)不適合處理大額交易; 第三, 部分節(jié)點(diǎn)可能會(huì)頻繁作為路由節(jié)點(diǎn), 導(dǎo)致這些節(jié)點(diǎn)的中心化, 從而影響區(qū)塊鏈的去中心化性質(zhì)[51].

      (2) 雷電網(wǎng)絡(luò)(Raiden network)

      與閃電網(wǎng)絡(luò)的原理類似, 雷電網(wǎng)絡(luò)[22]也是一種鏈下支付通道網(wǎng)絡(luò).不同的是, 雷電網(wǎng)絡(luò)是對(duì)以太坊區(qū)塊鏈的補(bǔ)充, 可以與任何ERC20 兼容的代幣配合使用, ERC20 是以太坊區(qū)塊鏈上的一種代幣標(biāo)準(zhǔn), 它規(guī)定了代幣的基本功能和交互方式.

      雷電網(wǎng)絡(luò)的工作原理是在以太坊網(wǎng)絡(luò)上的雙方之間建立鏈下支付通道.這些支付通道是使用智能合約創(chuàng)建的, 無(wú)需中介即可實(shí)現(xiàn)各方之間安全快速的交易, 因此是去中心化的Layer-2 擴(kuò)容方案.與閃電網(wǎng)絡(luò)類似, 雷電網(wǎng)絡(luò)也使用支付通道網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)沒有建立直接支付通道的各方之間的交易.

      雷電網(wǎng)絡(luò)用以保證其通道內(nèi)的交易安全、正確的技術(shù)是余額證明(balance proofs), 余額證明包含一方發(fā)送給另一方的所有通道內(nèi)轉(zhuǎn)賬的最終金額, 并由發(fā)送方進(jìn)行數(shù)字簽名.具體而言, 在通道建立后, 交易雙方可以在通道內(nèi)進(jìn)行多筆交易, 當(dāng)一方想要在區(qū)塊鏈上結(jié)算余額時(shí), 無(wú)論是接收還是轉(zhuǎn)出資金, 都可以向智能合約出示余額證明來(lái)關(guān)閉通道.同時(shí), 當(dāng)一方選擇關(guān)閉通道時(shí), 另一方也必須出示余額證明.雙方提交余額證明后, 由區(qū)塊鏈驗(yàn)證通過, 便可以實(shí)現(xiàn)資金的轉(zhuǎn)移.

      雷電網(wǎng)絡(luò)的兩個(gè)主要子項(xiàng)目是: 雷電輕客戶端(Raiden light client) 和μRaiden.雷電輕客戶端是輕量化的雷電網(wǎng)絡(luò), 允許用戶在不運(yùn)行完整節(jié)點(diǎn)的情況下, 通過輕客戶端訪問網(wǎng)絡(luò), 并可以與完整的雷電節(jié)點(diǎn)進(jìn)行通信, 以執(zhí)行鏈下交易和智能合約功能, 輕客戶端為移動(dòng)設(shè)備和基于網(wǎng)絡(luò)的應(yīng)用程序提供了輕量級(jí)的雷電網(wǎng)絡(luò)通道服務(wù).μRaiden 是基于雷電網(wǎng)絡(luò)的多對(duì)一的單向、輕量級(jí)、微支付通道協(xié)議, 旨在提供適用于小額支付的通道技術(shù), 使以太坊上的微支付變得更加容易和實(shí)用.μRaiden 特別適用于頻率高但涉及金額小的交易, 例如在線游戲交易等.

      雷電網(wǎng)絡(luò)具備與其他區(qū)塊鏈進(jìn)行跨鏈互操作的能力.通過減少鏈上交易的需求, 雷電網(wǎng)絡(luò)能夠有效降低交易的費(fèi)用, 同時(shí), 鏈下交易比鏈上交易具有更好的隱私性.但是, 由于通道的正確運(yùn)行依賴于智能合約, 所以智能合約的安全性決定了雷電網(wǎng)絡(luò)的安全性, 如果智能合約被攻擊者攻擊, 那么雷電網(wǎng)絡(luò)的安全性也將遭受嚴(yán)重威脅.

      (3) Sleepy Channels

      在一個(gè)雙方支付通道中, 交易雙方需要不斷監(jiān)控區(qū)塊鏈, 以確保對(duì)方?jīng)]有發(fā)布過時(shí)的交易信息.一旦作惡一方向鏈上發(fā)布了過時(shí)的交易信息, 則誠(chéng)實(shí)的一方會(huì)向鏈上提供證據(jù), 以對(duì)作惡行為做出懲罰.這意味著交易雙方需要時(shí)刻保持在線, 否則無(wú)法對(duì)鏈上行為進(jìn)行監(jiān)控, 進(jìn)而被惡意用戶利用.為了保證交易一方斷線時(shí)的資產(chǎn)安全性, 鏈下通道一般引入瞭望塔(Watchtowers) 機(jī)制.瞭望塔是一個(gè)代表離線用戶監(jiān)控區(qū)塊鏈的第三方, 可以幫助用戶完成懲罰工作.瞭望塔機(jī)制的限制在于, 要么瞭望塔是可信的, 這是一種很強(qiáng)的安全假設(shè).要么瞭望塔在工作前率先鎖定一部分資金, 以便追究其責(zé)任, 這在大型支付通道網(wǎng)絡(luò)的資金層面是很難實(shí)現(xiàn)的.

      Sleepy Channels 由Aumayr 等人[24]提出, 解決了支付通道網(wǎng)絡(luò)對(duì)于瞭望塔的依賴問題.當(dāng)不可信的雙方想要構(gòu)建Sleepy Channels 時(shí), 雙方需要額外抵押一部分資金, 以保證通道的安全性.具體而言, 如圖2 所示, Alice 和Bob 之間已建立鏈下通道, 在通道創(chuàng)建時(shí), 依據(jù)塊高設(shè)定時(shí)間T, 用戶只需要在T之前在線一小段時(shí)間即可,T之前可以放心離線.設(shè)定f表示通道內(nèi)鎖定的資金總量;vA、vB分別代表Alice、Bob 在通道內(nèi)的余額;f=vA+vB.假設(shè)Alice 想要關(guān)閉通道, 對(duì)于Alice 來(lái)說, 她本地記錄了通道的當(dāng)前狀態(tài), 即認(rèn)為Alice 有vA, Bob 有vB, Alice 把她的狀態(tài)上傳到鏈上, 對(duì)于vA來(lái)說有三種可能:

      圖2 Sleepy Channels 示意圖Figure 2 Diagram of Sleepy Channels

      ? Bob 離線, 當(dāng)時(shí)間超過T之后, 解鎖.

      ? Alice 發(fā)布的是過時(shí)的狀態(tài), 同時(shí)Bob 在T之前在線, 對(duì)其提出爭(zhēng)議, 懲罰vA給Bob.

      ? Bob 在線, 確認(rèn)Alice 上傳的狀態(tài)是對(duì)的, Bob 拿回自己的余額, 此時(shí)Alice 也可以解鎖她的余額.

      如果是Bob 想要關(guān)閉通道的話, 情況是類似的.

      (4) AuxChannel

      AuxChannel 由Sui[23]等人提出, 旨在為無(wú)腳本功能的區(qū)塊鏈提供鏈下通道.由于大多數(shù)鏈下通道的運(yùn)行都需要復(fù)雜協(xié)議的支持, 即要求區(qū)塊鏈具備一定的腳本能力.因此, 為無(wú)腳本功能的區(qū)塊鏈設(shè)計(jì)鏈下通道是有必要的.AuxChannel 僅要求鏈上支持可驗(yàn)證加密簽名(verifiably encrypted signature), 而無(wú)需任何腳本能力.為提高AuxChannel 的高效性提出了一種新的密碼學(xué)原語(yǔ), 稱為連續(xù)可驗(yàn)證加密簽名(consecutive verifiably encrypted signature, CVES).

      CVES 允許簽名者使用他的加密密鑰序列來(lái)加密他的簽名, 同時(shí), 這些加密的簽名是可驗(yàn)證的.更重要的是, 加解密密鑰對(duì)是連續(xù)的, 這意味著最新的密鑰對(duì)是從它們的前一個(gè)會(huì)話中導(dǎo)出的.所以, 驗(yàn)證者既能保證加密簽名的正確性, 又能保證簽名者密鑰的連續(xù)性.因此, 整個(gè)過程變得更加高效, 但AuxChannel的隱私性有待進(jìn)一步研究和提高.

      2.2.2 基于HTLC 的狀態(tài)通道

      (1) HTLC 概述

      在支付通道網(wǎng)絡(luò)中, 若兩個(gè)節(jié)點(diǎn)之間并不存在直接的支付通道, 但存在一條包含若干中間節(jié)點(diǎn)的通路,則這兩個(gè)節(jié)點(diǎn)可以通過哈希時(shí)間鎖定合約(hash time lock contract, HTLC) 完成交易.HTLC 實(shí)現(xiàn)了借助他人的支付通道執(zhí)行跨多個(gè)中間節(jié)點(diǎn)的支付, 而無(wú)需再建立一條直連的通道.

      (2) 閃電網(wǎng)絡(luò)的HTLC

      作為一種主流的資金路由技術(shù), HTLC 在很多鏈下通道方案中得到了應(yīng)用.最早應(yīng)用HTLC 的鏈下通道是閃電網(wǎng)絡(luò).為了允許兩個(gè)不存在直連通道的用戶能夠執(zhí)行交易, 閃電網(wǎng)絡(luò)引入了HTLC 技術(shù).閃電網(wǎng)絡(luò)中HTLC 的運(yùn)行流程如圖3 所示, A 和C 想要交易, 例如A 想要給C 轉(zhuǎn)賬1 BTC, 但A 和C 之間不存在直連的通道, 但A 和B 之間存在通道, B 和C 之間存在通道, 則可以借助B 作為路由完成A、C 之間的交易.過程如下:

      圖3 哈希時(shí)間鎖原理Figure 3 Hash time lock contract principle

      ? 計(jì)算哈希值.首先C 隨機(jī)生成原像R, 并根據(jù)原像計(jì)算其哈希值H= Hash(R), 并將H發(fā)送給A.

      ? 鎖定資金.A 接收到H后, 將H發(fā)送給B 以啟動(dòng)HTLC 協(xié)議, A 鎖定1.01 BTC 在HTLC 上,A 和B 之間形成約定: 在兩天時(shí)間內(nèi), 若B 能揭示出原像R的值, 則A 給B 轉(zhuǎn)賬1.01 BTC,多出的0.01 BTC 作為對(duì)B 充當(dāng)路由的獎(jiǎng)勵(lì).值得注意的是, 此處約定的時(shí)間是一個(gè)假設(shè), 整個(gè)通路中中間節(jié)點(diǎn)越多, 其值可能越大; B 接收到H后, 同樣鎖定資金, 并與C 達(dá)成約定: 在一天時(shí)間(比之前約定的時(shí)間更少) 內(nèi), 若C 能揭示出原像R的值, 則B 給C 轉(zhuǎn)賬1 BTC.

      ? 解鎖資金.C 在約定時(shí)間內(nèi)將R值發(fā)送給B, 并從B 處接收1 BTC 的轉(zhuǎn)賬; 同理, B 也能從A處得到對(duì)應(yīng)轉(zhuǎn)賬金額.

      在此過程中, 中間節(jié)點(diǎn)B 若想從A 處得到1.01 BTC, 就必須先根據(jù)合約支付1 BTC 給C 以得到原像R, 因此B 沒有機(jī)會(huì)竊取資金, 便不存在不可信第三方的威脅.在本次交易過程中, 中間節(jié)點(diǎn)B 的兩條通道內(nèi)的資產(chǎn)狀態(tài)發(fā)生了改變, 但總資產(chǎn)狀態(tài)(除獎(jiǎng)勵(lì)外) 沒發(fā)生改變.HTLC 協(xié)議就是使得兩條支付通道在變化過程中相互協(xié)調(diào), 安全地從一種狀態(tài)變?yōu)榱硪环N狀態(tài), 確保路由交易過程中自身資產(chǎn)的安全性.

      在閃電網(wǎng)絡(luò)中, HTLC 容許時(shí)間(HTLC tolerance) 被定義為兩個(gè)節(jié)點(diǎn)約定HTLC 協(xié)議的時(shí)間限度,即一方需要在容許時(shí)間內(nèi)揭露哈希原像才能獲得對(duì)方的轉(zhuǎn)賬.容許時(shí)間的大小被定義為距離轉(zhuǎn)賬接收方的跳數(shù), 例如, 假設(shè)C 作為轉(zhuǎn)賬的接收方, B 與C 間隔1 跳, 則B、C 之間的容許時(shí)間為1, 如果A 與C間隔2 跳, 則A、C 的容許時(shí)間為2.這種設(shè)計(jì)可以保證每個(gè)通道都有足夠的時(shí)間執(zhí)行HTLC 合約.

      (3) RobustPay

      RobustPay[26]是一種針對(duì)比特幣支付通道網(wǎng)絡(luò)的具備魯棒性的支付路由協(xié)議, 基本流程如下:

      ? 交易發(fā)起.發(fā)送方向網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)發(fā)起支付請(qǐng)求, 指定接收方和支付金額.

      ? 計(jì)算路徑.節(jié)點(diǎn)使用本地信息和網(wǎng)絡(luò)信息計(jì)算出兩條不相交的路徑, 分別用于正常支付和備用支付.

      ? 哈希鎖定.發(fā)送方向接收方發(fā)送支付請(qǐng)求, 包括兩條路徑和相應(yīng)的哈希鎖定時(shí)間合約.

      ? 支付.接收方驗(yàn)證支付請(qǐng)求, 并在兩條路徑上選擇一條進(jìn)行支付.如果正常支付路徑上的支付成功,接收方向發(fā)送方發(fā)送原像, 以解鎖HTLC 并完成支付.如果正常支付路徑上的支付失敗, 則接收方可以選擇備用路徑進(jìn)行支付.如果備用路徑上的支付成功, 則接收方向發(fā)送方發(fā)送原像, 以解鎖HTLC 并完成支付.如果備用路徑上的支付也失敗, 則支付失敗.

      RobustPay 對(duì)傳統(tǒng)的HTLC 協(xié)議進(jìn)行了修改, 提高了路由協(xié)議的效率和魯棒性.改進(jìn)之處是, 如果接收方?jīng)]能在容許時(shí)間內(nèi)提供哈希原像或者在提供哈希原像之前取消交易, 則發(fā)送方鎖定的資金將被退還.缺點(diǎn)是, 計(jì)算路徑時(shí)要選擇兩條可行路徑, 在一定程度上增加了計(jì)算復(fù)雜性, 同時(shí)也對(duì)應(yīng)用場(chǎng)景有所限制.

      (4) RobustPay+

      RobustPay+[27]在RobustPay 的基礎(chǔ)上進(jìn)一步改進(jìn)了HTLC 協(xié)議, 提高了HTLC 協(xié)議的安全性.為一場(chǎng)交易提供兩條可行支付路徑, 這兩條路徑不共享中間節(jié)點(diǎn), 當(dāng)一條路徑中的某些節(jié)點(diǎn)被攻擊或自身出現(xiàn)故障而導(dǎo)致支付路徑失效時(shí), 另一條路徑也能完成交易, 提高了通道的魯棒性.鏈下交易在這兩條路徑中同時(shí)執(zhí)行, 如果一條路徑首先完成交易, 則另一條路徑上的交易無(wú)效.

      RobustPay+通過改進(jìn)HTLC 協(xié)議, 提高了鏈下通道的魯棒性, 但由于需要為一個(gè)交易建立兩條或更多通道, 導(dǎo)致其效率有所下降, 其次, 兩條通道的并行執(zhí)行, 占用了更多通信資源.同時(shí), 完全保證兩條通道沒有共同的中間節(jié)點(diǎn)也是困難的.

      2.2.3 虛擬通道

      (1) 虛擬通道概述

      虛擬通道是另一種實(shí)現(xiàn)沒有直連通道的兩個(gè)節(jié)點(diǎn)間交易的方式.虛擬通道的運(yùn)行原理如圖4 所示.如果A 與C 已經(jīng)建立了一條支付通道(記為c1), B 與C 之間也建立了一條支付通道(記為c2), 那么當(dāng)A和B 想要執(zhí)行交易時(shí), 就無(wú)需直接建立一條支付通道, 而是使用C 作為中間節(jié)點(diǎn)來(lái)路由其交易資金.具體運(yùn)行過程是:

      圖4 虛擬通道Figure 4 Virtual channel

      ? 虛擬通道建立.基于c1和c2建立一條A 和B 之間的虛擬通道(記為VC, 假設(shè)初始的資金分配狀態(tài)為[A →XA| B →XB]), 此時(shí), A 和B 便可以通過此虛擬通道執(zhí)行交易.值得注意的是, 在以上通道中, 稱A-C-B 為一條支付路徑, 路徑長(zhǎng)度為實(shí)際支付通道的數(shù)量, 即為2, 支付路徑兩端的節(jié)點(diǎn)A 和B 稱為交易節(jié)點(diǎn), 交易節(jié)點(diǎn)之間的節(jié)點(diǎn)C 稱為中間節(jié)點(diǎn).

      ? 資金鎖定.對(duì)于一條支付路徑的每一條實(shí)際支付通道兩端的節(jié)點(diǎn), 他們會(huì)分別鎖定與交易節(jié)點(diǎn)相同的資金, 以保證虛擬通道的正確運(yùn)行.在A-C-B 這條支付路徑中, A 和C 會(huì)分別從其在C1通道上部署的資產(chǎn)中鎖定XA和XB的份額, C 和B 會(huì)分別從其在C2通道部署的資產(chǎn)中鎖定XA和XB的份額, 這些實(shí)際支付通道中鎖定的XA和XB的資產(chǎn)用來(lái)供虛擬通道使用.

      ? 通道更新.A 和B 互相簽名并發(fā)送更新虛擬通道中資金分配的消息.

      ? 通道關(guān)閉.當(dāng)虛擬通道的有效期到期后, 會(huì)執(zhí)行虛擬通道關(guān)閉程序, 虛擬通道的關(guān)閉是通過在底層的支付通道中進(jìn)行結(jié)算來(lái)完成的, 例如如果虛擬通道關(guān)閉時(shí)最終的資金分配狀態(tài)為A 向B 支付q(q

      進(jìn)一步, 基于遞歸的方式, 可以將VC 當(dāng)作底層通道, 構(gòu)造更高級(jí)別的虛擬通道, 實(shí)現(xiàn)跨越更多個(gè)中間節(jié)點(diǎn)的鏈下支付.與哈希時(shí)間鎖合約方案相比, 虛擬通道方案的中間節(jié)點(diǎn)無(wú)需牽涉到每筆交易中來(lái), 只需通過智能合約自動(dòng)執(zhí)行, 因此更具隱私性和低延遲性, 但是這樣的缺點(diǎn)也很明顯, 即需要中間節(jié)點(diǎn)鎖定足夠數(shù)量的資金, 同時(shí)協(xié)議復(fù)雜, 底層智能合約實(shí)例計(jì)算存儲(chǔ)性能負(fù)載大.

      (2) Perun

      Perun[28]是一種典型的虛擬通道方案, 是建立在以太坊上的虛擬通道, 參與者可以在不需要第三方同意的情況下立即打開和更新通道.一旦虛擬通道建立完成, 兩方可以直接進(jìn)行交易.

      如圖5 所示, Perun 的基本步驟如下:

      圖5 Perun 結(jié)構(gòu)圖Figure 5 Perun architecture

      ? 通道建立.參與方需要在區(qū)塊鏈上創(chuàng)建一個(gè)智能合約, 該合約將用于存儲(chǔ)通道的狀態(tài).在建立通道時(shí), 參與方需要向合約中存入一定數(shù)量的加密貨幣作為保證金.這些加密貨幣將被鎖定在合約中,直到通道被關(guān)閉.

      ? 狀態(tài)交換.參與方可以在通道內(nèi)進(jìn)行多次交易, 而無(wú)需將每筆交易都記錄在區(qū)塊鏈上.在交換狀態(tài)時(shí), 參與方需要使用離線簽名來(lái)驗(yàn)證交易的有效性.離線簽名是一種簽名方式, 它允許參與方在不將交易廣播到區(qū)塊鏈上的情況下進(jìn)行交易.

      ? 通道關(guān)閉.參與方可以將通道的最終狀態(tài)提交到區(qū)塊鏈上, 以便最終結(jié)算.在關(guān)閉通道時(shí), 參與方需要使用離線簽名來(lái)驗(yàn)證通道的最終狀態(tài).一旦通道被關(guān)閉, 參與方可以從合約中取回他們的保證金和最終結(jié)算的資金.例如, 假設(shè)A 向B 轉(zhuǎn)賬X, 此時(shí)在A-C-B 這條支付路徑上的每一條實(shí)際支付通道中, 將完成資金轉(zhuǎn)結(jié), 即A 向C 轉(zhuǎn)賬X, C 向B 轉(zhuǎn)賬X.

      值得注意的是, 在Perun 中, 一旦A 和B 之間的虛擬通道成功建立, 兩者便可進(jìn)行多次交易, 同時(shí),只要通道中的各方都是誠(chéng)實(shí)的, A 和B 便只需要與C 執(zhí)行兩次通信, 分別是通道開啟時(shí)的資金鎖定和通道關(guān)閉時(shí)的資金轉(zhuǎn)結(jié), 而在通道更新過程中, A 和B 都無(wú)需與C 進(jìn)行通信與交易.

      Perun 也實(shí)現(xiàn)了虛擬通道開啟和更新過程中的共識(shí)機(jī)制.對(duì)于支付路徑A-C-B 而言, 在虛擬通道開啟時(shí), 三方參與者必須全部知情.一方面, 交易節(jié)點(diǎn)A 和B 必須對(duì)虛擬通道開啟達(dá)成共識(shí), 否則, 假如A認(rèn)為通道已經(jīng)開啟而B 與之相反, 則兩者之間無(wú)法完成交易; 另一方面, 中間節(jié)點(diǎn)C 也需要知悉虛擬通道的開啟, 否則交易也無(wú)法正常執(zhí)行.同時(shí), 通道更新過程也需要共識(shí)機(jī)制, 對(duì)于實(shí)際通道或虛擬通道, A 和B 需要確認(rèn)每次通道更新總是在恒定的時(shí)間內(nèi)完成的.

      雖然Perun 實(shí)現(xiàn)了沒有直連通道的兩個(gè)節(jié)點(diǎn)間的直接交易, 但要求中間節(jié)點(diǎn)參與通道開啟和資金結(jié)算過程, 這導(dǎo)致的問題有: 1?系統(tǒng)可靠性降低, 因?yàn)橹虚g節(jié)點(diǎn)可能被迫下線; 2?增加延遲, 因?yàn)橥ǖ篱_啟和關(guān)閉都需要經(jīng)過中間節(jié)點(diǎn)的共識(shí); 3?增加交易成本, 因?yàn)橹虚g節(jié)點(diǎn)需要收取手續(xù)費(fèi).

      (3) BCVC

      UTXO (unspent transaction output) 模型是一種用于跟蹤和管理區(qū)塊鏈上交易輸出的模型.在UTXO 模型中, 每個(gè)交易輸出都被視為一個(gè)未花費(fèi)的輸出, 即未被之后的交易使用.當(dāng)一個(gè)交易被創(chuàng)建時(shí), 它會(huì)消耗之前的未花費(fèi)輸出, 并創(chuàng)建新的未花費(fèi)輸出.這種模型的優(yōu)勢(shì)在于它能夠提供更好的隱私保護(hù)和更高的并行性, 因?yàn)槊總€(gè)交易輸出都是獨(dú)立的, 并且可以并行地進(jìn)行驗(yàn)證和處理.UTXO 模型被許多加密貨幣系統(tǒng)使用, 包括比特幣和以太坊.

      BCVC (Bitcoin-compatible virtual channels)[29]是一種基于UTXO 模型的適用于性能較弱的區(qū)塊鏈平臺(tái)的虛擬通道協(xié)議.

      BCVC 解決的問題是, 虛擬通道只能運(yùn)行在能夠支持圖靈完備的腳本語(yǔ)言的區(qū)塊鏈平臺(tái), 使得虛擬通道能夠更輕松地適用于更多平臺(tái), 這是因?yàn)? 執(zhí)行BCVC 所需的腳本功能只有數(shù)字簽名和時(shí)間鎖功能.BCVC 支持將虛擬通道轉(zhuǎn)換為實(shí)際支付通道, 即對(duì)于A-C-B 這條支付路徑, 可以將A 與B 之間的虛擬通道轉(zhuǎn)換為支付通道, 從而取消中間節(jié)點(diǎn)C 的參與, 減輕對(duì)中間節(jié)點(diǎn)的依賴.

      為實(shí)現(xiàn)虛擬通道與支付通道的轉(zhuǎn)換, BCVC 提出了兩個(gè)不同的方案, 分別被稱為VC-V 和VC-NV.這兩個(gè)方案的區(qū)別在于, VC-V 保證虛擬通道中的交易節(jié)點(diǎn)A 或B 能夠在有效期內(nèi)完成通道的轉(zhuǎn)換; 而VC-NV 不定義有效期, 同時(shí)通道轉(zhuǎn)換的任務(wù)由中間節(jié)點(diǎn)C 完成.

      BCVC 擴(kuò)展了虛擬通道的適用范圍, 使其能夠適用于更廣泛的區(qū)塊鏈平臺(tái), 但是, 由于其輕量化的智能合約設(shè)計(jì), 可能導(dǎo)致功能的不完善以及安全性的降低.

      (4) Elmo

      Elmo 由Kiayias 和Litos[30]提出, 是一種遞歸的虛擬通道構(gòu)建方法, 能夠應(yīng)用于已存在的虛擬通道,從而創(chuàng)建更多的通道.這種遞歸構(gòu)造方法使得Elmo 可以構(gòu)建無(wú)限壽命(unlimited lifetime) 的通道, 并且可以在任意數(shù)量的通道上應(yīng)用.通過利用遞歸構(gòu)造方法, Elmo 能夠?qū)崿F(xiàn)對(duì)稱性, 從而提高通道的效率和安全性.由于Elmo 不需要智能合約支持, 所以可以應(yīng)用于比特幣平臺(tái).實(shí)驗(yàn)證明, Elmo 構(gòu)造方法的樂觀和悲觀執(zhí)行路徑在輪復(fù)雜度方面都是最優(yōu)的, 因?yàn)樵趦蓚€(gè)端點(diǎn)之間發(fā)出支付只需要三個(gè)消息, 其大小與通道的長(zhǎng)度無(wú)關(guān), 而關(guān)閉通道則需要任何參與方(端點(diǎn)或中間節(jié)點(diǎn)) 的兩個(gè)鏈上交易, 也與通道的長(zhǎng)度無(wú)關(guān).本方案通過利用復(fù)雜的虛擬通道設(shè)置協(xié)議來(lái)實(shí)現(xiàn)上述目標(biāo), 該協(xié)議一方面使端點(diǎn)能夠使用在基礎(chǔ)通道和虛擬通道之間不變的接口, 而另一方面, 中間節(jié)點(diǎn)可以在通道關(guān)閉時(shí)遵循任何任意激活序列.在此構(gòu)造方法中,每次特定通道C充當(dāng)新虛擬通道的基礎(chǔ)通道時(shí), 都會(huì)添加一個(gè)“虛擬化層”.當(dāng)它的一個(gè)所有者想要關(guān)閉C時(shí), 它必須在鏈上同步與虛擬化層一樣多的交易.此外, 與關(guān)閉虛擬通道相關(guān)聯(lián)的時(shí)間鎖隨著其基本通道的虛擬化層的數(shù)量而增加.因此, 本方案的復(fù)雜性和成本將隨著虛擬化層數(shù)的增加而增加.

      (5) CCVPC

      區(qū)塊鏈系統(tǒng)的異構(gòu)性使得跨鏈數(shù)據(jù)流和價(jià)值轉(zhuǎn)移極具挑戰(zhàn)性, 為解決此問題, Jia 等人[31]提出了跨鏈虛擬支付通道(cross-chain virtual payment channels, CCVPC).現(xiàn)有跨鏈交易方案大都利用可信第三方(trusted third party, TTP) 或哈希鎖和時(shí)間鎖, 因此帶來(lái)中心化問題或可擴(kuò)展性問題.而跨鏈虛擬支付通道方案在虛擬通道概念的基礎(chǔ)上深入挖掘, 實(shí)現(xiàn)不同區(qū)塊鏈系統(tǒng)中的兩個(gè)用戶在中間節(jié)點(diǎn)的幫助下進(jìn)行無(wú)限的鏈下交易, 從而解決了中心化和可擴(kuò)展性問題.此外, 由于中間節(jié)點(diǎn)只參與通道的開閉操作, 進(jìn)一步提高了跨鏈交易的效率, 在一定程度上甚至增強(qiáng)了跨鏈交易的私密性.此外, 該方案只需要一個(gè)支持圖靈完備腳本語(yǔ)言的區(qū)塊鏈系統(tǒng).同時(shí), 本方案的安全性在UC 框架下的正式證明中得以驗(yàn)證.本方案的改進(jìn)之處在于, 若能在不影響安全性的前提下刪除方案中的oracle 系統(tǒng), 則能大大提高效率; 同時(shí), 保證通道內(nèi)交易信息的隱私性對(duì)于方案的進(jìn)一步發(fā)展也具有重要意義.

      2.2.4 支付通道再平衡

      支付通道中, 可能存在其中一方向另一方單向多次轉(zhuǎn)賬而導(dǎo)致通道內(nèi)該方資金枯竭的問題.例如, 通道內(nèi)一方是顧客, 一方是商家, 一段時(shí)間的單向支付后必然面臨顧客在通道內(nèi)余額不足的情況.此時(shí), 若想繼續(xù)進(jìn)行后續(xù)支付行為, 就必須增加通道內(nèi)該方的余額.一般情況下, 通道參與方可以關(guān)閉當(dāng)前通道, 然后重新開啟新的通道并在通道中存入足夠的資金以完成后續(xù)交易.當(dāng)小額交易較為頻繁時(shí), 通過這種方式解決通道資金枯竭的問題則會(huì)失去鏈下支付通道本身減少鏈上交易、增強(qiáng)區(qū)塊鏈可擴(kuò)展性的意義.此時(shí), 若通道參與方同時(shí)存在兩個(gè)通道中, 其中一個(gè)通道的資金枯竭, 而另一通道內(nèi)余額充足, 那么能否將其在另一通道內(nèi)余額轉(zhuǎn)入資金枯竭的通道內(nèi)以支持該通道內(nèi)的后續(xù)交易呢? 鏈下通道的再平衡(rebalancing) 正是解決這樣一類問題的方法, 使得通道參與方的余額在其所在的多個(gè)通道內(nèi)相互轉(zhuǎn)移, 以保障其鏈下交易的持續(xù).如圖6 所示, 參與方A、B、C 兩兩之間存在支付通道α、β、γ, 通道上的數(shù)字代表參與方在該通道的余額, 即參與方A 在通道α的余額為200, 在通道γ的余額為2.若此時(shí)參與方B 想通過通道α向參與方A 轉(zhuǎn)賬, 則無(wú)法實(shí)現(xiàn), 參與方B 在通道α中的資金已然枯竭.若按照?qǐng)D示的方向進(jìn)行再平衡, 對(duì)各個(gè)通道內(nèi)的參與方余額進(jìn)行重新分配, 則面臨上述問題的各參與方可繼續(xù)完成后續(xù)鏈下交易.

      圖6 支付通道再平衡Figure 6 Payment channel rebalancing

      (1) Revive

      Revive 由Khalil 和Gervais[32]提出, 旨在解決鏈下通道的再平衡問題.鏈下通道通常依賴于資金的鎖定和釋放, 因此當(dāng)通道的資金分布不均勻或需要調(diào)整時(shí), 就需要進(jìn)行資金再平衡.其產(chǎn)生原因主要包括:1?交易不均衡.如果在通道中的一方頻繁進(jìn)行支付, 而另一方很少支付, 通道的資金可能會(huì)傾向于一方,需要重新分配資金以保持平衡.2?通道資金耗盡: 如果一個(gè)通道的資金用盡, 需要關(guān)閉通道并重新分配資金, 以便繼續(xù)使用該通道.3?費(fèi)用優(yōu)化.有時(shí)候, 通道中的一方可能希望調(diào)整資金以優(yōu)化交易費(fèi)用.這可能涉及到將資金從一個(gè)通道移動(dòng)到另一個(gè)通道, 以便更有效地進(jìn)行支付.

      Revive 作用于環(huán)形支付通道網(wǎng)絡(luò), 由一個(gè)誠(chéng)實(shí)的領(lǐng)導(dǎo)者(leader) 收集用戶的再平衡需求, 檢查哪些再平衡需求可以在保證用戶不丟失資金的情況下實(shí)現(xiàn), 然后實(shí)現(xiàn)用戶們的再平衡需求.Revive 沒有鏈上消耗, 再平衡過程在鏈下完成.缺點(diǎn)是, 執(zhí)行條件苛刻, 只能針對(duì)環(huán)形有向支付通道網(wǎng)絡(luò); 其次需要一個(gè)誠(chéng)實(shí)的領(lǐng)導(dǎo)者和每個(gè)用戶的配合.

      (2) Cycle

      Cycle 由Hong 等人[33]提出, 其中通道參與者可以異步地對(duì)通道余額進(jìn)行再平衡, 協(xié)議中通過設(shè)定并廣播資金的偏移量來(lái)實(shí)施對(duì)通道余額的再平衡.協(xié)議不僅支持兩個(gè)相鄰?fù)ǖ乐g的再平衡, 還支持沒有直接通道相連的虛擬通道之間的再平衡.協(xié)議通過部署仲裁智能合約來(lái)解決因網(wǎng)絡(luò)延遲或惡意參與者引起的爭(zhēng)議.此外, 協(xié)議中考慮到預(yù)期偏移量的傳播可能會(huì)泄漏通道參與方的資金隱私, 結(jié)合本地化差分隱私(local differential privacy) 技術(shù)隱藏通道參與方的輸入, 保障參與方的資金隱私安全.

      Cycle 協(xié)議執(zhí)行也需要通過環(huán)形支付通道網(wǎng)絡(luò), 并且再平衡所依賴的環(huán)形通道參與方是靜態(tài)設(shè)定的,通道參與方需要通過注冊(cè)合約加入?yún)f(xié)議, 即協(xié)議初始階段就已設(shè)定好能夠進(jìn)行再平衡的通道參與方以及環(huán)形通道網(wǎng)絡(luò)的規(guī)模.此外, 再平衡的所有步驟都使用了智能合約, 無(wú)法適配于比特幣.

      (3) Hide & Seek

      Hide & Seek 由Avarikioti 等人[34]提出, 是一種可選擇的再平衡協(xié)議, 將再平衡問題簡(jiǎn)化為最小成本流問題, 選定一系列代表來(lái)執(zhí)行線性規(guī)劃實(shí)現(xiàn)通道間的再平衡, 參與方通過秘密共享向指定的代表提交他們的再平衡請(qǐng)求, 即希望再平衡多少金額, 并設(shè)定目標(biāo)函數(shù)使得通道內(nèi)再平衡的資金總量最大化.協(xié)議結(jié)合安全多方計(jì)算的思想, 使得再平衡的過程是完全私有化的, 從而保障各通道參與方的隱私.Hide &Seek 協(xié)議也需要借助環(huán)形支付通道來(lái)完成再平衡, 并且協(xié)議使用了智能合約來(lái)實(shí)現(xiàn)環(huán)形事務(wù)的自動(dòng)執(zhí)行,不適配于比特幣.但Hide & Seek 協(xié)議將再平衡的周期進(jìn)行分解, 將一周期分為探索階段和執(zhí)行階段.在探索階段, 將再平衡問題轉(zhuǎn)化為線性規(guī)劃, 并通過多方計(jì)算協(xié)議來(lái)解決線性規(guī)劃問題, 以保證隱私和效率.在執(zhí)行階段, 將探索階段的輸出分解為一組循環(huán)流動(dòng), 并通過創(chuàng)建HTLC 來(lái)確保循環(huán)中的交易具有原子性.此方案的問題在于, 一方面對(duì)于敵手攻擊能力的假設(shè)比較保守, 在應(yīng)用層面有一定局限性; 另一方面沒有考慮網(wǎng)絡(luò)拓?fù)涞膭?dòng)態(tài)變化, 對(duì)于網(wǎng)絡(luò)結(jié)構(gòu)的變化可能需要重新執(zhí)行協(xié)議, 同時(shí), 協(xié)議的設(shè)計(jì)沒有考慮交易費(fèi)用的問題, 由此可能損害參與者的利益.

      (4) Shaduf

      Shaduf 由Ge 等人[35]提出, 協(xié)議擺脫了Revive 等方案對(duì)于環(huán)形有向支付通道網(wǎng)絡(luò)的依賴, 能夠在相鄰的兩通道內(nèi)進(jìn)行再平衡.Ge 等人考慮到再平衡過程中的雙重轉(zhuǎn)移攻擊(double-shifting attack), 即兩通道的中間人與其中一個(gè)通道參與方合謀, 將通道內(nèi)的有限資金轉(zhuǎn)移到多個(gè)通道, 其中轉(zhuǎn)移走的總金額大于通道容量, 導(dǎo)致爭(zhēng)議索賠階段參與的其他通道面臨資金損失.為抵抗此類攻擊, Shaduf 提出了綁定(bind) 的方法, 將兩相鄰?fù)ǖ肋M(jìn)行綁定.一次鏈上綁定后, 用戶可在兩通道間雙向無(wú)限次轉(zhuǎn)移資金.同時(shí),為了提高再平衡的效率, 一個(gè)通道內(nèi)的資金可以以配額的方式與多個(gè)通道進(jìn)行綁定.

      Shaduf 可以抵抗不合作的參與者, 不受他人需求的限制.使用通用可組合(universal composable,UC) 框架中的理想/現(xiàn)實(shí)世界范式形式化了Shaduf 的安全屬性, 并根據(jù)定義提供了形式化的安全性證明.但由于其復(fù)雜性, 需要支持智能合約, 即比特幣不適配.

      (5) Musketeer

      Musketeer 由Avarikioti 等人[36]提出, Avarikioti 等人認(rèn)為Revive 和Hide&Seek 協(xié)議中的再平衡子圖只包括了希望進(jìn)行再平衡的各參與方, 而支付通道網(wǎng)絡(luò)中絕大多數(shù)可能以低費(fèi)用或免費(fèi)方式來(lái)傳遞交易的通道被忽略了.因此, 即使使用全局協(xié)調(diào)的再平衡, 有限的再平衡子圖仍然會(huì)影響整體方案的最優(yōu)性.協(xié)議涉及到支付通道網(wǎng)絡(luò)中的所有參與方, 最大限度地提高流動(dòng)性利用率及交易吞吐量.協(xié)議將再平衡問題轉(zhuǎn)化為雙重拍賣再平衡問題, 參與方可以作為買家或者賣家參與協(xié)議, 其中買家可以支付一定的費(fèi)用用于再平衡, 賣家可以收取費(fèi)用以提供交易的路由服務(wù).雖然有的通道參與方與其他用戶的再平衡問題無(wú)關(guān),但他們可以提供有償?shù)穆酚煞?wù), 提高整個(gè)支付通道網(wǎng)絡(luò)的資金流動(dòng)性和吞吐量.雙重拍賣的不可能性結(jié)果證明Musketeer 方法不能同時(shí)滿足期望的屬性, 包括經(jīng)濟(jì)效率、個(gè)體合理性(individual rationality)、真實(shí)性和循環(huán)預(yù)算平衡等, 這意味著無(wú)法設(shè)計(jì)一種機(jī)制, 使得所有參與者都能夠獲得最大的利益, 同時(shí)保持真實(shí)性和循環(huán)預(yù)算平衡.文中提出拍賣再平衡機(jī)制中, 買家支付的價(jià)格取決于支付通道網(wǎng)絡(luò)的底層圖結(jié)構(gòu).由于這種依賴關(guān)系, 賣家的收益將取決于圖中可行的再平衡循環(huán)的數(shù)量.因此, 賣家無(wú)法控制買家支付的價(jià)格, 而是受到PCN 結(jié)構(gòu)的影響.這可能會(huì)導(dǎo)致賣家的收益受到圖中可行再平衡循環(huán)數(shù)量的限制, 從而影響了賣家的利潤(rùn).

      3 多方支付通道

      3.1 概念

      多方支付通道(multi-party payment channel)[52]是在雙方支付通道的基礎(chǔ)上設(shè)計(jì)的, 如圖7 所示,多方支付通道可以看成是由多個(gè)雙方支付通道構(gòu)成的.

      圖7 多方支付通道示例Figure 7 Multi-party payment channel example

      與雙方支付通道類似, 多方支付通道的運(yùn)行周期也主要包括三個(gè)階段: 創(chuàng)建、更新和關(guān)閉[53].

      ? 通道創(chuàng)建.在通道創(chuàng)建階段, 智能合約收集加入到多方支付通道的所有區(qū)塊鏈用戶的地址和所有雙方支付通道, 并驗(yàn)證所有用戶的簽名, 驗(yàn)證成功后, 完成通道創(chuàng)建, 此時(shí), 各雙方支付通道不能獨(dú)立于多方支付通道使用.

      ? 更新.在更新階段, 智能合約更新多方支付通道的新狀態(tài), 包括各雙方支付通道最新余額分配情況和版本號(hào).

      ? 通道關(guān)閉.在關(guān)閉階段, 當(dāng)通道內(nèi)的交易全部完成后, 用戶能夠向智能合約請(qǐng)求通道關(guān)閉, 智能合約驗(yàn)證用戶們的簽名, 完成驗(yàn)證后, 關(guān)閉通道, 雙方支付通道被設(shè)置為空閑狀態(tài), 可以獨(dú)立使用.

      圖7 是一個(gè)多方支付通道的例子.圖7(a)是通道的初始狀態(tài), 其中有五個(gè)用戶和四個(gè)雙方支付通道,并假設(shè)每個(gè)用戶在其所在通道鎖定的資金都是5 個(gè)代幣, 假設(shè)在一輪交易中所有人都需要向D 轉(zhuǎn)賬1 個(gè)代幣, 可記為{(A, D, 1), (B, D, 1), (C, D, 1), (E, D, 1)}.但是, 并不是任意兩個(gè)節(jié)點(diǎn)間都有直連通道來(lái)執(zhí)行交易, 需要借助一些節(jié)點(diǎn)作為中間節(jié)點(diǎn)進(jìn)行交易, 此時(shí), 一些通道可能被多次使用.為了減少交易的總次數(shù), 可以把通道內(nèi)的多次交易合并為一次交易, 即{(A, B, 1), (B, D, 4), (C, B, 2), (E, C, 1)}, 交易結(jié)果如7(b)所示.下一輪所有節(jié)點(diǎn)都需要給C 轉(zhuǎn)賬1 個(gè)代幣, 則最終交易結(jié)果如7(c)所示.

      3.2 典型方案分析

      (1) Sprites

      Sprites[37]的路由方案也是采用HTLC 實(shí)現(xiàn)的, 它引入了一個(gè)簡(jiǎn)單的智能合約, 稱為原像管理器(preimage manager, PM), 用以記錄HTLC 中發(fā)布過的原像.PM 負(fù)責(zé)統(tǒng)一管理所有通道內(nèi)的原像是否按時(shí)發(fā)布, 這能保證在爭(zhēng)議處理過程中, 所有通道都以一致的方案解決爭(zhēng)議(要么交易全部完成, 要么全部取消).由于對(duì)全局智能合約的依賴, 導(dǎo)致Sprites 對(duì)區(qū)塊鏈平臺(tái)的腳本能力有較強(qiáng)要求, 適用范圍有限.

      Sprites 支持部分取款和存款, 即向通道內(nèi)增加或減少鎖定資金的數(shù)額, 在此期間, 通道可以繼續(xù)運(yùn)行而不會(huì)中斷.它不支持用戶的即時(shí)退出和進(jìn)入, 因此不能完全保證通道的靈活性.

      (2) Garou

      Garou 由Ye 等人[38]提出.如圖8 所示, Garou 有兩個(gè)組成部分: 鏈上智能合約和鏈下交易協(xié)議.

      圖8 Garou 結(jié)構(gòu)圖Figure 8 Garou architecture

      鏈上智能合約管理著所有參與者的存款, 并充當(dāng)爭(zhēng)議解決者.在鏈上智能合約的支持下, 即使支付中心的所有其他參與者都是惡意的, 誠(chéng)實(shí)的一方也不會(huì)承擔(dān)任何財(cái)務(wù)損失.

      鏈下交易分為三個(gè)階段: 領(lǐng)導(dǎo)者選舉、交易和共識(shí).

      ? 領(lǐng)導(dǎo)者選舉.采用一個(gè)自動(dòng)的領(lǐng)導(dǎo)者選舉機(jī)制, 以消除額外的通信開銷, 同時(shí)避免了由一個(gè)固定的領(lǐng)導(dǎo)人造成的單點(diǎn)故障.

      ? 交易.在交易階段, 通道中的參與者可以自由地相互進(jìn)行轉(zhuǎn)賬, 但是, 參與者花費(fèi)的數(shù)額不能超過他們當(dāng)前余額.

      ? 共識(shí).在共識(shí)階段, 所有參與者就當(dāng)前階段的最終狀態(tài)達(dá)成共識(shí), 該狀態(tài)充當(dāng)Garou 的鏈下執(zhí)行的檢查點(diǎn).在發(fā)生爭(zhēng)議的情況下, 誠(chéng)實(shí)的參與者可以將最新的狀態(tài)提交給鏈上智能合約, 以加強(qiáng)其資產(chǎn)安全性.

      對(duì)于用戶的加入和退出, 由領(lǐng)導(dǎo)者處理, 領(lǐng)導(dǎo)者在通道的狀態(tài)信息中添加加入或退出信息, 等待用戶對(duì)信息達(dá)成共識(shí)并執(zhí)行相應(yīng)操作.因此, 只有當(dāng)通道正常工作時(shí), 這個(gè)過程才能成功完成.

      (3) Magma

      Magma 由Ge 等人[39]提出.如圖9 所示, Magma 的一個(gè)周期分為五個(gè)階段: 通道開啟、用戶加入、通道更新、用戶退出、通道關(guān)閉.Magma 引入了一個(gè)不可信的操作員(operator) 來(lái)完成其他用戶的狀態(tài)更新、加入和退出.在開啟、更新和關(guān)閉過程中, 更新是最重要和最關(guān)鍵的過程.它實(shí)現(xiàn)了通道的核心功能, 即: 使各方之間能夠進(jìn)行鏈下交易, 并且在通道的周期內(nèi)盡可能正確運(yùn)行.此外, 加入、退出和關(guān)閉過程依賴于更新過程.因?yàn)檫@三個(gè)過程都需要改變通道狀態(tài), 而所有的狀態(tài)都是由更新過程產(chǎn)生的.

      圖9 Magma 結(jié)構(gòu)圖Figure 9 Magma architecture

      在Magma 中, 用戶可以即時(shí)加入或退出開放的多方支付通道, 而無(wú)需關(guān)閉或重新打開通道.在用戶加入時(shí), 首先用戶向操作員發(fā)送加入請(qǐng)求, 請(qǐng)求需要包含用戶的初始信息以及作惡補(bǔ)償, 以防止惡意加入.接收到加入請(qǐng)求, 操作員檢查其正確性, 如果正確, 則他回復(fù)加入確認(rèn)信息, 該信息可以由加入方轉(zhuǎn)發(fā)到鏈上智能合約以聲明加入.在被智能合約通知加入完成之后, 操作員在下一次更新中將加入方的信息添加到信道更新狀態(tài)中.當(dāng)用戶想要退出通道時(shí), 他向智能合約提交申請(qǐng), 合約根據(jù)最新狀態(tài)退還退出方的余額.在退出之后, 通道繼續(xù)工作, 并且最新狀態(tài)可以被視為檢查點(diǎn).

      Magma 增強(qiáng)了多方支付通道的靈活性, 允許用戶動(dòng)態(tài)加入或退出通道.但是, 在Magma 中, 通道的狀態(tài)在通道內(nèi)是公開的, 這意味著用戶或操作員知道通道內(nèi)的交易和金額, 從而導(dǎo)致隱私保護(hù)受到限制.

      4 匿名支付通道

      4.1 概念

      匿名支付通道是一種允許參與者在不暴露其真實(shí)身份或具體交易信息的情況下進(jìn)行支付和交易的鏈下通道, 旨在提高鏈下交易的隱私性和安全性.

      4.2 典型方案分析

      (1) Bolt

      Bolt[40]為三種支付通道設(shè)計(jì)了三種匿名支付通道協(xié)議, 這三種通道分別是: 單向支付通道、雙向支付通道、間接支付通道.

      1?單向支付通道: 單向支付通道允許付款方A 持續(xù)向收款方B 發(fā)起多筆交易, 但此交易是單向的,即不支持B 向A 轉(zhuǎn)賬.

      Bolt 針對(duì)e-cash[54]單向支付通道方案進(jìn)行改進(jìn).在傳統(tǒng)的e-cash 單向支付通道的關(guān)閉過程中, A需要向B 提供自己的資金信息, 以證明自己的資金余額, 以防止雙花攻擊, 這將破壞通道的匿名性.Bolt的改進(jìn)措施是, 由B 存儲(chǔ)必要的信息以對(duì)通道關(guān)閉的狀態(tài)進(jìn)行驗(yàn)證, 而A 不需向B 提供余額信息, 而是將所剩資金花費(fèi)于自己的賬戶, 然后向鏈上提供相應(yīng)的證據(jù).當(dāng)發(fā)生爭(zhēng)議時(shí), 由鏈上負(fù)責(zé)解決.

      2?雙向支付通道: 通道雙方可以互相執(zhí)行轉(zhuǎn)賬交易.

      Bolt 將匿名的單向支付通道擴(kuò)展到匿名的雙向支付通道.其中, 用戶需要使用零知識(shí)證明和盲簽名來(lái)證明資金的正確性以及新余額與原始余額的差值是正確的.為了保證通道關(guān)閉時(shí), 通道雙方的余額更新為最新值, 用戶需要發(fā)布一個(gè)最終通道余額的承諾以及一個(gè)零知識(shí)證明, 以證明他擁有通道余額的簽名.

      3?雙向間接通道: 交易雙方之間不存在直連通道, 但可以通過若干中間節(jié)點(diǎn)完成交易, 例如基于HTLC 路由技術(shù)的通道.

      假設(shè)A-C-B 是一個(gè)雙向間接通道, 其中A 與B 可以借助第三方C 進(jìn)行雙向交易.Bolt 的實(shí)現(xiàn)目標(biāo)是, C 無(wú)法知道交易雙方的身份, 也不能知道交易的金額.由于第三方C 只是被動(dòng)地參與到了交易中, 因此他并不需要了解通道的支付狀態(tài), 只需要交易雙方A 和B 對(duì)交易達(dá)成一致即可.

      Bolt 實(shí)現(xiàn)了一種去中心化的匿名支付通道, 保證用戶的交易信息不被泄露, 但需要在每個(gè)節(jié)點(diǎn)運(yùn)行額外大約5 MB 的通信開銷, 對(duì)節(jié)點(diǎn)的存儲(chǔ)能力和通信能力有較高要求, 這阻礙了其廣泛的部署.

      (2) MAPPCN

      MAPPCN[41]利用橢圓曲線保證支付通道的匿名性, 其安全性依賴于橢圓曲線上的離散對(duì)數(shù)問題.MAPPCN 對(duì)時(shí)間鎖機(jī)制進(jìn)行改進(jìn), 利用橢圓曲線完成時(shí)間鎖的驗(yàn)證以及保證資金的解鎖, 使資金能夠安全且隱私地在通道內(nèi)流轉(zhuǎn).

      在MAPPCN 中, 中間節(jié)點(diǎn)在每輪通信中, 只向其直連節(jié)點(diǎn)發(fā)送消息, 這提高了通信的效率.此外, 為了保證轉(zhuǎn)賬方和接收方的匿名性, MAPPCN 的改進(jìn)是, 在利用時(shí)間鎖機(jī)制執(zhí)行資金流轉(zhuǎn)過程中, 轉(zhuǎn)賬方和接收方不向除其直接鄰居節(jié)點(diǎn)之外的任何節(jié)點(diǎn)發(fā)送任何消息, 以防止每個(gè)中間節(jié)點(diǎn)都知道消息發(fā)送方的身份, 保證了通道內(nèi)交易雙方的匿名性.

      橢圓曲線上的離散對(duì)數(shù)問題的困難性保證了MAPPCN 的安全性, 但是由于橢圓曲線密碼體制的復(fù)雜性以及計(jì)算速率的限制, 導(dǎo)致MAPPCN 的效率較低, 實(shí)施難度較大.

      (3) A2L

      Tairi 等人[42]提出了A2L 協(xié)議, 實(shí)現(xiàn)了一種基于有條件三方交易的支付通道集線器(payment channel hubs, PCH)構(gòu)造, 只有當(dāng)接收方在發(fā)送方的幫助下解決了密碼謎題時(shí), 中間方才會(huì)向接收者支付費(fèi)用,而發(fā)送方協(xié)助接收方解決謎題意味著發(fā)送方已經(jīng)向中間方支付了費(fèi)用, 由此構(gòu)成一個(gè)三方的原子鎖.文中首次證明了在只需要底層腳本語(yǔ)言的數(shù)字簽名和時(shí)間鎖功能的情況下, 就可以設(shè)計(jì)一個(gè)安全且保護(hù)隱私的PCH, A2L 對(duì)比特幣兼容.A2L 支持原子性、不可鏈接性、互操作性和可擴(kuò)展性.Tairi 等人在UC 框架中證明了A2L 協(xié)議的安全性和隱私性, 并提出了一個(gè)基于適配器簽名和隨機(jī)化謎題的實(shí)例化方案.交易關(guān)系的匿名性和交易金額的隱私性是PCH 的理想隱私保護(hù)特性, 它可以防止攻擊者識(shí)別發(fā)送方和接收方的身份以及支付金額, 但協(xié)議所涉及的交易量是固定的, 無(wú)法實(shí)現(xiàn)不同金額的支付.

      (4) BlindHub

      Qin 等人[43]提出了BlindHub 協(xié)議, 考慮到現(xiàn)有的能夠兼容比特幣并提供交易關(guān)系匿名的PCH 結(jié)構(gòu)只支持預(yù)定義的固定支付金額, 為了實(shí)現(xiàn)不同金額的支付, 要么需要多個(gè)PCH 系統(tǒng), 要么需要多次運(yùn)行一個(gè)PCH 系統(tǒng).BlindHub 協(xié)議在實(shí)現(xiàn)交易關(guān)系匿名PCH 的基礎(chǔ)上, 還支持可變支付金額.Qin 等人提出了盲適配器簽名(blind adaptor signature, BAS) 和靈活盲條件簽名(flexible blind conditional signature, FBCS) 兩個(gè)新型密碼學(xué)原語(yǔ), 分別用于實(shí)現(xiàn)基于盲簽名的適配器簽名協(xié)議和提供原子性與隱私保護(hù)的PCH.協(xié)議首先通過設(shè)計(jì)BlindChannel 來(lái)實(shí)現(xiàn)雙向支付通道內(nèi)的隱私保護(hù), 并在UC 框架下證明了其安全性.在此基礎(chǔ)上進(jìn)一步提出了BlindHub 協(xié)議, 用于有條件支付的私有化三方協(xié)議, 且交易的中間方無(wú)法對(duì)發(fā)送方和接收方進(jìn)行鏈接, 保障交易方的隱私性.BlindHub 協(xié)議僅需要用到數(shù)字簽名和底層區(qū)塊鏈的時(shí)間鎖功能.結(jié)合BlindHub 和BlindChannel, 給出了一個(gè)比特幣兼容的PCH 結(jié)構(gòu), 實(shí)現(xiàn)價(jià)值隱私保護(hù)、原子性、關(guān)系匿名性、抵抗惡意破壞, 同時(shí)支持可變支付金額.然而, 為了實(shí)現(xiàn)相應(yīng)的安全目標(biāo), BlindHub 方案的協(xié)議設(shè)計(jì)復(fù)雜, 難以實(shí)現(xiàn); 同時(shí), 仿真實(shí)驗(yàn)表明, 利用本方案完成一次交易需要大約17 秒時(shí)間, 這有悖于鏈下通道高性能、高效率的特性.

      5 總結(jié)與未來(lái)研究方向

      本文從區(qū)塊鏈的可擴(kuò)展性問題展開, 介紹了一種重要且可行的解決方案—鏈下通道方案, 對(duì)鏈下通道的基本原理和流程進(jìn)行了細(xì)致分析; 總結(jié)了不同種類的鏈下通道, 對(duì)每種通道的原理進(jìn)行了解釋, 同時(shí)研究了若干典型鏈下通道方案的原理及優(yōu)劣.

      鏈下通道作為解決區(qū)塊鏈可擴(kuò)展性問題的重要解決方案, 未來(lái)的研究方向主要包括:

      第一, 應(yīng)用層面.目前, 大多數(shù)鏈下通道的部署都對(duì)運(yùn)行環(huán)境有較為嚴(yán)苛的要求, 未來(lái)研究可以通過減小存儲(chǔ)量[55]、簡(jiǎn)化程序等方式降低通道部署的門檻, 使其應(yīng)用范圍更加廣泛.

      第二, 安全層面.鏈下通道內(nèi)交易信息的泄露可能會(huì)導(dǎo)致交易方的隱私泄露[56,57], 致使交易的安全性受到威脅, 于是, 設(shè)計(jì)安全的鏈下通道、有效保護(hù)用戶隱私是必要的[58].

      第三, 監(jiān)管層面.通道內(nèi)的爭(zhēng)議可能導(dǎo)致通道的擁塞或癱瘓, 給區(qū)塊鏈系統(tǒng)造成額外的負(fù)擔(dān).設(shè)計(jì)合理有效的監(jiān)管機(jī)制, 避免通道出現(xiàn)爭(zhēng)議, 并在爭(zhēng)議出現(xiàn)后及時(shí)且準(zhǔn)確解決爭(zhēng)議, 保障通道的持續(xù)運(yùn)行.

      第四, 獎(jiǎng)懲層面[59].為通道內(nèi)的中間節(jié)點(diǎn)設(shè)計(jì)可行的獎(jiǎng)懲機(jī)制, 激勵(lì)其誠(chéng)實(shí)地協(xié)助完成交易并維護(hù)通道的正常運(yùn)行; 對(duì)于作惡節(jié)點(diǎn)進(jìn)行有效懲罰, 提高其作惡成本, 同時(shí)給予舉報(bào)者一定的獎(jiǎng)勵(lì).

      猜你喜歡
      參與方合約參與者
      基于秘密分享的高效隱私保護(hù)四方機(jī)器學(xué)習(xí)方案
      休閑跑步參與者心理和行為相關(guān)性的研究進(jìn)展
      淺析打破剛性兌付對(duì)債市參與者的影響
      綠色農(nóng)房建設(shè)伙伴關(guān)系模式初探
      涉及多參與方的系統(tǒng)及方法權(quán)利要求的撰寫
      專利代理(2016年1期)2016-05-17 06:14:03
      基于IPD模式的項(xiàng)目參與方利益分配研究
      海外僑領(lǐng)愿做“金絲帶”“參與者”和“連心橋”
      常數(shù)輪理性秘密分享機(jī)制
      合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過高期望
      吐鲁番市| 长顺县| 临江市| 绥芬河市| 聊城市| 湘阴县| 肥乡县| 曲水县| 云林县| 平谷区| 于都县| 通渭县| 榆中县| 亚东县| 江川县| 井研县| 崇州市| 大悟县| 察隅县| 丰县| 资溪县| 大方县| 灵山县| 保山市| 灌云县| 延寿县| 泊头市| 五峰| 夏邑县| 焦作市| 汨罗市| 南昌市| 惠安县| 台东市| 常宁市| 延长县| 济南市| 东光县| 东丽区| 楚雄市| 大石桥市|