智能合約(英語:Smart contract )是一種旨在以信息化方式傳播、驗證或執(zhí)行合同的計算機協(xié)議。智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。智能合約概念于1995年由Nick Szabo首次提出。
智能合約的目的是提供優(yōu)于傳統(tǒng)合約的安全方法,并減少與合約相關的其他交易成本。
“智能合約”(Smart contract)這個術語至少可以追溯到1995年,是由多產(chǎn)的跨領域法律學者尼克·薩博(Nick Szabo)提出來的。他在發(fā)表于自己的網(wǎng)站的幾篇文章中提到了智能合約的理念,定義如下:
“一個智能合約是一套以數(shù)字形式定義的承諾(promises),包括合約參與方可以在上面執(zhí)行這些承諾的協(xié)議。
數(shù)字形式
數(shù)字形式意味著合約不得不寫入計算機可讀的代碼中。這是必須的,因為只要參與方達成協(xié)定,智能合約建立的權利和義務,是由一臺計算機或者計算機網(wǎng)絡執(zhí)行的。
更進一步地說明:
(1)達成協(xié)定
智能合約的參與方什么時候達成協(xié)定呢?答案取決于特定的智能合約實施。一般而言,當參與方通過在合約宿主平臺上安裝合約,致力于合約的執(zhí)行時,合約就被發(fā)現(xiàn)了。
(2)合約執(zhí)行
“執(zhí)行”的真正意思也依賴于實施。一般而言,執(zhí)行意味著通過技術手段積極實施。
(3)計算機可讀的代碼
另外,合約需要的特定“數(shù)字形式”非常依賴于參與方同意使用的協(xié)議。 [1]
安全問題
智能合約是“執(zhí)行合約條款的計算機交易協(xié)議”。區(qū)塊鏈上的所有用戶都可以看到基于區(qū)塊鏈的智能合約。但是,這會導致包括安全漏洞在內(nèi)的所有漏洞都可見,并且可能無法迅速修復。
這樣的攻擊難以迅速解決,例如,2016年6月The DAOEther的漏洞造成損失5000萬美元,而開發(fā)者試圖達成共識的解決方案。DAO的程序在黑客刪除資金之前有一段時間的延遲。以太坊軟件的一個硬分叉在時限到期之前完成了攻擊者的資金回收工作。
以太坊智能合約中的問題包括合約編程Solidity、編譯器錯誤、以太坊虛擬機錯誤、對區(qū)塊鏈網(wǎng)絡的攻擊、程序錯誤的不變性以及其他尚無文檔記錄的攻擊。 [1]