以太坊 账户类型 外部账户 合约账户

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 11:43   124   0

一、账户类型

以太坊有两种账户,如下图所示:

  • 外部账户(externallyownedaccounts),由密钥控制。
  • 合约账户(contractaccounts),由智能合约的代码控制。

外部账户可以触发交易,而合约账户不能主动发起交易,只能在被触发后按预先编写的智能合约代码执行。

二、账户结构

以太坊的账户包括四个字段:

  • 一个随机数(nonce)、
  • 账户的余额(balance)、
  • 合约代码(codeHash):只有合约账户才有代码,其中存储的是codeHash(这个账户的以太坊虚拟机代码的哈希值)。这个字段在生成后是不可修改的,这意味着智能合约代码是不可修改的。
  • 存储(storageRoot)(通常为空)。

三、多重签名

合约账户可以设置多重签名(multisign)。

比如一个简单示例是:现有一个合约账户,它要求一个转账由发起转账的人(Alice)和另一个人(Charles)签名均可。

因此,当Alice通过这个合约向Bob转账20个ETH时,合约会通知Charles签名,在他签名后,Bob才可以收到这20个ETH(见图2)。

四、以太坊的交易和它的区块中存的是什么

和比特币一样,以太坊的区块中存储的也是交易(transaction),它包括的字段主要有:

  • 接受者(接受的账户)、
  • 发送者的签名、
  • 发送者发给接受者的以太币金额等。

与比特币的区块中存储的是交易不同,以太坊的区块中以梅克尔帕特里夏树(MerklePatriciaTree,MPT)形式存储的是相应的以太坊账户的状态。

以太坊的交易是所谓的状态转换函数,一个交易触发它的执行,它将相应的账户从一个状态转变成新状态,然后新状态被存储在区块链的数据区块中。

内容来自https://tsov.net/uupee/9185/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP