进入web3之后,购买的第一个加密货币就是ETH,想从开发者的视角,从技术的方面对以太坊进行一些深入的了解。《精通以太坊》这本书是一本非常全面的指南,两位作者也是区块链世界中鼎鼎大名的专家,并且Gavin Wood 还是Solidity的发明人和以太坊的联合创始人。
本书在网上已经有开源的中文版本,可以一起学习
从计算机科学的角度来看,以太坊是一个具备确定性但实际上却没有边际的状态机。它有两个特点:具有一个全球范围可访问的单体状态;还有一个执行状态更改的虚拟机。
从更实际的角度来看:以太坊是一个开源的,去中心化的计算基础架构,可以执行被称为智能合约的程序。它使用区块链同步和保存系统状态,借助以太币这种数字货币来计量并控制程序执行的资源开销。
共同点:一个链接各方的点对点网络、一个同步状态的拜占庭容错共识算法(pow)、数字签名和哈希等密码学原理、数字货币。
不同点:以太坊的主要目的不是成为数字货币的支付网络,而是被设计为通用可编程区块链,他的虚拟机能执行任意和无线复杂的代码,并且以太坊的语言是图灵完备的,而比特币的脚本语言只有对简单的支付条件进行真假判断。以太币的主要目的也是作为一种效用货币来支付以太坊这个“世界计算机”所产生的花费。
一个链接各方的点对点网络,传播交易和区块链数据包,运行在以太坊主网上
以交易形式体现的消息,代表状态的转换。包含发送方、接收方、价值和数据荷载
一组共识规则,用于管理构成交易的内容以及实现有效的状态转换
一个状态机,根据共识规则处理交易
一组串联在一起的,加密算法保证其安全的区块:经过哈希处理的数据保存在Merkle Patricia Tree数据结构内
一个共识算法:之前是由pow加权重要性来确定最长链,从而确定状态,现在由pos的加权投票系统决定。
在博弈论上合理的激励方案(pow,pos区块奖励)经济地保护状态机
开源软件实现(”客户端“):最广泛的是Geth和Parity
以太坊开发计划分为四个阶段,每个阶段以”硬分叉“的方式发布,也意味着这次发布所做出的改变将无法向后兼容之前的旧版本。这四个阶段分别为 Frontier、Homestead、Metropolis和Serenity
以太坊能够执行存储在区块链上的程序的能力,是由EVM状态机完成的。能从存储中读取和写入数据让这个状态机成为图灵完备的系统,满足通用图灵计算机的定义,在给定无限内存情况下,以太坊可以计算任何图灵机可以计算的算法。但是根据图灵的理论,真正运行合约之前,以太坊无法预先判断一个合约是否会进行终止,有可能会造成节点资源的浪费。于是以太坊引入了gas的计量机制。EVM执行智能合约时,会仔细计算每一个执行指令的开销,以gas为单位,并且每个交易必须包含交易所需要的开销上限。如果gas超过上限则EVM会中指当前合约执行。
web3首先由Gavin Wood 提出,代表从集中化和统一管理的应用,到构建与去中心化协议之上的应用。
以太坊让区块链的学习曲线变得不那么陡峭,可以快速上手,也是我们了解区块链的一个优秀的平台。