如何在比特幣上打造高階智慧合約?

買賣虛擬貨幣

比特幣是目前為止世界上最流行的加密貨幣。無論是從流動性、鏈上交易量、還是其他任意指標看,比特幣的主導地位都不言而喻。

然而由於技術原因,開發人員常常更偏愛以太坊。因為以太坊在搭建各類應用和智慧合約方面更加靈活。多年來,有許多平臺都專注於開發高階智慧合約功能,但顯然以太坊才是這個特定領域的領頭人。

就在這些技術在以太坊上如火如荼地開發的時候,比特幣逐漸成為價值儲存工具。有人試圖透過相容以太坊的 RSK 側鏈與 TBTC  ERC-20 代幣等技術,縮小比特幣與它的差距。

但是另一種選擇是讓比特幣本身去升級指令碼功能。這裡就需要用到 Simplicity 語言。

什麼是 Simplicity ?

Simplicity 是一種全新的比特幣程式語言,在構建智慧合約方面比當今的比特幣網路更加地靈活。而這個低階語言是由 Blockstream 基礎架構的開發人員 Russell O’Connor 建立的。

Blockstream 的 CEO Adam Back 在近期關於這一話題的網路研討會上解釋道:“這是面向比特幣和包含 Elements、Liquid (側鏈)等網路的新一代指令碼語言。”

比特幣建立者中本聰在專案早期出於安全原因限制了比特幣指令碼,而 Simplicity 則是在保證安全性的同時讓比特幣指令碼更加靈活的一次嘗試。

雖然並非圖靈完備,但對那些想要搭建以太坊上現有的大部分同類應用程式的開發者來說,Simplicity 的表達能力已足夠豐富。

此外,Simplicity 的目標是讓開發者和使用者能夠更簡單地驗證智慧合約部署是否到位、安全以及成本如何。

“處於安全考慮,我們確實希望在執行程式前先進行分析,”致力於撰寫開源軟體文獻的技術寫手 David Harding 在 Noded Bitcoin 一期部落格中說道,“對比特幣來說,我們不允許圖靈完備,這樣我們就可以靜態分析程式。Simplicity 也不會達到圖靈完備,這樣你就可以靜態地分析程式。”

值得注意的是,上面提到的 TBTC 近期在以太坊主網釋出沒多久就被建立者關掉了,因為他們在支援 ERC-20 代幣的智慧合約裡發現了一個漏洞。這幾年來,以太坊智慧合約已經爆出了不少安全問題,比如 Parity 錢包的多籤漏洞以及臭名昭著的 DAO 事件。

對比特幣來說 Simplicity 意味著什麼?

為了探索 Simplicity 對比特幣的實質意義,LongHash 聯絡了 Paradigm  Research Partner 的 Dan Robinson ,他對 Simplicity 和以太坊都有研究。

Robinson 告訴我們:“ Simplicity 將會是比特幣指令碼功能的廣泛升級,而不是比特幣歷史上每次指令碼升級的集合。作為一個’功能完備’的指令集,未來基本不再需要對比特幣指令碼功能再次升級,當然為了提高一些功能的效率,有些升級還是需要的。”

可以從軟分叉的角度來看待這個問題。在過去,比特幣指令碼的升級是透過軟分叉實現的,這需要達成社羣共識才能在網路啟用。如果啟用了 Simplicity ,任何人都可以透過這個語言有效地實現一些常用的軟分叉變動,而無需網路節點更新比特幣共識規則。

這個方案有兩大作用:比特幣開發速度會比之前快,且對潛在的比特幣協議僵化( Ossification )問題也有一定的幫助作用。不過,最終比特幣協議僵化也是可取的,因為它有效反映了網路的基本規則,例如代幣政策等,這些是不會變的,所以能夠阻斷潛在的社會攻擊向量對這個賦予比特幣價值的首要因素產生影響。

“有趣的含義:如果今天的比特幣部署了 Simplicity 這個指令碼,那麼它將可以進行自我擴充套件,”Adam Back 在 Reddit 上寫道,“ Schnorr/Taproot 以及 SIGHASH_NOINPUT 等改進方案將可以直接實現。”

這裡 Back 例舉的就是軟分叉方案,是啟用 Simplicity 後,在不改變比特幣共識規則的前提下能夠做出的新增種類的一種。當問他對此怎麼看時,他澄清道:“我認為從技術上看,Taproot 擴充套件方案並不能如 Pieter Wuille 所說的那樣在 Simplicity 語言下實現——但 Schnorr 可以。”

