以太坊(Ethereum) 账号(地址)

以太坊(Ethereum)网络中,有两种账号:

  • 外部账号 – 用户使用的账号
  • 合约账号 – 智能合约使用的账号,每个智能合约都有一个账号

这些账号,都被称为状态对象/state object,构成了以太坊网络的状态。外部账号的状态是账户余额,合约账号的状态是内存与账户余额。

外部账号是用户账号,例如,普通用户、矿工等使用的账号。

合约账号是区块链网络中,位于特定地址(账号)上的代码集合。这些合约由外部账号调用,或者由其他合约通过特定的call-to-action函数调用。

智能合约是用诸如Solidity, Serpent 或 LLL之类的高级脚本语言编写的。实际部署在以太坊(Ethereum)区块链上的每个合约都以一种称为EVM (ethereum Virtual Machine/以太坊虚拟机)字节码的格式存储,这是一种以太坊(Ethereum)虚拟机支持的二进制格式。

以太坊(Ethereum) 虚拟机架构:以太坊(Ethereum)网络中,定义了一组通用协议用于支持智能合约的运行,其核心便是以太坊(Ethereum)虚拟机。开发人员使用Solidity等开发语言开发智能合约;源程序被编译成以太坊虚拟机支持的字节码可执行程序;可执行程序被部署到网络中,即写入区块,并被分配一个账号(地址)