- 區塊鏈應用開發指南:業務場景剖析與實戰
- 熊麗兵 董一凡等
- 460字
- 2022-07-28 20:18:10
4.2 智能合約
到底什么是智能合約呢?那就是以太坊上運行的程序,和其他程序一樣,它也是由代碼和數據組成的。智能合約中的數據也稱為“狀態”,因為整個區塊鏈就是由所有數據確定的一個狀態機。
智能合約的英文是smart contract,和人工智能(AI:Artificial Intelligence)所說的智能沒有關系,智能合約的概念最早由尼克·薩博提出,就是將法律條文寫成可執行代碼,讓法律條文的執行中立化,這和區塊鏈上的程序可以不被篡改地執行在理念上不謀而合,因此區塊鏈引入了智能合約這個概念。
以太坊智能合約是“圖靈完備”的,因此理論上我們可以用它來編寫能做任何事情的程序。
智能合約現在的主要編程語言是Solidity和Vyper,Solidity更為成熟一些,本書中的智能合約代碼都是用Solidity編寫,通常合約文件的擴展名是.sol。下面就是一個簡單的計數器合約。

這段代碼有一個類型為uint(無符號整數)名為“counter”的變量。counter變量的內容(值)就是該合約的狀態。每當我們調用count()函數時,此智能合約的區塊鏈狀態將增加1,這個狀態是對任何人都可見的。
圖4-2很好地表示了智能合約的內容 。

圖4-2 智能合約包含的內容
從本書第5章開始,我們會進一步介紹智能合約開發。
推薦閱讀