账户
btc:
- 无法准确展示当前账户拥有多少币,只能通过 UTXO 进行推算
- 每次交易都需要将上次得到的输出一次性都转出去
eth:
- 基于账户的模型
- 全节点维护状态树 ---所有账户的状态 也就是余额
- 转账是否合法只需要查看转账者账户中以太币是否足够即可,同时也不需要每次全部转账。
- 以太坊系统中存在两类账户:外部账户和合约账户。
- 外部账户:类似于 BTC 系统中公私钥对。存在账户余额 balance 和计数器 nonce
- 合约账户:并非通过公私钥对控制。(不能主动发起交易,只能接收到外部账户调用后才能发起交易或调用其他合约账户)其除了 balance 和 nonce 之外还有 code(代码)、storage(相关状态-存储)
创建合约时候会返回一个地址,就可以对其调用。调用过程中,代码不变但状态会发生改变。
- 为什么要做以太坊,换基于账户的模型?
比特币中支持每次更换账户,但以太坊是为了支持智能合约,而合约签订双方是需要明确且较少变化的。尤其是对于合约账户来说,需要保持稳定状态。