就 Robinson 而言,如果 Simplicity 真的新增到了比特幣上,那麼首先奏效的會是開發者們現在正在研究的一些改進,比如 Eltoo 這類支付通道的設計、新的簽名演算法、可能還有一些隱私方面的提升方案。

Robinson 補充道:“我比較期望看到的是能開發出一種代幣標準,類似以太坊的 ERC-20 ,這樣就能見到一些新的應用,比如穩定幣、去中心化交易所以及槓桿交易等。”

Simplicity 在以太坊和比特幣上的區別

如果比特幣主網上新增了 Simplicity 語言,那麼顯然會有人下這樣的結論:我們沒有理由繼續使用以太坊了。但是,即使比特幣有了 Simplicity ,它和以太坊之間還是會存在明顯差異的。

Robinson 表示,“我之所以對 Simplicity 感興趣,並不是因為它能讓比特幣變得更’以太坊’,而是能讓比特幣變得更’比特幣’。”

儘管使用了 Simplicity ,但與以太坊以賬戶為基礎的設定相反,比特幣依舊會在 UTXO (未花費交易輸出)模式下執行。

Robinson 解釋道:“ UTXO 模型對於驗證人效率而言是絕佳的選擇,但它的權衡之處在於,它很難搭建出應用來滿足多人與合約互動的需求。”

此外,以太坊在開發平臺網路效應方面已經取得了很大的進步,至少在智慧合約方面如此。

“圍繞 Simplicity 的工具和開發者生態系統可能要很長時間才能成型,”Robinson 說,“ Simplicity 並不是一種人類可讀的語言,因此可能需要有人去開發一種語言對其進行編譯,然後再供普通的開發者使用。此外,開發與 UTXO 模式相容的智慧合約設計平臺也需要進行大量的研究。”

從開發角度看,以太坊的網路效應正解釋了為什麼 RSK (以太坊風格的比特幣側鏈)會將平臺設計成與以太坊虛擬機器相容的原因。

但最終比特幣使用者是否還需要一些類似於以太坊網路上的加密貨幣應用,目前還不得而知。

Robinson 表示,“比特幣區塊容量的溢位比以太坊要大,其 10 分鐘出一塊的速度可能也會將一些應用拒之門外。相應的,現在似乎並不清楚比特幣社羣是否真的希望在比特幣上搭建這些應用(而不是把比特幣作為簡單的支付通道或金庫),因為這樣的應用可能會造成區塊鏈擁堵,甚至是提高 51% 攻擊的收益率——要是引入了新的礦工挖礦價值的話。”

就 Robinson 的觀點而言,由於預言機問題尚存,很多比特幣使用者很早開始就對以太坊持批評態度。預言機問題在開發各類去中心化應用程式( DeFi )中已經成為人們越來越關注的問題。

Simplicity 什麼時候可以落實?

需要注意的是,距離 Simplicity 登陸比特幣主網可能還有很長一段路要走。但據預計,今年晚些時候或許能先看到這個指令碼語言新增到 Liquid 側鏈上。

這是壓上現實世界資產開始使用 Simplicity 語言的重要一步,但有些開發者,比如致力於比特幣隱私錢包的開發者,已經因為 Liquid 側鏈的聯邦模型而表現的興趣乏乏。

我們問 Robinson 對此怎麼看,他表示:“我不認為 Liquid 的聯邦本質會破壞交易。但這確實是會讓收穫大量開發者或使用者變得更艱難。”

根據比特幣核心長期貢獻者兼 Blockstream 聯合創始人 Greg Maxwell (也就是 Reddit 上的 nullc )的觀點,由於透過隔離見證( SegWit )升級引入了指令碼多版本系統,Simplicity 可以透過軟分叉的形式新增到比特幣上。當然,這是建立在能夠圍繞比特幣共識規則的更改建立起社羣共識的假設上。

在 Blockstream 工作的 Grubles (化名)告訴我們,“我不確定如何透過軟分叉來部署它,但它不會代替主網以及 Liquid 側鏈上的任何東西。它只會是一個能夠與現有地址型別(比如 Legacy、P2SH、Bech32 )一起使用的新的地址型別。”

Grubles 補充道,他認為以太坊已經損害了“智慧合約”的風評,因為有很多有問題的智慧合約已經在該平臺部署了很多年。因此,他們覺得一直關注著以太坊的比特幣使用者不太會願意看到智慧合約在 Liquid 上靈活運用。

“我認為這會是一個很有趣的議題,但還需要個幾年,”Back 補充道,“先例可以先在側鏈上驗證一下。”

免責聲明:

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

推荐阅读

;