智能合约的基本概念
智能合约是一段代码和数据的集合,可以部署以太坊网络上运行。如果做比喻的话智能合约更像是JAVA程序,JAVA程序通过JAVA虚拟机(JVM)将代码解释字节进行执行,以太坊的智能合约通过以太坊虚拟机(EVM)解释成字节码进行执行,如果你学过汇编,会发现编译后的字节码和汇编很类似。同时智能合约有自己的账户,在时间或事件的驱动下能自动执行一些功能,如可以在相互之间传递信息,修改区块链的状态比如账户信息等。以太坊的智能合约最大的特点是图灵完备,通俗来说可以完全模拟一台计算机所能做的所有事情,大家熟知的比特币其实也可以执行一些简单脚本,但是他就不是图灵完备,比如循环指令比特币就无法执行。
智能合约协议
以太虚拟机EVM
以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它不仅被沙箱封装起来,事实上它被完全隔离运行,也就是说运行在EVM内部的代码不能接触到网络、文件系统或者其它进程,甚至智能合约之间也只有有限的调用。
智能合约编程语言
用户不可能直接编写以太坊虚拟机(EVM)字节码,所以以太坊提供了几种编写智能合约的高级语言。
Solidity:类似JavaScript,这是以太坊推荐的旗舰语言,也是最流行的智能合约语言。具体用法参加Solidity文档,地址:https://solidity.readthedocs.io/en/latest/
Serpent:类似Python风格,文档地址:https://github.com/ethereum/wiki/wiki/Serpent
领取专属 10元无门槛券
私享最新 技术干货