以太坊智能合約及以太坊虛擬機(jī)EVM最先出現(xiàn)在己任區(qū)塊鏈。
]]>我們可以將以太坊視為一個(gè)可以實(shí)現(xiàn)去中心化應(yīng)用的平臺(tái),其核心是一套用于運(yùn)行以太坊的節(jié)點(diǎn)所要執(zhí)行的智能合約進(jìn)行編程的語(yǔ)言,及相應(yīng)地在保證節(jié)點(diǎn)運(yùn)行其他服務(wù)的環(huán)境不受影響的條件下,對(duì)所編寫的智能合約語(yǔ)言進(jìn)行解釋執(zhí)行的虛擬機(jī)。用戶通過(guò)調(diào)用以太坊提供的接口,對(duì)自己所希望部署的去中心化應(yīng)用進(jìn)行編寫。
在調(diào)用時(shí),通過(guò)共識(shí)協(xié)議在所有以太坊節(jié)點(diǎn)間,同將要執(zhí)行的智能合約達(dá)成一致,進(jìn)而在每個(gè)節(jié)點(diǎn)的EVM上執(zhí)行。具體地可以將智能合約理解為代碼和數(shù)據(jù)的集合。
以太坊所提供的智能合約編程語(yǔ)言是圖靈完備的,亦即以太坊的智能合約可以做到所有能夠用圖靈機(jī)做到的事情,類似于常見(jiàn)的高級(jí)編程語(yǔ)言,如C++、GoLang 等 。 以 太 坊 提 供 了 幾 套 編 寫 智 能 合 約 的 高 級(jí) 語(yǔ) 言 , 如Solidity、Viper、Serpent及LLL等,其中目前較為流行的是Solidity及Viper。以太坊默認(rèn)的智能合約編程語(yǔ)言是Solidity,該語(yǔ)言編寫的智能合約對(duì)應(yīng)的文件擴(kuò)展名為.sol,目前有許多可用的在線Solidity集成開發(fā)環(huán)境(IDE),如Browser-Solidity Web IDE等,用戶可以很方便地在其上編寫并編譯自己所需的智能合約代碼。
用戶通過(guò)這些高級(jí)語(yǔ)言編寫出較為復(fù)雜的智能合約代碼后,對(duì)應(yīng)的代碼進(jìn)而被編譯為可以在EVM上執(zhí)行的EVM字節(jié)碼,這些字節(jié)碼再被上傳至以太坊區(qū)塊鏈從而使所有節(jié)點(diǎn)均可獲取代碼段,從而使每個(gè)節(jié)點(diǎn)都能夠利用本地的EVM對(duì)字節(jié)碼進(jìn)行執(zhí)行。
以太坊智能合約及以太坊虛擬機(jī)EVM最先出現(xiàn)在己任區(qū)塊鏈。
]]>