主页 > 苹果手机怎么下载imtoken > 以太坊(二)——账户
以太坊(二)——账户
外部拥有账户 (EOA)
本地生成公私钥对,私钥控制账户。 外部账户包括账户余额和nonce,也称为普通账户。
• 拥有相应的以太币余额
• 可以发送交易(转币或触发合约代码),所有交易只能由以太坊外部账户发起。
• 由用户的私钥控制
• 无关联代码
合约账户
也称为内部账户(用户账户/普通账户)
• 拥有相应的以太币余额
• 有相关代码
• 由代码控制
• 代码执行可以由交易或来自其他合约的调用消息触发
• 执行代码时,可以操作自己的存储空间,也可以调用其他合约。
合约账户不受公私钥对控制。 除了balance(余额)和nonce(交易次数),还有code(代码),storage(相关的state-存储,包括每个state的值),一个合约可以调用另一个合约以太坊有哪几种账户,所以数量调用必须通过nonce值记录,但合约账户不能主动发起交易。 以太坊规定所有交易只能由外部账户发起。 如果一个外部账户发起交易并调用一个合约账户,这个合约账户可以发送消息调用另一个合约,但它不能自己发起交易。
以太坊交易(Transaction)
交易和签名数据包由 EOA 发送到另一个帐户。 该交易包括以下内容:
• 收件人地址
• 寄件人签名
• 金额(VALUE)
• 数据(DATA,可选)
• 启动气体
• 天然气价格
信息
它是合约之间的一种通信方式。 合约可以向其他合约发送“消息”,消息可以传递(相当于交易,会记录在内部交易中); 如果不进行传输,它们将不会被序列化(虚拟对象),它只存在于以太坊执行环境(EVM)中,可以看作是函数调用。 包含的内容类似于交易:
• 消息发件人(需要消息发件人地址以太坊有哪几种账户,因为没有签名)
• 消息收件人
• 金额(VALUE)
• 数据(DATA,可选)
• 启动气体
调用合约账户
创建合约将返回一个地址。 知道合约的地址,就可以调用合约。 在调用过程中状态会发生变化,所以存储也会发生变化。