前言
区块链是2017年最火的技术,曾经业界流传一句话:“人工智能彻底解放生产力,区块链彻底解放生产关系”,一时间区块链成为人工智能全球应用的最底层技术。但是大家基本都区块链的认识都是停留在比特币这个物种上,殊不知比特币只是区块链在金融领域的应用之一。区块链不是一种偶然产生的新技术,而是信息技术发展的今天遇到的瓶颈产生的必然结果。
记得今年的勒索者病毒吧,被勒索者需要用比特币赎回自己的数据。全球无数顶级IT公司乃至防卫严密的中石油的IT系统都被勒索者轻松击破。作为技术出身的我,喜欢转眼前沿的技术,当时看到区块链的技术架构,就预言。现在的IT系统一旦互联网化都会面临新的灾难,数据中心,节点联网模式,Paas平台,Saas应用,集中服务器的模式突然面对信息爆炸时代变得非常的低效和危险。基于Faas模式和Serverless的应用模式,让功能直接面对用户,让用户直接面对数据,用智能的合约法律来保障安全,或许才是人工智能真正能应用具体产业中的根本技术突破。
原来的信息技术一直最难突破的是:IT系统、软件、互联网的开发人员不懂业务,特别是复杂的工业业务,同懂工业弓制造的人员对IT的架构系统、软件的代码思维,互联网的运营逻辑望而却步,所以互联网、物联网、大数据发展到今天,在工业领域一直没有新的实质的进展,即使传统的人工智能技术也只是星星点灯。
最初接触区块链的小伙伴,感觉非常茫然,无从下手,原因是区块链本身不是什么新技术,类似于Ajax,说它是一种技术架构,或许更加确切。所以,这篇文章我们就从架构设计的角度,谈谈区块链的技术实现,无论你擅长什么编程语言,都能够参考这种设计去实现一款区块链产品。当然,具体到产品,架构设计有很多种,不同的人、不同的产品,架构设计也不尽相同,我们这里仅仅提供一种参考,让读者能够直观的感受区块链的技术实现,并顺便梳理与之相关的知识体系,帮助大家更进一步去学习研究。
基本概念
区块链作为比特币背后的技术,无需中心服务器,可实现各类存储数据公开、透明、可追溯。原本是比特币等加密货币存储数据的一种独特方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。实际上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。
所以,目前当大家单独说到区块链的时候,就是指的区块链技术,是实现了数据公开、透明、可追溯的产品的架构设计方法,算作广义的区块链。而当在具体产品中谈到区块链的时候,可以指类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计,这算作狭义的区块链。广义的区块链技术,必须包含点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等4个方面,其他的可能涉及到分布式存储、机器学习、VR、物联网、大数据等。狭义的区块链仅仅涉及到数据存储技术,数据库或文件操作等。本文的区块链,指的是广义的区块链。
架构图
从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。比特币的区块链应用架构我就不描述了,我们中机在工业领域应用的区块链的应用架构(可公开部分)分享给大家参考,我想不用解释,技术领域的各位都清楚了。