加密货币技术架构(一)——BTC、ETH

一、BTC(比特币)

(一)项目背景

BTC(比特币)是第一个基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币。身为世界上第一个加密货币,市值毋庸置疑是最大的,并且历经13年的牛熊转换,坐拥最稳加密货币宝座。

(二)技术框架

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

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

数据层主要用于处理比特币交易中的各类数据,如将数据打包成区块,将区块维护成链式结构,区块中内容的加密与哈希计算,区块内容的数字签名及增加时间戳印记,将交易数据构建成 Merkle 树,并计算 Merkle 树根节点的哈希值等。个人理解,不同加密币之间,数据层框架基本类似,主要差异在于共识机制和合约部分。

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

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

共识层主要采用了 PoW(Proof Of Work)共识算法。在比特币系统中,每个节点都不断地计算一个随机数(Nonce),直到找到符合要求的随机数为止。在一定的时间段内,第一个找到符合条件的随机数将得到打包区块的权利,这构建了一个工作量证明机制。

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

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

比特币源码网站:

https://github.com/bitcoinhttps://github.com/bitcoin

以太坊源码网站:

ethereum/go-ethereum: Official Go implementation of the Ethereum protocol (github.com)https://github.com/ethereum/go-ethereum

二、ETH (以太坊)

(一)项目背景

ETH(以太币)是以太坊的原生货币。以太坊由Vitalik Buterin(V神)于2013年受比特币影响,提出了下一代加密货币与去中心化应用平台,在2014年通过ICO众筹得以开始发展。2015年7月30日以太坊的公共区块链启动,并发行以太币。

以太币是继比特币之后被最多人看好的加密货币,从诞生至今稳当币圈老二。以太坊也随着时间的推移不断在进化,去年火爆市场的NFT有7成以上都是使用ETH来交易。

(二)技术框架

以太坊是一个开放的公共区块链平台,其利用智能合约来实现对用户行为进行约束,通过其衍生的加密货币ETH,来为以太坊网络提供去中心化的以太虚拟机(EVM)来处理P2P的智能合约。

早期以太坊智能合约使用POW权益证明,ETH通过挖矿来获取。代价就是需要消耗大量电力资源生成足够的算力来挖矿,并因为传输速度、可扩展性、gas fee的问题常常被人诟病。为了解决这些问题,以太坊在2022年9月15日实行合并,从POW转为POS。

如图所示,以太坊架构分为 7 层,由下至上依次是存储层、数据层、网络层、协议层、共识层、合约层、应用层。

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

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

与比特币的不同之处在于以太坊引入了交易和交易池的概念。交易指的是一个账户向另一个账户发送被签名的数据包的过程。而交易池则存放通过节点验证的交易,这些交易会放在矿工挖出的新区块里。

以太坊的 Event(事件)指的是和以太坊虚拟机提供的日志接口,当事件被调用时,对应的日志信息被保存在日志文件中。

与比特币一样,以太坊的系统也是基于 P2P 网络的,在网络中每个节点既有客户端角色,又有服务端角色。

协议层是以太坊提供的供系统各模块相互调用的协议支持,主要有 HTTP、RPC协议、LES、ETH 协议、Whipser 协议等。

以太坊基于 HTTP Client 实现了对 HTTP 的支持,实现了 GET、POST 等 HTTP方法。外部程序通过 JSON RPC 调用以太坊的 API 时需通过 RPC (远程过程调用) 协议。

Whisper 协议用于 DApp 间通信。

LES 的全称是轻量级以太坊子协议(Light Ethereum Sub-protocol),允许以太坊节点同步获取区块时仅下载区块的头部,在需要时再获取区块的其他部分。

共识层在以太坊系统中有 PoW(Proof of Work)和 PoS(Proof of Stake)两种共识算法。关于以太坊共识部分的源码分析,链接文章有较详细的介绍。https://blog.csdn.net/wcc19840827/article/details/90647000/https://blog.csdn.net/wcc19840827/article/details/90647000/

合约层分为两层,底层是 EVM(Ethereum Virtual Machine,即以太坊虚拟机),上层的智能合约运行在 EVM 中。智能合约是运行在以太坊上的代码的统称,一个智能合约往往包含数据和代码两部分。智能合约系统将约定或合同代码化,由特定事件驱动触发执行。因此,在原理上适用于对安全性、信任性、长期性的约定或合同场景。在以太坊系统中,智能合约的默认编程语言是 Solidity。

应用层有 DApp(Decentralized Application,分布式应用)、以太坊钱包等多种衍生应用,是目前开发者最活跃的一层。

三、比特币 VS 以太坊

(一)主要作用

第一代区块链,其实就是以比特币为代表的加密数字货币,它的特点是点对点价值转移无阻隔,而且具有稀缺性。第二代区块链,主要是以太坊为代表的智能合约平台,能够通过区块链技术实现自动执行的电子合约,类似于手机里的安卓系统,后来区块链的大多数应用,都是基于智能合约的功能。

BTC的主要是用作虚拟货币并存储价值,而ETH也可以实现相同的功能,但是,去中心化的ETH网络还可以实现部分其他的功能,例如创建和运行应用程序、签订智能合同以及进行其他类型的交易,而所有这些功能都是BTC所不具备的,后者只能实现有限的功能。而以太币的主要目的,并非把自己建成为支付替代物,而是使以太坊的运营便利化且货币化,从而使得开发人员可以建立并运行分布式应用程序。

(二)共识

比特币和以太坊的核心都是区块链技术。但是,当涉及到他们的共识算法时,可以观察到关键差异。以太坊和比特币都有自己独特的共识算法,这意味着它们验证添加到分类账的信息有效性的方式是不同的。

比特币WK共识基于所谓的工作量证明 (PoW)算法。在这个概念中,一个人挖掘一个区块的概率是基于他所做的计算工作量。挖矿奖励将授予第一个设法解决每个区块的复杂密码难题的矿工。根据 PoW的概念,每个网络矿工都在使用计算能力方面与其他所有矿工竞争。

另一方面,以太坊基于另一种称为权益证明 (PoS)的算法。在这种共识算法中验证新区块的概率取决于某个人持有的股份有多少,或者换句话说——他有多少硬币。在 PoS算法中,区块验证者不会收到区块奖励——而是收取网络费用作为奖励。在以太坊的情况下,奖励称为gas。使用 PoS,无需解决任何数学难题,并且以确定性方式选择新区块的创建者。

有趣的是,以太坊的区块时间相当快——验证区块所需的时间。根据 BitInfoCharts的数据,比特币的平均阻塞时间目前略高于 8分钟,而以太坊的阻塞时间约为 25秒。

 还有一点,比特币永远最多只能有2100万个,但是以太坊是无限的。

猜你喜欢

转载自blog.csdn.net/weixin_62724756/article/details/129338598
今日推荐