支付信道和比特幣智能合約

信息來源:nChain


一個普遍的誤解是:相比於其他區塊鏈,比特幣對智能合約的支持相對薄弱。

比特幣腳本語言被設計爲儘可能地保持簡單原始。通過使用一組操作碼,該腳本語言儘可能地減小了攻擊面,從而實現最大的安全性,而這刻意設計的侷限性常常導致比特幣的真正潛力被低估。實際上,如果僅關注了比特幣腳本語言,就有可能會忽略比特幣協議中的許多其他有趣功能。要了解比特幣如何有利於智能合約,需要仔細觀察比特幣交易的框架和細節,以及比特幣交易在整個生態環境中所扮演的角色。

通過這麼做,很明顯有很多方法可以在比特幣上構建智能合約。我們可以大致概括爲:

  1. 智能加鎖腳本
  2. 智能使用sighash標誌,以及
  3. 支付信道

這篇文章致力於解釋支付信道如何讓比特幣成爲智能合約的友好平臺。

什麼是支付信道?

支付信道是一個參與者通過比特幣交易進行溝通的通信信道。所有通信的信息都加載在比特幣交易裏。

一些必須的知識

每個比特幣交易,均可含有多個輸入。對於每個輸入,都有一個稱爲序列號(sequence number)的參數。此數字表示包含此輸入的交易是否已最終化。如果序列號沒有取最大值(0xFFFFFFF),則驗證過程將查看鎖定時間字段(locktime,對整個交易有效),它指定交易起效的時間,即這個交易在鎖定時間到達之前無效。這對於指定一個未來的起效時間很有用。(在編寫本文時,鎖定時間最長可以定到大約9500年後。)在給定交易的鎖定時間來臨之前,這筆交易的一個具有更大序列號的新版本,可以使花費相同輸入但序列號較小的較早版本失效。

這一功能在最初的比特幣協議中就存在,而且是通常被稱爲中本聰支付信道(Nakamoto Payment Channel)的必要組成。

比特幣上的智能合約的通用構架

本構架中的核心要素被稱爲“出資交易” (funding transaction),這個交易一旦在鏈上確認,即會打開一個支付信道。

一個典型的出資交易長這樣:

在這裏插入圖片描述

與這一出資交易配對的是一個“退款交易”,它將在到達一個給定的鎖定時間之後,將初始資金退回給參與人:

在這裏插入圖片描述

當交易TxID_0提交到區塊鏈後,將打開出資交易中指定的合約的支付信道。參與人Alice和Bob之間的所有後續通信都通過比特幣交易進行。這些交易不僅與比特幣協議兼容,而且遵循支付信道所規定的規則,即在出資交易中建立的合約。驗證可以由任一參與者完成。簡單地說:

  1. Alice電子簽名一筆比特幣交易,發送給Bob。
  2. Bob檢查這筆交易是否符合比特幣協議和智能合約:
    a. 如果他樂意,他也簽上名,發回給Alice。這會爲這個支付信道創立一個檢查點(上一個達成共識的交易)。
    b. 如果他不樂意,他更新這筆交易的內容,發給Alice。
  3. 這個交易每更新一次,序列號會增加1或更大的數字。
  4. Alice和Bob重複這一過程,直到他們需要在區塊鏈上結算本次合約。
這怎麼就是一個智能合約了呢?

我們需要同意智能合約的定義。如果某個合同可以自動化、強制執行,並且不需要信任,它就會算智能。如果我們同意這個定義,那麼我們就來逐個驗證這些要求。

自動化

Alice和Bob的動作都可以完全自動化。創建出資交易時,可以將實現自動化的源代碼添加到OP_RETURN負載中。由於該交易是由雙方簽署的,這意味着自動化的實現由Alice和Bob共同驗證和批准。

強制執行

如果任何一方試圖作弊,另一方僅需簡單地發佈上一個達成共識的交易來索取交易輸出。鑑於比特幣交易的性質,作弊方獲得的收益不可能超過上次約定交易的預期。換句話說,執行的強制性繼承於這個成對交易的特性:出資交易和退款交易。

信任

支付通道不需要Alice和Bob彼此信任。一旦出資交易上鍊,他們將嘗試在支付信道中溝通並達成共識。如果沒能形成共識,他們總是可以回到上一個達成共識的交易。這是從強制執行特性中繼承來的。

這更好在哪?

我們認定這比其他智能合約平臺更好,因爲它提供了可擴充性、靈活性、隱私性,並實現成本效益。

可擴容性

一般來說,一個支付通道只需要在鏈上記錄兩個交易,即出資交易和結算交易。支付信道中的所有通信都是點對點的,礦工不需要驗證支付信道中交換的中間交易。這與其他區塊鏈不同,在某些其他區塊鏈中,每個智能合約都由網絡中的所有礦工執行。這種本地化的點對點模式提供了擴容的能力。

靈活性

本方法對於實施合約的編程語言、運行平臺,或者參與者需遵循的額外規則,統統沒有要求。唯一的要求是支付通道的所有參與者對出資交易的所有參數和規則達成一致。

隱私性

無需將合同明文放入出資交易。爲了增加隱私性,可以選擇在OP_RETURN負載中放置一個哈希值來代替原始信息。

成本效益

不需要向礦工支付費用,因爲他們不需要爲執行智能合約提供任何服務。

除以上列出的優點外,出資交易的模板還可以分享到市場上,供其它類似案例使用。例如,一個用於雙人象棋的支付信道出資交易模板,可以用到任何其他兩個玩家上。我們還可以建立一個用於礦池與礦工的出資交易,這個模板也可用到其他任何礦池上。設計此類模板的難點在於確保特定於支付信道的規則不會偏向任何參與者。

結論

我們提出的是一個關於比特幣智能合約的通用構架,這是許多人認爲比特幣所缺乏的一個特性。我們已經看到,支付信道可以提供這種功能並充分實現可擴容性、靈活性、隱私性和成本效益。它可以用在包括超小額支付(水電煤氣或內容串流隨用隨付)或、實時遊戲和電子競技、涉及頻繁支付的商業協議等許多案例中。現在,輪到你來發揮創造力了。

*本文中的比特幣指的是原始比特幣協議,即比特幣SV 所代表的協議。

聯繫人: Wei Zhang, 高級研究員, nChain, [email protected]


Bitcoin SV是唯一遵循着中本聰於2008年發表的白皮書《比特幣:點對點的電子現金系統》中協議的區塊鏈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章