跳到主要内容

技术概览

简单介绍区块链使用的技术

区块链是多种技术的结合。其特性也是各种技术的体现。从逻辑来讲,区块链是一个分布式数据库。它是一种数据存储技术,而且是分布式的,想保证分布式数据存储的一致性(大家存的都一样),就需要共识机制,来保证区块链各个节点上的数据的一致性。由于区块链的不同,选择的共识机制也不同(例如公链一般选择工作量证明,联盟链一般选择拜占庭容错算法等)。为了达到共识,多方节点必然需要相互联通通讯,而且不依靠中间人中间机构(并不是所有类型的区块链都没有“中心”的中间人和机构的),所以使用P2P点对点通信技术。那怎么来保证数据的正确跟一致性呢,使用加密和签名算法来保证,具体的技术一是哈希算法,一是数字签名技术。

区块链所采用的技术在区块链体系中的应用价值

  • 去中心化分布式网络结构,具有开源、分布、去中心化特性。

    • 区块链采用P2P网络结构
    • 网络中信息存储及记录分布式
    • 交易不依赖中心机构
  • 加密的不可篡改的稳定系统,具有高度稳定的特性。

    • 交易过程加密处理
    • 信息记录加入时间戳
    • 信息存储按照时间顺序单向进行
    • 单一节点不影响整体系统
  • 无需信任基础的可信体系,各个节点可以在完全无信任基础下进安全交易。

    • 交易者之间无需建立信任基础
    • 信任不依赖于单一节点
    • 在网所有节点承担交易证明
  • 名性透明的数据存储技术,分布式、集体维护的存储方式使得交易者可以匿名,交易信息完全透明。

    • 交易者可以匿名参与交易
    • 交易信息全网广播、具有透明性
    • 数据存储依靠全网维护

区块链是一种“状态机”。状态是指在某一个特定的时间点所保存的信息。状态机就是记录在某一指定时刻,事物所处状态的计算机或设备。给定某些输入,状态可能会改变,状态机会对这些实现了的改变提供相应的输出。对状态迁移的密切关注是非常重要的,而且这也是区块链擅长做到的,并且区块链的输出结果是不可改变的。形成鲜明对照的是,数据库的记录由于是可以反复多次重写的,因此是可变的。不是所有的数据库都有审计跟踪,即使有,由于没有防篡改机制,审计跟踪也是可以被销毁或者遗失的。在区块链中,状态迁移记录是关于状态的信息的永久部分。在以太坊区块链中,有一个明确的状态树来代表每个地址的账户余额,而交易列表则代表了每个区块中当前区块和之前区块的交易。

区块链是一种数据库,而且是一种分布式数据库。分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元被称为站点或节点。分布式数据库有一个统一的数据库管理系统来进行管理,被称为分布式数据库管理系统。

由于区块链是一种分布复制的数据库,将数据保存在这样的数据库里的开销和成本是比较大的,因此区块链这种数据库不适合用来保存海量数据,通常只用来保存关键信息,或者作为其他存储方式的数据的验证信息。有种常见用法是试图把所有数据都一股脑儿“上链”,在区块链里保存,这是对区块链的一种误解、误用。本书第四部分将阐述典型的数据上链应用设计模式。简而言之,数据上链并不是把数据全部放在区块链上,而是把数据仍然保存在原有的地方,只是把数据的校验信息放在链上。

区块链的层级结构

目前,区块链应用的基础架构包括6层,其中数据层、网络层、共识层是应用的基础层,是区块链技术应用必不可少的架构, 而激励层、合约层和应用层则不是区块链应用的必要因素,例如在私有链中,节点间的“权益” 往往在链外完成分配,可 能不需要激励机制,也就不包含激励层。

  • 数据层 :数据层是整个区块链技术中最底层的数据结构,描述了区块链从创世区块起始的链式结构,它包含了区块链的区块数据、链式结构以及区块上的随机数、时间戳、公私钥数据等信息。数据层主要包括数据区块、数据结构、数据加密方式、时间戳等,是区块链应用的最基础架构层

  • 网络层 :网络层包括分布式组网机制、数据传播机制和数据验证机制等,网络层主要通过P2P技术实现,因此区块链本质上可以说是一个P2P网络。网络层的设计主要包括传播机制、加密机制、网络搭建、公开程度等

  • 共识层 :主要解决如何在决策权分散的分布式的网络体系中高效的达成共识,共识层主要包含共识算法以及共识机制,能让高度分散的节点在去中心化的区块链系统中高效地针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社群的治理机制

  • 激励层 :激励层主要解决如何对守约节点的奖励、对违约节点的惩罚问题,包括发行机制、分配机制等激励层将经济因素。集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制,其功能是提供一定的激励措施,鼓励节点参与区块链的安全验证工作。

  • 合约层 :合约层使得区块链本身的可编程特性,合约层主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。通过合约层将代码嵌入区块链或是令牌中,实现可以自定义的智能合约,并在达到某个确定的约束条件的情况下,无须经由第三方就能够自动执行,是区块链实现机器信任的基础。

  • 应用层 :区块链的应用层封装了区块链面向各种应用场景的应用程序

区块链所采用的技术在区块链中的应用位置

图例 区块链

图例 区块构成

图例 加密算法在区块链中的应用