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

4.2 智能合約

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

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

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

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

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

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

圖4-2 智能合約包含的內(nèi)容

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

主站蜘蛛池模板: 眉山市| 莱西市| 福海县| 无锡市| 庆安县| 邳州市| 汝州市| 瑞安市| 阜阳市| 连南| 泸水县| 合川市| 南澳县| 平邑县| 新绛县| 辛集市| 水城县| 伊川县| 余姚市| 江口县| 荥阳市| 萨迦县| 桃江县| 阿合奇县| 隆尧县| 米脂县| 虞城县| 阿荣旗| 崇州市| 伊川县| 大关县| 翁牛特旗| 清水县| 邹城市| 洛浦县| 长治市| 永和县| 开封市| 乐业县| 固原市| 共和县|