智能合約

計算機協議

智能合約(英語:Smart contract )是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。智能合約概念於1995年由Nick Szabo首次提出。

智能合約的目的是提供優於傳統合約的安全方法,並減少與合約相關的其他交易成本。

術語簡介


“智能合約”(Smart contract)這個術語至少可以追溯到1995年,是由多產的跨領域法律學者尼克·薩博(Nick Szabo)提出來的。他在發表於自己的網站的幾篇文章中提到了智能合約的理念,定義如下:
“一個智能合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。”

數字形式


數字形式意味著合約不得不寫入計算機可讀的代碼中。這是必須的,因為只要參與方達成協定,智能合約建立的權利和義務,是由一台計算機或者計算機網路執行的。
更進一步地說明:
(1)達成協定
智能合約的參與方什麼時候達成協定呢?答案取決於特定的智能合約實施。一般而言,當參與方通過在合約宿主平台上安裝合約,致力於合約的執行時,合約就被發現了。
(2)合約執行
“執行”的真正意思也依賴於實施。一般而言,執行意味著通過技術手段積極實施。
(3)計算機可讀的代碼
另外,合約需要的特定“數字形式”非常依賴於參與方同意使用的協議。

協議


協議是技術實現(technical implementation),在這個基礎上,合約承諾被實現,或者合約承諾實現被記錄下來。選擇哪個協議取決於許多因素,最重要的因素是在合約履行期間,被交易資產的本質。
再次以銷售合約為例。假設,參與方同意貨款以比特幣支付。選擇的協議很明顯將會是比特幣協議,在此協議上,智能合約被實施。因此,合約必須要用到的“數字形式”就是比特幣腳本語言。比特幣腳本語言是一種非圖靈完備的、命令式的、基於棧的編程語言,類似於Forth

安全問題


智能合約是“執行合約條款的計算機交易協議”。區塊鏈上的所有用戶都可以看到基於區塊鏈的智能合約。但是,這會導致包括安全漏洞在內的所有漏洞都可見,並且可能無法迅速修復。
這樣的攻擊難以迅速解決,例如,2016年6月The DAOEther的漏洞造成損失5000萬美元,而開發者試圖達成共識的解決方案。DAO的程序在黑客刪除資金之前有一段時間的延遲。以太坊軟體的一個硬分叉在時限到期之前完成了攻擊者的資金回收工作。
以太坊智能合約中的問題包括合約編程Solidity、編譯器錯誤、以太坊虛擬機錯誤、對區塊鏈網路的攻擊、程序錯誤的不變性以及其他尚無文檔記錄的攻擊。

案例


部署智能合約的案例有:
● 以太坊在其區塊鏈上實施了一種近乎圖靈完備的語言,這是一個突出的智能合約框架。
● RootStock(RSK) 是一個智能合約平台,通過側鏈技術連接到比特幣區塊鏈。 RSK兼容為以太坊創造的智能合約。

流行文化


Karl Schroeder的2002年小說“Permanence”提出了一種“權利經濟”,其中所有的物理對象都有合同要求的納米標記,這樣就可以對專有信息的所有用途實施付款,例如,深空軍事任務必須不斷證明每艘船舶的效益比率否則將停止工作。

參見


● 區塊鏈
● 比特幣
● 安全多方計算
● 共識機制