智能合約是什么?如何執(zhí)行?智能合約運(yùn)作原理、優(yōu)缺點(diǎn)及應(yīng)用
如果您是加密貨幣愛(ài)好者,那么一定會(huì)聽(tīng)說(shuō)過(guò)智能合約。智能合約是Web3 產(chǎn)業(yè)的基本構(gòu)件,也是DeFi、NFT、游戲和其他在Web3 中日益突出的應(yīng)用的基礎(chǔ)。
那么,智能合約究竟是什么?它是如何運(yùn)作的?對(duì)區(qū)塊鏈來(lái)說(shuō)意味著什么呢?在本篇文章中,我們將介紹智能合約的工作原理并詳細(xì)介紹其應(yīng)用和優(yōu)缺點(diǎn)。
智能合約是什么?
智能合約是在區(qū)塊鏈網(wǎng)路上簽署并儲(chǔ)存的數(shù)位協(xié)議,當(dāng)滿足合約條款和條件(T&C) 時(shí)自動(dòng)執(zhí)行。條款和條件是用區(qū)塊鏈特定的程式語(yǔ)言(例如Solidity)編寫(xiě)的。
另一方面,智能合約也可被視為區(qū)塊鏈應(yīng)用程式,使各方能夠執(zhí)行交易中各自的部分。由智能合約支援的應(yīng)用程式通常被稱為去中心化應(yīng)用程式(DApp)。
在智能合約的使用中,買方和賣方之間的協(xié)定條款直接寫(xiě)入代碼,其中包含的代碼和協(xié)定存在于分散的區(qū)塊鏈網(wǎng)路中,代碼控制執(zhí)行,交易是可跟蹤和不可逆的。透過(guò)在去中心化的區(qū)塊鏈而非中心化的伺服器上運(yùn)行,智能合約允許多方以準(zhǔn)確、及時(shí)和防篡改的方式達(dá)成共享結(jié)果。
此外,由于智能合約不受中央機(jī)構(gòu)控制,也不容易受到惡意實(shí)體的單點(diǎn)攻擊,因此,當(dāng)應(yīng)用于多方數(shù)位協(xié)定時(shí),智能合約應(yīng)用可以降低交易方風(fēng)險(xiǎn)、提高效率、降低成本,并為流程提供新的透明度。
智能合約的歷史
Nick Szabo 是一位出生于美國(guó)的電腦科學(xué)家,他于1998 年開(kāi)發(fā)了一種名為「Bit Gold」的虛擬貨幣,比比特幣問(wèn)世早了十年,并于1994 年提出了能夠以計(jì)算機(jī)代碼形式記錄合同的想法。當(dāng)滿足某些條件時(shí),該合同將自動(dòng)啟動(dòng)。這就是智能合約的雛形。
這個(gè)想法可能會(huì)消除對(duì)受信任的第三方公司(如銀行)的需求。因?yàn)樵谶M(jìn)行交易時(shí),您不再需要受信任的第三方;相反,合約(或交易)是在完全由計(jì)算機(jī)控制的可信網(wǎng)路上自動(dòng)執(zhí)行的。
Szabo 多年來(lái)一直在研究這個(gè)想法,甚至寫(xiě)了一本名為「智能合約:數(shù)位自由市場(chǎng)的構(gòu)建模組」的書(shū)。
2009年,比特幣首次引入了區(qū)塊鏈技術(shù)的使用。 2015年,以太坊由一位名叫Vitalik Buterin 的年輕人創(chuàng)立,并推出了第一批有效的智能合約。
智能合約與區(qū)塊鏈
支援智能合約的區(qū)塊鏈?zhǔn)归_(kāi)發(fā)人員能夠在區(qū)塊鏈本地提供的去中心化共識(shí)基礎(chǔ)上編寫(xiě)任意應(yīng)用邏輯。
這就是為什么區(qū)塊鏈、智能合約和應(yīng)用程式可以看作是一種等級(jí)關(guān)系:應(yīng)用程式(包括代幣)由智能合約(或多個(gè)連接的智能合約)的程式碼創(chuàng)建。智能合約中定義的操作則由底層區(qū)塊鏈網(wǎng)路執(zhí)行和儲(chǔ)存。
??所有區(qū)塊鏈都有智慧合約嗎?
值得一提的是,并非所有區(qū)塊鏈都能運(yùn)行智能合約。包括Arbitrum、Avalanche、Base、BNB Chain 和以太坊在內(nèi)的區(qū)塊鏈和二層網(wǎng)路都是智能合約相容區(qū)塊鏈的例子,而像基礎(chǔ)比特幣區(qū)塊鏈這樣的區(qū)塊鏈則不具備本地智能合約功能。這些區(qū)塊鏈之間的主要區(qū)別在于底層區(qū)塊鏈執(zhí)行和儲(chǔ)存任意邏輯的能力。
智能合約的運(yùn)作方式
與其他合約一樣,智能合約是兩方之間具有約束力的合約。它使用程式碼來(lái)利用區(qū)塊鏈技術(shù)的優(yōu)勢(shì),從而釋放出更大的功效、開(kāi)放性和保密性。
智能合約的執(zhí)行由相對(duì)簡(jiǎn)單的「if/when…then…」語(yǔ)句控制,這些語(yǔ)句以區(qū)塊鏈上的程式碼編寫(xiě)。當(dāng)滿足并驗(yàn)證了預(yù)定條件時(shí),計(jì)算機(jī)網(wǎng)路將執(zhí)行操作。這些行動(dòng)可能包括向有關(guān)方面發(fā)放資金、注冊(cè)車輛、發(fā)送通知或開(kāi)罰單。然后,當(dāng)交易完成時(shí),區(qū)塊鏈將更新。這意味著交易無(wú)法更改,只有被授予許可權(quán)的各方才能看到結(jié)果。
在智能合約中,可以根據(jù)需要進(jìn)行盡可能多的規(guī)定,以使參與者滿意地完成任務(wù)。要建立條款,參與者必須確定交易及其數(shù)據(jù)如何在區(qū)塊鏈上表示,就「if/when…then…」管理這些交易的規(guī)則,探索所有可能的例外情況,并定義解決爭(zhēng)議的框架。
然后,智能合約可以由開(kāi)發(fā)人員進(jìn)行程式設(shè)計(jì),盡管越來(lái)越多的組織將區(qū)塊鏈用于業(yè)務(wù)、提供范本、Web 介面和其他在線工具來(lái)簡(jiǎn)化智能合約的結(jié)構(gòu)。
智能合約的優(yōu)點(diǎn):為何智能合約很重要
大多數(shù)傳統(tǒng)數(shù)位協(xié)議都涉及互不相識(shí)的雙方,這就帶來(lái)了任何一方不履行承諾的風(fēng)險(xiǎn)。為了解決交易對(duì)手風(fēng)險(xiǎn),數(shù)位協(xié)議通常由較大的中央機(jī)構(gòu)(如銀行)托管和執(zhí)行,這些機(jī)構(gòu)可以強(qiáng)制執(zhí)行合約條款。這些數(shù)位合約可以直接在用戶和大公司之間簽訂,也可以由大公司充當(dāng)兩個(gè)用戶之間的可信中介。雖然這種動(dòng)態(tài)使許多原本不會(huì)承擔(dān)這種風(fēng)險(xiǎn)的合約得以存在,但也造成了大型集中化機(jī)構(gòu)對(duì)合約施加不對(duì)稱影響的情況。
而智能合約透過(guò)提供多項(xiàng)優(yōu)勢(shì)改進(jìn)了數(shù)位協(xié)定。
首先,在安全性方面,在去中心化的區(qū)塊鏈基礎(chǔ)設(shè)施上運(yùn)行合約,可確保不存在可攻擊的中心故障點(diǎn),不存在可賄賂的中心化中介,也不存在任何一方或中心管理員可用于篡改結(jié)果的機(jī)制。
其次,由去中心化節(jié)點(diǎn)網(wǎng)路對(duì)合約邏輯進(jìn)行冗余處理和驗(yàn)證,可提供強(qiáng)有力的防篡改、正常運(yùn)行時(shí)間和正確性保證,確保合約根據(jù)其條款按時(shí)執(zhí)行。
使用去中心化網(wǎng)路來(lái)托管和執(zhí)行協(xié)議條款,也降低了營(yíng)利性中間商利用其特權(quán)地位尋租和攫取價(jià)值的能力。
最后,智能合約流程的自動(dòng)化,意味著任何一方都無(wú)需等待手動(dòng)輸入資料、交易對(duì)手履行義務(wù)或中間人處理交易,這大大提高了效率。
綜上所述,智能合約無(wú)疑為世界提供了一種更安全、更可驗(yàn)證的方式,用于創(chuàng)建涉及價(jià)值和數(shù)據(jù)傳輸?shù)纳鐣?huì)協(xié)議。
智能合約的缺點(diǎn)
然而,區(qū)塊鏈和智能合約的發(fā)展仍處于初級(jí)階段,開(kāi)發(fā)人員在建立可驗(yàn)證網(wǎng)路的愿景時(shí)必須面對(duì)各種限制。
智能合約開(kāi)發(fā)的一個(gè)標(biāo)志性限制是其不可更改性:智能合約程式碼一旦創(chuàng)建,就無(wú)法更改。這既是一個(gè)強(qiáng)大的功能,也是一個(gè)根本性的限制。只要區(qū)塊鏈運(yùn)行在其上,不可更改的應(yīng)用程式就會(huì)自動(dòng)運(yùn)行,但它們不能因新特性、功能、錯(cuò)誤修復(fù)或擴(kuò)展而升級(jí)。
這凸顯了智能合約的另一個(gè)限制和風(fēng)險(xiǎn)——智能合約在部署時(shí)如果存在未被發(fā)現(xiàn)的錯(cuò)誤或漏洞,就無(wú)法及時(shí)更改(有時(shí)甚至根本無(wú)法更改),這使得智能合約審計(jì)成為智能合約開(kāi)發(fā)流程的核心部分。
許多開(kāi)發(fā)人員用來(lái)應(yīng)對(duì)這一限制的一種變通方法是創(chuàng)建可升級(jí)的智能合約,即使用代理合約指向一個(gè)新、更新的智能合約。這并不會(huì)破壞智能合約的不變性,而是釋放了將使用者引導(dǎo)至新的升級(jí)版智能合約的能力。
智能合約應(yīng)用范例
由于智能合約執(zhí)行協(xié)議,因此它們可以用于許多不同的目的。最簡(jiǎn)單的用途之一是確保兩方之間發(fā)生交易,例如貨物的購(gòu)買和交付。例如,需要原材料的制造商可以使用智慧合約設(shè)定付款,供應(yīng)商可以設(shè)定出貨。然后,根據(jù)兩家企業(yè)之間的協(xié)議,資金可以在發(fā)貨或交貨時(shí)自動(dòng)轉(zhuǎn)移給供應(yīng)商。房地產(chǎn)交易、股票和大宗商品交易、借貸、公司治理、供應(yīng)鏈、爭(zhēng)議解決和醫(yī)療保健只是智慧合約理論上可用的幾個(gè)例子。
最后,讓我們來(lái)看看智能合約使用的幾個(gè)案例:
1.權(quán)限管理(代幣)
代幣智能合約用于創(chuàng)建、追蹤和分配區(qū)塊鏈網(wǎng)路上存在的特定數(shù)位代幣的所有權(quán)。代幣合約將功能編程到其發(fā)行的代幣中,為持有者提供諸如DApp 中的效用/保險(xiǎn)(效用代幣)、協(xié)議中的投票權(quán)重(治理代幣)、公司股權(quán)(安全代幣) 、獨(dú)特的所有權(quán)主張等功能。
例如,F(xiàn)IL 代幣用于支付Filecoin 的去中心化儲(chǔ)存服務(wù),COMP 代幣允許用戶參與Compound 協(xié)議的治理。
2.金融商品(DeFi)
去中心化金融(DeFi)由使用智能合約重新創(chuàng)建傳統(tǒng)金融產(chǎn)品和服務(wù)(例如貨幣市場(chǎng)、期權(quán)、穩(wěn)定幣、交易所和資產(chǎn)管理)的應(yīng)用程式組成,并透過(guò)無(wú)需許可的可組合性組合多種服務(wù)來(lái)創(chuàng)造新的金融原語(yǔ)。智能合約可以托管用戶的資金,并根據(jù)預(yù)先定義的條件在用戶之間分配資金。
例如,BarnBridge 使用智能合約為希望固定資產(chǎn)暴露于價(jià)格對(duì)(例如45% 代幣A、55% 代幣B)的用戶實(shí)現(xiàn)自動(dòng)化交易,Aave 使用智能合約以無(wú)需許可和去中心化的方式促進(jìn)借貸。
3. 游戲和NFT
基于區(qū)塊鏈的游戲使用智慧合約來(lái)防篡改地執(zhí)行游戲內(nèi)的操作。
一個(gè)例子是PoolTogether ,這是一款無(wú)損儲(chǔ)蓄游戲,用戶將資金放入共享池中,然后將其導(dǎo)入貨幣市場(chǎng)并賺取利息。在預(yù)定的時(shí)間段后,游戲結(jié)束,獲勝者將隨機(jī)獲得所有應(yīng)計(jì)利息,而其他人可以提取原始存款。同樣,限量版NFT 可以擁有公平的分配模型,而RPG 可以使用隨機(jī)性來(lái)支持不可預(yù)測(cè)的戰(zhàn)利品掉落,有助于確保所有用戶都有公平的機(jī)會(huì)獲得稀有的數(shù)位資產(chǎn)。
4.保險(xiǎn)
參數(shù)保險(xiǎn)是一種保險(xiǎn),其賠償直接與特定的預(yù)定義事件掛鉤。智慧合約提供防篡改基礎(chǔ)設(shè)施,用于建立基于資料輸入觸發(fā)的參數(shù)保險(xiǎn)合約。例如,可以使用智慧合約建立農(nóng)作物保險(xiǎn),使用者根據(jù)特定的天氣資訊(例如某個(gè)地理位置的季節(jié)性降雨量)購(gòu)買保單。保單結(jié)束時(shí),如果特定地點(diǎn)的降雨量超過(guò)原來(lái)規(guī)定的金額,智能合約將自動(dòng)發(fā)放賠償。最終用戶不僅可以以更少的管理費(fèi)用及時(shí)收到付款,而且保險(xiǎn)的供應(yīng)方可以透過(guò)智慧合約向公眾開(kāi)放。智能合約允許用戶將資金存入池中,然后根據(jù)池參與者對(duì)池的貢獻(xiàn)百分比將收取的保費(fèi)分配給池參與者。
關(guān)于智能合約的常見(jiàn)問(wèn)題解答
Q:智能合約是什么?
A:智能合約是寫(xiě)入?yún)^(qū)塊鏈的程式碼,用于執(zhí)行雙方在鏈外同意的操作。透過(guò)自動(dòng)化這些操作,各方之間不再需要中介或信任。
Q:智能合約的范例
A:智能合約最簡(jiǎn)單的例子是消費(fèi)者和企業(yè)之間進(jìn)行銷售的交易。智慧合約可以執(zhí)行客戶的付款并啟動(dòng)企業(yè)的出貨流程。
Q:智能合約的意義是什么?
A:智能合約的目的是進(jìn)一步消除對(duì)可信任第三方在互不信任的各方之間進(jìn)行操作的需要。
Q:智能合約的四個(gè)主要部分是什么?
A:這取決于區(qū)塊鏈及其程式設(shè)計(jì)方式。一般來(lái)說(shuō),智能合約有狀態(tài)變數(shù)(資料)、函數(shù)(可以做什么)、事件(訊息進(jìn)出)和修飾符(針對(duì)特定使用者的特殊規(guī)則)。有些可能還有額外的元素,這取決于它們的設(shè)計(jì)目的。
總結(jié)
智能合約根據(jù)預(yù)先定義的協(xié)定自動(dòng)執(zhí)行協(xié)議。它們能夠在自動(dòng)化和防篡改的環(huán)境中執(zhí)行此功能,這使它們成為開(kāi)發(fā)中最具創(chuàng)新性和前景的技術(shù)之一。透過(guò)對(duì)區(qū)塊鏈相容的電腦程式碼的信任取代對(duì)中心化機(jī)構(gòu)(例如銀行、律師和財(cái)務(wù)顧問(wèn))的信任,智慧合約可能會(huì)迎來(lái)一個(gè)自動(dòng)化的「無(wú)信任系統(tǒng)」時(shí)代。
你可能感興趣的文章
-
了解 DeFi 中智能合約可升級(jí)性的利弊
可升級(jí)合約為協(xié)議開(kāi)發(fā)提供了強(qiáng)大的工具,但它們要求用戶信任人類系統(tǒng),而不是僅僅依賴不可變的代碼,在可升級(jí)性和安全性之間取得適當(dāng)?shù)钠胶馊匀皇且粋€(gè)核心挑戰(zhàn),用戶必須保持…
2024-07-09 -
智能合約是什么意思?有什么優(yōu)點(diǎn)與缺點(diǎn)要注意?
智能合約(Smart Contracts)是區(qū)塊鏈中制定合約所使用的特殊協(xié)議,這是一種自動(dòng)執(zhí)行的合約,將雙方的協(xié)議條款寫(xiě)入代碼中,智能合約也可以把Dapp(去中心化應(yīng)用程式)放到區(qū)塊鏈…
2024-07-07 -
小白快速理解智能合約
當(dāng)小白學(xué)習(xí)區(qū)塊鏈的時(shí)候,有一個(gè)叫“智能合約”的詞會(huì)反復(fù)出現(xiàn),可什么是“智能合約”呢?這篇就為大家簡(jiǎn)單介紹一下…
2024-07-07 -
詳細(xì)介紹智能合約最早在什么時(shí)候被提出的?
智能合約是區(qū)塊鏈技術(shù)的核心組成部分,具有數(shù)據(jù)透明、不可篡改、永久運(yùn)行等,通過(guò)智能合約,可以把合同或協(xié)議條款以代碼的形式電子化地放到區(qū)塊鏈網(wǎng)絡(luò)上,實(shí)現(xiàn)自動(dòng)執(zhí)行,從…
2024-06-28 -
質(zhì)押挖礦智能合約是什么意思?
質(zhì)押挖礦智能合約是什么意思?質(zhì)押挖礦智能合約是指一種在區(qū)塊鏈上運(yùn)行的智能合約,用于實(shí)現(xiàn)質(zhì)押和挖礦的功能,下文將為大家詳細(xì)介紹,一起來(lái)參考學(xué)習(xí)一下吧…
2024-06-16 -
智能合約平臺(tái)的價(jià)值爭(zhēng)奪戰(zhàn)
人們認(rèn)為加密資產(chǎn)沒(méi)有基本價(jià)值,不能像傳統(tǒng)投資那樣進(jìn)行分析,Grayscale 認(rèn)為并非如此,像以太坊和Solana這樣的智能合約平臺(tái)就是從自身網(wǎng)絡(luò)上的經(jīng)濟(jì)活動(dòng)中產(chǎn)生費(fèi)用收益的,投…
2024-06-12 -
TON未來(lái)怎么樣?從技術(shù)特點(diǎn)解讀TON幣投資價(jià)值
從技術(shù)特點(diǎn)解讀TON幣投資價(jià)值!隨著幣安上線TON生態(tài)最大的游戲Notcoin以及由全流通token經(jīng)濟(jì)模型所引發(fā)的巨量財(cái)富效應(yīng),TON在短時(shí)間內(nèi)即取得了極大的關(guān)注,短期內(nèi)TON幣有可…
2024-06-07 -
重入攻擊是什么?一文解讀智能合約中的重入攻擊
重入攻擊詳解!以太坊智能合約開(kāi)發(fā)中,重入攻擊是一種常見(jiàn)的 安全漏洞么,這種攻擊通常發(fā)生在合約的遞歸調(diào)用中,攻擊者通過(guò)構(gòu)造惡意交易,使得原本合約在執(zhí)行過(guò)程中不斷調(diào)…
2024-05-17 -
不小心把幣轉(zhuǎn)入智能合約怎么辦?幣轉(zhuǎn)到智能合約地址能找回嗎?
在幣圈,轉(zhuǎn)幣是常見(jiàn)的操作方式,很多投資者不小心把幣轉(zhuǎn)入智能合約不知道怎么辦,想要知道幣轉(zhuǎn)到智能合約地址能找回嗎?一旦遇到這樣的情況,一定要保持冷靜,并聯(lián)系相關(guān)的…
2024-05-09 -
如何成為全能性的智能合約開(kāi)發(fā)者?
如何成為全能性的智能合約開(kāi)發(fā)者?本文主要針對(duì) Solidity, Rust 和 Move 合約開(kāi)發(fā)語(yǔ)言,供大家參考學(xué)習(xí),少走彎路…
2024-04-30