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