区块链的特征和架构

区块链的诞生

现今,互联玩网上的交易,几乎都借助第三方信用机构进行处理支付信息。这些中心化的机制,努力维护着整个社会关系。然而,随着信息化的发展,人与人之间的信任度降低,而中心化的管理模式受制于“基于信用的模式”,一旦一些人和一些组织控制着信用机构,那么人们将会受制于这些组织和个人。区块链技术通过构建比特币区块链网络和信息加密技术等基础技术来试图解决这个问题。区块链基于密码学原理,而不基于信任,使得交易双方达成一致,避免第三方信用机构的参与。

从数据库的角度来看:区块链是一种几乎不能被更改的分布式数据库。通过数据的分布式存储和数据的分布式记录的方式保证数据的南以修改。

从技术角度来看:区块链采用数据库,信息加密等多种技术结合在一起,形成的一种新的数据记录,存储和表达的方式。

总的来说,区块链是一个去中心化的数据库,是分布式数据存储,点对点数据存储,点对点传输 ,共识机制,加密算法等计算机技术新型应用模式。一种按照时间顺序将数据区块以顺序相连的方式组合成的一种数据结构,并利用密码学技术保证数据不可更改,不可伪造的一种分布式账本,通过共识机制解决了去中心化账本的一致性问题。

区块链的特征

开放,共识

任何人都可以参加到区块链网络,任何一台设备都可以作为一个节点,每个节点都会获得一份完整的数据拷贝。节点之间基于一套信任机制,通过竞争计算维护整个区块链网络。任意节点失效,其他节点仍能正常工作。

去中心,去信任

区块链有众多节点共同组成一个端到端的网络,不存在中心设备和管理机构。节点之间的数据交换通过数字签名技术进行认证,无需相互信任,只需要按照系统既定的规则进行,而且节点之间不能去欺骗其他节点。

交易透明,双方匿名

区块链的运行规则是公开透明的,其合约代码可直接获得,所有的交易数据信息都是公开可查的,每一笔交易都对所有节点可见。而且节点与节点之间是无需信任的,所以节点之间不需要公开身份,即每一个参与的节点都是匿名的。

不可更改,可以追溯

理论上,区块链上的数据上去发更改的,一个节点或多个节点对数据库上的信息进行更改,无法影响其他节点和数据库,除非控制区块链网络的51%,来进行同时更改,当然,这个几乎不可能发生。此外区块链上的每一笔交易都通过密码学方法与相邻的区块链接,逐渐发展成一个超级分布式账本,同时由于每一笔交易都有记录,交易完成,区块的高度增加,且区块之间相互串联,所以在区块链上可以追溯到每一笔交易的前世今生。

区块链的基础架构

一般来说,区块链由数据层,网络层,共识层,激励层,合约层和应用层组成。

数据层:封装底层数据区块以及相关数据加密和时间戳等基础数据以及基本算法。

网络层:包括分布式组网机制,数据传播机制和数据验证机制。

共识层:封装网络个结点的共识算法。

激励层:将经济因素集成到区块链技术中来,主要包括经济激励的发行机制和分配机制。

合约层:封装各种脚本,算法和智能合约。

应用层:封装了区块链的各种应用场景和案例。

基础架构中,基于时间戳的链式区块结构,分布式节点的共识机制,基于共识算力的经济激励和可编程的智能合约技术是区块链的基本核心。

区块链现代架构

基础设施

基础设施层提供区块链系统正常运行的操作系统和硬件设施(包括物理服务器,云主机等等)。
具体可细分为3个方面:

  • 计算资源(CPU、GPU、ASIC等)
  • 存储资源(硬盘)
  • 网络资源(带宽)
    这部分和其他的系统并无太大的区别,无非是有的偏重计算,有的偏重存储,有的对于网络的依赖程度高。

基础组件

基础组件层实现区块链系统中信息的记录、验证和传播。

区块链是建立在传播机制、验证机制和存储机制基础上的一个分布式系统,整个网络没有中心化的硬件或者管理机构,任何节点都有机会参与总账的记录和验证,将计算结果广播发送给其他节点,且任一节点的损坏或者退出都不影响整个系统的运作。

1)网络发现
区块链系统有众多节点通过网络连接构成,特别是在共有链系统中,节点数量往往很大。每个节点都需要通过网络发现协议发现邻居节点,并与邻居节点建立链路。
对于联盟链而言,网络发现协议还需要验证节点身份,以防止各种网络攻击的发生。

2)数据收发
节点通过网络通讯协议连接到邻居节点后,数据收发模块完成与其他节点的数据交换。事物广播,消息共识以及数据同步等都由该模块执行。根据不同区块链的架构,数据收发器的设计需要考虑节点数量,密码学算法等因素。

