当前位置: 首页 > news >正文

以太坊账⼾模型的理解,合约账⼾、EOA账⼾认识

以太坊账⼾模型的理解,合约账⼾、EOA账⼾认识

以太坊使用账户模型(Account Model)而非比特币的UTXO模型。以太坊有两种类型的账户:

1. 外部账户(EOA - Externally Owned Account)

  • 特点:
    • 由私钥控制
    • 可以发送交易
    • 没有相关代码
    • 存储以太币余额
type EOAccount struct {Nonce    uint64         // 交易计数器Balance  *big.Int       // 账户余额Address  common.Address // 账户地址
}

2. 合约账户(Contract Account)

  • 特点:
    • 由代码控制
    • 能执行智能合约代码
    • 有自己的存储空间
    • 只能被外部账户触发
type ContractAccount struct {Nonce        uint64         // 合约创建计数器Balance      *big.Int       // 合约余额Address      common.Address // 合约地址Code         []byte         // 合约代码Storage      StateDB       // 合约存储CodeHash     common.Hash    // 代码哈希
}

两种账户的主要区别

特性 EOA账户 合约账户
私钥控制
可发起交易
包含代码
gas费用 支付 执行消耗
触发方式 主动发起 被动调用

账户状态

两种账户都包含以下4个基本字段:

type AccountState struct {Nonce     uint64     // 交易序号/合约创建数Balance   *big.Int   // 以太币余额StorageRoot Hash     // 存储树根哈希CodeHash  Hash      // 代码哈希(EOA为空哈希)
}

实际应用示例

以您的代码为例,监听代币转账事件时会涉及两种账户:

// 处理账户间转账
func handleTransfer(from common.Address, to common.Address, value *big.Int) {// from可能是EOA或合约账户if from.IsContract() {// 合约账户转账逻辑} else {// EOA账户转账逻辑 }// to可能是EOA或合约账户if to.IsContract() {// 触发接收方合约的回调to.Call(transferData)} else {// 直接转账到EOAto.Transfer(value)}
}

通过理解这两种账户模型,可以更好地开发以太坊应用并处理不同类型账户之间的交互。

http://www.sczhlp.com/news/214550/

相关文章:

  • 方格图路径计数 dp 的反射路径优化
  • Luogu P12376「LAOI-12」Calculate 题解 [ 蓝 ] [ 贪心 ] [ 线性 DP ] [ 前缀和优化 ] [ 范德蒙德卷积 ]
  • Conda、pip以及虚拟环境在Jupyter中的打开方法
  • 20251020 之所思 - 人生如梦
  • 建站模板大庆市让胡路区规划建设局网站
  • 运动健身型网站开发网站建设有限公司
  • 网站测速大学网站栏目建设
  • 中安消防安全网站建设com域名注册1元
  • 晋江住房和城乡建设局网站网站定制生成器
  • 青岛信息网新郑整站优化
  • 怎么做一淘宝客网站吗网页请求流程
  • 珠海市企业网站制作平台wordpress最大上传2g
  • 赶集网网站建设分析网站的模版可以换吗
  • 阿里云服务器如何上传网站凡科平台登录平台
  • 青海公路建设信息服务网站区块链技术做网站
  • 蛋糕店微网站手机网站用什么软件做的好处
  • 打不开住房和城乡建设部网站wordpress会员系统
  • 企业网站建设项目wordpress 文章评论插件
  • 做网站费用会计科目舆情报告案例2022
  • 网站之家app中卫网络工程招聘
  • 绍兴市网站建设企业进行网络营销策划的目标
  • 建设邮费自己的网站_要不要购买服务器的广州制作外贸网站公司
  • 网站建设与管理试题答案1688一键铺货到拼多多
  • 网站建设维护 天博网络可以注册的网站
  • 网站顶部悬浮导航代码杭州网站建设机构
  • 做配电箱的专门网站中建八局第一建设有限公司资质
  • 电脑配件经营网站的建设盛成广告传媒做网站的
  • 微信网站设计模板下载html个人网页制作模板
  • 身份运算符
  • java基础9-面向对象进阶