区块链技术架构简介

基本概念

区块链的概念最近很火,它来自于比特币等加密货币的实现,但是目前,这项技术已经逐步运用在

各个领域。什么是区块链技术?为了感性认识这个问题,我们可以使用谷歌地球的例子做类比

ajax不是什么新技术,但组合在一起就成就了产品谷歌地球,与之类似,区块链也不是什么新技

术,但与加密解密技术、P2P网络等组合在一起,就诞生了比特币。技术人员,特别是Web开发工

程师,学习了解aax技术最早是被谷歌地球酷炫的效果所吸引。而现在,历史再一次重演,很多人

被比特币的疯狂发展所吸引,进而开始硏究其背后的技术——区块链。

区块链原本是比特币等加密货币存储数据的_种独特方式,是种自引用的数据结构,用来存储大

量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便迫溯的特点。实际

上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是

非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含

代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更

加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。

基本架构

从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又

可以分为存储层和网络层,它们相互独立但又不可分割。

协议层

所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑

的操作系统,它维护着网络节点,仅提供Api供调用。通常官方会提供简单的客户端(通称为钱

包),这个客户端钱包功能也很简单,只能建立地址、验证签名、转账支付、查看余额等。这个层

次是一切的基础,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么

想干什么,它概不过问,也过问不了。典型的例子,自然是比特币,还有各种二代币,比如莱特

币等,本书介绍的亿书币也是。这个层次,是现阶段开发者聚集的地方,这说明加密货币仍在起步

当中。

从用到的技术来说,协议层主要包括网络编程、分布式算法、加密签名、数据存储技术等4个方

面,其中网络编程能力是大家选择编程语言的主要考虑因素,因为分布式算法基本上属于业务逻辑

上的实现,什么语言都可以做到,加空签名技术是直接简单的使用(请看书中相关的加密解密文

章,不建议自由发挥,没有过多的编码逻辑),数据库技术也主要在使用层面,只有点对点网络的

实现和并发处理才是开发的难点,所以对于那些网络编程能力强,对并发处理简单的语言,人们就

特别偏爱。也因此, Nodes开发区块链应用,逐渐变得更加流行,Go语言也在逐渐兴起。

其中分布式算法、加密签名等都要在实现点对点网络的过程中加以使用,所以自然是网络层的事情,也

是编码的重点和难点,《 Nodes开发加密货币》全书分享的基本上就是这部分的内容。当然,也有把点

对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、

数据存储等操作放在一起组成核心层。无论怎么组合,这两个部分都是最核心、最底层的部分,都是协

议层的内容。

扩展层

这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。目前有两类,一是各类交易市

场,是法币兑换加密货币的重要渠道,实现简单,来钱快,成本低,但风险也大。二是针对某个方

向的扩展实现,比如基于亿书侧链,可为第三方出版机构、论坛网站等内容生产商提供定制服务

等。特别值得一提的就是大家听得最多的智能合约的概念,这是典型的扩展层面的应用开发。所

谓智能合约"就是“可编程合约",或者叫做"合约智能化”,其中的智能是执行上的智能,也就是说

达到某个条件,合约自动执行,比如自动转移证券、自动付款等,目前还没有比较成型的产品,但

不可否认,这将是区块链技术重要的发展方向。

扩展层使用的技术就没有什么限制了,可以包括很多,上面提到的分布式存储、机器学习、VR、

物联网、大数据等等,都可以使用。编程语言的选择上,可以更加自由,因为可以与协议层完全分

离,编程语言也可以与协议层使用的开发语言不相同。在开发上,除了在交易时与协议层进行交互

之外,其他时候尽量不要与协议层的开发混在一起。这个层面与应用层更加接近,也可以理解为

B/S架构的产品中的服务端( Server)。这样不仅在架构设计上更加科学,让区块链数据更小,网

络更独立,同时也可以保证扩展层开发不受约束。

从这个层面来看,区块链可以架构开发任何类型的产品,不仅仅是用在金融行业。在未来,随着底

层协议的更加完善,任何需要第三方支付的产品都可以方便的使用区块链技术;任何需要确权、征

信和追溯的信息,都可以借助区块链来实现。我个人觉得,这个目标应该很快就能实现。

应用层

这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架

构的产品中的浏览器端( Browser)。这个层面的应用,目前几乎是空白。市场亟待出现这样的应

用,引爆市场,形成真正的扩张之势,让区块链技术快速走进寻常百姓,服务于大众。大家使用的

各类轻钱包(客户端),应该算作应用层最简单、最典型的应用。很快,亿书将基于亿书网络推出

文档协作工具,这个就是典型的应用层的产

限于当前区块链技术的发展,亿书只能从协议层出发,把目标指向应用层,同时为第三方开发者提

供扩展层的强大支持。这样做既可以避免贪多,又可以避免无法落地,是真正理性的开发路线。因

为纯粹的开发协议层或扩展层,无法真正理解和验证应用层,会脱离实际,让第三方开发者很难使

用。如果仅仅考虑应用层,市面上又找不到真正牢固、易用的协议层或扩展层的产品。所以,我们

只好全面发力,采取完全开源开放的态度,通过社区的力量,共同去做一件有意义的事情,也算为

中国区块链技术发展做点技术积累和微薄贡献。

你可能感兴趣的:(区块链技术架构简介)