# 精通以太坊（一）

By [WODECHE](https://paragraph.com/@wodeche) · 2022-09-27

---

     进入web3之后，购买的第一个加密货币就是ETH，想从开发者的视角，从技术的方面对以太坊进行一些深入的了解。《精通以太坊》这本书是一本非常全面的指南，两位作者也是区块链世界中鼎鼎大名的专家，并且Gavin Wood 还是Solidity的发明人和以太坊的联合创始人。

本书在网上已经有开源的中文版本，可以一起学习

[https://github.com/inoutcode/ethereum\_book](https://github.com/inoutcode/ethereum_book)

第1章 什么是以太坊？
-----------

从计算机科学的角度来看，以太坊是一个具备确定性但实际上却没有边际的状态机。它有两个特点：具有一个全球范围可访问的单体状态；还有一个执行状态更改的虚拟机。

从更实际的角度来看：以太坊是一个开源的，去中心化的计算基础架构，可以执行被称为**智能合约**的程序。它使用区块链同步和保存系统状态，借助**以太币**这种数字货币来计量并控制程序执行的资源开销。

### 以太坊与比特币的比较

共同点：一个链接各方的点对点网络、一个同步状态的拜占庭容错共识算法（pow)、数字签名和哈希等密码学原理、数字货币。

不同点：以太坊的主要目的不是成为数字货币的支付网络，而是被设计为通用可编程区块链，他的虚拟机能执行任意和无线复杂的代码，并且以太坊的语言是图灵完备的，而比特币的脚本语言只有对简单的支付条件进行真假判断。以太币的主要目的也是作为一种效用货币来支付以太坊这个“世界计算机”所产生的花费。

### 以太坊区块链的组件

*   一个链接各方的点对点网络，传播交易和区块链数据包，运行在以太坊主网上
    
*   以交易形式体现的消息，代表状态的转换。包含发送方、接收方、价值和数据荷载
    
*   一组共识规则，用于管理构成交易的内容以及实现有效的状态转换
    
*   一个状态机，根据共识规则处理交易
    
*   一组串联在一起的，加密算法保证其安全的区块:经过哈希处理的数据保存在_Merkle Patricia Tree_数据结构内
    
*   一个共识算法：之前是由pow加权重要性来确定最长链，从而确定状态，现在由pos的加权投票系统决定。
    
*   在博弈论上合理的激励方案（pow,pos区块奖励）经济地保护状态机
    
*   开源软件实现（”客户端“）：最广泛的是_Geth_和_Parity_
    

### 以太坊的四个开发阶段

以太坊开发计划分为四个阶段，每个阶段以”硬分叉“的方式发布，也意味着这次发布所做出的改变将无法向后兼容之前的旧版本。这四个阶段分别为 _Frontier_、_Homestead_、_Metropolis_和_Serenity_

### 以太坊和图灵完备

以太坊能够执行存储在区块链上的程序的能力，是由EVM状态机完成的。能从存储中读取和写入数据让这个状态机成为图灵完备的系统，满足通用图灵计算机的定义，在给定无限内存情况下，以太坊可以计算任何图灵机可以计算的算法。但是根据图灵的理论，真正运行合约之前，以太坊无法预先判断一个合约是否会进行终止，有可能会造成节点资源的浪费。于是以太坊引入了gas的计量机制。EVM执行智能合约时，会仔细计算每一个执行指令的开销，以gas为单位，并且每个交易必须包含交易所需要的开销上限。如果gas超过上限则EVM会中指当前合约执行。

### web3浪潮

web3首先由Gavin Wood 提出，代表从集中化和统一管理的应用，到构建与去中心化协议之上的应用。

### 为什么要学习以太坊？

以太坊让区块链的学习曲线变得不那么陡峭，可以快速上手，也是我们了解区块链的一个优秀的平台。

---

*Originally published on [WODECHE](https://paragraph.com/@wodeche/Mz97K9Aucy9am3K2dicd)*
