關於智能合約,你可能還不知道這些

在之前介紹以太坊賬戶與圖靈完備的文章中,肖恩簡單提及了智能合約的概念,今天肖恩就跟大傢俱體來講解下以太坊的智能合約。

智能合約最早是在1995年由一個名為尼克•薩博的法律學者(Ni ck Szabo)提出的,他當時給出的定義是:“一個智能合約是一套以數字形式定義的承諾,包括合約參與方可以在上面執行這些承諾的協議。”

但由於運行條件的侷限,智能合約在當時並沒有得到太大的應用。區塊鏈基於分佈式系統,具有去中心化、透明、不可篡改等特點,恰好是智能合約運行所需的條件。2014年,以太坊團隊將其引入以太坊區塊鏈系統中。

本文講解智能合約是主要圍繞以太坊來講,但實際智能合約不是以太坊專有的。繼以太坊之後很多公鏈都有智能合約的概念,如EOS也有了智能合約的概念。

什麼是智能合約

合約,是指事件參與各方就某一方案達成一致的約定。如常見的勞動合同、租房合同等都是合約。智能合約也是一種合約,只不過它是智能的,是自動執行的。

普通合約的執行通常由法律來執行,如勞動合同就是靠法律來保護員工與老闆的利益,當其中一方違反規定時,違規方需要根據合同的規定給另一方相應的賠償。由於勞動合同具有法律效應,出於對法律制裁的敬畏,參與者不得抵賴。

但是這種“不得抵賴”也不是絕對存在的,還是可以“抵賴”的。如有些破產公司的老闆拖欠員工工資,通過跑路來躲避法律的制裁。姑且先不其論跑路是否會成功,就這種可能性來看,現有的法律合同的參與者還存在著是否執行合同的選擇權,這種合同的安全性還是不夠的。

智能合約一旦啟用,合約的執行選擇權不在用戶手上,而是遵照智能合約的規定執行下去。老闆想要跑路,錢也不會跟著他跑,錢還是會給到員工的。

智能合約的運行

產生

以太坊智能合約是開發者基於以太坊區塊鏈開發的,以太坊就是一個底層系統,智能合約就運行於以太坊之上。具體說來其運行的環境我們稱之為以太坊虛擬機(Ethereum Virtual Machine,簡稱EVM)。EVM也是以太坊提出的一個新概念,主要起到隔離作用,運行於其中的智能合約代碼無法訪問本地的網絡、文件系統或其他進程。

語言

目前,編寫以太坊智能合約最常用的編寫語言是Solidity,這是一種類似js語言的高級語言。

運行流程

1. 開發者先創建一個外部賬戶;2. 外部賬戶採用Solidity語言編寫智能合約;3. 編譯器將寫好的智能合約代碼編譯以太坊虛擬機專用的二進制格式(EVM bytecode);4. 將第三步生成的二進制格式文件上傳到以太坊虛擬機上運行。

以太坊智能合約案例

1CO。2017年在全球風靡一時的1CO其實就是智能合約的一個案例。以太坊存在著一個名為ERC-20的標準,是一個用於規範發幣的智能合約,這個智能合約又稱代幣合約。發放的這些代幣,我們稱之為ERC-20代幣。也就是說,ERC-20代幣是應用智能合約產生的。項目方就是採用這些ERC-20代幣進行1CO的。當然1CO採用的不一定是ERC-20代幣,少數採用的是ERC223 標準進行發幣。

關於智能合約,你可能還不知道這些


分享到:


相關文章: