私钥、公钥、地址

以太坊的私钥、公钥、地址之间的关系是,随机生成私钥、根据私钥计算出公钥、根据公钥计算出地址。

私钥是256bit,相当于32字节;用16进制表示的话,就是64个字符。

私钥的生成,本质上和选取一个1到2^256之间的数字几乎一致,其中一种方法就是在很大的空间中选择一个随机数,然后使用SHA256计算其哈希,作为私钥。

通过私钥,可以生成一个64字节的公钥,生成办法是通过椭圆曲线算法,这个算法是确定性的。

私钥进行Keccak-256计算之后,用16进制表示,保留最后20位,就是地址了。

举例:

第一步:私钥 (private key)

伪随机数产生的256bit私钥示例(256bit 16进制32字节)

18e14a7b6a307f426a94f8114701e7c8e774e7f9a47e2c2035db29a206321725

第二步:公钥 (public key)

1. 采用椭圆曲线数字签名算法ECDSA-secp256k1将私钥(32字节)映射成公钥(65字节)(前缀04+X公钥+Y公钥):

04

50863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352

2cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6

2. 拿公钥(非压缩公钥)来hash,计算公钥的 Keccak-256 哈希值(32bytes):

fc12ad814631ba689f7abe671016f75c54c607f082ae6b0881fac0abeda21781

3. 取上一步结果取后20bytes即以太坊地址:

1016f75c54c607f082ae6b0881fac0abeda21781

第三步:地址 (address)

0x1016f75c54c607f082ae6b0881fac0abeda21781

每一个地址,指向一个账户。

账户

账户是一个对象,它包含地址、余额、nonce,并且存储了状态和代码(皆可为空)。

以太坊的账户,分为两种。

第一种是外部账户,也就是我们常说的EOA,Externally Owned Accounts。

另一种是合约账户,就是Contracts Accounts。

跟随账户的属性,我们叫做状态对象(state objects)。对于外部账户,状态对象主要是余额;对于合约账户,既会有余额,也会有合约内容。

参考

以太坊地址和公钥_以太坊的私钥、公钥、地址、账户相关推荐

  1. 以太坊地址和公钥_以太坊地址是什么

    以太坊生成地址的方式跟比特币比较类似,也是 私钥 -> 公钥 -> 地址,以太坊只是在公钥 -> 地址做了简化. 以太坊使用Secp256k1椭圆曲线得到私钥.公钥,比特币使用的也是 ...

  2. c#获取本地ip地址网关子网掩码_详细介绍winformC#获得Mac地址,IP地址,子网掩码,默认网关的代码实例(图)...

    下面小编就为大家带来一篇winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1. 添加程序集 2. 引 ...

  3. 以太坊地址和公钥_以太坊交易签名解析源码解读

    上篇文章<以太坊交易签名过程源码解析[1]>从源码角度分析了一个合约调用的的签名过程,签名后的交易发送到以太坊节点后,节点需要从签名交易中还原出公钥(从公钥中单向计算出账号地址),进而将交 ...

  4. 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点

    以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...

  5. 以太坊服务器是什么_以太坊代币创建教程之服务器选择

    由于ETH以太坊钱包接点问题,国内很多位置不能完成钱包的区块自动下载,总有0.1%不到的区块不能下载完.如果要制作代币,还要等区块下载完才可以.这样就需要用到国外的服务器空间. 先搜索一下关键词-海外 ...

  6. 以太坊服务器是什么_以太坊域名解析服务Ethereum Name Service (ENS)是什么?ENS介绍...

    以太坊域名解析服务(ENS)是一个查找系统,它将信息关联到易读名称.它不仅仅是为以太坊提供的命名服务,还可为其他区块链主网服务,它提供了一种安全且去中心化的方式来使用人类可读的名称来寻址资源.这是一个 ...

  7. eos和以太坊有什么关系_以太坊 2.0是什么?

    ETH2.0 是以太坊的计划升级方案.在接下来的几年里,ETH2.0 的设计者们计划完全革新以太坊的共识系统,并引入以太坊现有的世界状态.由于涉及面极广,我们也无法准确地说明 ETH2.0 将包括或者 ...

  8. java以太坊源码分析_以太坊区块链Java(EthereumJ)学习笔记:区块链结构-Go语言中文社区...

    本文对EthereumJ的区块链相关的代码做一个简单的介绍. 以太坊区块链 以太坊区块链是在Bitcoin区块链的基础上发展起来的.区块链的数据结构既保留了Bitcoin区块链验证数据的真实性和完整性 ...

  9. 周界地址模块接线_入侵报警系统报警探测器和地址码模块的连接方法

    下面以某型号主动红外探测器为例讲述报警探测器和地址码模块的连接方法. 主动红外探测器工作原理如图: 图1 主动红外探测器工作原理如图 红外发射机通常采用互补型自激多谐振荡电路作调制,它可以产生很高占空 ...

最新文章

  1. 从父页面在iframe中调用JavaScript代码
  2. 一个“alert” 引发的血案
  3. .NET 7 预览版 2 已发布,NativeAOT 正式可用
  4. C++0x,崭新的C++,还是另一个JAVA?
  5. 编程实现 有符号乘法溢出判断
  6. Kienct与Arduino学习笔记(2) 深度图像与现实世界的深度图的坐标
  7. oracle中decode函数,行转列
  8. IP地址定位计算机,怎么通过ip地址定位到具体位置
  9. Spring Boot pom文件详解
  10. windows优化大师怎么用_用智慧和爱心经营——班主任经验交流录音稿
  11. android+自定义跑马灯,android自定义View实现跑马灯效果
  12. 【xctf之easyphp】
  13. pip安装报错:There was a problem confirming the ssl certificate
  14. 更新 macOS Ventura ssh堡垒机报错:no matching host key type found. Their offer: ssh-rsa,ssh-dss
  15. 深入理解RocketMQ Rebalance机制
  16. 牛客网 - [牛客假日团队赛5]金币馅饼(dp)
  17. Spring Cloud Stream核心原理介绍
  18. 中国陶瓷油墨行业市场供需与战略研究报告
  19. 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending
  20. 程序员的终极思维方式:系统论

热门文章

  1. 【MFC】将当前的日期转化为1970年开始的秒计数
  2. 二. 音频系统 Audio Systems
  3. PathAnimation
  4. XML命名空间和相关类简介
  5. 【个人笔记】OpenCV4 C++ 快速入门 26课
  6. win10企业版永久关闭自动更新
  7. markdown语法笔记(二)
  8. Android9.0删除高通ADsp固件(二十六)
  9. Emacs进阶之按键重映射
  10. Android内核开发:从源码树中删除出厂的app应用