區塊鏈智慧合約是什麼?

小本聰發表於2018-07-16

2017 年底,比特幣漲到了最高達十二萬元人民幣,區塊鏈技術也慢慢走進了技術圈的視野。

隨著以太坊 Ethereum 的興起,這個開源的擁有智慧合約功能的區塊鏈平臺,也引起了大家的注意。

同時,能在以太坊平臺上部署、執行的智慧合約,也逐漸被大家所瞭解。謎戀貓 CryptoKitties 的大熱,又一次燃起了大眾對智慧合約的應用場景之一的 Dapp 的關注。

  1. 什麼是智慧合約?

智慧合約(Smart Contract)是一種旨在以資訊化方式傳播、驗證或執行合同的計算機協議。智慧合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。

我們這裡講的智慧合約指的是區塊鏈領域的智慧合約。

區塊鏈領域的智慧合約有以下特點:

規則公開透明,合約內的規則以及資料對外部來講是可見的。

所有交易公開可見,任何地址與智慧合約進行交易,都會公開的展示起來,不會存在任何虛假或者隱藏的交易。

之前社會中的合同或者約定的行為,都是由人來制定規則,然後由人去執行,遇到邊界問題或者異常,再由人去做界定。

但是智慧合約不同,開發者通過智慧合約去制定一套規則,然後釋出到線上,當人們去做事情與智慧合約互動的,由機器去完成業務的部分,這樣就避免了由人來執行時造成的作弊行為。

這樣就引入了去中心化自治組織(DAO,Decentralized Autonomous Organization)的概念,從理論上對智慧合約的意義進行了昇華。

  1. 智慧合約的分類

3.1 以太坊 Solidity

Solidity 是以太坊的智慧合約實現的程式語言,執行在以太坊的虛擬機器 Ethereum Virtual Machine(EVM)上。

Solidity 是靜態型別的,支援繼承、庫和其他功能中複雜的使用者定義型別。

Solidity 是本系列課程的主要內容,將在接下來的課程中詳細介紹。

Hyperledger Fabric

Hyperledger Fabric 是 The Linux Foundation 主辦的 Hyperledger 專案之一。

Hyperledger Fabric 旨在作為開發模組化體系結構的區塊鏈應用程式的基礎,以便諸如共識和會員服務等元件可以即插即用。

它使用容器技術來託管構成系統應用邏輯的智慧合約(也稱為鏈程式碼),簡而言之,Hyperledger Fabric 是為企業構建的領先的開源、通用區塊鏈結構。

和以太坊不同的是 Hyperledger 主要面對的是企業級的專案開發,Hyperledger 專案的主要推動者是 IBM。

3.2 以太坊 Ethereum 的 Solidity

Solidity 是太坊 Ethereum 的智慧合約使用的的程式語言。

Solidity 是一種靜態型別的程式語言,用於開發在 EVM 上執行的智慧合約,被編譯為可在 EVM 上執行的位元組碼。

藉由 Solidity,開發人員能夠編寫出可自我執行其欲實現之商業邏輯的應用程式,該程式可被視為一份具權威性且永不可悔改的交易合約,對已具備程式編輯能力的人而言,編寫 Solidity 的難易度就如同編寫一般的程式語言。

下面是一個簡單的智慧合約示例,這裡先做簡單的認識,在接下來的課程中,我們會逐一分析。

  1. 智慧合約和代幣的關係

提起智慧合約,很多人可能不是很清楚,但是一說 ICO,大部分人都是很感興趣的。

ICO 的本質就是,用智慧合約建立規則,並儲存資料。使用者給智慧合約傳送一定數量的 Eth,智慧合約就在自己的賬戶內建立對應地址的代幣資料。

4.1 ERC20

以太坊一直在維護一個專案,被成為EIP(Ethereum Improvement Proposals)。

Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

ERC20 定義了 ERC-20 Token 的通用標準,所有符合 ERC20 的智慧合約建立出來的代幣,都被稱為 ERC20 代幣,都能夠被以太坊錢包(幾乎所有支援以太幣的錢包,包括 imToken、幣兜錢包等,也支援 ERC-20 的代幣)識別使用。

4.2 ERC223

由於之前出現過智慧合約的問題,導致至少有價值四十萬美元的以太幣的損失,所以後來出現了 ERC20 的改良版本——ERC223。ERC223 標準是向下相容 ERC20 的。

目前市面上絕大部分代幣都是基於 ERC20 標準的,基於 ERC223 的並不多,比如 ATN。

4.3 他們的關係

舉個簡單的例子,智慧合約就像是一張白紙,代幣就像是用白紙疊成的紙飛機,我們還可以用這張白紙來做紙青蛙。

  1. 智慧合約能給我們帶來什麼?

從現在這個時間點來看,智慧合約首先的應用是創造代幣,也就是大家提到的 ICO。

ICO 創造一種新的商業模式,它將社群的力量發揮出來。在技術圈內,社群一直是很重要的力量,很多知名的開源專案比如 Linux,都是集合了社群開發者的智慧變得越來越完善。

而 ICO 的意義在於,真正有價值的專案可以不用通過傳統的風投而是通過社群人員眾籌來獲得專案的啟動資金,並且隨著專案的發展,社群人員也能通過它來收到回報。這從一定程度上解決了技術人員有能力做專案,卻沒能力籌錢的問題。

但是 ICO 也暴露了人性的惡,2017 年開始,大量沒有技術背景的 ICO 出現在全球市場上,各種負面新聞也出現,到 2018 年年初,已經有大部分 ICO 以失敗告終。

智慧合約的中心思想是用機器去實現既定的規則,讓規則內的人們不會去作弊,並提高了業務的效率。

除了發代幣之外,智慧合約的應用場景非常多,比如投票、結合物聯網做智慧家居等等。

在不久的將來,智慧合約的應用註定會爆發。


相關文章