進階理解智慧合約——實現方式

買賣虛擬貨幣

2015年7月30日,以太坊第一個區塊被挖出,以太坊正式登上歷史舞臺。隨之而來,還成就了智慧合約的大熱門。我們可以從谷歌趨勢可看到,智慧合約和以太坊的相關性。

智慧合約這個概念是1995年由尼克·薩博提出來的。那時候還沒有比特幣,沒有區塊鏈,更沒有以太坊。

現在主流的認知都把智慧合約和以太坊(或類以太坊專案)繫結在一起。以太坊是一個智慧合約平臺,任何人都可以在以太坊上釋出定義了某些合同屬性的程式碼,並委託給以太坊網路執行。

就像馬雲開發了淘寶平臺,人們可以在淘寶上開網店一樣。經營網店並不需要店家自己部署伺服器,網店的後臺完全是執行在淘寶上的。

目前影響力較大的智慧合約例項基本上都是執行在以太坊上,最廣泛的幾個是發代幣、DeFi、去中心化的Du 博。

對於智慧合約的應用方向,現在主流的資訊對智慧合約更多的共識是將傳統的合同進行智慧合約化改造。傳統的合同是透過社會習俗和法律來定義參與方的權利和義務,習俗和法律是合同背後的約束力來源。智慧合約化改造是期望於程式碼來承擔約束力來源。

這也是為什麼智慧合約會被以太坊,以及類以太坊專案繫結在一起的原因。因為以太坊提供了有約束能力的程式碼執行平臺。以太坊被設計成了一個世界計算機,可以讓程式的執行不依賴於特定的中心化伺服器。

比特幣的愛好者對以太坊在智慧合約上大放光彩非常不服,也想了大量的辦法讓比特幣網路承接智慧合約生意。

比特幣系統內建了指令碼引擎來完成賬本的可程式設計性,以太坊使用的是虛擬機器。後者是圖靈完備的,可以用來執行非常複雜的程式。加上比特幣的UTXO設計,以太坊是賬戶設計。前者只能設計無狀態的合約。這代表著,比特幣上的合約程式碼是不能利用自己生成的中間狀態。比特幣的指令碼程式都是一次性的,只對這個交易有效,不能被其他交易引用。比特幣的指令碼程式碼也不能去讀取資料,你無法編寫一個程式命令比特幣的某筆交易獲取特定的引數。只有極少數例外,比如區塊CSV指令,允許比特幣指令碼依賴區塊高度來做出反應。對應的,以太坊的虛擬機器,都沒有這些阻礙。

但比特幣網路依然可以承接特定的智慧合約。P2SH交易格式允許在指令碼里嵌入程式碼,就可以用來實現特定的應用場景。Core開發者在搞默克爾化抽象語法樹(MAST)就有望將比特幣指令碼構建更復雜的程式碼。

BCH已經實現了OP_CHECKSIGVERIFY這樣的操作碼,指令碼可以驗證外部資料(Oracle),可以用來構建去中心化仲裁的資產交易。如Bitcoin.com釋出的local.bitcoin.com就是一個去中心化的資產交易平臺。這個操作碼還可以用來構建去中心化的菠菜。

但無論是使用以太坊的智慧合約平臺,還是使用比特幣指令碼引擎來實現智慧合約,都是將傳統的合同智慧合約化改造的思路。這種思路顯然是手裡有一把錘子,看什麼都是釘子。現在有了智慧合約平臺,就像是有一把錘子,要把傳統的合同全拿這把錘子錘一下。可事實上,傳統的合同,在絕大多數情況下,是不需要被改造的。

這種思路是對智慧合約的一種矮化。

就如上一篇文章《初步清晰理解智慧合約》所描述的比特幣挖礦,就是一個非常完美的智慧合約。挖礦是全新地創造了一個商業正規化,一個智慧化的商業正規化。

這是智慧合約發展的一個思路,創造全新的商業正規化。

任何一條鏈,無論是PoW,還是PoS,其實都是一個類似的商業正規化的案例。PoW鏈裡,礦工交付工作量證明,幫使用者打包交易,系統發放Coinbase獎勵。PoS鏈裡,節點交付幣齡證明,幫使用者驗證交易,系統發放鑄幣獎勵。

去中心化的交易所,參與買賣的交易雙方是點對點的,雙方在成交之前都是自己控制自己的資產。交易時,不存在第三方介入。去中心化的交易所也是一個無須授權,自執行,公開透明的智慧合約。

類似的Openbazaar,是一個去中心化的淘寶,參與者也是不需要註冊,系統自執行的商業平臺。需要注意的是,Openbazaar並不會記錄所有的商業交易。

或許,設計一個區塊鏈專案,首先想明白如何設計出一個商業邏輯自洽的智慧合約。

尼克·薩博在提出智慧合約這個概念時,還沒有誕生比特幣,更沒有以太坊。把智慧合約限制在某個智慧合約平臺上的自動化執行的程式,是對智慧合約這個概念的矮化。迴歸智慧合約的初心,降低商業成本,降低違約風險,擴充套件商業範圍。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;