官术网_书友最值得收藏!

4.2 智能合約

到底什么是智能合約呢?那就是以太坊上運行的程序,和其他程序一樣,它也是由代碼和數據組成的。智能合約中的數據也稱為“狀態”,因為整個區塊鏈就是由所有數據確定的一個狀態機。

智能合約的英文是smart contract,和人工智能(AI:Artificial Intelligence)所說的智能沒有關系,智能合約的概念最早由尼克·薩博提出,就是將法律條文寫成可執行代碼,讓法律條文的執行中立化,這和區塊鏈上的程序可以不被篡改地執行在理念上不謀而合,因此區塊鏈引入了智能合約這個概念。

以太坊智能合約是“圖靈完備”的,因此理論上我們可以用它來編寫能做任何事情的程序。

智能合約現在的主要編程語言是Solidity和Vyper,Solidity更為成熟一些,本書中的智能合約代碼都是用Solidity編寫,通常合約文件的擴展名是.sol。下面就是一個簡單的計數器合約。

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

圖4-2很好地表示了智能合約的內容 引用自《完全理解以太坊智能合約》,https://learnblockchain.cn/2018/01/04/understanding-smart-contracts/。

圖4-2 智能合約包含的內容

從本書第5章開始,我們會進一步介紹智能合約開發。

主站蜘蛛池模板: 潼关县| 林甸县| 宝丰县| 商水县| 雷山县| 鄱阳县| 苍南县| 青河县| 美姑县| 邵武市| 梅州市| 湖北省| 太康县| 昭平县| 洛宁县| 塔城市| 华安县| 防城港市| 香河县| 秭归县| 海宁市| 屯昌县| 开远市| 桃江县| 韶山市| 英吉沙县| 晋中市| 西乌珠穆沁旗| 买车| 盖州市| 高邮市| 阿拉善左旗| 芜湖市| 长泰县| 昔阳县| 澎湖县| 方山县| 调兵山市| 淳安县| 巴青县| 义马市|