区块链学习笔记(1)

文章详细介绍了以太坊的两种账户类型——外部账户和合约账户,它们在EVM(以太坊虚拟机)中的作用和区别。EVM为智能合约提供运行环境,并通过Gas系统保障网络的安全与效率。此外,提到了以太坊客户端的角色和Gas在防止恶意操作中的功能,以及区块链浏览器在查看链上数据中的应用。

账户

都使用20个字节表示

外部账户(EOA):由私钥控制,不可恢复

合约账户:代码控制

外部账户与合约账户在EVM层面是等效的,都有:nonce(交易序号)、balance(余额)、storageRoot(状态)、codeHash(代码)

两者在表现上不同:

交易只能从外部账户出发,合约只能被动相应执行

合约之间的交互通常称为消息,所有的gas只能由外部账号支付

以太坊三种交易

普通交易

 

创建合约

 

调用合约

EVM以太坊虚拟机

“虚拟机”是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。而以太坊虚拟机顾名思义则是建立在以太坊区块链上的一个抽象的机器,它可以使在其上面运行的程序彼此隔离,并且与主链分离。 

EVM的功能

1.为智能合约提供运行时环境

如果没有EVM,部署智能合约将是徒劳的。EVM为执行智能合约代码提供了一个安全的沙盒环境。

2.作为分散处理单元运行

EVM为以太坊协议提供动力,并为其提供创建分散应用程序(DAPP)所需的可编程性。每次交易或智能合约执行都在EVM中执行。

3.跟踪状态变化

EVM监控以太坊世界状态的变化。以太坊语言中的状态指的是在任何时间点对以太坊协议的描述。以太坊的状态包括账户余额、合同代码、合同存储等。

发送ETH、执行代码或创建合约等操作会导致状态发生变化。EVM的工作是更新以太坊网络状态以反映这些变化。

以太坊客户端

以太坊客户端:EVM 载体、网络中的节点程序
• 只要符合共识-规范,(几乎)任何语言都可以实现客户端
• 常⻅的客户端(TheMerge 之后)
• 执行层:Geth(Go 实现)、Nethermind(C#实现)、Erigon(go)
• 共识层:Prysm(Go)、Lighthouse(Rust 实现)
• 通过 RPC 提供服务
• 节点服务商: Infura, alchemy

Gas

Gas是在EVM环境中执行代码的资源,以“gwei”(以太单位)为单位。就像你在现实生活中需要汽油来驱动汽车一样,EVM也需要汽油来执行操作。

“操作码”可以用来在EVM中执行不同操作的特定指令。Gas只是执行特定操作所需的计算资源量。

每次代码执行都会产生一笔Gas费,这取决于许多因素,比如操作的复杂性和网络范围的需求。汽油费激励个人将计算能力借给以太坊。如果没有Gas费,EVM就不能像一台分散的计算机一样工作。

Gas还有另一个用途:防止执行恶意操作,如分布式拒绝服务(DDoS)攻击。虽然EVM几乎可以运行任何计算,但很难预测每个操作的运行时间。

精心设计的恶意操作可以无限运行,导致网络失去稀缺的计算能力,最终崩溃。Gas燃料费用通过迫使恶意参与者为计算过程中执行的每一步付费来防止这一问题。

在开始一个操作之前,你必须指定一个“燃料极限”:你愿意在计算上花费的最大Gas量。一旦超过Gas极限,计算立即停止。这再次阻止任何人部署可能威胁以太坊健康的“无限循环”计算。

区块链浏览器

区块链浏览器是链上数据可视化的主要窗口。它可以记录和统计不同区块链网络(主要是公链)的每个区块、每笔交易以及地址等信息。

• 查看交易(交易hash、gas、)
• 查看 Token 信息
• 查看源代码
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值