就像其他許多區(qū)塊鏈產(chǎn)業(yè)的點(diǎn)子一樣,人們也對(duì)「智能合約」抱著無(wú)比的疑惑。智能合約這個(gè)名詞誤導(dǎo)了人們對(duì)于智能合約合約核心運(yùn)作模式的理解,因此這個(gè)透過(guò)區(qū)塊鏈達(dá)成的技術(shù)讓人們不是很好理解。
一個(gè)我們?nèi)粘I钪兴岬降暮霞s,是指一種通常透過(guò)法律作為強(qiáng)制力的兩造關(guān)系。但是智能合約的強(qiáng)制力是透過(guò)加密的程序所達(dá)成的。換句話(huà)說(shuō)智能合約是一些我們寫(xiě)好的程序,而且這些程序會(huì)照著程序開(kāi)發(fā)者當(dāng)初設(shè)定的內(nèi)容運(yùn)作。
在1993年,智能合約這個(gè)概念才被提出來(lái)。提出者是Nick Szabo,他是一位電腦科學(xué)家也是一位密碼學(xué)家。他最早把智能合約描述為一種數(shù)位販賣(mài)機(jī)的概念。在他的例子中,他描述使用者如何能輸入數(shù)據(jù)或數(shù)值,從機(jī)器去換取有限的物品,在這個(gè)例子中這有限的物品是零食和氣泡飲料。
在一個(gè)簡(jiǎn)單的例子中,以太坊使用者可以利用智能合約,在指定時(shí)間,傳送10個(gè)以太幣給自己的朋友。
在這個(gè)例子中,使用者可以寫(xiě)一個(gè)智能合約,并且給予合約所需的數(shù)據(jù),然后合約就可以執(zhí)行我們所需的任務(wù)。
但其實(shí)這個(gè)新工具不是被設(shè)計(jì)為單獨(dú)使用。人們相信我們可以透過(guò)智能合約技術(shù),去達(dá)成去中心化應(yīng)用程序(Dapp),甚至是一個(gè)去中心化自己運(yùn)作的公司(DAO)。
智能合約是如何運(yùn)作的?
我們必須注意到,其實(shí)比特幣就已經(jīng)支持某些基本的智能合約功能。在交易被發(fā)出去以后,比特幣網(wǎng)絡(luò)上的節(jié)點(diǎn)可以設(shè)定在某些狀況才去驗(yàn)證之前發(fā)出去的交易。但是比特幣被局限在僅能當(dāng)作貨幣用途使用。
相反的,以太坊把比特幣較為受限的語(yǔ)言(比特幣是大概一百多個(gè)腳本所構(gòu)成的腳本語(yǔ)言,詳見(jiàn)bitcoin wiki),用一個(gè)允許軟件工程師任意發(fā)揮他們能力的語(yǔ)言取代。
以太坊允許開(kāi)發(fā)者去開(kāi)發(fā)他們自己的智能合約,或者用以太坊白皮書(shū)里面的說(shuō)法?—?自動(dòng)代理人(autonomous agents)。并且以太坊提供的語(yǔ)言是圖靈完備的,代表說(shuō)它能支持更多的計(jì)算指令。
智能合約能做到:
· 多重簽名,這樣資金可以只有在指定一群人中達(dá)到指定比例的人同意后才能被花費(fèi)。
· 管理多個(gè)使用者之間的合約、協(xié)議。就像是紀(jì)錄是某個(gè)人向另個(gè)人買(mǎi)了保險(xiǎn)。
· 提供其他合約所需的功能及服務(wù)。(就像是寫(xiě)軟件時(shí)所需要用到的函式庫(kù))
· 做應(yīng)用軟件的紀(jì)錄,比如說(shuō)像是域名申請(qǐng)的信息或者是會(huì)員資料紀(jì)錄。
群眾的力量
從最后一點(diǎn)就可以推斷,智能合約很可能需要來(lái)自其他智能合約功能上的支持。比如說(shuō)有人寫(xiě)了一個(gè)能在夏天對(duì)氣溫下Du的簡(jiǎn)單智能合約。這個(gè)合約可能就會(huì)觸發(fā)其他合約。一個(gè)合約負(fù)責(zé)從外部得到天氣信息,另個(gè)合約負(fù)責(zé)Du博所需要的計(jì)算,他就可以透過(guò)第一個(gè)合約回傳的數(shù)據(jù)去計(jì)算賠率。
在運(yùn)作智能合約的時(shí)候需要支付以太幣當(dāng)作交易手續(xù)費(fèi)。而這個(gè)交易手續(xù)費(fèi)會(huì)隨著所需計(jì)算指令數(shù)量的增加而增加。