以太坊外部账户EOA与合约账户CA的区别
在以太坊中,账户拥有4个字段:{nonce,balance,codeHash,StorageRoot}。
一共分为2种账户:外部账户、合约账户。
外部账户,Externally Owned Accounts,简称EOA,它拥有私钥,其codeHash为空。
合约账户,Contact Account,简称CA,它没有私钥,其codeHash非空。
比较 | 外部账户 | 合约账户 |
---|---|---|
拥有私钥 | 是 | 否 |
codeHash内容 | 为空 | 非空 |
主动发起交易 | 是 | 否,只能被动发起交易 |
拥有余额 | 是 | 是 |
地址长度 | 20字节 | 20字节 |
判断一个地址是否为合约地址的方法如下:
//judge.sol
// SPDX-License-Identifier: MITpragma solidity ^0.6.2;library Address {function isContract(address account) internal view returns (bool) {// According to EIP-1052, 0x0 is the value returned for not-yet created accounts// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned// for accounts without code, i.e. `keccak256('')`bytes32 codehash;bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;// solhint-disable-next-line no-inline-assemblyassembly {codehash := extcodehash(account)}return (codehash != accountHash && codehash != 0x0);}
}
以太坊外部账户EOA与合约账户CA的区别相关推荐
- 以太坊系列(二)之账户管理
本文个人博客地址:http://www.huweihuang.com/article/ethereum/ethereum-account-management/ 1. 账户 以太坊有两种账户类型: 外 ...
- 【附代码】如何在私有链上编写、部署与以太坊进行交互的智能合约
原文:How To Write, Deploy, and Interact with Ethereum Smart Contracts on a Private Blockchain 作者:jack ...
- 以太坊加密猫Crypto Kitty合约解析
以太坊加密猫Crypto Kitty合约源码深度解析 1. 加密猫核心合约概述 Crypto Kitty 核心业务合约总共有四个:KittyAdmin.KittyContract.KittyFacto ...
- 以太坊(Ethereum) - 什么是智能合约
章节 以太坊(Ethereum) – 是什么 以太坊(Ethereum) – 什么是智能合约 以太坊(Ethereum) – 以太币 以太坊(Ethereum) – 虚拟机(E.V.M.) 以太坊(E ...
- 什么是以太坊?什么是智能合约?
以太坊是一个分布式的计算平台.它会生成一个名为Ether的加密货币.程序员可以在以太坊区块链上写下"智能合约",这些以太坊智能合约会根据代码自动执行. 以太坊是什么? 以太坊经常与 ...
- 以太坊开发------Mist使用:合约及部署合约
Mist 中的合约页面 点击Mist页面中的Contracts,可以看到合约页面 点击按钮 Deploy New Contract 按钮,可以部署一个新的合约,我们点击该按钮, 会看到的上方界面如下: ...
- 以太坊之Remix部署智能合约(Remix简介,使用,测试网络部署合约)
1.Remix简介 Remix 是一个开源的 Solidity 智能合约开发环境,提供基本的编译.部署至本地或测试网络.执行合约等功能.Solidity 是 以太坊Ethereum 官方设计和支持的开 ...
- solidity实现账户地址向合约账户转账
一个合约最多有一个 receive 函数, 声明函数为: receive() external payable { - } 不需要 function 关键字,也没有参数和返回值并且必须是 extern ...
- 如何在以太坊浏览器上上传发布合约源码(合并上传单文件方式)
区块链上的defi业务,在合约上线后为了使得业务公开透明化,往往需要上传合约代码.本文介绍一种从合约代码合并到成功发布的一条切实可行的发布路线. 〇.准备 1. 待发布的,能成功编的合约代码 2. R ...
最新文章
- c语言一个偶数用两个素数表示,用java怎样编写一个偶数总能表示为两个素数之和的程序...
- macbook所有型号大全_苹果笔记本型号大全
- 怎么查询mysql的语法_mysql查询语法
- matlab去除图片水印_(水印去除技巧)3个在线图片水印去除网站,值得收藏
- 了解mysql的undo log
- 转 常用C#正则表达式收集。
- 深入浅出Dubbo剖析出视频教程了!!!
- python期货自动交易软件_python自动股票交易软件,求比较好用的股票自动交易软件...
- abaqus2017安装后启动cae报错_超详细Abaqus2017安装教程
- CLUSTERDOWN Hash slot not served
- 拼音四线三格图片_为孩子收藏!小学汉语拼音口诀和书写规则!
- vue之ele组件中的select下拉 绑定对象值
- 身份证真伪辨别 Python
- Linux终端欢迎界面
- r语言做绘制精美pcoa图_三分钟绘制一张优美的PCoA图 | 云平台
- 高精度ua级恒流源_高精度低温漂CMOS电流源的设计
- 算命大师元真先生解读周易人生命运
- C语言设计的简单2048小游戏
- Weston 窗口管理(2)
- html 一键复制功能以及下载功能
热门文章
- AndroidStudio3.0 下载使用新功能介绍
- CF721C Journey 题解
- STP生成树的BID字段值介绍
- ARM处理器相关知识
- 合服 两个服务器都有什么作用,S2赛季转服功能介绍 第二赛季合服转服注意事项...
- Cocos2dx-lua luabindings 示例
- ffmpeg推流命令
- 华为重启交换机命令_华为交换机配置命令后需要重启吗
- 学Python?别再交智商税了......
- B+树与B树的区别、Hash索引与B+树索引的区别