文章前言
本系列文章将结合以太坊公链源码对公链设计进行深入剖析解读,涉及范围包括但不仅限于以下几点:
-
公链设计架构
-
公链启动过程
-
公链交互工具
-
公链接口设计
-
公链区块设计
-
公链交易处理
-
公链智能合约
-
公链虚拟机类
-
公链P2P网络
-
公链数据存储
-
公链共识算法
-
公链挖矿流程
区块链技术
区块链技术起源于2008年中本聪发表的名为《Bitcoin: A Peer-to-Peer Electronic Cash System》的论文,在这篇论文中提出了一种\\”点对点\\”的数字货币(BTC),该货币可以独立存在于任何国家、任何机构之外,不受任何第三方管控,其底层实现技术即为区块链技术。
如果要用一句话来概述什么是区块链,那么我们可以将其概括为——区块链是一个以\\”去中心化\\”、\\”去信任化\\”方式集体维护的\\”分布式\\”账本,该账本用于记录网络参与者之间的交易,比如资产或数据的交换。
区块链可以分为以下三个大类:
-
公有链:无官方组织及管理机构、无中心服务器、参与的节点安装系统规则自由地接入网络,节点之间基于共识机制开展工作,比特币属于典型的共有链。
-
私有链:建立在某个企业内部,系统运作规则根据企业要求进行设定,读写权限仅限于少数节点,但人保留这区块链的真实性和部分去中心化特性,全球 42 家银行组建的区块链联盟 R3 CEV 就是私有链。
-
联盟链:由若干个机构联合发起,介于公链和私链之间,兼部分去中心化特性,网络中的节点部分可以任意接入,另一部分则必须通过授权才可以接入,比如:清算系统
区块链技术经历了以下几个阶段:
-
区块链 1.0:数字货币的去中心化化,以比特币为代币的虚拟货币的时代
-
区块链 2.0:智能合约与数字货币资产相结合,对金融领域体用了更加广泛的应用场景,代币产物有:以太坊、LISK等
-
区块链 3.0:区块链在金融行业之外的各行业的应用场景,能够满足更加复杂的商业逻辑,代币产物有:EOS、ELA、DFINITY等
以太坊架构
以太坊是一个开源的有智能合约功能的公共区块链平台,其设计架构如下所示:
简单介绍如下:
-
Decentralized Application,即去中心应用(DApp),它通过Web3.js和智能合约层进行交互,DAPP之与区块链类似于APP之与Android或IOS
-
Smart Contract:智能合约,通过编写和调用合约实现图灵完备的编程操作
-
EVM:以太坊虚拟机,是简历在区块链上的代码运行环境,其主要左右是处理以太坊系统内的智能合约
-
RPC:远程过程调用,为一个节点请求另一个节点提供的服务,提供外部访问能力
-
核心层:区块链协议、共识算法、挖矿管理、分布式网络组件
-
基础库:公链基础应用库,涉及P2P通信协议、加密酸防库、Http、Solidity语法支持、LevelDB数据库以及Math运算支持等
分层功能设计
以太坊和传统的去中心化系统一样都遵循分层的功能设计,按照不同的功能目标,以太坊的功能设计可以划分为如下几个层级:
各层简单介绍如下:
-
数据层:数据区块、链式结构、交易池、Merkle Tree、非对称加密算法、Event事件
-
网络层:P2P网络、数据传输机制、数据校验机制
-
共识层:共识算法(POW、POS等)
-
激励层:Token发行机制、Token分配机制
-
合约层:智能合约、以太坊虚拟机(EVM)
-
应用层:数字钱包、DAPP、以太坊应用
后续文章,敬请期待~
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34344.html