智能合約的概念
不同于法律意義上的合約概念杰赛,區(qū)塊鏈領(lǐng)域的合約表達的是可以“自治自理”的 計算機協(xié)議佃却,這套協(xié)議具有自我執(zhí)行抖单、自我驗證的屬性。如果完全從技術(shù)角度來看勒极,智能合約等價于一段事先就被規(guī)定好邏輯和條款的計算機代碼被激活運行的狀態(tài)是掰,同時,智能合約也提供了通用的用戶接口河质,用戶可以通過接口與用戶交互冀惭。
智能合約這一概念早在 20 世紀 90 年代就有人提出,這個人是從事智能合約和數(shù)字貨幣研究的尼克薩博(Nick Szabo)博士掀鹅,尼克 1996 年在《Extopy》期刊上發(fā)表了對智能合約的描述散休,他認為智能合約是一個由數(shù)字表單指定的承諾,這個承諾包含關(guān)系到多方執(zhí)行的一組協(xié)議乐尊。從定義中我們可以得知戚丸,智能合約由多個協(xié)議組成,這些協(xié)議包含了用戶接口扔嵌,能表達用戶的承諾限府,它可以安全有效地確定公共網(wǎng)絡(luò)上的關(guān)系。換句話說痢缎,智能合約是一個由計算機處理胁勺、可執(zhí)行合約條款的交易協(xié)議,其總體目標是滿足協(xié)議既定的條件独旷,例如支付署穗、抵押寥裂、保密協(xié)議。這可以降低合約欺詐造成的損失案疲,降低仲裁和強制執(zhí)行所產(chǎn)生的成本以及其他的交易成本封恰。我們舉個實際的例子解釋一下,今年 4 月 9 日褐啡,上海某建設(shè)銀行支行開放了“無人銀行”诺舔,銀行中充斥了眾多機器和顯示屏,智慧柜員機备畦、VTM 機低飒、外匯兌換機、VR 設(shè)備和兩臺機器人代替了傳統(tǒng)的柜臺懂盐。這里的智慧柜員機逸嘀、外匯兌換機器人眾多電子設(shè)備都可以認為是智能合約的一種表現(xiàn)形式,用戶在辦理銀行業(yè)務(wù)時允粤,如辦理大額匯兌業(yè)務(wù),業(yè)務(wù)流程和邏輯依據(jù)已經(jīng)定在程序中翼岁,用戶只需要按照操作一步一步進行类垫,辦理完成后即可獲得單據(jù)。這里“既定的業(yè)務(wù)流程琅坡、機器人模樣的人機交互界面悉患、雙方同意承諾”組成了智能合約的概念,它甚至具有一定的法律效力榆俺。
薩博提出的是智能合約的概念售躁,以及我們舉的例子,都是廣義的智能合約概念茴晋。智能合約具有多種實踐形式陪捷,而在區(qū)塊領(lǐng)域所說的智能合約概念,我們其實是指 Blockchain-based 這種形式诺擅。在薩博的智能合約概念中提到了開放式網(wǎng)絡(luò)市袖,而我們知道開放式網(wǎng)絡(luò)的基本要求就是拜占庭容錯,通過前面文章的講解我們知道烁涌,區(qū)塊鏈天然具有拜占庭容錯特性苍碟。所以如果在區(qū)塊鏈上實踐智能合約這個概念,兩者會非常契合撮执,天造地設(shè)微峰。
首先實踐了智能合約這一概念的是比特幣,比特幣腳本(bitcoin script)包含了 5 種標準交易腳本抒钱,這些腳本的功能不僅僅提供了普通單人支付的情況蜓肆,它還提供了多方共同簽名支付的腳本颜凯,叫做多重簽名支付,多重簽名支付可以看成是薩博語義下的智能合約症杏。除了比特幣装获,發(fā)揚光大智能合約這個概念的區(qū)塊鏈項目就是以太坊了,下面厉颤,我重點來介紹一下以太坊項目穴豫。
智能合約虛擬機 EVM 和 Solidity 編程語言
以太坊的核心概念首先是智能合約。
賬戶模型
以太坊并沒有采用 UTXO 模型逼友,也不同于銀行賬戶精肃,它是由以太坊開發(fā)者設(shè)計了自己的賬戶模型。
以太幣和 Gas
Gas 是執(zhí)行智能合約操作的燃料帜乞,智能合約的每一個步驟都會消耗 Gas司抱,Gas 是由以太坊的平臺代幣以太幣轉(zhuǎn)化而來,最小單位是 wei黎烈,1ETH 相當于 10 的 18 次方 wei习柠。以太幣可以通過 PoW 挖礦而產(chǎn)生,目前以太坊主要通過 GPU 挖礦照棋。挖出一個塊可以換得 5 個以太幣资溃,并且還有一定的交易費、以及叔伯塊的獎勵烈炭。今年 4 月 6 日爆出著名礦機芯片廠商比特大陸已經(jīng)開發(fā)出針對以太坊的 ASIC 專業(yè)礦機溶锭,相比 GPU 的效率提升 2.5 倍。
交易和消息
以太坊上的交易與比特幣中的 UTXO 交易不同符隙,它是指 EOA 賬戶將一個經(jīng)過簽名的數(shù)據(jù)包發(fā)送到另外一個賬戶的過程趴捅,這個過程產(chǎn)生的賬戶狀態(tài)變化將被存儲到以太坊區(qū)塊鏈上。以太坊上除了交易還有消息這個概念霹疫,消息指一個合約賬戶調(diào)用其他合約賬戶的過程拱绑,可以類比函數(shù)調(diào)用過程。所以以太坊上的 Dapp 如果被觸發(fā)丽蝎,有兩種可能欺栗,第一種是交易觸發(fā),第二種是消息觸發(fā)征峦。這兩種的區(qū)別在于前者是 EOA 發(fā)起的迟几,后者只能是其他合約賬戶發(fā)起的。狀態(tài)對象的狀態(tài)變化被以太坊共識機制的記錄下來栏笆,交易和消息驅(qū)動著狀態(tài)的變化类腮,于是,在一個開放式的網(wǎng)絡(luò)中構(gòu)建一個全球共享的 Dapp 變得十分方便蛉加。以太坊上智能合約具有全網(wǎng)準實時同步蚜枢、準確執(zhí)行缸逃、去中心化運行、較低的人為干預風險等特性厂抽,EVM 和 Solidity 為全球開發(fā)者提供了較低的進入門檻需频。