干货!看了这篇你就能彻底读懂区块链技术!

区块链发展至今,已经趋于成熟阶段,全球不少企业都非常看好区块链未来的发展前景。区块链本身并不算一项新技术,因为它是开发加密数字货币的一种技术,类似于Ajax,也可以说它是一种架构。区块链目前门槛较低,只要懂一门编程语言或看懂代码的人都可以研究探索。

基础概念

无论学习任何语言或是技术,首先要了解它的基本概念,通过概念的认识解读这门技术的核心思想。区块链源自比特币等加密货币,基于货币的发行衍生而来。目前区块链技术已经在各行各业进行研发,以金融行业尤为突出。前面说了,区块链本身不是什么新技术,但通过和数字加密技术、P2P网络的结合就产生了一种产品-比特币,与互联网时期的谷歌地图有异曲同工之处。

区块链原本是一种用于存储加密货币的方式,数据结构较为单一,其存储数据自后至前有序链接,具有存储信息量大、公开透明、不可篡改、可溯源等特点,较为其他技术不同的是去中心化,这也是互联网技术所不能及的一项亮点。比特币作为其开发实现的代表加密货币,直接体现了这些特性,因此说区块链是加密货币技术的实现是不无道理的。

现在社会所言论的区块链实际就是指区块链技术,也是实现以上特点的架构设计方法,这就是广义的区块链。如果从产品的角度理解区块链,我们可以从比特币存储方式或者数据库设计、文本文件设计等方面解说,也就是狭义区块链。一般来讲,技术方面都从广义的角度理解研究,区块链包含了点对点的网络设计、分布式加密算法的实现、数据存储技术的应用等几个方面,其它可能会涉及机器学习、大数据、物联网、分布式存储等技术的结合。下面我们只讨论广义的区块链,这样有可研究和推广性。

技术架构

从技术架构设计来讲,区块链可简单分为:协议层、扩展层和应用层;其中协议层有可划分为存储层和网络层,他们既能独立也能共存。

协议层

互联网OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是7、应用层,6、表示层,5、会话层,4、传输层,3、网络层,2、数据链路层,1、物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。难么,区块链的协议层就是指其底层技术,相当于计算机的操作系统,它主要用于维护网络节点,提供API调用。目前官方在这方面通常会提供类似于钱包一样的客户端,其功能有点简单,只能创建用户ID、签名验证、转账支付、余额查询等。协议层是整个层级的基础,好比整栋楼的地基,楼的稳定性和安全实用性都有其决定,区块链的协议层就是为了打建稳定的网络环境、货币交易通道、一些节点的奖励机制,至于交易的内容和过程以及目的,在这个层不会过多阻拦。

从技术方面讲,协议层主要包括:

网络编程—需要考虑编程语言,因为其它技术会基于它进行;

分布式算法—属于业务逻辑的实现,具体与选择的语言有关联;

加密签名技术—由密码编程学和密码分析学组成,这项技术不建议自由发挥;

数据存储技术—主要是点对点网络的实现和处理大量数据的高并发;

目前,区块链开发语言繁纷复杂,NodeJs是开发区块链应用的常用技术语言,GO语言也在逐渐兴起。

扩展层

扩展层与电脑的驱动相类似,目的是为了突出区块链产品的使用价值。市场上有两类,一类是用于各类交易市场,这种渠道相对简单、赚钱快、低成本,主要是法定货币和加密货币之间的兑换,但也存在一些潜在的风险;另一类是趋于某个方向的扩展,为第三方机构提供也定服务。“智能合约”就是典型的扩展层应用的开发,就是基于人工智能等技术的实现,当程序收到某个指令后,会根据先前制定的合约来执行特殊命令。

这个层面使用的技术没有特别的限制,机器学习、大数据、物联网等都可以使用。对于开发工程师来说,选择什么样的语言更加自由,因为它与协议层几乎完全分离,只是在交易时会与协议层产生交互。它实际与应用层更加亲密,我们也可以将它理解为B/S架构下的产品的服务端(Server)。这样的架构使得区块链在数据存储上扩大内存,缩小数据占比,网络更为独立,并有效保证了扩展层开发不受任何约束。

应用层

应用层就是计算机的各种软件程序,或者是B/S架构下的产品的浏览器端(Browser),是普通人能够真正使用到的产品。目前技术而言,这一层是比较紧缺技术工程师的。如果单纯的开发协议层和扩展层,那么应用层将无法得到实现和验证,这样就脱离了区块链技术最本质的价值体现。

在如此竞争激烈的科技背景下,相信区块链技术会更加成熟,实现功能能够越来越强大,未来市场前景更加光明。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180428A0RCPV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券