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