以太坊--2.账户是什么---以太坊的指南针学习记录

这篇具有很好参考价值的文章主要介绍了以太坊--2.账户是什么---以太坊的指南针学习记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 基础知识

1.1 以太坊要素

以太坊作为一个区块链项目,有区块链的三个基本要素,也有特殊的两个要素。

基本要素

  • 一条区块链,完整记录着所有交易。
  • 由数个节点组成的网络。
  • 一个大家公认的共识算法。

特殊要素

  • 每个节点都具备智能合约的环境
  • 随每次交易不断变化的世界状态,世界状态指每个人账户的集合

1.2 以太币记录在哪

以太币储存在世界纪录中。世界纪录指的是每个人账户的集合,它是一份伴随交易而不断变化的数据,记载了所有以太坊账户的信息。

在每个以太坊节点都有一份相同的数据。


1.3 区块是什么

区块是有多个合法签名的交易的有序集合;

区块的组成

  • 前一区块的哈希值
  • 当前区块的哈希值
  • 一个计算工作量的参数
  • 一个时间戳
  • 该区块包含的交易列表的哈希值。

1.4 区块链是什么

区块链是有区块串联成的,一个区块内包含着数笔交易。

区块链的第一个区块,被称为创世区块。

区块时由多个合法签名的交易的有序集合,由共识算法挑选出来的合法区块逐一叠加起来的区块链就是一个巨大的账本,最早的创世区块交易记录被压在了最下方。

所以要推翻在下方的某一区块记录,就要重新计算该区块后的所有区块。导致了攻击者攻击成本的增加。


1.5 区块链网络

区块链网络是由全世界的计算机组成网络并协同运行对外提供服务,每个计算机节点都处于平等地位。没有中央服务器提供集中化的服务。

网络中的节点分化:

  • 交易发送和校验节点:不保留完整区块链数据,例如手机钱包。
  • 同步和校验节点:常年在线,参与日常区块的同步与校验工作。例如运行在服务器上的节点。
  • 矿工节点:运行在高性能专用硬件上进行挖矿(出块记账)。

虽然节点侧重不同,但在共识算法和通信协议层面都遵循统一的标准,可以视为逻辑上平等的计算机节点。


节点信息同步

以太坊间节点信息传递是将大块数据分割成小块,用点对点(P2P)传输、扩散的。

在整个自治网络中,没有中央服务器,节点可以 随时* 选择自愿加入或者离开节点网络。


2. 账户

2.1 账户的分类

以太坊账户分成两类:

  • 外部账户:外部账户由一把私钥和对应的公开地址组成,私钥在用户自己手上。既可发送/接受以太币,也可以发起部署智能合约的行为
  • 智能合约:没有私钥,它的行为由合约自身的代码逻辑来控制。

2.2 账户的数据结构

每一个账户在数据结构上具有两个元素:一个公开地址,一个与该地址关联的状态,如下图所示。


2.2.1 状态

一个账户在初次接收或者发出交易后,都会形成初始状态,每次对该账户的修改都会不断修改该状态。以太坊公链时刻维护着每一个账户的状态。


2.2.1.1 状态的四个要素
  • nonce:已执行交易总数,用来标识该账户发出的交易数量。
  • balance:持币数量,记录用户的以太余额。
  • storage hash:存储区的哈希值,指向智能合约账户的存储数据区。
  • code hash:代码区的哈希值,指向智能合约账户存储的智能合约代码。

外部账户有noncebalance

合约账户有noncebalancestorage hashcode hash存储数据区以及代码区
如下图,图来源于链接: link
以太坊账户是什么意思,区块链,以太坊,区块链,密码学


已执行总数

该值会随着交易不断增加。保障用户发出的交易是按照顺序被收纳入最终的区块链。

已执行总数用户账户地址可以联合计算合约地址,合约地址可以在用户创建智能合约时使用。


持币数量

持币数量包含该账户可花费的以太币数量。外部账户和智能合约都可以持有。


存储区的哈希值

智能合约独有属性。外部账户不包含该值。

存储区存储了智能合约在运行中产生的数据。相当于智能合约的’小硬盘’

存储区的内容通过散列函数校验出校验哈希值。该值即为存储区的哈希值。


代码区的哈希值

智能合约独有,外部账户不包含该值。代码区即为智能合约代码本身。

在合约的生命周期内是只读状态。

2.3 账户的生成

外部账户仅由私钥与公开地址组成。公开地址由私钥生成。

2.3.1 私钥的生成

私钥是一个32bytes(256bits)的随机数。用户需要一个可靠的的随机源产生随机数。私钥地址空间有 2 256 2^{256} 2256

2.3.2 公共地址的生成

  1. 选定的椭圆曲线算法(ECDSA-secp256k1)算法,带入私钥作为参数进行运算,得出的结果为公钥
  2. 公钥放入哈希算法生成哈希值,截取哈希值末40位16进制字符得到地址(160bits或者20bytes)。

2.4 账户私钥的保存

在以太坊的世界里,采用 keystore 格式加密存储是一种更加通用的方式,keystore格式可以被多数钱包APP及客户端所导入、导出。

2.4.1 私钥加密保存

keystore生成过程,历经4个步骤:

  • 通过 KDF 的算法的变种算法 Scrypt 算法,将我们选中的密码:123456,变换为一个 AES-128-CTR 对称加密算法所能采用的加密密匙 S 。
  • 使用该密匙 S 通过 AES-128-CTR 对称加密算法加密明文的以太坊私钥。
  • 将 2 步骤生成的结果保存为密文 cyphertext 。
  • 为了防止可能的篡改或数据变更,将 cyphertext 与 S 联合起来作为输入,使用 SHA3 哈希算法对该值进行带入求值,得到一个完整性校验签名。

