从概念到底层技术,一文看懂区块链工业架构设计(附知识图谱)

2,173 阅读12分钟
原文链接: mp.weixin.qq.com

前言

区块链是2017年最火的技术,曾经业界流传一句话:“人工智能彻底解放生产力,区块链彻底解放生产关系”,一时间区块链成为人工智能全球应用的最底层技术。但是大家基本对区块链的认识都是停留在比特币这个物种上,殊不知比特币只是区块链在金融领域的应用之一。 区块链不是一种偶然产生的新技术,而是信息技术发展到今天遇到的瓶颈产生的必然结果。

记得今年的勒索者病毒吧,被勒索者需要用比特币赎回自己的数据。全球无数顶级IT公司乃至防卫严密的中石油的IT系统都被勒索者轻松击破。作为技术出身的我,喜欢钻研前沿的技术,当时看到区块链的技术架构,就预言:现在的IT系统一旦互联网化都会面临新的灾难,数据中心,节点联网模式,Paas平台,Saas应用,集中服务器的模式突然面对信息爆炸时代变得非常的低效和危险。 基于Faas模式和Serverless的应用模式,让功能直接面对用户,让用户直接面对数据,用智能的合约法律来保障安全,或许才是人工智能真正能应用具体产业中的根本技术突破。

原来的信息技术一直最难突破的是:IT系统、软件、互联网的开发人员不懂业务,特别是复杂的工业业务,同样的,懂工业制造的人员对IT的架构系统、软件的代码思维,互联网的运营逻辑望而却步,所以互联网、物联网、大数据发展到今天,在工业领域一直没有新的实质的进展,即使传统的人工智能技术也只是星星点灯。

最初接触区块链的小伙伴,感觉非常茫然,无从下手,原因是区块链本身不是什么新技术,类似于Ajax,说它是一种技术架构,或许更加确切。所以,这篇文章我们就从架构设计的角度,谈谈区块链的技术实现,无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。当然,具体到产品,架构设计有很多种,不同的人、不同的产品,架构设计也不尽相同,我们这里仅仅提供一种参考,让读者能够直观的感受区块链的技术实现,并顺便梳理与之相关的知识体系,帮助大家更进一步去学习研究。

基本概念

区块链作为比特币背后的技术,无需中心服务器,可实现各类存储数据公开、透明、可追溯。原本是比特币等加密货币存储数据的一种独特方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。实际上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。

所以,目前当大家单独说到区块链的时候,就是指的区块链技术,是实现了数据公开、透明、可追溯的产品的架构设计方法,算作广义的区块链。而当在具体产品中谈到区块链的时候,可以指类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计,这算作狭义的区块链。广义的区块链技术,必须包含点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等4个方面,其他的可能涉及到分布式存储、机器学习、VR、物联网、大数据等。狭义的区块链仅仅涉及到数据存储技术,数据库或文件操作等。本文的区块链,指的是广义的区块链。

架构图

从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。比特币的区块链应用架构我就不描述了,我们中机在工业领域应用的区块链的应用架构(可公开部分)分享给大家参考,我想不用解释,技术领域的各位都清楚了。

协议层

所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。用的技术也很简单,基本都是网络编程、分布式算法、加密签名、数据存储技术。

架构设计图里,我把这个层面进一步分成了存储层和网络层。区块链在工业应用中最大的特性就是安全,工业互联网一直遇到的瓶颈就是安全隐患,传统的Saas平台用防火墙来预防安全,但是一旦黑客突破防火墙,后面的集中存储数据库基本都是裸露一样,任黑客宰割。现在的所谓的工业云平台最大的问题都是安全问题,我们的安全工程师也对所谓国内号称主流的工业云平台进行了安全测试,发现基本都是大量漏洞。换句话来说,如果这些云平台连接了工厂的设备,而我们的安全工程师变成了黑客,那么工厂设备停工,工厂爆炸都似乎轻易而举的事情。

数据存储的分布式,一切取决业务的效率与安全性。同时采用分布式算法、加密签名,这些要在实现点对点网络的过程中加以使用。这些是大家写编码的重点和难点,《Nodejs开发加密货币》全书分享的基本上就是这部分的内容。当然,也有把点对点网络的实现单独分开的,把节点查找、数据传输和验证等逻辑独立出来,而把共识算法、加密签名、数据存储等操作放在一起组成核心层。无论怎么组合,这两个部分都是最核心、最底层的部分,都是协议层的内容。

扩展层

扩展层可以理解为我们用的设备驱动程序,主要是让区块链产品更加实用。

一是交互平台:放到比特币就是交易市场,让各种货币可以兑换加密货币。在工业应用中就是电子、脉冲、设备信号与人机信号的转换。

