智能合約(英語:Smart contract)是一種旨在以信息化方式傳播、驗證或執(zhí)行合同的計算機協(xié)議。智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。這是因為一個合約寫好以后,就無法再被編輯或者修改。因此,你可以保證無論合約的內容是什么,它都會無條件執(zhí)行。智能合約提供的是一種優(yōu)于傳統(tǒng)合同方法的安全,并減少與合同相關的其他交易成本。要在以太坊系統(tǒng)上運行智能合約,你需要付費。但是,并不是使用美元、英鎊等常規(guī)貨幣進行支付。而是使用以太坊燃料—gas。
智能合約的官方推薦編程語言是Solidity,文件擴展名以.sol結尾。Solidity語言和JavaScript很相似,用它來開發(fā)合約并編譯成以太坊虛擬機字節(jié)代碼。
舉個簡單的例子說明智能合約的用途:假設我們對明天的天氣打賭。我打賭明天是晴天,你打賭是雨天。我們約定輸的人必須給贏家100美元。那么我們如何確保失敗者會遵守諾言呢?常見的有以下三種方式:
1.相互信任
最簡單方法是相互信任。如果我們是多年的好友,彼此間十分了解,那么相互信任是很容易的。但如果我們是陌生人,那就麻煩了,我們間難以互相信任。
2.簽訂法律協(xié)議
另一種方法是針對我們的賭注簽訂相關協(xié)議。當中詳細規(guī)定賭注條款,包括如果失敗方違反協(xié)議會怎么樣。
該協(xié)議能夠確保失敗方對贏家進行支付,但這是不現(xiàn)實的,因為通過法律途徑達成協(xié)議比賭注的成本更高。
3.求助共同的朋友
我們還可以找到一個彼此都信任的朋友,讓朋友代為保管100美元。在答案揭曉時將100美元支付給贏家。但是如果這個朋友拿著錢跑了怎么辦?
現(xiàn)在我們有三種不同的方法,但各有缺點。陌生人難以相互信任;法律協(xié)議成本昂貴;求助共同朋友還可能存在信任方面的問題等。
這時,以太坊的智能合約就派上用場了。智能合約相當于雙方的共同朋友,而且是用代碼編寫的。以太坊能讓我們編寫相關軟件,讓雙方支付價值100美元的以太幣,并在第二天用天氣API檢查天氣,接著將價值200美元的以太幣轉交給獲勝者。
智能合約非常適合對信任、安全和持久性要求較高的應用場景,比如:數字貨幣、數字資產、投票、保險、金融應用、預測市場、產權所有權管理、物聯(lián)網、點對點交易等等。