写在前面 一直酝酿着要写这样一篇文章 。 这是一篇写给非技术同学看的技术文 。 但本文企图做得比大多数科普文更深入一些:我们探讨以太坊的技术本质 , 希望让具有大众计算机使用水平的同学对以太坊的技术框架有一个初步的明确概念 。
如读者不是只想了解几个时髦的Web3词汇作为谈天的资本 , 而是准备投身拥抱Web3 , 那么无论本职工作是否做技术 , 能对以太坊的底层原理有本质性一些的理解 , 肯定不是坏事 。
作者开始深入Web3和以太坊的时候 , 作为技术出身的人 ,也深感这个世界众多基础概念的全新性 。
当然 , 也见过一些才学过人的朋友 , 比如团队的产品经理帅哥 , 从零入门到成长为Web3区块链的专家完全无障碍 , 不仅做得一手好产品设计 , 还能冲在最前线替技术部门做技术难点攻关 。
但这样的人实在太少了 。 对于大多数人 , 作者认为Web3的入门学习曲线可能是比较陡峭的 。 许多人或许还停留在知其然不知其所以然的阶段 。
因此 , 萌生了这个想法 , 写一篇给所有非技术背景而需要真正理解Web3区块链的朋友们 , 把非技术背景的朋友们值得了解的技术知识点 ,用一种能听得懂的方式讲出来 。 写这样的技术内容 , 还指望写得深入浅出不枯燥 ,挑战真的很大 。 但如果它确实小小帮助了那些不做技术的朋友们更深入的理解了以太坊 , 本文目的就达到了 。
以太坊是一个计算机 以太坊是什么?
当然 , 已经有很多的文章讲以太坊 , 读者多少了解过的话 , 应知道以太坊是第二代区块链网络(有别于第一代比特币网络) , 以太坊的通用货币叫做以太币 。 在以太坊之上能运行以智能合约为基础的分布式应用(dapp) 。
先看看百度百科上以太坊的词条:以太坊(英文Ethereum)是一个开源的有智能合约功能的公共区块链平台 , 通过其专用加密货币以太币(Ether , 简称“ETH”)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约 。
这个解释没问题 。 大家也都知道以太坊是一个公共区块链平台 。
但如果从技术角度深入一点点去理解以太坊 , 以太坊的本质本质 , 可能会让读者有些意外:以太坊本质上是一个世界性的通用计算机 。 而基于它的全球分布式特性 , 它无疑是世界性的 。
为什么说以太坊是计算机?
以太坊的缔造者们从一开始就希望把以太坊网络打造用于通用计算目的 。 这是一个非常美好的设想:使用分布式网络构建一个全世界人们都可以参与的通用计算系统 。 注意 , 和现在的主流互联网体系不同 , 以太坊分布式网络是统一的单一整体 。 在计算机科学上 , 我们说以太坊整体是一个图灵完备的状态机 。
“图灵完备”这词太学究了 , 读者只需了解 , 这代表了可以进行通用计算的能力 。 这点以太坊和第一代比特币网络是完全不同的:比特币网络没有通用计算能力 。
另外 , 所谓“状态机”又是什么呢?
这个更好理解 , 用个人计算机做类比:当计算机运转时 , CPU从内存载入指令和数据进行运算 , 计算完毕后把中间运算结果保存在内存(更新“状态”) , 然后进行下一次的载入和计算 。 类似这种需要保存状态的逻辑机器就是状态机 。
尽管上面的解释把计算机的运行方式做了特别简化的描述 , 但现在的计算机系统本质上就是一个“计算-保存状态-再计算”的所谓图灵完备状态机 。
那么以太坊呢 , 说它是一个通用计算机 , 也就是说以太坊整体上也是一个“计算-保存状态-再计算”的逻辑机器 。
只是和个人计算机把状态保存在机器的内存(进而记录在硬盘) 不同 , 以太坊的“状态” , 记录在分布全球的数以万计的节点上 。
以太坊的突破性创新在于 , 它把存储程序计算机这样的通用目的计算架构与去中心化区块链相结合 , 因此创建了一个分布式的单体状态世界计算机 。
无论以太坊的程序运行在任何地方 , 都能够产生一致的状态 , 通过全体共识规则确保数据正确和安全 。
以太坊的数据记录方式是在每个节点上都保存同一份信息 。
也就是说 , 任意一个以太坊节点 ,都记录着以太坊网络的全部信息 。 特别形象的 , 这样的节点叫做“全节点” 。 这意味着以太坊网络的全部状态信息都完整同步在每一个节点上 。
推荐阅读
- 2018年,广西未婚女子收到离婚诉讼,要求退回对方7万元彩礼
- 如果不看月亮,月亮还存在吗?中观论:世界由相似片段构成连续性
- 昆明女子花11万网购口罩,2年了还没收到?主播:钱都输了!
- 为什么身边的人炒股都赚钱了,就自己亏钱?因为太相信自己的眼睛
- 4.21早评:A股是否已进入长假效应?3121点能否止跌?
- 市值一天缩水300亿!智飞生物该如何“渡劫”?
- A股明天又有“巨无霸”上市,市场能承受吗?
- 主力交易员坦率直言:主力有多少筹码? 看懂炒股赚钱并不难
- 中国股市:炒股的都知道“筹码分布”很重要,那该如何看筹码?