1.4 区块链的架构设计究竟是什么
近几年,“区块链”这个名词异常火爆,也已经被运用到各个领域,形成了“区块链+”模式。
区块链原本是一种比特币等加密货币存储数据的一种方式,可以存储大量的数据信息,然后形成区块链节点,再由这些节点连接起来组成一个系统。在上一小节中,已经提到过区块链具有公开、透明、不可篡改等特征,从广义上来讲区块链就是实现了数据公开、透明等产品的架构设计方法。如果把区块链运用到具体的领域中,就成了一种数据存储的方式。在区块链中,必须包含点对点的网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等。
下面笔者从架构设计的角度来谈谈区块链的架构是什么样的。
区块链的架构可以分为协议层、扩展层和应用层三个层次,在协议层中,又包含了存储层和网络层两个层次。这几个层次之间都是相互独立的,但是又不能分割,不管缺少哪一个,区块链都是不完整的。
1. 协议层
协议层是区块链最底层的技术。在协议层中,一般是一个比较完整的区块链产品,通俗来讲,和我们平常使用的计算机操作系统相类似,具有网络节点维护的作用。产品的官网上会向用户提供基本的客户端,这个客户端具有与钱包相似的功能,但相对来说比较简单,只支持建立地址、验证签名、转账支付、查看余额等功能。
协议层也是所有层次的基础,如果协议层已经构建好网络环境,搭建好交易通道,其他工作是不参与的,不管用户交易什么,协议层都是不参与的。
协议层中用到了很多技术,包括网络编程、分布式算法、密钥加密技术、数据存储技术等。在这些技术当中,网络编程是用到最多的,也是最基础的技术;分布式算法是把一个比较大的计算任务分解成一个个小的计算任务然后分布到多个机器上去计算,再进行汇总的一种方式。例如,某个产品要求从容量超过100 GB的用户数据中分析出不同地域用户的购物习惯。这些数据数量庞大,如果不分解,短时间内是无法完成的,但是采用分布式算法,把数据分解之后,再进行分析就容易很多。
密钥加密技术可以保证信息数据的安全,这一技术又可以分为对称密钥和非对称密钥。对称密钥是文件加密和解密都用相同的密钥,这种算法在密码学中被称为对称加密算法。对称加密算法使用起来是比较简单快捷的,它比DES(数据加密标准)的加密性要好,并且也不要求过高的计算功能。非对称密钥有两个密钥,即公共密钥和私密密钥。如果采用了公共密钥对数据进行了加密,只有相对应的私密密钥才能解密,反之亦然。所以,这种算法也称为非对称的加密算法。
如果数据庞大的话就需要运用数据存储技术,来对大数据进行整理、归类,然后存储起来,有效避免了无效数据、过期数据占用存量。
协议层又可以分为存储层和网络层两个层次。数据存储相对来说是比较独立的,所以自由度也是相对较大的。区块链系统的整体性能取决于网络或者数据存储的一些性能,这些数据优化起来并不容易,但是如果是本地数据的话,优化起来是比较简单方便的。例如,比特币所采用的技术就是谷歌的LevelDB(基于本地文件的存储引擎),这个数据的读写性能是非常好的,开发者可以自己实现很多功能的开发。
总之,无论网络编程、分布式算法、密钥加密技术、数据存储技术怎么组合,存储层和网络层都是最核心、最底层的部分,同时也是协议层的一部分。
2. 扩展层
这个层面的主要目的是让区块链产品更加实用。这一层次可以分为两类,一类是交易市场,通过这个市场虚拟货币可以实现货币的加密。它的优点就是操作起来更加简单,而且收益高、成本低。当然,它也存在一定的缺点,那就是风险比较大。另一类就是针对某个方向的区块链,例如,智能合约。智能合约就是很典型的应用扩展层的例子,其之所以智能,是因为如果合约达到一定的条件,就可以自动执行不需要人为的操作。比如,自动转款、付款等等。
在这一层使用的技术也比较多。例如,分布式存储、VR(虚拟现实)、物联网、大数据等等。扩展层和协议层是相互独立的两个层,完全不受彼此的影响,除了在交易时交互以外,其他时候都是独立存在的。扩展层更接近于应用层,区块链这样的架构设计更加科学合理,也能够使区块链的数据更加保密。
区块链可以运用到各个领域,不仅是金融领域,医疗领域、教育领域都是可以运用的。随着区块链架构的日益完善,越来越多的领域都可以运用区块链技术,区块链也逐渐实现了“区块链+”模式。
3. 应用层
区块链的应用层是每个人都可以接触的层次。目前,在这个层面的应用还不是很广泛,其中比较典型的就是各类钱包客户端。