撰稿:Echo, Infinitas

指導:洪蜀寧

“我們期待下一個週期區塊鏈指數型增長來自比特幣的大規模應用。”

隨著Web3 Labs 與Waterdrip Capital 共同發起的Satoshi Lab 實驗室正式在香港成立,比特幣生態系統的討論熱度在整個加密市場中逐漸攀升。在比特幣腳本上利用客戶端驗證方案建立智慧合約,同時兼容具備無限可擴展性的閃電網路進行通道交易,可能成為在同時保證「安全性,去中心化,可擴展性」 三角上的區塊鏈大規模應用方案。

本文將針對比特幣生態一些基礎層面概念進行科普講解。從阻礙大規模應用的“區塊鏈不可能三角”,到克服“不可能三角的比特幣“閃電網絡”,到目前對比特幣腳本的解決方案及UTXO 模型原理。

是什麼阻礙了區塊鏈的大規模應用?

以太坊創始人Vitalik Buterin 和巴比特創始人長鈹都提出過,“區塊鏈網路無法同時實現安全性、去中心化和可擴展性”,即“區塊鏈不可能三角”。 「不可能三角」的難題,長久以來阻礙了區塊鏈的大規模應用。

比特幣生態必讀指南(1):解鎖萬億市場的力量

在保障安全性的基礎上,以太坊過去十年將重心放在發展去中心化,並在底層公鏈的基礎設施層不斷創新,以拓展以太坊公鏈的可擴展性。為了實現這個目標,以太坊十年間也迭代出各種空氣演算法,分片,Rollup 等技術。

但對於可擴展性難題,從以太坊及其Layer2的嘗試來看,似乎只要仍在解決方案局限在區塊鏈上,效能就會存在上限的。即便是我們目前可見性能最強的區塊鏈,仍難突破TPS (每秒交易量) 上限,離百萬級TPS 的大規模商業應用的要求,和全球工業級實現數億級TPS 的目標仍有巨大差距。對於主流公鏈,不論是以太坊還是比特幣,都面臨一個瓶頸——“如何解決可擴展性?”

閃電網路是如何運作的?

閃電網路利用鏈下計算的方式,即“支付通道(Payment Channel)”,徹底解決了“不可能三角”的可擴展性問題——只要建足夠多的通道,就可以跑任意多的並發交易

閃電網路原理

  • 以銀行體係作比喻,若A,B 兩人開戶轉帳。當兩個人在相同銀行時,在同一個銀行內部清算。而當A,B 兩個人不在同一個銀行時,需要透過央行執行跨行結算操作。
  • 閃電網路模仿了銀行清算的方式:用戶A 和B 透過閃電網路在兩者之間開通閃電通道。通道開啟時,A 和B 利用通道直接在閃電網路進行清算,而不需要在比特幣區塊鏈上結算。只有當通道關閉時,A 和B 才需要跨越閃電網絡,在比特幣區塊鏈上結算。

比特幣生態必讀指南(1):解鎖萬億市場的力量

閃電頻道操作流程

  1. 繳交準備金:類比傳統場景下銀行開戶需要提前繳交準備金,開通閃電網路通道也需要繳納比特幣準備金。
  2. 鏈下交易記帳:透過閃電網路每筆交易逐筆記賬,每一筆記帳都要簽訂懲罰協議。
  3. 鏈上結算紀錄:關閉閃電通道後,把歷史交易資料一次封裝打包結算,最後送到比特幣區塊鏈上。

閃電網路如何避免鏈上欺詐

如果在通道交易過程中,A 執行詐欺行為- 提前關閉通道結算比特幣。那麼通道關閉時,比特幣鏈上會立刻產生一筆詐騙交易。基於比特幣鏈的開放性,B 可以及時觀察到,並用提前簽訂的懲罰協議對A 進行懲罰。懲罰內容就是沒收A 所有準備。

閃電網路的大規模應用瓶頸

理論上閃電網路實現了無窮大的可擴展性,克服了區塊鏈不可能三角。但阻礙閃電網路實現大規模應用最關鍵的問題是:閃電網路使用和比特幣相同的腳本,而比特幣鏈上沒有智慧合約,只有簡單的腳本,無法承載複雜應用。即比特幣鍊是圖靈不完備的,圖靈完備的意味著理論上可以解決任何計算性的問題。使用圖靈完備的腳本語言,可以在邏輯上做到和其他程式語言相容,並在理論上能夠實現任何其他語言所能實現的邏輯,以及最大限度的複製現實的商業邏輯。比特幣區塊鏈上沒有智能合約,更不用說基於智慧合約搭建應用程式。所以閃電網路需要克服的最大問題就是「如何在比特幣上實現智能合約」。