2.4.2 私钥解密校验

keystore解密的过程与生成过程相反:
用户输入准确的密码 123456 后,通过 KDF 的 Scrypt 算法先计算出解密密匙 S’ 。
如果密码正确,S = S’ ,否则提示用户密码输入错误。
最终通过 S’,经由 AES-128-CTR 对称加密算法反向计算出私钥。

3. 学习链接

链接:link文章来源地址https://www.toymoban.com/news/detail-802361.html

到了这里,关于以太坊--2.账户是什么---以太坊的指南针学习记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能图——未来世界的指南针

    人工智能(Artificial Intelligence,AI)作为当今科技领域的重要研究方向之一,正在成为社会、经济、安全和政治等多个领域的核心驱动力。人工智能图作为AI时代的新兴产物,被认为能够成为未来世界的指南针。 一、人工智能图的定义 人工智能图(Artificial Intelligence Image,AII)是指

    2024年02月12日
    浏览(38)
  • 根据手机指南针经纬度在地图上找到其位置

    使用手机指南针获取经纬度,然后在地图上找到位置。 1、使用手机指南针获取经纬度: 2、将度分秒转换为度: 分/60+秒/3600+整数度数,得到以度为单位的数值 手机经纬度:117.1291666,31.842777 3、坐标系转换: 地图坐标系转换 - 在线工具 输入手机经纬度:117.1291666,31.842777 得到

    2024年02月09日
    浏览(26)
  • 《区块链原理与技术》学习笔记(四) ——以太坊的基本架构、账户模型和智能合约

    《区块链原理与技术》学习笔记 第四部分 三、以太坊 1. 以太坊简介 1.1 以太坊发展的阶段 1.2 以太坊与比特币对比 2. 以太坊的基本架构及原理 2.1 基本概念 2.2 状态转移 2.3 基本架构 3. 账户模型与转账 3.1 账户模型 4. 智能合约 4.1 合约账户与数据存储 4.2 驱动智能合约 以太坊

    2024年02月13日
    浏览(37)
  • 【STM32+cubemx】0029 HAL库开发:HMC5883L磁力计的应用(电子指南针)

    今天我们来学习电子磁力计HMC5883L的使用。先介绍磁力计的基础知识,再给一个获取磁力计数据的例子,最后讲解HMC5883L磁力计的校准,以及一些使用中的经验。 磁力计是用来测量磁场强弱(也就是磁感应强度)的,磁感应强度是一个矢量,我们本篇使用的HMC5883L可以用来测量

    2024年02月02日
    浏览(30)
  • 基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)

    本项目是基于单片机设计的电子指南针,主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中,指南针是一种非常实用的工具,可以帮助我们确定方向,特别是在户外探险、航海、定位等场景中。传统的

    2024年02月04日
    浏览(40)
  • 以太坊的账户

    以太坊的账户模式 BTC系统是基于交易的账本,这种模式下,系统中没有显式的记录某个人有多少BTC,只能通过UTXO进行推算。这种模式的好处是你有多少钱,你自己都不一定清楚,但实际中,使用起来较为别扭,跟日常体验不太一样呢:A转给B钱的时候,需要说明币的来源。实

    2024年02月06日
    浏览(31)
  • 什么是Ethereum以太坊(ETH)?以及以太坊的一些基础知识

    Ethereum以太坊(ETH)是由Vitalik Buterin所创建,一种允许智能合约和去中心化应用程序(dapps)在其网络上运行的加密货币。 以太坊是仅次于比特币的第二大加密货币,它是一个基于区块链的平台,用于创建去中心化应用程序(dapps)。 比特币被设计成一种货币和价值储存手段,而

    2024年02月03日
    浏览(29)
  • 《区块链原理与技术》学习笔记(五) ——以太坊的交易、共识机制和数据结构

    《区块链原理与技术》学习笔记 第五部分 5. 以太坊交易 5.1 交易内容 5.2 交易费用 5.3 交易的周期 5.4 交易的执行类型 6. 以太坊的共识机制 6.1 解决以太坊分叉:Ghost协议 6.2 新的共识机制:PoS 7. 以太坊挖矿难度调整 7.1 自适应难度调整 7.2 难度炸弹 8. 数据结构与存储 8.1 区块和

    2024年02月12日
    浏览(34)
  • 区块链技术学习笔记(14) 以太坊账户

    比特币系统中采用的是基于交易的账本,在这个模式下并不会显式记录每个账户上会存在多少钱,而是根据UTXO推断余额,既计算拥UTXO中有私钥的币总和,隐私保护较好,使用并不太方便(在交易的时候要证明每一个币的来源,并且在一次交易收到的币UTXO,消费的时候必须全

    2024年02月19日
    浏览(34)
  • 以太坊的ecrecover预编译合约

    前序博客: ECDSA VS Schnorr signature VS BLS signature ECDSA,全称为Elliptic curve Digital Signature Algorithm,采用Elliptic curve cryptography来实现的数字签名算法。 公私钥对 ( p k , P ) (pk,P) ( p k , P ) ,其中公钥 P = p k × G P=pktimes G P = p k × G , G G G 为所选椭圆曲线的base point。(elliptic curve base po

    2024年02月02日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包