1.2 以太坊智能合約
以太坊智能合約虛擬機(EVM):可編程的去中心化平臺,任何系統開發者在支付一定的部署費用之後,就可以擁有一套完全去中心化的業務系統,稱作DAPP。
1.2.1 以太坊
- 以太坊的狀態:由以太坊上的所有賬戶組成全局狀態。
- 以太坊的賬戶:地址與賬戶狀態的一個映射結構。賬戶分爲外部賬戶(存放用戶餘額和轉賬的賬戶)和智能合約賬戶(區塊鏈地址及其狀態的映射關係)。
- 交易:可以由外部賬戶發起,也可以由合約賬戶發起,創建合約賬戶的代碼通過Solidity編程語言編寫,通過以太坊的智能合約編譯器編譯生成。
- 賬戶生成之後,會開闢賬戶存儲空間和以太坊虛擬機可以理解並執行的代碼。
- 智能合約生成後,通過ABI接口調用該智能合約,傳入外部數據,通過以太坊智能合約虛擬機讀取合約代碼,修改區塊鏈狀態,最新的狀態存放在以太坊公鏈上。
1.2.2 EVM
硬分叉:某條公鏈的某些特徵或者增加對某種場景的支持,開發者必須在原有的公鏈設計的基礎上修改系統底層源代碼,並重新維護一套公鏈生態。
以太坊EVM:基於以太坊現有的公鏈網絡和礦機組織、共識社區,通過EVM提供的編程API來編寫智能合約,就可以完成一套區塊鏈系統。EVM的出現使得對區塊鏈編程成爲可能。
1.2.3 智能合約
以太坊公鏈的代碼穩定的是GO語言和C++語言的版本。
1.2.4 DAPP
DAPP:爲了使廣大用戶理解並方便快捷地訪問區塊鏈及區塊鏈上的智能合約系統,開發者必須提供操作界面和結果查詢界面,來簡化用戶訪問和操作區塊鏈的方式。