現有提升比特幣區塊鏈「功能」的方案

  1. 側鏈(Side Chain)
  • 側鏈是指做一條具有智能合約功能的鏈,複製它與比特幣主鏈雙向掛鉤,從而使比特幣資產在主鏈與側鏈間無縫遷移,從而實現智能合約,但目前沒有足夠去中心化的雙向掛鉤技術。側鏈對於主鏈的複製和資產遷移需要第三方中心化服務商,目前只有泛中心化方案。如“WBTC”,由BitGo 發行在以太坊網路上的一種ERC-20 代幣,作為衍生資產與BTC 1:1 錨定。側鏈方案因為第三方發行的中心化問題始終未得到比特幣核心開發者社群支持。
  1. 彩色幣(Colored Coins)
  • 2012年比特幣協會主席Meni Rosenfeld 發表了《彩色幣概述》論文,文中介紹了一種利用比特幣“可替代性”的機制,透過為某些硬幣“著色”,將特定的代幣與其他代幣分開,從而創建適合這些硬幣的應用程式。具體方式是利用比特幣腳本裡OP_RETURN 指令,在後面增加80 個字節的任意字符,在80 個字節裡按照指定格式設計字符串,通過人為指定字符串含義標記“彩色幣”,並且做更複雜的智能合約。但80 個位元組的空間太小,無法實現複雜功能。
  • 後續「彩色幣」方案也推出了新技術。例如「Ordinals」銘刻技術,透過利用比特幣區塊內3 M 的「隔離見證」空間,用在其中塞入小圖片,發行NFT。例如BRC-20,用一串程式碼表達比80 個位元組更豐富的內容。但這些彩色幣會產生額外的嚴重問題——佔用了「隔離見證」空間,原先用來存放比特幣轉帳交易簽名的空間,擠佔了「隔離見證」空間會導致了比特幣上可執行的交易數量減少,使比特幣效能下降。彩色幣方案同樣遭到比特幣核心開發者強烈抵制,原因是彩色幣污染了原生比特幣,另外人為指定的形式仍然需要中心化的第三方進行伺服器解析。
  1. 客戶端驗證(Client-Validation)

2016 年比特幣核心開發者Peter Todd 發表論文提出了客戶端驗證範式,透過模擬傳統的合約簽約方式保證只有雙方知道合約內容的隱私性前提,無需任何第三方參與,實現完全去中心化。同時,在交易執行時,採用由交易發起方提供必要的完整交易歷史數據,另一方自行驗證的方式,來防止詐欺問題的產生。既不存在中心化困擾,又是鏈下驗證不受性能限制的特徵,使其目前被多數人認為是解決比特幣區塊鏈圖靈完備性不足的「最優」方案。

傳統合約簽署vs區塊鏈智能合約簽署

  • 傳統合約簽署:A 和B 之間有一筆交易,先簽署一份合同,雙方確認合約內容後簽字,簽字時合約不可篡改。未來合約執行過程的任何交易都是A 和B 兩個人的交易,不需要第三方介入。
  • 區塊鏈智能合約簽署:交易過程公佈給全網,所有礦工進行執行與驗證。整個執行過程無隱私可言,且由於需要公佈到全網達成共識,因此性能受到限制。

客戶端驗證是否無懈可擊?

看到這裡,似乎會有人產生疑問,去中心化的比特幣區塊鏈本身解決了傳統商業中的安全問題,但隨著客戶端驗證的引入,解決方案又回到鏈下,即便其解決了詐欺問題,那麼該如何有效防止雙花問題產生?

引入“一次性密封”

由於客戶端驗證本身並不包含雙花防止機制,我們不得不需要引入第三方輔助來解決這個問題。為了實現這一目標,我們將客戶端驗證中需要驗證的每個合約的每個狀態,與特定比特幣的未使用交易輸出(UTXO)綁定。由於UTXO僅存在兩種形態,因此花費」與「未花費」。而一旦要變更驗證合約的狀態,就必須花費綁定的UTXO(任意金額均可),讓花費它的交易得到區塊鏈的確認。此外,花費它的比特幣交易還必須提供狀態轉換的內容的證明(作用類似於哈希值)。簡單來說,可以將被綁定的UTXO視為這個狀態「信封」的封蠟一一想要打開信封,就必須開啟封蠟。

UTXO模型的補充說明

有別於以太坊的帳戶模型,未花費的交易輸出(UTXO)是從一個地址發送到另一個地址但尚未被接收方贖回的加密貨幣總和,以便在後續交易中將資金發送給其他人。

  • 例如,如果愛麗絲向鮑伯發送1 個比特幣,那麼只要鮑伯沒有花掉從愛麗絲那裡收到的BTC,他就擁有UTXO。一旦Bob 花了1 個BTC,UTXO 的生命週期就結束了。

比特幣生態必讀指南(1):解鎖萬億市場的力量

  • 假設Bob的錢包只參與過一筆交易,其中Bob從Alice那裡收到了1 BTC,交易驗證者就知道Bob的UTXO餘額是1 BTC。如果Bob 將1 BTC 發送給Carol,他的UTXO 立刻變成0 BTC。如果Bob 然後嘗試在第二筆傳出交易中雙花他的幣,驗證者將發現他的UTXO 餘額不足以用作第二筆交易的輸入,並且誠實的驗證者將不會傳播或確認他的雙花交易。

下一個指數成長:比特幣生態全面爆發

在比特幣的演進過程中,客戶端驗證的設計精妙地規避了側鍊和彩色幣方案的中心化問題,並引入了一次性密封機制,使其進一步提升了安全性。此刻,比特幣生態正在迎來一系列全新協議的誕生,其中,RGB協議不僅沿用了上述理念,還提出與閃電網絡兼容,為無限可擴展性打下基石。儘管RGB協議與閃電網路的兼容性尚未完美,但我們對未來充滿信心,相信幫助協議不斷優化的基礎設施將突破長期以來的「區塊鏈不可能三角」局限。

我們更有理由期待下一個週期區塊鏈指數型成長來自比特幣生態的爆發所帶動的區塊鏈大規模採用。相信比特幣將突破原有的單一價值存儲,彰顯其貨幣屬性的同時,不斷透過多樣化的解決方案為比特幣生態嫁接更多應用,促進生態可擴展和永續發展,繼續為區塊鏈世界帶來無限可能。