3)密码库
区块链的多个环节都涉及到密码学算法。
密码库为上层组件提供基本的密码学算法支持,包括各种常用的编码算法、哈希算法、签名算法、隐私保护算法等等。
于此同时,密码库还涉及诸如密钥的维护和存储等方面的功能。

4)数据存储
根据数据类型和系统结构设计,区块链系统中的数据使用不同的数据存储模式。
存储模式包括关系型数据库(比如MySQL)和非关系型数据库(比如LevelDB)。
通常,需要保存的数据包括公共数据(例如:交易数据、事务数据、状态数据等)和本地的私有数据等。

5)消息通知
消息通知模块为区块链中不同组件之间以及不同节点之间提供消息通知服务。
交易成功之后,客户通常需要跟踪交易执行期间的记录和获取交易执行的结果。
消息通知模块可以完成消息的生成、分发、存储和其他功能,以满足区块链系统的需要。

账本

账本层负责区块链系统的信息存储,包括收集交易数据,生成数据区块,对本地数据进行合法性校验,以及将校验通过的区块加到链上。
账本层将上一个区块的Hash签名嵌入到下一个区块中组成块链式数据结构,使数据完整性和真实性得到保障,这正是区块链系统防篡改、可追溯特性的来源。
典型的区块链系统数据账本设计,采用了一种按时间顺序存储的块链式数据结构。
账本层有两种数据记录方式:基于资产和基于账户。
基于资产的模型中,首先以资产为核心进行建模,然后记录资产的所有权,即所有权是资产的一个字段。
基于账户的模型中,建立账户作为资产和交易的对象,资产是账户下的一个字段。
优势分析:
基于账户的数据模型:方便记录、查询相关信息
基于资产的数据模型:高并发
为了获取高并发的处理性能,而且及时查询账号相关信息,多个区块链平台正在向两种数据模型的混合模式发展。

共识机制

共识机制保证区块链网络各个节点数据记录的一致性。区块链中的数据由所有节点独立存储,在共识机制的调谐下,共同同步各节点的账本,实现节点选举,数据一致性验证和数据同步控制等功能。通过数据同步和一致性协调使得区块链系统具有信息透明,数据共享的特点。

智能合约

智能合约负责将区块链系统的业务逻辑一代码的形式实现、编译并部署,完成对区块链网路既定规则和条件的出发和自动执行,可以最大程度的减少人工干预。智能合约的操作对象大多为数字资产,数据上链后难以修改、触发条件强等特性决定了智能合约的适用具有高价值和高风险,如何规避风险并发挥价值是当前智能合约大范围应用的难点。

提高智能合约的安全性:

  1. 形式化验证,通过严密的数学证明来确保合约代码所表达的逻辑符合意图。此法逻辑严密,但是难度较大,一般需要委托第三方专业机构进行审计。
  2. 智能合约加密。智能合约不能被第三方明文读取,以此减少智能合约因为逻辑上的安全漏洞而被攻击。此法成本较低,但无法开源。
  3. 严格规范合约语言的语法格式。总结智能合约优秀模式,开发标准智能合约模版,以一定的标准规范智能合约的编写可以提高智能合约的质量,提高合约的安全性。

系统管理

系统管理主要负责权限管理和节点管理。

权限管理对于数据访问有更多要求的许可链来说极为重要。

权限管理主要通过以下几种方式实现:

  • 将权限列表提交给账本层,实现分散权限控制
  • 使用访问控制列表
  • 使用权限控制,例如评分/子系统
    通过权限管理,可以确保数据和函数调用只能由响应的操作员操作

节点管理的核心是节点标识的识别,通常通过以下几种方式实现:

  • CA认证,集中式颁发CA证书给系统中的各个应用程序,身份和权限由这些证书进行认证和确认
  • PKI认证,身份由基于PKI的地址确认
  • 第三方身份验证,身份由第三方提供的认证信息确认

接口

接口完成功能模块的封装,为应用层提供简洁的调用方式。应用层则通过RPC接口与其他节点进行通信,通过调用SDK工具包对本地账本进行访问,写入等操作。

RPC和SDK应遵循以下规则:

  • 功能齐全,能够完成交易和维护分布式账本,有完善的干预策略和权限管理机制
  • 可移植性好,可以用于多种环境中的多种应用,而不仅限于某些绝对的软件或者硬件平台
  • 可扩展和兼容,应尽可能向前和向后兼容,并在设计中考虑可扩展性
  • 易于使用,应使用结构化设计和良好的命名方法方便开发人员使用。常见的实现技术包括调用控制和序列化对象等。

应用层

应用层作为最终呈现给用户的部分,主要作用是调用智能合约层的接口,适配区块链的各类应用场景,为用户提供各种服务和应用。

运维管理

运维管理层主要负责区块链系统的日常运维工作,包括日志、监控、管理和扩展等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heromps

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值