除了加密貨幣,智能合約可能是區(qū)塊鏈中被談?wù)撟疃嗟母拍睢?/p>
許多文章都在大肆宣揚(yáng)智能合約的好處,聲稱這項(xiàng)技術(shù)將顛覆從保險(xiǎn)到供應(yīng)鏈再到醫(yī)療保健的所有行業(yè)。
但是,智能合約真的像它們所呈現(xiàn)的那樣改變游戲規(guī)則嗎?
毫無(wú)疑問(wèn),智能合約會(huì)很有用,但重要的是要將現(xiàn)實(shí)與炒作區(qū)分開(kāi)來(lái)。
為了了解智能合約的應(yīng)用和局限性,我做了一些深入的研究。以下是我的發(fā)現(xiàn):雖然智能合約技術(shù)有很多潛力,但就目前而言,它的成功實(shí)施受到技術(shù)和法律因素的限制。
理解智能合約
智能合約是基于區(qū)塊鏈的程序,一旦相關(guān)各方滿足了特定的標(biāo)準(zhǔn),就會(huì)執(zhí)行協(xié)議。智能合約使用條件編程來(lái)執(zhí)行一組預(yù)定義的操作。
最接近的類比是流行的If This Then That (IFTTT)軟件,一旦觸發(fā)器被激活,它就會(huì)自動(dòng)執(zhí)行操作。
在將智能合約部署到區(qū)塊鏈上之前,開(kāi)發(fā)人員編寫(xiě)指導(dǎo)智能合約運(yùn)行的“邏輯”。因此,智能合約可以獨(dú)立工作,不需要外部控制。
智能合約固有的自主性是它們?nèi)绱宋说牟糠衷?。就像區(qū)塊鏈一樣,智能合約是“無(wú)需信任的”,這意味著它們不受第三方控制。也同時(shí)意味著該程序可以在沒(méi)有受信任的中介的情況下執(zhí)行合約中的條款。
合約是如何運(yùn)作的?
要理解智能合約在現(xiàn)實(shí)生活中的運(yùn)作方式,就必須理解合約的工作方式。
合約有三個(gè)要素:要約、承諾和交易。
假設(shè)你和房東簽了一份合約,以每周25美元的價(jià)格租下一套公寓,租期為兩周。合約的三個(gè)部分是:
要約
承諾以每周25美元或50美元的價(jià)格租下一套公寓,為期兩周。要約明確了雙方的權(quán)利和責(zé)任,并進(jìn)一步表明了雙方之間的價(jià)值交換。
驗(yàn)收
同意對(duì)方提供的條款。在這種情況下,房東同意把公寓租給你兩周,你也同意按要價(jià)每周25美元支付租金。
交易
雙方履行其義務(wù)的行為。你付25美元,房東就會(huì)給你公寓的鑰匙。這可以看作是對(duì)合約的履行。
如果你付了錢(qián),但房東拒絕給你鑰匙,那就違反了合約。同樣,如果你在交了第一周的租金后拒絕支付第二周的租金,你就違反了合約。
根據(jù)合約法,如果另一方未能履行其應(yīng)履行的義務(wù),任何一方都可以向法院提起訴訟。合約允許那些可能相信或不相信自己的人做生意,因?yàn)橛幸粋€(gè)可信的中介(法院)來(lái)執(zhí)行協(xié)議。
那么,智能合約是如何適應(yīng)這種情況的呢?
作為一種無(wú)需信任的機(jī)制,智能合約不需要中介來(lái)執(zhí)行協(xié)議。相反,代碼是這里的主要仲裁者。一旦每個(gè)部分滿足指定的條件,代碼或“業(yè)務(wù)邏輯”自動(dòng)處理協(xié)議中包含的條款。
讓我們以計(jì)算機(jī)科學(xué)家Nick Szabo使用的自動(dòng)售貨機(jī)為例,他在1994年首次解釋了智能合約的概念:
你向自動(dòng)販賣機(jī)投幣,就可以得到一杯飲料。你不需要接線員給你一杯飲料;一旦你付了錢(qián)并選擇了一種零食,這種機(jī)制就會(huì)釋放它。
那么,智能合約真的只是數(shù)字自動(dòng)售貨機(jī)嗎?是的。但它們顯然可以做的事情比處理支付更多,比如為去中心化金融(DeFi)系統(tǒng)提供動(dòng)力,交換NFT,等等。
智能合約為何流行?
由于智能合約在區(qū)塊鏈上運(yùn)行,它們提供了基于區(qū)塊鏈的系統(tǒng)的好處。例如,可以通過(guò)區(qū)塊鏈監(jiān)控合約各方之間的交易,從而提高透明度。
智能合約是不可變的,這意味著它們不能被修改。一旦合約在區(qū)塊鏈上運(yùn)行,任何一方(甚至智能合約的創(chuàng)造者)都不能重寫(xiě)規(guī)則。
簽訂合約后試圖更改協(xié)議條款的事情,對(duì)于托管在區(qū)塊鏈分類帳上的智能合約來(lái)說(shuō)是不可能的,這使得它對(duì)管理交易很有用。
因?yàn)橹悄芎霞s依賴于簡(jiǎn)單的邏輯(如果x,那么y),它們可以更快地處理交易。智能合約的一個(gè)常見(jiàn)應(yīng)用是保險(xiǎn),支持者認(rèn)為智能合約可以簡(jiǎn)化理賠流程,并鼓勵(lì)更快的支付。
有了智能合約,人們將不需要昂貴的律師來(lái)建立協(xié)議——至少在理論上是這樣。這意味著減少了文書(shū)工作和花費(fèi)在簽訂合約前談判的時(shí)間。
如果智能合約如此有用,為什么它們會(huì)有問(wèn)題?這正是我們要找出的。
智能合約有哪些問(wèn)題?
依賴外部數(shù)據(jù)源
智能合約需要信息才能運(yùn)行。
但是,區(qū)塊鏈無(wú)法與外界溝通,這給智能合約帶來(lái)了問(wèn)題。
為了解決這個(gè)問(wèn)題,智能合約開(kāi)發(fā)者依賴于“預(yù)言機(jī)”——應(yīng)用程序從現(xiàn)實(shí)世界中提取數(shù)據(jù),并在鏈上提供給智能合約使用。
然而,對(duì)預(yù)言機(jī)的依賴凸顯了智能合約的另一個(gè)局限性:
我們必須相信預(yù)言機(jī)能夠提供準(zhǔn)確的數(shù)據(jù),否則智能合約將會(huì)產(chǎn)生錯(cuò)誤。智能合約在軟件開(kāi)發(fā)中容易出現(xiàn)“垃圾輸入,垃圾輸出”(GIGO)問(wèn)題。
我們可以通過(guò)使用來(lái)自不同預(yù)言機(jī)的信息來(lái)解決這個(gè)問(wèn)題,但這只會(huì)增加交易成本,因?yàn)轭A(yù)言機(jī)必須付費(fèi)。此外,使用來(lái)自不同預(yù)言機(jī)的信息會(huì)破壞共識(shí)。
請(qǐng)記住,系統(tǒng)中的所有節(jié)點(diǎn)必須就合約的狀態(tài)達(dá)成一致,否則交易將被視為無(wú)效。當(dāng)節(jié)點(diǎn)從預(yù)言機(jī)獲得不同的信息時(shí),可能無(wú)法達(dá)成共識(shí)。
不變性
智能合約的一個(gè)問(wèn)題在于它們的不變性。在區(qū)塊鏈中,“不可變性”意味著協(xié)議中的規(guī)則一旦部署在區(qū)塊鏈上,就不能被單方面更改。
雖然這有助于檢查可能希望操縱合約信息的不良參與者,但它使智能合約更難使用。
這種嚴(yán)格的系統(tǒng)也使得修復(fù)代碼中的錯(cuò)誤變得困難。如果一個(gè)bug碰巧影響了智能合約的功能,開(kāi)發(fā)人員可能無(wú)法實(shí)施任何解決方案。
保密的信息
每個(gè)人都可以訪問(wèn)區(qū)塊鏈上的所有信息,因?yàn)楣?jié)點(diǎn)保存了區(qū)塊鏈歷史的副本。同樣,這有助于提高透明度和防止欺詐,因?yàn)槊總€(gè)人都可以看到數(shù)據(jù)。
但并不是每個(gè)人都希望保密的合約信息公開(kāi)。這就是為什么法律規(guī)定律師不能透露當(dāng)事人之間訴訟的細(xì)節(jié)。
可以把它看作是在網(wǎng)頁(yè)的HTML中隱藏信息。用戶不會(huì)在他們的瀏覽器窗口中看到這些信息,但是一個(gè)簡(jiǎn)單的CTRL + U(查看源代碼)函數(shù)就會(huì)顯示出來(lái)。
智能合約也是如此——任何人都可以通過(guò)調(diào)整區(qū)塊鏈軟件來(lái)顯示合約的完整狀態(tài)。就這樣,所有的私人信息都進(jìn)入了公共領(lǐng)域。
對(duì)于想要完全隱私的企業(yè)和個(gè)人來(lái)說(shuō),缺乏保密性是使用智能合約的一大缺點(diǎn)。
安全漏洞
像任何程序一樣,智能合約經(jīng)常會(huì)產(chǎn)生錯(cuò)誤。然而,智能合約和常規(guī)程序的不同之處在于,智能合約代碼中的錯(cuò)誤可能會(huì)造成昂貴的影響。
如今,智能合約為DeFi行業(yè)提供動(dòng)力,該行業(yè)的價(jià)值估計(jì)超過(guò)1000億美元。智能合約功能上的一個(gè)簡(jiǎn)單漏洞,就意味著可能會(huì)有數(shù)百萬(wàn)人因惡意利用此類錯(cuò)誤而蒙受損失。
我們不止一次看到這種情況。就在上周,允許用戶在Solana和以太坊區(qū)塊鏈之間發(fā)送和接收加密貨幣的跨鏈橋Wormhole被黑客損失了3.2億美元。
根據(jù)Chainlysis的這次故障,黑客利用了橋梁智能合約中的一個(gè)漏洞,讓他們可以抽干Solana網(wǎng)絡(luò)中的12萬(wàn)個(gè)WETH。這是一系列針對(duì)DeFi平臺(tái)的攻擊中最新的一起,這些平臺(tái)的運(yùn)作都依賴智能合約。
這并不意味著智能合約的安全性不會(huì)隨著時(shí)間的推移而改善。然而,在真正的硅谷式“fail fast and early”模式中,大多數(shù)項(xiàng)目主要關(guān)注的是營(yíng)銷和獲取用戶,而不是解決系統(tǒng)中的問(wèn)題。
簡(jiǎn)單的操作
當(dāng)人們聽(tīng)到“智能合約”時(shí),他們會(huì)聯(lián)想到無(wú)數(shù)可能的應(yīng)用程序。
代碼不能涵蓋且不能寫(xiě)入二進(jìn)制代碼的合約中的模棱兩可的條款。這是智能合約的另一個(gè)問(wèn)題。
當(dāng)然,強(qiáng)制執(zhí)行特定產(chǎn)品的支付和轉(zhuǎn)賬的智能合約很容易編程。當(dāng)你試圖加入“貨物必須完好無(wú)損地到達(dá)”或“貨物必須在合理的時(shí)間內(nèi)到達(dá)”這樣的條款時(shí),問(wèn)題就開(kāi)始了。
如何確定“良好狀態(tài)”的含義或計(jì)算“合理的時(shí)間”并將其寫(xiě)入代碼?
簡(jiǎn)而言之,在需要對(duì)協(xié)議中的條款進(jìn)行解釋的情況下,智能合約幾乎毫無(wú)用處。然而,它們可以用于更簡(jiǎn)單的應(yīng)用程序,如加密貨幣交易,其中的數(shù)據(jù)(價(jià)格數(shù)據(jù)、簽名、地址等)在區(qū)塊鏈上,并且術(shù)語(yǔ)很容易被理解。
智能合約需要更智能
盡管智能合約存在局限性,但它們也有自己的用途。但是,在區(qū)塊鏈夢(mèng)想者的夢(mèng)幻般的愿望成為現(xiàn)實(shí)之前,他們需要大規(guī)模的發(fā)展。
開(kāi)發(fā)人員必須努力解決智能合約的最大問(wèn)題。例如,一個(gè)允許修改智能合約的協(xié)議——前提是各方都同意——將會(huì)改善這項(xiàng)技術(shù)的應(yīng)用。
也許隨著時(shí)間的推移,智能合約會(huì)變得真正智能,并實(shí)現(xiàn)專家確定的所有可能性。就目前而言,智能合約要改變世界還有很長(zhǎng)的路要走。