和區(qū)塊鏈行業(yè)的許多想法一樣,普遍的困惑也被稱為“智能合同”。
一項由公共區(qū)塊鏈所制造的新技術(shù),智能合同難以理解,因為這一術(shù)語在一定程度上混淆了所描述的核心交互。
一份標準合同概述了一段關(guān)系的條款(通常是由法律強制執(zhí)行的),而一份聰明的合同則會強制與密碼代碼的關(guān)系。
換句話說,聰明的合同就是那些由他們的創(chuàng)造者設(shè)置的程序。
最初構(gòu)想于1993年,最初由計算機科學家和密碼學家Nick Szabo描述為一種數(shù)字自動販賣機。在他著名的例子中,他描述了用戶如何輸入數(shù)據(jù)或價值,并從機器接收一個有限的項目,在這種情況下是現(xiàn)實世界的小吃或飲料。
在一個簡單的例子中,ethereum用戶可以使用智能契約在某個日期向一個朋友發(fā)送10個以太(見我們的指南“什么是以太?”)。
在這種情況下,用戶將創(chuàng)建一個契約,并將數(shù)據(jù)推到該契約中,這樣它就可以執(zhí)行所需的命令。
Ethereum是專門為創(chuàng)建智能合同而建立的平臺。
但這些新工具并不打算單獨使用。人們相信,它們也可以構(gòu)成“分散應用”的構(gòu)建模塊(參見:“什么是Dapp?”),甚至是整個分散的自治公司(參見:“什么是DAO?”)
智能合約如何工作?
值得注意的是,比特幣是第一個支持基本智能合同的人,因為網(wǎng)絡可以將價值從一個人轉(zhuǎn)移到另一個人身上。節(jié)點網(wǎng)絡只有在滿足某些條件時才會驗證事務。
但是,比特幣僅限于貨幣用例。
相比之下,ethereum取代了比特幣更為嚴格的語言(一種大約100個腳本的腳本語言),并用一種允許開發(fā)者編寫自己程序的語言取而代之。
Ethereum允許開發(fā)人員為他們自己的智能合同編程,或者“自動代理”,就像Ethereum白皮書所稱的那樣。該語言是“Turing-complete”,意思是它支持更廣泛的計算指令集。
聰明的合同可以:
功能是“多簽名”賬戶,因此只有當需要的百分比的人同意時才使用資金。
管理用戶之間的協(xié)議,比方說,如果一個人從另一個購買保險。
為其他契約提供實用程序(類似于軟件庫的工作方式)
存儲有關(guān)應用程序的信息,如域注冊信息或成員記錄。
人多力量大
從最后一點推斷,智能合同很可能需要其他智能合同的幫助。
當一個人在炎熱的夏天把一個簡單的賭注壓在溫度上時,它可能會引發(fā)一系列的合同。
一份合同將使用外部數(shù)據(jù)來確定天氣情況,另一份合同可以根據(jù)在滿足條件時從第一份合同中獲得的信息來結(jié)算。
運行每個合同需要以太交易費用,這取決于所需的計算能力。
正如我們的指南“Ethereum如何工作”中所解釋的,當一個用戶或另一個合同以足夠的交易費用發(fā)送消息時,Ethereum會運行智能契約代碼。
然后,Ethereum虛擬機在“字節(jié)碼”中執(zhí)行智能契約,或由網(wǎng)絡讀取和解釋的一系列1和0。
評論