像區(qū)塊鏈行業(yè)的很多概念一樣,“智能合約”(Smart Contract)是一個讓人困惑的詞匯。作為一項由公有區(qū)塊鏈賦能的技術(shù),智能合約因其名稱在一定程度上未能準(zhǔn)確描述其核心的互動特性而使人難以理解。
雖然標(biāo)準(zhǔn)合約概述了關(guān)系條款(通常由法律強制執(zhí)行),但智能合約使用區(qū)塊鏈技術(shù)代碼強制執(zhí)行關(guān)系。換言之,智能合約就是完全按照創(chuàng)建者的設(shè)定而執(zhí)行的程序。
1993 年,計算機(jī)學(xué)家、密碼學(xué)家尼克·薩博(Nick Szabo)提出了 “智能合約” 這一概念,他將其比作一種數(shù)字化的自動販?zhǔn)蹤C(jī)。在其知名的例子中,他描述了用戶如何通過輸入數(shù)據(jù)與數(shù)值,從機(jī)器中接收物品的例子(在這個例子中,這些物品是指現(xiàn)實世界中的小吃或者軟飲)。
舉一個簡單的例子,以太坊用戶可以使用智能合約在特定的日期向其朋友發(fā)送 10 枚以太幣(ETH)。在這一案例中,用戶會創(chuàng)建一個合約,并向其中存入數(shù)據(jù),以使其能夠執(zhí)行用戶想要的命令。
以太坊是專門為創(chuàng)建智能合約而構(gòu)建的平臺。
但這些新的工具并非孤立使用。它們可以被用來構(gòu)建去中心化應(yīng)用(DApp),甚至是完全去中心化自治組織(DAO)的模塊。
智能合約的工作原理
值得注意的是,就比特幣網(wǎng)絡(luò)支持 “從一個人到另一個人的價值轉(zhuǎn)移” 的意義而言,它是首個支持基本智能合約的加密貨幣。比特幣節(jié)點僅在滿足某些條件的情況下才會驗證交易。但比特幣僅限于作為貨幣使用。
而以太坊以一種允許開發(fā)者編寫的程序語言取代了比特幣限制性更強的語言(一百多個腳本的腳本語言)。
以太坊允許開發(fā)者編寫其自己的智能合約,或者如以太坊白皮書所稱的那樣 — — 自動化代理(autonomous agents)。該語言具有 “圖靈完備”(Turing-complete)性,這意味著它支持更為寬泛的計算指令。智能合約可以:
· 以 “多簽名”(multi-signature)賬戶運行,因此只有在達(dá)到要求比例的人數(shù)同意時,相關(guān)資金才可被花掉;
· 管理用戶間的協(xié)議,例如,一用戶從另一用戶手中購買保險;
· 為其他合約提供實用程序(類似于軟件庫的工作方式);
· 存儲一個應(yīng)用的信息,如域名注冊信息或者會員記錄。
數(shù)字的力量
根據(jù)最后一點推斷,一個 “智能合約” 可能需要其他 “智能合約“ 的幫助。
當(dāng)有人對炎熱夏日溫度進(jìn)行簡單預(yù)測時,其可能觸發(fā)一系列合約。一份合約會使用外部數(shù)據(jù)來判別天氣,另一份合約可能會在相關(guān)條件滿足后,基于其所接收到的第一份合約的信息,來決定如何下注。
運行每份合約需要以太幣交易費用,其數(shù)額取決于所需算力的大小。
如我們在 “How Ethereum Works” 一文中所闡釋的,當(dāng)用戶或者另一份智能合約消耗足夠的交易費用向其發(fā)送信息時,以太坊會運行智能合約。然后以太坊虛擬機(jī)以 “字節(jié)碼” 或一系列可以被網(wǎng)絡(luò)讀取和解釋的 “0” 和 “1” 來執(zhí)行智能合約。
來源: CoinDesk中文