# 区块链底层架构 **Published by:** [road2web3](https://paragraph.com/@road2web3/) **Published on:** 2022-09-11 **URL:** https://paragraph.com/@road2web3/DWkKDMJ6NzOdjvZz9WfL ## Content 比特币架构根据中本聪的论文“Bitcoin: A Peer-to-Peer Electronic Cash System”中对于比特币的描述,可以归纳出比特币的架构图示。比特币架构我们按照靠近用户的使用为上层,原理用户的操作为下层。整个比特币系统从下往上依次是存储池、数据层、网络层、共识层、RPC层、应用层。学过计算机网络的同学对于分层的思想应该是不陌生的,在网络模型中也有类似的说法。分层只是逻辑、功能上的划分,并无物理痕迹。 存储层主要用来存储比特币系统运行的日志数据以及区块链元数据等。 数据层主要用来处理比特币交易系统中的各种数据。比如区块的生成、将交易打包到区块、将区块维护称为链状结构、对区块的内容进行加密以及哈希运算、设置时间戳、将交易数据构建成Merkle树等。该部分主要涉及到密码学相关知识。 网络层用于构建比特币系统通讯的P2P网络。 共识层主要采用了PoW算法。在上述我们提及到了需要将交易打包到区块中,那么区块链网络中有众多的节点,选择哪个节点机器来打包数据呢?网络中的每个节点都会不断地去运算一个随机数(Nonce),直至找到符合条件的随机数为止。最先找到该数的节点将会得到打包区块的权利,并且会得到一定的比特币奖励。这一过程称之为挖矿。而这里面涉及的算法就是PoW,也就是工作量证明机制。通过告知系统结果来体现出你的工作量。 RPC层实现了RPC服务。 应用层承载了比特币系统中的众多应用。比如比特币钱包、比特币客户端等。以太坊架构根据以太坊白皮书《A Next-Generation Smart Contract and Decentralized Application Platform》的描述,以太坊的架构如下以太坊架构以太坊的架构和比特币非常的类似。了解以太坊发展历史的同学应该知道vitalik是在比特币的基础上,发明了以太坊。以太坊的架构从下往上依次为存储层、数据层、网络层、协议层、共识层、合约层、应用层。 存储层主要用来存储以太坊系统运行时的日志数据以及区块链元数据。 数据层主要用于处理以太坊交易中的各类数据,比如将数据打包到区块中、将区块链接成链状结构、对区块的内容进行加密以及哈希运算、设置时间戳、将交易数据构建成Merkle树等 网络层同样是构建以太坊通讯的P2P网络。 协议层是以太坊提供的供系统各模块相互调用的协议支持。 共识层在以太坊中有PoW以及PoS两种算法。在编写本文时,以太坊正值共识层算法切换,也就是ETH 2.0 the Merge。PoW以及PoS是两种比较常用的共识算法。工作量证明(PoW)在前面有介绍过,这里不再赘述。权益证明(PoS)指的是在选择谁作为打包区块的节点时,不再使用之前的工作量证明那套算法,而是依据节点所持有的ETH数量以及持有的天数,简称之为币天。币天越大,越有机会获得打包的权利。打包区块的节点同样系统会给与相应的奖励。由PoW转换成PoS可以减少99%的能源消耗。以太坊合并倒计时合约层可以分为两层。底层是EVM(Ethereum Virtual Machine),也就是以太坊虚拟机。上层是智能合约层。智能合约需要运行在EVM中。在以太坊系统中,智能合约的默认编程语言是Solidity。在编写本文时,又出现了一个新的公链Aptos,使用的是一种叫做Move的编程语言。用该编程语言编写的公链据说性能非常高效,后续等待主网上线,再来做一个详细的探讨。 应用层有各种各样的Dapp。可以说以太坊的生态是目前所有公链中最为活跃的。 ## Publication Information - [road2web3](https://paragraph.com/@road2web3/): Publication homepage - [All Posts](https://paragraph.com/@road2web3/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@road2web3): Subscribe to updates