比特币的架构

根据中本聪的论文《Bitcoin: A Peer-to-Peer Electronic Cash System》中对比特币系统的描述,我们可以整理出如下图所示的比特币系统架构。

 

如图所示,比特币系统分为 6 层,由下至上依次是存储层、数据层、网络层、共识层、RPC 层、应用层。

其中,存储层主要用于存储比特币系统运行中的日志数据及区块链元数据,存储技术主要使用文件系统和 LevelDB。

数据层主要用于处理比特币交易中的各类数据,如将数据打包成区块,将区块维护成链式结构,区块中内容的加密与哈希计算,区块内容的数字签名及增加时间戳印记,将交易数据构建成 Merkle 树,并计算 Merkle 树根节点的哈希值等。

区块构成的链有可能分叉,在比特币系统中,节点始终都将最长的链条视为正确的链条,并持续在其后增加新的区块。

网络层用于构建比特币底层的 P2P 网络,支持多节点动态加入和离开,对网络连接进行有效管理,为比特币数据传输和共识达成提供基础网络支持服务。

共识层主要采用了 PoW(Proof Of Work)共识算法。在比特币系统中,每个节点都不断地计算一个随机数(Nonce),直到找到符合要求的随机数为止。在一定的时间段内,第一个找到符合条件的随机数将得到打包区块的权利,这构建了一个工作量证明机制。从 PoW 的角度,是不是发现 PoW 和分布式锁有异曲同工之妙呢?

RPC 层实现了 RPC 服务,并提供 JSON API 供客户端访问区块链底层服务。

应用层主要承载各种比特币的应用,如比特币开源代码中提供了 bitcoin client。该层主要是作为 RPC 客户端,通过 JSON API 与 bitcoin 底层交互。除此之外,比特币钱包及衍生应用都架设在应用层上。

posted @ 2021-10-27 22:31  Mr.peter  阅读(1334)  评论(0编辑  收藏  举报