什麼是智能合約?

這個術語是跨領域法律學者尼克·薩博(Nick Szabo)提出來的,他對智能合約的定義是“一個智能合約是一套以數字形式定義的承諾(promises),包括合約參與方可以在上面執行這些承諾的協議。”換成更加通俗的描述就是“智能合約是一個在計算機系統上,當一定條件被滿足的情況下,可以被自動執行的合約。”

智能合約一定要在區塊鏈技術之上實現嗎?答案是否定的。舉個大家都熟悉的例子,就是信用卡的自動還款服務,我們就可以把它理解成一種智能合約。在具體的時間(信用卡還款日),當還款條件被滿足(儲蓄卡餘額比信用卡還款金額要多的情況下),計算機系統會自動完成這筆交易(用最初設定的儲蓄卡爲信用卡還款)。然而這些服務仍是運行在傳統的計算機系統之上,而這些系統並沒有利用區塊鏈技術。

以太坊和智能合約

第一週的內容中我們爲大家系統介紹了區塊鏈的基礎知識。我們可以知道,區塊鏈吸引應用開發人員的主要的性質有:

1. 區塊鏈由別人運營。如果你的應用把數據存在大家都用的區塊鏈,它就不需要爲數據提供存儲機制。區塊鏈中的節點提供存儲有獎勵:收交易費和發新幣。

2. 區塊鏈提供分佈共識機制,你自己做很難。

3. 區塊鏈爲用戶提供匿名機制。一個賬號身份標識(ID)是個公鑰,它不一定和人直接相關。

4. “價值”可以從一個賬號轉移到另一個,但是費用要小於傳統的真實貨幣轉賬機制。

5. 如果某個區塊鏈受信賴,那麼存儲在那個區塊鏈的交易也受信賴。

以太坊採用區塊鏈的原理,又增加了在區塊鏈上創建智能合約。因爲區塊鏈的不可篡改的特性和信任性,爲智能合約提供了良好的使用環境。智能合約是一種應用,它能保存價值,存儲數據,封裝代碼,執行計算任務。

智能合約允許匿名的幾方進入約束協議,每個參與方對交易完全知情。價值可以在賬戶間轉移,或者放在智能合約中的第三方託管(escrow )。由於合約就是代碼,開發者想做什麼應用,就能做得出,你的想象力是唯一的限制。

區塊鏈和智能合約能做什麼?

以太坊只是智能合約平臺的一種,用它可以構建基於區塊鏈的應用。最合適的用例有:

從一方轉移價值到另一方

一方或幾方需要匿名

價值必須存儲在合約本身,並且存儲一段時間

希望避免轉移真實貨幣產生的交易費用

需要建立共識

希望顯示公開性,把狀態存儲在公共域

需要確保物理或虛擬材料的來源和真實性

基於此,我們可以馬上想到的應用有:拍賣,借貸,遺囑,註冊,衆籌,股權,和投票。

從金錢和計算角度看,寫操作是很貴的,所以智能合約多用在寫操作少,但是數據價值高的應用。

當然,也有很多人對智能合約的應用持消極的態度。比如,如果把智能合約視作參與各方的“合同”,智能合約能否表達出傳統的“合同”中雙方的真實意思?出現問題糾紛之後,由誰來擔任仲裁機構?等等一系列的問題。

參考資料:區塊鏈技術-智能合約-以太坊

相關文章