比特币系统中采用的是基于交易的账本,在这个模式下并不会显式记录每个账户上会存在多少钱,而是根据UTXO推断余额,既计算拥UTXO中有私钥的币总和,隐私保护较好,使用并不太方便(在交易的时候要证明每一个币的来源,并且在一次交易收到的币UTXO,消费的时候必须全部都花出去,不能只花一部分)
以太坊中采用的账户模式:转账的时候不需要说明币的来源,能够很好的防御双花攻击,对于重放攻击(收款者不诚实,交易时。发出两次交易信息),解决方法:加一个交易计数器nonce,记录这个账户有史以来,一共发布过多少交易,在转账的时候要将nonce作为交易的一部分。也就是在系统中,节点维护账户的状态,不仅仅是balance,还有nonce的值。
同时以太坊支持智能合约,所以相对比特币地址会更加稳定
以太坊账户类型:
1.外部账户(普通账户)
用公私钥控制,本地产生一队公钥和私钥,私钥掌握账户控制权
账户状态:余额balance、nonce
2.合约账户
合约账户状态:balance和nonce、代码code、相关存储状态storage(包括每个存储到链上变量的取值)
合约账户无法主动发起交易,只能由外部账户发起。如果是外部账户调用合约账户A,夜月账户A能够发送一个message调用另外的合约,这种情况是允许的文章来源:https://www.toymoban.com/news/detail-826268.html
合约账户如何被调用:创建合约的时候会返回一个地址,能够通过合约地址调用这个合约,调用的过程中状态会发生变化(storage)文章来源地址https://www.toymoban.com/news/detail-826268.html
到了这里,关于区块链技术学习笔记(14) 以太坊账户的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!