banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

Solidity.1.以太坊核心概念

https://decert.me/tutorial/solidity/intro

Solidity 是专为以太坊平台设计的编程语言

1 账户#

  1. 外部用户账户 (EOA)
  2. 合约账户

特点:
地址格式相同,20 字节的 16 进制数
交易只能由外部账户发起,所有 Gas (手续费) 由外部账户支付

2 账户状态#

四个基本组成部分:
nonce:
分两种 1 - 一个账户的交易数量,2 - 工作量证明 nonce (用于计算满足工作量证明的随机数)
EOA:从此账户发送的交易序号
合约账户:此账户创建的合约序号
balance:
拥有的以太币余额数量,单位:Wei, 1ether = 10^18 wei,以太币交易时,balance 会改变。EOA 和合约账户都有 balance;合约账户使用代码管理所拥有的资金,外部用户账户则是使用私钥签名来花费资金;合约账户存储了代码,外部用户账户则没有。
storageRoot:
Merkle Patricia 树的根节点哈希值。Merkle 树会将此账户存储内容的哈希值进行编码,默认是空值。
codehash:
账户代码的 hash 值。
合约账户:合约代码被 hash 计算后的结果作为 hashcode 保存
EOA:空字符串 hash 值
可视化示例来总结上述内容:
image

3 以太币#

以太坊的货币,类似于法币中不同的面额,用户最常用的是 ether,开发者常用的是 wei,wei 是以太币中的最小单位,还有两个单位是 finney 和 szabo,wei 的衍生单位:Kwei、Mwei、Gwei

1 ether = 10^3 finney(即1000 finney)
1 ether = 10^6 szabo
1 ether = 10^18 wei
1 Gwei = 10^9 wei
1 Mwei = 10^6 wei

4 以太坊虚拟机 (EVM)#

一种虚拟计算机,用于执行智能合约与 Dapp,EVM 是以太坊核心组件之一,负责处理和执行智能合约代码。
工作原理与传统虚拟机类似,它专门用于区块链和智能合约。他是以太坊上的自动化合同。
执行智能合约:将智能合约字节码加载到内存,按照预定规则执行。
gas:防止恶意代码无限循环消耗资源。

5 以太坊客户端#

是连接到以太坊网络的节点程序,EVM 是客户端的重要组成,运行节点程序,即可成为以太坊网络节点之一。
两个层次
执行层:
负责处理交易执行,包括智能合约的部署执行
共识层:
负责处理共识算法,即出块和交易
执行层客户端:
Geth(官方 - Go 语言实现)、Nethermind(C# 实现)和 Erigon(Go 语言实现)。这些客户端用于处理以太坊网络上的智能合约操作和交易执行。
共识层客户端:
Prysm(Go 语言实现)和 Lighthouse(Rust 实现)。这些客户端用于参与共识过程,确保区块链网络的一致性和安全性。

6 钱包#

管理账户的重要工具,可以使用钱包创建账户、交易签名,连接到区块链节点来执行交易。钱包本身并不存储用户的资产,而是管理访问这些资产的密钥和签名功能。
常见的移动端钱包 ImToken、Trust Wallet
网页钱包:metamask、Phantom (Solana)

7 Gas 机制#

防止恶意行为而引入,衡量执行操作需要的工作量的单位。相当于手续费

8 以太坊交易#

三种类型

  1. 普通交易
  2. 创建合约
  3. 调用合约函数
{
  "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85",
  "value": 0.0005,
  "data": "0x" // 可以包含消息或留言
}
这是一个非常简单的普通交易,它将一定数量的以太币转移到指定地址,
如果愿意,还可以在交易中包含一条消息。
{
  "to": "0x687422eEA2cB73B5d3e242bA5456b782919AFc85", // 合约地址
  "value": 0.0,
  "data": "0x06661abd"
}
调用智能合约函数的信息封装在DATA字段中,将此交易信息发送到要调
用的智能合约的地址。假设我们要调用前面的count()函数,传递的
count()函数的选择器。
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。