比特幣的創新首次允許建立一種無需領導,不受審查的數字貨幣,它不存在單一的失敗點。然而,某些類別的使用者在使用這種系統時會面臨著挑戰。對於加密貨幣交易者所處在的高速世界,交易費用、結算時間的差異、公開廣播交易以及鏈重組的風險,都可能在其交易活動中產生重大成本。
然而,比特幣支付或合約並不一定要在比特幣區塊鏈上進行。LiquiD網路可以滿足交易者對高速交易、隱私結算的需求,此外它還可以享受很多其他技術創新,以換取在不同的安全模式下工作。
此外,Liquid網路支援發行側鏈原生資產,透過多資產交易實現資產的原子交易。網路上的所有資產(Liquid比特幣(簡稱L-BTC)和已發行的資產)享有相同的一分鐘區塊時間,以及關於資產型別和交易金額的加密保密性。Liquid支援比特幣指令碼及在其之上構建的協議(例如閃電網路),以及支援契約(covenants)、金鑰樹(keytree)等高階功能的指令碼擴充套件。
作為一個側鏈,Liquid透過密碼學錨定的方式來實現比特幣的進出,進入Liquid網路的比特幣被稱為Liquid 比特幣或L-BTC,而Liquid賬本及託管的比特幣,則由一個聯邦控制,只要該聯邦的成員有超過2/3是誠實的,便能保持這些資產的安全。
為何採用聯邦的側鏈方式
為了允許快速創新,Adam Back等人在2014年提出了側鏈的概念,側鏈是一個獨立的區塊鏈,它支援錨定機制,允許在比特幣區塊鏈和側鏈之間自動傳輸比特幣。
側鏈白皮書中的願景是一種無需信任的錨定,在這個錨定中,向側鏈傳輸或從側鏈傳輸,都是透過密碼學強制執行的。由於側鏈的關鍵在於其有效性規則獨立於比特幣的有效性規則,這就帶來了一個問題:
比特幣網路如何驗證來自側鏈的傳輸,是根據側鏈規則發起的?
而這個問題,至今有三種解決方案:
一種選擇是擴充套件比特幣,使其具有驗證側鏈區塊頭,而不是整個區塊的能力,並信任有效區塊頭的存在,意味著關聯的區塊,根據任何側鏈規則可能都是有效的。這是由Drivechain專案提倡的方法,並被稱為SPV錨定。
雖然這一策略將實現獨立側鏈規則的目標,而不需要對比特幣協議進行復雜的修改,但目前還不清楚其激勵結構在現實世界中的表現。特別是,它允許一個足夠強大和資金充足的側鏈礦工子集竊取所有的錨定幣。
此外,這種方式還要求對比特幣協議進行非平凡的更改,這對比特幣未來的部署是不利的。
2、另一種方法是使用零知識證明STARK等密碼學工具來擴充套件比特幣驗證任意計算的能力,使比特幣驗證者以比跟蹤側鏈本身所需資源少得多的資源消耗來檢查側鏈規則。
不幸的是,雖然在過去的五年裡,密碼學工具已經有了巨大的進步,但它們根本不足以使這個選項可行,對於未來幾年密碼學技術的發展,這仍然是值得期待的。
與之相關的是,與SPV錨定一樣,這一選擇也需要對比特幣協議進行修改,而在撰寫本文時,還沒有出現一種被廣泛接受的提議。
3、最後,側鏈白皮書的作者在附錄A中,提出了一個聯邦錨定機制,其中側鏈幣由一個聯盟(統稱為“強聯邦”)託管。這些聯盟工作人員負責驗證側鏈規則,並透過在比特幣網路上籤署交易來處理向比特幣的轉移。
這個選擇不需要更改比特幣協議,因為它的錨定是透過普通的多重簽名交易強制執行的,當然,這個方案確實需要一個聯盟存在,並且對於該系統,至少要求2/3的參與者會誠實地開展工作。
在權衡利弊之後, Liquid側鏈網路就採用了第三種方式,即透過聯邦錨定的機制來進行開發。
保密交易(CT)和防彈證明(Bulletproofs)
與比特幣網路不同,Liquid交易的任何輸入或輸出通常沒有明確的金額,相反,這些金額被Pedersen commitments所取代,這種密碼學承諾具有同態的特殊性質,這意味著它們可以被加在一起產生新的 commitment。
這意味著,雖然驗證者沒有顯示有關潛在金額的資訊,但是驗證者可以將輸入承諾和輸出承諾相加,並檢查結果是否相等,從而確保沒有發生通貨膨脹。同時,由於沒有可見的資料量,使用者的隱私性大大提高,其隱藏了每筆交易的總傳輸量,使得找零輸出與普通輸出不可區分,從而極大地增強了CoinJoin的隱私保證。
這個功能,便被稱為保密交易(CT),它是由Gregory Maxwell為Liquid 開發的一種技術,此後保密交易(CT)被很多其他區塊鏈方案所採用(例如門羅幣和MimbleWimble)。
為了允許使用者提供其幣屬性的密碼學證明,Blockstream還幫助開發了Bulletproofs(防彈證明),這是一種通用的零知識證明系統,其針對Pedersen commitments進行了最佳化。
這使得這些屬效能夠被證明,同時保留基礎金額的完美私密性。
資產與發行
Liquid是一個資產發行平臺,這意味著該區塊鏈支援任何參與者建立新的資產類別,並且系統中的任何參與者都可以無限制地(重)發行資產。 透過將保密交易技術部署到Liquid平臺,網路就能夠隱藏每筆交易輸入和輸出的資產類別及金額。透過這種方式支援多資產交易,可以實現新的用例,例如資產的原子交易,同時透過確保此類交易與普通交易不可區分來保護隱私。
Liquid允許對資產進行多重簽名重發行,從而實現更安全的資產管理。例如,對於任何給定的發行,Liquid中代幣化法幣錨定資產可能需要5個簽名中的3個,這降低了未經授權增加代幣供應的可能性。
(注:關於以上部分的內容,原文白皮書中有更多的詳細描述。)
工具
Liquid區塊鏈是一個資產發行平臺,然而,Liquid的許多功能和能力並不是來自區塊鏈本身,而是來自於它上面的工具。在這節當中,我們會介紹Blockstream已經開發並正在繼續開發的一些工具。
1、準備金證明(PoR)
準備金證明(PoR)是由Blockstream開發的一種工具,它可用於解決交易櫃檯、OTC交易商和交易所客戶的一個痛點需求,他們要求確保索賠資金確實存在,並且在索賠人的監管範圍內。PoR是一個開源工具,它建立了一個部分簽名比特幣交易(PSBT),這是一種由Blockstream參與開發的比特幣簽名者的互操作性格式。
它將PSBT傳遞給簽名者(例如硬體錢包),然後將其傳遞給驗證證明的請求者。這種PSBT與普通的PSBT不同,實際上它並不是一種有效的比特幣交易(即使在簽名之後),這意味著即使目的地不受簽名者控制,資金也不會有移動或被盜的風險。
PoR的近期擴充套件將直接支援Liquid(其中包括保密金額和資產型別)。證明人無需披露特定UTXO的金額或資產型別,但仍需證明對每種型別資金總額的授權。使用相同的工具,交易所可以證明他們的鏈上資產,包括BTC、L-BTC和任何其他在Liquid鏈上發行的資產,而無需新增任何額外的工具。
未來的工作將包括使用零知識證明來增強PoR的隱私,這將允許這些無效的“交易”隱藏它們引用的輸入。然而,目前的零知識證明技術還不足以有效地實現這一願景。
關於這個專案,你可以在https://github.com/ElementsProject/reserves 找到。
2、保險庫( Vaults)
Liquid對比特幣指令碼的擴充套件包括一個新的操作碼CHECKSIGFROMSTACK,這使支出政策需要對某些任意資料進行數字簽名,而不僅僅是支出交易。此操作碼還可用於對花費一些幣的交易實施任意限制,這種能力稱為契約(covenants)。Russell O’Connor 透過使用契約(covenants)得以實施了一項名為Möser-Eyal-Sirer的保險庫(Vault)計劃。
保險庫(Vault)是不能直接花費的交易輸出,但必須先傳送到一個“暫存區”,該輸出型別限制幣在沒有明顯時間延遲的情況下再次移動。在此延遲期間,幣可能會退還至保險庫,從而有效地取消了原始交易。這樣,即使在金鑰被盜的情況下,原始所有者也因此能夠無限期地將幣保留在保險庫中。
最初的保險庫結構是為Liquid的技術前體Elements Alpha建立的,其中包括比特幣“隔離見證”(Segwit)的原始版本。這使得保險庫的效率特別低下,因為它需要在指令碼直譯器堆疊上構建一筆完整的交易,並將其限制為非CT交易。然而,Liquid使用了部署在比特幣上的隔離見證(Segwit)的現代版本,並且這些限制已不再適用。
這使得保險庫(Vault)的部署效率更高,甚至對於使用CT的交易也是實用的。
3、Liquid 證券
Liquid核心軟體和共識層側重於建立代幣所有權的歷史,而不是特定代幣的含義或資產所有權賦予所有者的能力。
換句話說,表示股票份額的代幣不需要特殊的鏈上邏輯來強制執行約束。相反,這些約束可以由發行人或監管機構直接執行。這既是隱私又是可擴充套件的勝利,鏈上沒有額外的識別邏輯。
為了縮小客戶需求與低層鏈邏輯之間的差距,Liquid Securities軟體套件建立在Liquid Core的堅實基礎上。Liquid Securities套件支援功能豐富、合法合規的證券代幣發行和管理。該套件透過不使用複雜的法律邏輯來阻礙基礎層,而是將Liquid區塊鏈用作純粹的結算網路。相反,較高層邏輯在最上面執行。
該套件的功能包括:
向持有人發行、重新發行和分發證券代幣;
投資者管理、投資者身份認證合規;
非託管投資者錢包,聯合簽署人執行所需的證券邏輯;
向證券代幣持有人支付股息;
4、閃電網路
閃電網路是一個第二層(layer-2)支付網路,有很多來自世界各地的貢獻者在為比特幣開發這個layer-2支付網路。它透過將支付連結到由兩個支付通道組成的路徑上來工作,這兩個支付通道是原子式更新的,以確保支付不會在路徑途中丟失。這些付款通道透過讓雙方共同建立未釋出到區塊鏈的交易來工作。
取而代之的是,該交易被重複替換以反映通道中餘額的變化,只有當事方同意關閉通道或一方下線時,任何內容才會釋出到比特幣區塊鏈。
雖然閃電網路幾乎可以在無需改變的情況下適應 Liquid ,但其設計假定所有參與者都可以看到所有金額和資產類別。而Blockstream正在多個方面資助對閃電網路的研究:
首先,基本的閃電網路支援,在這種支援下,Liquid上的閃電網路使用者必須顯示其資產型別和金額,以允許普通閃電支付路由邏輯工作。
然後,可以將閃電網路擴充套件到跨鏈支付,允許比特幣和Liquid L-BTC之間的傳輸幾乎是瞬間的,繞過了錨定機制。
儘管跨鏈閃電網路支付因不同區塊鏈資產之間的價格波動問題而備受批評,但這些問題並不適用於BTC和L-BTC,因為錨定幾乎是恆定在1:1附近的。
與此同時,透過一些額外的密碼學技術來建立閃電網路通道,在該通道中不會顯示所有資產和金額。這項研究還將應用於其他區塊鏈系統,這些系統可能希望在保密資產之上支援閃電網路。
最後,Blockstream率先推出了一個名為“無指令碼指令碼”(scriptless scripts)的研究專案,該專案將允許閃電網路通道的區塊鏈交易看起來像普通支出。 無指令碼指令碼允許將付款通道連結到路徑中,從而使各個通道中的參與者(端點上的參與者除外)也無法看到哪些支付正在透過哪些路徑進行路由。
這是一個令人興奮的研究領域,有望改善比特幣和Liquid的隱私和可擴充套件性。
關於未來的工作
Liquid作為比特幣的一個側鏈以及Bitcoin Core的分支,其研發一直伴隨著比特幣本身的研究而發展。像隔離見證(segregated witness)和相對時間鎖(relative timelocks )這些新想法,都是在Liquid的開源對等專案Elements Alpha中使用,之後才被比特幣應用,而更具破壞性的功能(例如保密交易CT)則刺激了整個比特幣生態系統的研究。
展望未來,Blockstream希望保持這種合作創新的節奏,既可以透過在比特幣社羣內開發可轉化為Liquid的的想法,也可以透過推進區塊鏈研究的邊界,為更廣泛的生態系統帶來長期利益。
eltoo:使用SIGHASH_NOINPUT建立可能繫結到通道任何先前狀態的更新交易。然後,即使在釋出過期狀態的情況下,使用者也可以簡單地釋出最新狀態,以使區塊鏈在通道的實際狀態上加快速度。這意味著使用者只需要將最近的交易儲存在一個支付通道中,而不必擔心保密問題。
就像最初的閃電網路一樣,eltoo可以透過區塊鏈連線支付通道。雖然這會導致資產價格波動性較高的區塊鏈出現複雜情況,但在 Liquid L-BTC和比特幣的情況下,這兩種資產仍然是一一對應的,因此不會出現這種複雜情況。這使得閃電網路可以充當Liquid的無縫上線和下線機制。
Taproot和無指令碼指令碼:Taproot部分是由Blockstream的研究團隊開發的,它是對比特幣的一個擬議擴充套件,其承諾在一筆交易中的所有參與者協同工作的情況下,透過隱藏所有指令碼策略來提高系統的隱私性和可擴充套件性。
它是透過兩種技術的結合來實現的。首先,Taproot中的交易輸出是簡單的橢圓曲線金鑰,這些輸出可以使用與該金鑰對應的數字簽名來使用。使用Liquid peg-ins使用的pay-to-contract技術,這一金鑰還可以提交額外的指令碼語義,這樣,除非這些額外的語義實際上是必要的,否則就不會洩露。
其次,使用由Blockstream研究團隊共同發明的MuSig Schnorr多重簽名和無指令碼指令碼技術,可以將大多數公共指令碼語義編碼到公鑰本身中,從而消除了在常見情況下顯示指令碼承諾的需要。
特別是,MuSig的擴充套件允許建立門限簽名(或者實際上,由多個可接受簽名集定義的任何策略),而無指令碼指令碼允許這些門限簽名額外地揭示秘密資料,例如閃電網路HTLC使用的雜湊原像或零知識或有支付(Zero-Knowledge Contingent Payments)中使用的加密金鑰。
Simplicity:為了提高智慧合約語言的表達能力,Blockstream正在開發一種新的語言,稱為Simplicity。與按順序執行語句的傳統命令式語言不同,Simplicity是一種函式式語言,它允許使用宣告式方法指定智慧合約所需的條件。
表達智慧合約語言帶來了額外的程式設計錯誤風險。更糟糕的是,錯誤一旦提交到區塊鏈就無法糾正。為了解決這個風險,Simplicity具有形式化的語義,它允許智慧合約開發人員使用形式化的方法來消除程式中的錯誤。
Bulletproofs和通用零知識證明(ZKP):與Taproot一樣,Simplicity透過隱藏未使用的指令碼語義,提供了比比特幣指令碼更好的隱私。然而,原則上,使用一種稱為零知識證明的密碼學原語可以做得更好。這樣的證明可以用來隱藏整個指令碼,而僅顯示該指令碼。
儘管目前用於證明零知識的任意指令碼的技術效率太低,無法完全替換顯式指令碼,但是有一些研究方向有望使我們接近這個目標。特別是,防彈證明(Bulletproofs)提供了非常小的任意計算證明,並且可以非常有效地使用Pedersen承諾中編碼的秘密輸入,例如Liquid輸出。另外,STARK提供了一種替代的證明結構,儘管生成的證明要大得多,但其構造和驗證的速度比要比防彈證明(Bulletproofs)更快。
這些通用的零知識證明系統要求程式以一種稱為電路的特殊形式進行編碼,透過給輸入和輸出賦值並檢查它們是否一致來“執行”。這個程式設計模型在概念上接近於Simplicity,儘管用於開發和分析程式電路的工具充其量還不成熟,但Blockstream希望其對Simplicity工具的研究將直接改善這種情況。
此外,STARK系統使用電路的特定編碼與Simplicity有更多相似之處,可被利用來在兩個系統之間進行有效對映。
譯者簡評:很多人認為比特幣並沒有創新,這其實是一種誤解,比特幣的創新並不是主要發生在主鏈,而是透過側鏈和Layer 2的形式進行,Blockstream作為一家比特幣協議開發公司,儘管其開發Liquid和閃電網路會存在私心,但關於“保持主鏈穩定,而透過側鏈擴充套件比特幣”的思路,也被越來越多的人所接受和認可。
然而,截至目前,Liquid側鏈網路和閃電網路中鎖定的比特幣錨定資產並不是很多,甚至已被以太坊網路上的BTC錨定幣所超越,也因此,關於Liquid和閃電網路的可行性,還有待於市場的進一步驗證。