簡介
在側鏈技術的研究方面,Blockstream是較為領先的一個公司。2014年10月,以亞當為首的開發團隊正式發布了側鏈白皮書,2015年6月,Blockstream宣布將為其側鏈項目發布一個開原始碼庫和測試環境。
側鏈白皮書中提出了一種新技術——“楔入式側鏈”,通過它可以實現不同區塊鏈間資產的互相轉移。由於側鏈是獨立的系統,因此技術與理念上的創新不會受到主鏈的局限,即使出現創新失敗或者惡意攻擊,所受的損害也只限於側鏈本身。
本質上,區塊鏈是不同數字價值的載體,而側鏈技術則是連線不同區塊鏈的通路。現在還不能斷言最終成熟的側鏈技術形態,甚至我們也不知道未來真正大規模套用於區塊鏈間連線的技術是否會以“側鏈技術”的名義出現,但側鏈技術的理念及核心功能的發展與成熟是毋庸置疑的。
原理
“無需信任”指的不依賴外部的可信方也可完成正確的操作的特性,一般是能夠讓所有參與方自己驗證信息是否正確。例如,密碼學簽名系統中,“無需信任”是一個隱式的必要條件(如果攻擊者能偽造簽名,那么這個簽名系統將被視為被完全破解)。雖然分散式系統中一般不需如此,但比特幣在系統的大部分中提供了“無信任”操作。
“楔入式側鏈”的一個主要目標是在比特幣系統模型之上最小化附加的信任。難點是幣在側鏈間的安全轉移:接收鏈必須能得知傳送鏈的幣已被正確鎖定。在比特幣的領導下,我們提議用DMMS來解決這一問題。儘管有可能利用一個簡單基於信任的方案,引入固定數量簽名者來驗證幣的鎖定,但有很多重要理由讓我們避免這種單點故障的引入:
信任個人簽名者,並不僅僅意味期待他們做事誠實,他們還必須永遠不出漏洞、永遠不會泄露關鍵的秘密、永遠不會被挾持、永遠不會停止參與網路。
由於數字簽名是長期存在的,對任何信任的要求也必須如此。經驗告訴我們,即使時間跨度只有幾個月,信任需求也是一種危險的期待,更何況我們所期望的金融系統所能持續的時間長達幾個世代。
在比特幣系統消除了單點故障前,數字貨幣一直沒有什麼吸引力,社區強烈反對引入這種弱點。2007年以來的金融事件更加強了社區的不信任;對金融系統和其他公共機構的公共信任也同樣處於歷史的低點。
優勢
獨立性
側鏈架構的好處是代碼和數據獨立,不增加主鏈的負擔,避免數據過度膨脹,實際上是一種天然的分片機制。 側鏈有獨立的區塊鏈,有獨立的受託人或者說見證人,同時也有獨立的節點網路,就是說一個側鏈產生的區塊只會在所有安裝了該側鏈的節點之間進行廣播。
獨立性既是優點,也是缺點。開發者完成了dapp的開發工作之後,還要考慮運維,也就是說要尋找足夠的節點來運行它,否則難以維持足夠的安全性。 從這一點來看,與以太坊相比,是缺陷,以太坊上一旦發布一個dapp,所有的節點都可以為它工作,並為它提供安全保障。
靈活性
但是側鏈架構依然有存在的必要性,因為並非所有的套用都需要那么高的安全性。Asch給用戶提供了一種可以選擇的靈活性。 比方說,假設asch有1000個節點,那么其中有的dapp比較重要,需要500個節點來運行它,有的dapp不那么重要,可能只需要100個節點,這完全是由用戶和開發者決定的。 在以太坊上,則只能選擇一種,即全部節點都來運行它。據說以太坊也打算實現一種分片的機制,實際上這在asch系統中是一個早就解決了的問題。 另外,對於比較重要的、安全性要求較高的套用,我們依然可以選擇在主鏈上開發,但是不可能對所有開發者開放這種權力,還是為了避免主鏈的膨脹和不可控(DAO事件)。
側鏈的靈活性還表現在,所有的區塊鏈參數是可以定製的,簡單的比如區塊間隔、區塊獎勵、交易費的去向等,高級用戶還可以修改共識算法。 不過最重要的還是業務邏輯,側鏈上可以輕易的開發出與你的業務相關的交易類型或者智慧型契約。 這一點是與側鏈的發明者blockstreams不同,blockstreams的側鏈,只是一個不同的貨幣系統而已,開發新型交易和智慧型契約很不容易。
缺陷
側鏈給加密貨幣領域中的很多問題提供了解決方案,為比特幣系統的革新帶來數不清的機會,但同時,側鏈本身也並非沒有缺陷。本節我們將審查一些潛在問題,並附以解決方案或變通方案。
複雜度
側鏈在以下幾個層面引入了額外的複雜度。
在網路層面,我們有了許多獨立的、非同步的區塊鏈,支持相互間轉移。它們必須支持可被後期重組證明宣布失效的交易腳本。我們還需要軟體自動檢測不正當行為,以及生成並發布相關的證明。
在資產層面,簡單的“一條鏈,一種資產”準則不復存在了;單條鏈可以支持任意多的資產,甚至包括該鏈首次被創建時還不存在的資產。這些資產的每一個都要標記上該資產的來源鏈,以確保資產的轉移可以被正確地解析。
僅讓區塊鏈基礎架構能處理高級功能是不夠的:管理錢包的用戶界面也需要重新考慮。目前,在競爭幣的世界中,每條鏈都有自己的錢包,用以支持該鏈上幣的交易。需要改寫這些錢包以便支持多個鏈(可能帶有不同的功能集)和鏈間資產的轉移。當然,如果令用戶界面過於複雜,完全可以選擇不使用某些功能。
欺騙性轉帳
理論上,任意深度的重組都是有可能的,這讓攻擊者能製造一個比傳送鏈的競賽期時間長的重組、在傳送鏈撤消該半側的轉帳前,將幣在側鏈間完全轉移。結果將使接收鏈上幣的數目與傳送鏈上可贖回的鎖定輸出的數量不對等。如果允許攻擊者將幣轉移回初始鏈,他將增加他自己幣的數量,讓該側鏈上其他用戶付出損失。
在討論如何處理這一問題前,我們注意到,通過簡單地延長轉移的競賽期就可以使這種風險變得任意小。那好,可以用兩條鏈的相對哈希算力生成一個函式來決定競賽期的持續時間:接收鏈可以僅在見到一個等同於該鏈1天工作量的SPV證明時才解鎖幣,這一證明可能相當於傳送鏈上幾天的工作量證明。類似這樣的安全參數是特定於側鏈的屬性,可以針對每個側鏈的套用進行最佳化。
挖礦中心化的風險
一個重要的顧慮是,引入帶有礦工費的側鏈是否會給礦工資源帶來壓力,產生比特幣系統(挖礦)中心化的風險。
由於礦工們收到的報酬,來自於其所工作的各鏈的區塊補貼及交易費,出於經濟利益,他們會根據難度變化和市場價值變動,切換到價值上差不多的不同區塊鏈,為之提供多方成員動態簽名(DMMSes)。
我們的答覆是,一些區塊鏈已稍稍改進了區塊眉的定義,使其中包含一個比特幣系統DMMS,因而,礦工能把提交給比特幣系統的DMMS同樣用於一個或多個其他區塊鏈——這稱為合併挖礦。因為合併挖礦允許將工作量復用到多個區塊鏈上,礦工可以從每個他們提供了DMMSes的區塊鏈上索取報酬。
由於礦工們要為更多的區塊鏈提交工作,跟蹤和驗證全部這些鏈需要更多的資源。只為區塊鏈的某一子集提交工作的礦工得到的報酬,比為所有可能的區塊鏈都提交工作的礦工少。小規模的礦工可能無法支付為每個區塊鏈挖礦的全部成本,因而與較大的有組織的礦工相比,會處於劣勢,後者能從更大的區塊鏈集合中索取更多的報酬。
不過,我們注意到,礦工們可以將其所工作的任何區塊鏈子集上的驗證和交易選擇委派出去。選擇委託機構能使礦工免除幾乎所有對額外資源的需求,或者能為仍處於驗證過程的區塊鏈提交工作。然而,這種委派的代價是區塊鏈上驗證和交易選擇的中心化,即便工作量生成本身仍是分散式的。不過,礦工們也可以選擇不為仍處於驗證過程的區塊鏈工作,用自願放棄一些報酬來提高驗證過程的去中心化。
軟分叉風險
比特幣系統中,軟分叉是對比特幣協定的一個補充,通過在設計上嚴格縮減合法交易或區塊的集合來實現向後兼容。軟分叉的實現只需挖礦算力中的絕大多參與即可,不需要所有的完全節點都參與。不過,對於軟分叉出來的功能,除非所有完全節點都升級,否則參與者的安全性僅是SPV級。軟分叉已經被使用過很多次,用於部署新功能和修複比特幣系統中的安全問題。
按本文所述方法實現的雙向楔入僅有SPV安全性,因此,對礦工誠實性的短期依賴度高於比特幣系統。不過,如果雙方系統的所有完全節點都相互檢查,並用一個軟分叉規則要求相互的合法性,那么,雙向楔入的安全性可以提升至完全等同於比特幣系統的水平。
這種方式的負面影響是,失去了對任何有軟分叉需要的側鏈的隔離。由於隔離是使用楔入式側鏈的目標之一,除非某一側鏈已經幾乎被普遍使用,這種結果將是不受歡迎的。不過,假設沒有楔入式側鏈,接下來的備選方案是直接對比特幣系統硬分叉來部署單個的變更。這會更唐突,無法提供真實的機制證明新功能成熟,還需要冒比特幣系統共識上的風險。
套用
競爭鏈實驗
第一個套用,前面已經提及多次,就是簡單地創建一條競爭鏈,該鏈上幣的稀缺性由比特幣系統來提供。通過利用一條不用全新貨幣,而是承載比特幣的側鏈,避免了初始分配、市場脆弱性、以及新用戶接納障礙等棘手問題,新用戶不需要再去找尋值得依賴的市場,或投資於挖礦硬體以獲取競爭幣資產。
技術實驗
由於側鏈在技術上仍是完全獨立的鏈,它們能改變比特幣系統中諸如區塊結構或交易鏈等功能。下面例舉一些這樣的功能:
過修復不期望有的交易可鍛性——在比特幣系統中只能被部分修復[Wui14]——可以更安全地執行與鏈上未確認交易相關的協定。交易可鍛性是比特幣系統中的一個問題,會讓隨便一個用戶以某種方式微調交易數據,儘管交易的實際內容並未發生改變,但依賴於它們的後續交易會遭到破壞。機率性支付[Cal12]就是一例可被交易可鍛性破壞的協定。
提高支付者的隱私性,例如Monero(XMR)中使用的環簽名方案,可以減少特定方的交易被審查的系統風險,保護加密貨幣的可置換性。Maxwell、poelstra[MP14, Poe14b]和Back[Bac13a]對此提出的改進能容許更高的隱私性。目前,可以用Menora幣來使用環簽名方案,但比特幣不能使用;側鏈將會避免這種排它性。
在比特幣系統中提出過的腳本擴展(例如,對彩色幣[jl213]的有效支持)。由於這樣的擴展僅僅對小範圍的用戶有用,但使所有用戶都要因此而應對提高了的複雜度和不易察覺的互動影響造成的風險,因而這些擴展在比特幣系統中沒被接受。
其他建議的擴展包括對新的密碼學原語的支持。例如,蘭波特(Lamport)簽名,雖然大,但安全性可以對抗量子計算機。
由於這些變革影響的只是幣的轉移,而不是幣的鑄造,沒必要為它們準備一種獨立的貨幣。使用側鏈,用戶可以安全地、臨時性地嘗試這些變革。這促進了對側鏈的採納,與使用一種完全獨立的競爭幣相比,採用側鏈時,參與者的風險更小。
經濟實驗
比特幣系統的獎勵機制是把新幣分配給礦工。這實際上使貨幣膨脹,不過,它會按一個階梯式時間表隨時間推移而逐步下降。用這種通脹來補貼挖礦是對交易費的一個成功補充,用以保障網路安全。
在側鏈上獲取區塊獎勵的另一種機制是滯期費,這是由Freicoin(http://freico.in)首創的用於數字貨幣的一個想法。在滯留型(demurring)加密貨幣中,所有未花費的輸出將隨時間推移而減值,減少的價值被礦工重新採集。這在保證貨幣供給穩定的同時,還能給礦工獎勵。與通貨膨脹相比,這或許能更好地與用戶利益保持一致,因為滯期費的損失是統一制定並即時發生,不會像通脹那樣;它還緩解了因長期未使用的“丟失”幣以當前價起死回生可能給經濟帶來的衝擊,在比特幣系統中這是一種能意識到的風險。滯期費建立了提高貨幣流通速度和降低利率的激勵機制,這被(例如Freicoin的擁護者和其他西爾維奧・格塞爾利息論的支持者[Ges16])認為對社會有益。在楔入式側鏈中,可以用已有價值的貨幣將滯期費支付給礦工。
其他與經濟相關的變革,包括所需的礦工費、交易可逆性、當輸出達到一定的幣齡就簡單地將其刪除、或者是將通脹率/滯期費率楔入至側鏈外的事件。所有這些變革都很難安全地來進行,不過,由於側鏈易於創建並降低了風險,這給變革提供了必要的可行環境。
資產發行
在這一點上,大多數情況下,我們認為側鏈不需要自己的原生貨幣:所有側鏈上的幣最初都被鎖定,直到來自其他某條側鏈的資產轉入將其激活。不過,側鏈也可以製造自已的代幣,或是帶有自己語義的資產發行。它們可以被轉移給其他側鏈來換取其他的資產和貨幣,整個過程不需要對中心方有信任,即使將來贖回時對可信方有需求。
資產發行鏈有很多套用,包括傳統的金融工具,如股票、債券、憑證和白條等。這使得外部協定可以將所有權及轉帳記錄跟蹤等授權給發行所有者股份的那條側鏈。發行資產鏈還可支持更多的創新工具,如智慧型財產。
這些技術還可在補充性貨幣[Lie01]中使用。補充性貨幣的例子包括:社區貨幣,設計目的是優先推動當地企業;企業易貨協會,支持教育或老年護理之類的社會方案;限定用途的代幣,在組織機構內部使用,比如大型多人遊戲、客戶忠誠度計畫、線上社區。
一個合適的腳本擴展系統和一個資產可識的交易,能從良好審計的組件中,創建出有用的交易,比如將一個出價和報價合併為一個匯兌交易,能為資產交換以及無信任期權(FT13)這樣的複雜契約創建完全無信任的點對點市場。這些契約可能會有所幫助,例如減少比特幣本身的波動性。