基於 BTC 的智能合約是什麼?

基於 BTC 的智能合約是什麼?| 火星技術帖

免責聲明:本文旨在傳遞更多市場信息,不構成任何投資建議。文章僅代表作者觀點,不代表火星財經官方立場。

投資區塊鏈,猛戳:火星財經App下載

原文標題:基於 BTC 的智能合約是什麼?

基于 BTC 的智能合约是什么?| 火星技术帖

作者:Lumi Blockchain Wallet 團隊

本文由 Lumi Blockchain Wallet 團隊撰寫,詳細介紹了基於 BTC 的智能合約,具體內容包括其發展現狀及現存的改進方法,以下為原文譯文。

人們常常將智能合約和以太坊聯繫起來。的確,以太坊的成功主要便是建立在為各種 Dapp 開發和實施智能合約之上的。但並非所有人都意識到,其實在 BTC 上,我們也可以使用智能合約。

在瞭解基於 BTC 的智能合約之前,我們首先必須明白一個問題,那就是既然我們已經有了像以太坊這樣成熟的智能合約平臺,為什麼還要去使用 BTC 呢?

原因

拋開與生俱來的好奇心不說,相較於 ETH,使用 BTC 作為交換對象可能對於我們中的某些人來說已經是一種優勢了(幣種優勢)。 另一方面,ETH 作為一個智能合約平臺,其 Solidity 代碼中的錯誤很難被找到,再加之臭名昭著的 DAO 事件(2016 年 6 月 18 日,黑客利用 ETH 智能合約漏洞,成功盜取並轉移了超過 360 萬個 ETH),因此在很多方面 ETH 還有改進的空間。

而反觀 BTC,黑客們能發現漏洞並攻擊的可能性非常之小,因為 BTC 區塊鏈提供更高安全級別的操作環境。說到底,安全性才是最重要的事情,畢竟,誰會需要一個可以輕易被黑客入侵的多功能智能合約?

發展現狀 & 現存改進方案

BTC 交易中包含一種腳本語言,在你需要獲取一定數量 BTC 的時候,這種腳本語言可以定義所需的條件。當下執行大多數 BTC 交易時設置的條件是交易人能證明其擁有正確的私鑰,這也正是智能合約的基本工作方式。但是,它的作用遠不止於此,它其實可以輸入很多更為複雜的腳本。

例如,你可以設置一個時間條件,來限制他人需要在規定時間內才能獲取 BTC,或者需要多個簽名,又或者將它們組合起來以制定更加複雜的編程合同。

如果要向基於 BTC 的智能合約添加更加高級的功能,則將會涉及到其他各種改進措施。讓我們一起來看看哪些改進措施已經被使用了。

時間鎖

如果以常規方式進行 BTC 轉賬,接收者可以在收到 BTC 之後立即花掉這些數字資產。 但是如果你想讓接收者在某個日期之後才可以使用這些資產,那你要怎麼做?比如說,你想為你的下個假期攢一些錢,因此你決定將這些錢鎖起來,直到你旅行的第一天才能解鎖。在這個例子中,一個特定的智能合約可以發揮很大的作用。但是這要如何實現呢?2015 年,在 BTC 的某次軟分叉中,人們通過一個叫做 CheckLockTimeVerify 的操作碼引入了時間鎖的概念。這個操作碼允許轉賬資產受到時間鎖的限制。當存在時間鎖時,特定的資產就只能在某個特定時間之後才能被使用。

側鏈

側鏈能解決很多即存的問題,比如可擴展性和交易速度等問題,事實上側鏈也可以幫助來實現基於 BTC 的智能合約。 簡單來說,當你想執行側鏈上的 BTC 智能合約時,你需要把 BTC 轉到一個特定的地址上,這些 BTC 會被自動鎖定。而與此同時,你將會得到同等數量的側鏈通證,你可以使用這些通證來執行智能合約。操作完成後,你可以通過雙向綁定把這些通證發送回去,以此解鎖主網上的 BTC。

MimbleWimble 協議

神秘的 MimbleWimble 協議建議實現一個值為 0 的、不能被花費的輸出內核。 這樣你就不能對轉賬產生任何危害,因為你必須知道可花費輸出的數量。加上多重簽名之後,這個協議變得幾乎不可能被攻克。在早期探索 MimbleWimble 協議的時候,我們提到,不儲存轉賬輸入會使節點體積更小,從而更加的去中心化。這意味著更好的隱私性,因為你不能將轉賬的輸入和輸出對應起來。這在執行智能合約的時候極其重要。

Schnorr 簽名

在確認轉賬的時候使用多重簽名而不是單個簽名很顯然會安全很多。 使用 Schnorr 簽名替代當前在 BTC 上使用的簽名模型會減小區塊的體積,並解決兩個主要問題:轉賬積壓和高轉賬費。這也能擴展 BTC 智能合約的邊界,因為這可以讓多個權益相關者使用同一個通用簽名。想象一下,在一個智能合約執行過程中,每個參與者都有各自獨立的公鑰。這些公鑰彼此關聯,而每把公鑰也都被單獨創建的私人簽名保護著。

Schnorr 簽名的一個優勢是這些簽名體積更小,大多數計算其實在執行轉賬前就完成了,從而大大增加了實際轉賬的速度。

轉賬的體積也取決於簽名數據的大小。所以如果簽名數據更多,區塊裡能包含的轉賬就越少,轉賬速度也就更慢,費用更高。使用 ECDSA (BTC 公鑰與私鑰背後的密碼學算法)的時候,如果你要從幾個不同來源給朋友發送 1 個 BTC,每個來源都要有各自的簽名,合起來就會佔用很多寶貴的區塊空間。如果使用 Schnorr 算法,你就只需要一個通用簽名,只佔用很少空間。

結語

以上是關於 BTC 智能合約發展現狀的陳述,以及列舉了一些已經將智能合約帶入 BTC 生態環境中的應用實例。 基於 BTC 的智能合約總的來說是一個非常有趣,非常值得深入探索的領域。


分享到:


相關文章: