地方门户网站还能做吗,wordpress只能显示字,沈阳建网站,网站建设丿金手指下拉9文章目录 1. 以太坊账户类型2. 以太坊网络架构2.1 节点类型2.2 交易流程 3. 共识机制4. Gas 机制4.1 Gas 计算方式4.2 以太坊 EIP-1559 交易机制 5. EVM#xff08;以太坊虚拟机#xff09;5.1 EVM 结构5.2 EVM 指令5.3 EVM 运行机制 6. 智能合约7. ERC 代币标准7.1 ERC-207.… 文章目录 1. 以太坊账户类型2. 以太坊网络架构2.1 节点类型2.2 交易流程 3. 共识机制4. Gas 机制4.1 Gas 计算方式4.2 以太坊 EIP-1559 交易机制 5. EVM以太坊虚拟机5.1 EVM 结构5.2 EVM 指令5.3 EVM 运行机制 6. 智能合约7. ERC 代币标准7.1 ERC-207.2 ERC-7217.3 ERC-1155 8. Layer 2 解决方案8.1 Optimistic Rollups8.2 ZK-Rollups零知识汇总 1. 以太坊账户类型
以太坊的账户分为 外部账户EOA 和 合约账户CA两者在控制方式和交易能力上有所不同。
1.1 外部账户EOA, Externally Owned Account EOA 由用户私钥控制可以主动发起交易。EOA 没有代码逻辑仅用于存储余额和签署交易。用户钱包如 MetaMask即为 EOA。EOA 主要用于发送 ETH 转账、与智能合约交互或发起交易。
EOA 交易的有效性由私钥签名保证矿工验证签名后执行交易。如果 EOA 没有足够的 ETH 支付 gas 费用则交易无法执行。由于 EOA 可以主动发起交易因此在 DeFi、NFT 交易等应用中EOA 主要负责调用合约。
例如Alice 拥有一个 EOA 地址她可以向 Bob 发送 1 ETH也可以调用 Uniswap 合约来兑换代币。每次交易都需要 Alice 使用私钥进行签名。
1.2 合约账户CA, Contract Account CA 由智能合约代码控制没有私钥不能主动发起交易只能响应 EOA 或其他 CA 的交易请求。合约代码在部署时写入区块链并且在执行时只能按照预设逻辑运行。
合约账户可以存储数据和执行复杂操作例如去中心化交易所DEX合约可以管理多个用户的资产并根据市场规则进行交易撮合。CA 的执行依赖 EVM以太坊虚拟机并且所有合约调用都会消耗 gas 费。
由于 CA 不能主动发起交易因此它的行为完全受制于外部调用。例如Uniswap 智能合约本身不会主动买卖代币而是等待用户EOA发送交易请求触发合约执行 swap 逻辑。
2. 以太坊网络架构
以太坊网络由多个分布式节点组成这些节点共同维护区块链的运行并执行交易验证、共识达成和数据存储等关键任务。不同类型的节点在网络中的作用各不相同包括全节点、轻节点和验证者节点。
2.1 节点类型
全节点 作用全节点存储整个以太坊区块链数据验证所有交易和智能合约执行并向其他节点提供数据同步服务。它可以独立验证区块和交易而无需依赖其他节点的信任。
特点
存储完整的区块数据包括区块头、交易和账户状态。通过 P2P 网络传播交易和新区块支持网络同步。验证所有交易和智能合约的执行确保数据完整性。可以作为 RPC 提供商为 DApp 和钱包提供区块链数据查询服务。
全节点的类型
存档节点Archive Node存储从创世区块到最新区块的所有状态数据包括所有账户的历史状态。适用于区块浏览器如 Etherscan、分析平台和开发者。普通全节点Full Node存储完整的区块数据但不保留历史状态仅保存当前的账户状态和合约数据。适用于大多数普通用户和矿工/验证者。
轻节点 作用轻节点不存储完整的区块链数据而是仅下载区块头并通过简化支付验证SPV, Simplified Payment Verification向全节点请求所需的数据以验证交易或查询账户状态。
特点
仅存储区块头而不保存完整的交易和账户状态数据。需要向全节点请求数据以查询账户余额、交易状态等信息。消耗较少的存储空间和计算资源适用于移动设备或低性能设备。
验证者 作用以太坊在升级为 PoS权益证明后矿工被验证者取代。验证者负责参与共识打包交易并提议新区块同时对其他验证者的提议进行投票。
特点
需要 质押 32 ETH 才能成为验证者并被添加到以太坊的验证者集合。通过 Casper FFG LMD-GHOST 共识机制 选出验证者每 12 秒出块一次。如果被选为出块者提议者需收集交易、执行合约并生成新区块。其他验证者对区块进行投票Attestation确保区块的有效性。作恶如双签、离线会被惩罚Slash质押 ETH 可能部分或全部被罚没。
2.2 交易流程
1、用户构造一个交易包含发送者、接收者、Gas 费用、签名等信息。 2、将交易布局到区块链网络。 3、验证者检查交易余额检查、签名验证、Nonce 验证等。 4、验证成功后交易被打包进区块并被存储。 5、区块被添加到区块链交易完成确认。
3. 共识机制
在【区块链安全 | 第二篇】区块链概念详解有介绍过。
4. Gas 机制
在以太坊中Gas 是计算资源的度量单位用于衡量执行智能合约或交易所需的计算量。每个操作例如存储数据、执行计算都有固定的 Gas 费用。
在链上交易会消耗一定金额作为支付给矿工PoW或验证者PoS的手续费即Gas。
4.1 Gas 计算方式
Gas 计算方式
4.2 以太坊 EIP-1559 交易机制
以太坊伦敦升级EIP-1559引入了一种新的交易费用机制
基础费用Base Fee随网络负载动态调整直接销毁不给矿工。优先费用Priority Fee小费给矿工的额外奖励加快交易确认。 5. EVM以太坊虚拟机
以太坊虚拟机Ethereum Virtual MachineEVM是以太坊智能合约执行的核心它提供了一个图灵完备的计算环境能够在不同的以太坊节点上执行智能合约代码并保持一致性。EVM 运行字节码Bytecode由 Solidity、Vyper 等高级语言编译而成。
5.1 EVM 结构
EVM 运行时主要由存储Storage、内存Memory和堆栈Stack组成负责数据存储和指令执行。
存储Storage 存储合约的持久化数据例如变量状态、映射、数组等。 每个合约拥有独立的存储空间不同合约的存储互不影响。 数据存储在 Merkle Patricia Trie 结构中可通过 SSTORE存储 和 SLOAD读取 操作。 存储成本高存储新数据需要大量 Gas而减少存储例如删除变量可以返还 Gas。
内存Memory 运行时的临时数据存储区域适用于函数执行期间的计算数据。 交易执行结束后内存数据会自动清空。 访问内存比存储便宜但仍然有 Gas 成本内存大小随着使用增加而扩展增长时消耗 Gas。 Solidity 中的 bytes、string 等动态数据结构在函数执行时存储于内存中。
堆栈Stack EVM 的核心计算区域用于存储操作数和执行计算。 堆栈最大深度为 1024 层超出限制会导致 STACK OVERFLOW 错误。 EVM 指令大多数是基于堆栈操作的例如 PUSH压入、POP弹出、ADD加法等。 Solidity 的局部变量和函数参数通常存放在堆栈中。
5.2 EVM 指令
EVM 运行的是字节码Bytecode字节码由一系列低级指令Opcode组成每个指令对应一个 1 字节的操作码如 0x60 代表 PUSH1。指令主要分为堆栈操作、算术运算、存储操作 和 控制流 等。
1、堆栈操作
2、算术运算
3、存储和内存操作
4、控制流
5.3 EVM 运行机制
1、智能合约执行 用户或合约调用合约函数EVM 解析交易数据调用相应的合约代码。 代码由 Solidity 编译成字节码并在 EVM 内执行。 交易结束后EVM 确保合约状态一致性成功交易被打包进区块链。
2、Gas 机制 计算资源CPU、存储、内存消耗 Gas防止死循环和资源滥用。
操作复杂度越高消耗 Gas 越多。例如
ADD加法3 GasSSTORE存储变量最大 20,000 GasCALL合约调用700 Gas 额外计算费用
3、沙盒环境 EVM 运行智能合约时不能访问外部网络、文件系统或系统资源确保去中心化安全性。
6. 智能合约
在【区块链安全 | 第二篇】区块链概念详解有介绍过。
Solidity 是以太坊的主要智能合约语言。
7. ERC 代币标准
以太坊上的 ERCEthereum Request for Comments标准定义了智能合约的接口使开发者可以创建兼容的钱包、交易所和 DApp去中心化应用。最常见的代币标准是 ERC-20同质化代币 和 ERC-721非同质化代币它们分别用于代表可替代代币如 USDT、DAI 和NFT如 BAYC、CryptoPunks。
7.1 ERC-20
ERC-20 是最广泛使用的代币标准之一用于创建可替代代币Fungible Token。这些代币具有相同的属性可以自由交换没有唯一性。例如1 USDT 和另一个 1 USDT 没有区别。
ERC-20 规定了一组智能合约的接口使代币可以在钱包、交易所和 DApp 之间互操作。 应用场景
稳定币StablecoinUSDT、DAI、USDCDeFi去中心化金融代币UNI、AAVE、COMP治理代币MKR、ENS游戏内资产AXS、SAND
7.2 ERC-721
ERC-721 是 NFTNon-Fungible Token非同质化代币的标准。NFT 具有唯一性每个代币都是独一无二的适用于数字艺术、游戏资产、收藏品、虚拟土地等场景。
ERC-721 规定了一组智能合约的接口使 NFT 可以在NFT 交易市场如 OpenSea、游戏和 DApp 之间互操作。 应用场景
NFT 艺术Bored Ape Yacht ClubBAYC、CryptoPunks虚拟土地DecentralandMANA、The SandboxSAND游戏资产Axie Infinity、Gods Unchained
7.3 ERC-1155
ERC-1155 结合了 ERC-20 和 ERC-721允许单个合约管理多种代币同质化 非同质化。
关键特点 支持同质化FT和非同质化NFT代币。 一个交易可以批量转移多个代币减少 Gas 费。 智能合约更高效减少部署和管理多个代币合约的成本。
关键方法
8. Layer 2 解决方案
以太坊主网Layer 1面临以下问题 以太坊当前 TPS每秒交易数约为 15-30吞吐量有限无法满足大规模应用需求。 由于区块空间有限交易费用经常飙升。 交易需要多个区块确认延迟高导致用户体验较差。
Layer 2L2是针对以太坊主链Layer 1扩展性问题的解决方案主要目标是提高交易吞吐量、减少 Gas 费用同时确保安全性。L2 通过在主链之外执行大部分交易计算并仅将最终结果提交到以太坊来减少主链的负担。
Rollups 是目前最主流的 Layer 2 解决方案它将交易计算放在链下仅将压缩后的交易数据提交到以太坊主网。Rollups 主要分为 Optimistic Rollups乐观汇总 ZK-Rollups零知识证明汇总
8.1 Optimistic Rollups
Optimistic Rollups 采用乐观假设默认所有交易都是有效的只有在交易被挑战时才会执行计算。
特点 无需即时计算只提交交易数据降低成本。 挑战机制如果有恶意交易用户可提交欺诈证明Fraud Proof要求 Rollup 重新执行交易。 适用于 DeFi 和复杂智能合约如 Arbitrum、Optimism。
工作原理 交易在 L2 执行结果提交到 L1。 交易有 7 天的挑战期如果有欺诈行为挑战者可以提供欺诈证明。 如果交易未被挑战则默认有效。
8.2 ZK-Rollups零知识汇总
ZK-Rollups 采用零知识证明Zero-Knowledge Proofs, ZKP每批交易都会生成有效性证明并提交到主链。
特点 所有交易提交时都会生成数学证明主链无需等待挑战期。 采用 Merkle 树和 SNARK/STARK 技术减少数据提交量。 适用于支付、NFT 交易等高频交易如 zkSync、StarkNet。
工作原理 交易在 L2 执行并生成零知识证明SNARK/STARK。 证明连同交易数据提交至以太坊 L1。 以太坊验证 ZK 证明确保交易正确性。