通用的区块链架构模型
数据( 存储 )层
~,是整个区块链技术最底层的数据结构,通过以下技术,描述了区块链的最基本的物理结构( 区块 + 链表 )
- 区块链中的交易模型:
UTXO 模型& Account 模型
- 密码学基础( 对称加密 & 非对称( 公私钥数据 )加密 ) // 加密经济学
- 消息认证码、数字签名
- 数字证书和认证中心
「 存储 」交易完成后的记录,会经过加密签名、加盖时间戳,并按照时间顺序添加到账簿
- Block( 数据区块 )_ Chain( 链式结构 )
- 区块头
- 时间戳
- 区块体
- Merkle 树
- 哈希( Hash )函数( 单向散列函数 )
这些技术并非是随着比特币才出现,而是在比特币诞生之前的数十年中,就已经成为了构建全球金融系统的基础,
So,中本聪是 “站在巨人的肩膀上”,通过数据区块和链式结构,将这些技术巧妙的结合在了一起
网络层 / 共识层 /( 激励层 )
区块链网络,本质上是一个 P2P( Peer to Peer,点对点 )网络,网络中的资源和服务分布在所有节点上,信息的传输和服务的实现,都直接在节点之间进行,而无需中间环节或中心化服务器的介入
- 每个节点,即接收信息,也产生信息,节点之间通过维护一个共同的区块链来同步信息
- 当一个节点创作出新的区块后,便以广播的形式通知其他节点,其他节点接收到信息后对该区块进行验证,并在该区块的基础上去创建新的区块,从而达到全网共同维护一个底层账本的效果
网络层,会涉及到 P2P 组网、数据传播、数据验证等机制的设计,而这些机制的设计都能影响到区块链信息的确认速度,所以,网络层,是突破区块链技术可扩展这个瓶颈的重要研究方向
「 共识 / 挖矿 」 // 其主要作用是:决定了谁来记账( 记账方式,影响着整个系统的安全性和可靠性 )
共识层,封装了共识算法和共识机制( 去中心化网络就某些事项,达成共识的机制 ),能让高度分散的节点在去中心化的区块链网络中高效的针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社群的治理机制
目前,至少有数十种共识机制算法:POW( 工作量证明 )、POS( 权益证明 )、DPOS( 权益授权证明 )...
激励层,就是大家常说的挖矿机制,它将经济因素集成到区块链技术体系中,并设计出一套经济激励模型( 包括经济激励的发行机制和分配机制等 ),鼓励节点( 矿工:利用计算能力挖掘新区块的用户 )来参与区块链的安全验证工作激励层,主要出现在公有链中,Because,公有链必须激励参与记账的节点 & 惩罚不遵守规则的节点,才能让整个系统朝着良性的方向发展;而,联盟链和私有链,则不一定需要激励,因为参与记账的节点,往往在链外完成了博弈 ...
合约层 / 应用层
合约方面,第一代区块链系统( 比特币 )并不完善,比特币,可以看作是一个全球账本,本身只具有简单脚本的编写功能,只能进行交易,无法用于其他领域或进行其他逻辑处理( 中本聪对比特币的定义,仅仅是点对点的支付系统 )
Then,以以太坊为代表的第二代区块链系统,极大的强化了编程语言协议,实现了图灵完备,So,可以看作是一台全球计算机,( 理论上 )任何人都可以上传和执行任意的应用程序,并且程序的有效执行能够得到保证
合约层,主要包括各种脚本、代码、算法机制和智能合约,是区块链可编程的基础
- 区块链中的智能合约,是运行在区块链数据库上的一种计算机应用程序,能在满足源代码编写条件的情况下自动执行
- 编译、部署:将代码嵌入到区块链中,实现可以自定义的智能合约, // 测试 & 审核
- 调用:并在达到某个确定的约束条件的情况下,无需经过第三方就能够自动执行
应用层,是区块链的展示层,封装了区块链的各种应用场景和案例,类似于计算机操作系统上的应用程序、互联网浏览器上的门户网站、商城、搜索引擎或者手机端的 APP 等,未来的可编程金融、可编程社会,也会搭建在应用层上