Vip 伍
经验34217
喜币8862
竞拍币12455
吉祥币0
球速币0
|
钱包的外部账户(Externally Owned Accounts, EOA)方案的劣势逐步显露,其功能简单而且性能一般,不支持并发交易,且存在密钥管理的难题。智能合约钱包使用合约账户(Contract Accounts, CA)作为钱包地址,是一种相对来说新型的以太坊钱包解决方案,它能解决 EOA 钱包的短板并且带来更强大的功能。未来,你将可以选择不去小心翼翼保护好自己的私钥,也能够享受几乎同等级别的安全性;你还可以在去中心化的交易所里享受到目前中心化交易所才有的便捷,但同时资金又是始终掌握在自己的手中,不用担心交易所暴雷的可能……
以太坊的账户类型
以太坊有两种类型的账户:外部账户(Externally Owned Accounts, EOA)和合约账户(Contract Accounts, CA)。外部账户是以太坊原生记录用户余额的钱包账户地址,合约账户一开始的设计目的并不是用来记录用户钱包地址余额的。
EOA 是以太坊以及其他 EVM 兼容链(或类 EVM 链)才有的概念,严格来说包括 BTC 在内的主流非 EVM 链都没有这个设定。Metamask 钱包使用的就是外部账户,这一类的钱包也被称为“EOA 钱包”,由用户私钥控制,其生成规则是:
私钥 → 公钥 → Keccak 256 哈希 → 最后 20 Bytes → 十六进制字符串(EOA 地址)
这个生成规则完全由数学变换而来,该地址未对应任何一段智能合约。使用该类型地址进行交易的时候,其节点验证规则是:
交易签名 → ec_recover → 公钥 → (用上面的规则生成)地址 → 对比要操作的地址
如果验证通过,则继续后面的流程,不通过则拒绝交易。EOA 在以太坊中的核心设定是作为交易的发起方并支付 gas,即交易的触发器,一笔交易无论后面有多少合约调用,一开始都必须由一个 EOA 发起并且支付足够的 gas 才可以进行。一个 EOA 地址的交易流程如下图所示。
|
|