本文由 Lumi Blockchain Wallet 團隊撰寫,詳細介紹了基于BTC的智能合約,具體內(nèi)容包括其發(fā)展現(xiàn)狀及現(xiàn)存的改進方法。
以下為原文譯文:
人們常常將智能合約和以太坊聯(lián)系起來。的確,以太坊的成功主要便是建立在為各種Dapp開發(fā)和實施智能合約之上的。但并非所有人都意識到,其實在BTC上,我們也可以使用智能合約。
在了解基于BTC的智能合約之前,我們首先必須明白一個問題,那就是既然我們已經(jīng)有了像以太坊這樣成熟的智能合約平臺,為什么還要去使用BTC呢?
原因
拋開與生俱來的好奇心不說,相較于ETH,使用BTC作為交換對象可能對于我們中的某些人來說已經(jīng)是一種優(yōu)勢了(幣種優(yōu)勢)。另一方面,ETH作為一個智能合約平臺,其Solidity代碼中的錯誤很難被找到,再加之臭名昭著的DAO事件(2016年6月18日,黑客利用ETH智能合約漏洞,成功盜取并轉(zhuǎn)移了超過360萬個ETH),因此在很多方面ETH還有改進的空間。
而反觀BTC,黑客們能發(fā)現(xiàn)漏洞并攻擊的可能性非常之小,因為BTC區(qū)塊鏈提供更高安全級別的操作環(huán)境。說到底,安全性才是最重要的事情,畢竟,誰會需要一個可以輕易被黑客入侵的多功能智能合約?
發(fā)展現(xiàn)狀&現(xiàn)存改進方案
BTC交易中包含一種腳本語言,在你需要獲取一定數(shù)量BTC的時候,這種腳本語言可以定義所需的條件。當下執(zhí)行大多數(shù)BTC交易時設(shè)置的條件是交易人能證明其擁有正確的私鑰,這也正是智能合約的基本工作方式。但是,它的作用遠不止于此,它其實可以輸入很多更為復(fù)雜的腳本。
例如,你可以設(shè)置一個時間條件,來限制他人需要在規(guī)定時間內(nèi)才能獲取BTC,或者需要多個簽名,又或者將它們組合起來以制定更加復(fù)雜的編程合同。
如果要向基于BTC的智能合約添加更加高級的功能,則將會涉及到其他各種改進措施。讓我們一起來看看哪些改進措施已經(jīng)被使用了。
時間鎖
如果以常規(guī)方式進行BTC轉(zhuǎn)賬,接收者可以在收到BTC之后立即花掉這些數(shù)字資產(chǎn)。但是如果你想讓接收者在某個日期之后才可以使用這些資產(chǎn),那你要怎么做?比如說,你想為你的下個假期攢一些錢,因此你決定將這些錢鎖起來,直到你旅行的第一天才能解鎖。在這個例子中,一個特定的智能合約可以發(fā)揮很大的作用。但是這要如何實現(xiàn)呢?2015年,在BTC的某次軟分叉中,人們通過一個叫做CheckLockTimeVerify的操作碼引入了時間鎖的概念。這個操作碼允許轉(zhuǎn)賬資產(chǎn)受到時間鎖的限制。當存在時間鎖時,特定的資產(chǎn)就只能在某個特定時間之后才能被使用。
側(cè)鏈
側(cè)鏈能解決很多即存的問題,比如可擴展性和交易速度等問題,事實上側(cè)鏈也可以幫助來實現(xiàn)基于BTC的智能合約。
簡單來說,當你想執(zhí)行側(cè)鏈上的BTC智能合約時,你需要把BTC轉(zhuǎn)到一個特定的地址上,這些BTC會被自動鎖定。而與此同時,你將會得到同等數(shù)量的側(cè)鏈通證,你可以使用這些通證來執(zhí)行智能合約。操作完成后,你可以通過雙向綁定把這些通證發(fā)送回去,以此解鎖主網(wǎng)上的BTC。
MimbleWimble 協(xié)議
神秘的MimbleWimble協(xié)議建議實現(xiàn)一個值為0的、不能被花費的輸出內(nèi)核。這樣你就不能對轉(zhuǎn)賬產(chǎn)生任何危害,因為你必須知道可花費輸出的數(shù)量。加上多重簽名之后,這個協(xié)議變得幾乎不可能被攻克。在早期探索MimbleWimble協(xié)議的時候,我們提到,不儲存轉(zhuǎn)賬輸入會使節(jié)點體積更小,從而更加的去中心化。這意味著更好的隱私性,因為你不能將轉(zhuǎn)賬的輸入和輸出對應(yīng)起來。這在執(zhí)行智能合約的時候極其重要。
Schnorr 簽名
在確認轉(zhuǎn)賬的時候使用多重簽名而不是單個簽名很顯然會安全很多。使用Schnorr簽名替代當前在BTC上使用的簽名模型會減小區(qū)塊的體積,并解決兩個主要問題:轉(zhuǎn)賬積壓和高轉(zhuǎn)賬費。這也能擴展BTC智能合約的邊界,因為這可以讓多個權(quán)益相關(guān)者使用同一個通用簽名。想象一下,在一個智能合約執(zhí)行過程中,每個參與者都有各自獨立的公鑰。這些公鑰彼此關(guān)聯(lián),而每把公鑰也都被單獨創(chuàng)建的私人簽名保護著。
Schnorr簽名的一個優(yōu)勢是這些簽名體積更小,大多數(shù)計算其實在執(zhí)行轉(zhuǎn)賬前就完成了,從而大大增加了實際轉(zhuǎn)賬的速度。
轉(zhuǎn)賬的體積也取決于簽名數(shù)據(jù)的大小。所以如果簽名數(shù)據(jù)更多,區(qū)塊里能包含的轉(zhuǎn)賬就越少,轉(zhuǎn)賬速度也就更慢,費用更高。使用ECDSA(BTC公鑰與私鑰背后的密碼學算法)的時候,如果你要從幾個不同來源給朋友發(fā)送1個BTC,每個來源都要有各自的簽名,合起來就會占用很多寶貴的區(qū)塊空間。如果使用Schnorr算法,你就只需要一個通用簽名,只占用很少空間。
結(jié)語
以上是關(guān)于BTC智能合約發(fā)展現(xiàn)狀的陳述,以及列舉了一些已經(jīng)將智能合約帶入BTC生態(tài)環(huán)境中的應(yīng)用實例?;贐TC的智能合約總的來說是一個非常有趣,非常值得深入探索的領(lǐng)域。