二是扩展实现:就是大家听的最多的智能合约,“智能合约”商业语言叫“合约智能化”,学术语言“可编程动态合约”,其中的智能主要体现在执行上智能,达到某个条件合约自动生效。比如比特币的自动转账、自动付款,工业应用中采购业务和发票业务的智能合约机制。

扩展层使用的技术也不复杂主要是:分布式存储、机器学习、VR、物联网、大数据等等,都可以使用。

从这个层面来看,区块链可以架构开发任何类型的产品,不仅仅是用在金融行业。在未来,在工业,随着底层协议的更加完善,任何需要确权、征信和追溯的信息,都可以借助区块链来实现

应用层

区块链的应用层电脑的软件程序和手机的app应用,就是普通人直接可以用的产品,但是目前这块应用全球都很匮乏。可以这些说阿里钉钉、支付宝都不能算区块链的应用,腾讯的微信也只能算80%的区块链应用。所以从技术角度就可以明白为什么阿里做应用做不过腾讯,在这方面我觉得张小龙先生应该是懂的比较多,只是他不表达。

限于当前区块链技术的发展,市面上又找不到真正牢固、易用的协议层或扩展层的产品。去中机采访他们首席科学家,人工智能区块链架构师李红杰先生,他说:他的团队200人,其中包括IBM、谷歌很多资深开发工程师,刚开始都困惑这类应用的开发,开发难度和成本都比较高。所以李总和他的研发团队才投入了2年时间,近3亿的资金研发了,GURU智能工业技术架构,当然现在没有完全商用。但是在工业区块链应用开发领域已经取得突破,让用户直接面对数据,进行自主创新应用性开发,打破Java应用语言和C#等语言的通信障碍,把工业语言和人机语言进行融合对话。

李总表示:我们只好全面发力,采取完全开源开放的态度,通过社区的力量,共同去做一件有意义的事情,也算为中国区块链技术发展做点技术积累和微薄贡献。

附录:知识图谱

循着上面的分析,我们已经可以了解区块链是什么,并知道怎么实现了,顺便梳理一下其中的编程技术知识,自然也就清晰多了。

根据个人的理解,我把与区块链相关的知识分为下面5个方面:

(1)基础知识

区块链是新技术,与之相关的是其背后大量的新概念、新理论。这些知识,虽然不直接体现在编码里,但却是理解区块链,掌握区块链技术的基本知识。所以,理当成为区块链技术不可或缺的一部分。这部分从基本概念入手,到工作原理的描述,就能够把区块链基础知识全部覆盖。

(2)技术实现

区块链是一项技术,但从上面的分析可以看出,它应该是一种架构应用,架构的实现理当是我们知识库的核心。正如大家看到的,任何一款区块链产品,协议层必须包括点对点网络、加密签名、数据存储、分布式算法等4个部分,应用层也必然要提供钱包、客户端浏览器等基础应用。所以,把这部分独立出来,也是合情合理。

在扩展层的部分,区块链技术可以对接各种应用,比如:金融、物联网、网络安全、版权保护、电子商务等等,现有的很多技术都可以用在这里。只不过,如何与区块链结合,如何实现跨行业使用,自然是这部分内容研究的课题。所以,这里所罗列或涉及到的技术,理应归为技术实现的一个重要部分。

(3)开发环境

区块链是多项技术的组合,有其自身的复杂性,个别应用对开发环境依赖较大,开发工具与环境搭建,是让开发者快速上手的重要内容。

(4)项目实践

据说,短短数年,全球区块链产品已经有几千个,其中不乏创新应用。有些优秀的开源产品和项目实践,是最好的学习研究资料。

(5)开发文档

这个自然不用说了,每一种产品也都会有自己的开发文档。另一个,就是有心的开发者整理汇总的一些资源,可以帮助我们节省很多查询的时间。

在考虑这个知识体系的过程中,主要思考的是,读者循着这些标签去查阅文章,能否快速掌握区块链技术,并最终上手开发实现一个区块链产品。另外,也刻意规避了与具体编程语言,以及特定领域相关的词汇,唯一可以区分的就是这些节点之下对应的文章标签。所以,这些分类就显得非常中性。也考虑过使用比特币、竞争币、智能合约、数字资产、智能资产等具体领域的实现作为分类方法,但又怕限制了读者的思维,同时随着区块链的发展,新概念将会层出不穷,那样这个图谱就需要不停的修改下去。

总结

这篇文章,我们把区块链技术基础架构描述了一下,需要再次强调的是,这仅仅是一种实现方式,绝非所有的区块链产品都是如此,我们也期待更多创新出现,也相信一定会出现。可以肯定是,未来不做区块链技术架构改造的企业,勒索者病毒会轻松破了你的系统,拿走你的数据,恣意糟蹋的你用户,除非你痛苦的远离网络!

当人工智能与区块链融入工业后未来的场景一定美的不像话!

本文由GURU架构发布,2017年10月24日。