Advertisement

02-区块链技术原理

阅读量:

区块链技术原理

  • 1. 区块链是什么

    • 1.0 前言
    • 1.1 概念
    • 1.2 从比特币系统中发现区块链
  • 2. 区块链的数据结构

  • 3. 区块链基础技术

    • 3.1 哈希运算

      • 3.1.1 哈希运算的特性
      • 3.1.2 通过哈希构建区块链的链式结构, 实现防篡改
      • 3.1.3 通过哈希构建默克尔数, 实现内容改变的快速检测
    • 3.2 数字签名

      • 3.2.1 数字签名的作用
      • 3.2.2 数字签名的原理
      • 3.2.3 区块链中的用法
    • 3.3 共识算法

      • 3.3.1 为什么要共识
      • 3.3.2 有哪些共识算法
    • 3.4 智能合约

    • 3.5 P2P网络

  • 3. 区块链的特性

    • 3.1 透明可信
    • 3.2 防篡改可追溯
    • 3.3 隐私安全保障
    • 3.4 系统高可靠
  • 4. 区块链将带来什么变革

    • 信息互联网VS价值互联网
  • 5. 从架构设计的角度再谈区块链

    • 5.1 协议层
    • 5.2 扩展层
    • 5.3 应用层

1. 区块链是什么

1.0 前言

区块链, 可能是当下最有前景又充满分歧的技术与经济趋势. 它给数字世界带来了’’价值表示" 和"价值转移"两项全新的基础功能.

现在区块链技术可能带来互联网的二次革命, 把互联网从"信息互联网" 带向 “价值互联网”. 在区块链的对照之下, 人们发现, 最初被形象的称为"信息高速公路" 的互联网处理是 “信息” , 而区块链能处理的是"价值".

1.1 概念

  1. 狭义来讲: 区块链是一种按照时间顺序数据区块顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改不可伪造分布式账本.
  2. 广义来讲: 区块链技术是利用块链式存储结构来验证和存储数据, 利用分布式节点共识算法来生成和更新数据, 利用密码学的方式保证数据传输和访问的安全性, 利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式

1.2 从比特币系统中发现区块链

在数字世界中, 想要创造一种去中介,去中心化的"电子现金" , 需要解决以下一系列问题:

  • 这种" 现金 "如何公平, 公正地发行出来, 不被任何中心化机构或个人控制
  • 如何实现像在物理世界中一样,一个人可以直接把现金递给另一个人,无须任何中介的协助?
  • 这种电子现金如何“防伪”?在数字世界中,这个问题可转换为,一笔电子现金如何不被花费两次?

中本聪设计和开发了比特币系统,完美地解决了这些问题。说起比特币,人们常指的是比特币这种做价值表示的电子现金。其实,作为电子现金的比特币只是比特币系统的表层,比特币系统包括三层

在这里插入图片描述
  1. 最上一层是比特币这种电子现金。这是整个系统的应用层。
  2. 中间一层的功能是发行比特币与处理用户间的比特币转移。这一层也叫比特币协议(bitcoin protocol),是整个系统的应用协议层。
  3. 最底层是比特币的分布式账本和去中心网络。这一层也被称为比特币区块链(bitcoin blockchain),是整个系统的通用协议层。

比特币系统实现的去中心化的点对点电子现金,其发行与转账靠的是中间的比特币协议层。类比现实货币系统,这一层的角色相当于中央银行(发行货币)与银行(处理转账)等金融机构。

比特币系统架构图又常被进一步细分为五层. 它对应的是比特币协议和比特币区块链两个部分。在这个五层架构中,比特币协议层被细分为:应用层、激励层和共识层。

在这里插入图片描述

在设计比特币系统时,中本聪创造性地把计算机算力竞争经济激励相结合,形成了工作量证明(proof-of-work,POW)共识机制让挖矿计算机节点在计算竞争中完成了货币发行和记账功能,也完成了区块链账本和去中心网络的运维。这就形成了一个完整的循环:矿机挖矿(算力竞争),完成去中心化记账(运转系统),获得比特币形式的经济激励(经济奖励)。

比特币的工作量证明共识机制是承上启下的一层,连接了上层应用与下层技术:在其上的层次为电子现金的发行、转账、防伪;在其下的层次,去中心网络的节点达成一致,更新分布式账本。

2. 区块链的数据结构

对于区块链的专业解释或许有些拗口, 顾名思义, 区块链是一种数据以区块为单位产生和存储, 并按照时间顺序首尾相连结构, 同时通过密码学原理保证不可篡改, 不可伪造以及数据传输访问安全的去中心化分布式账本.

  1. 区块是链式结构的基本数据单元,聚合了所有交易相关信息, 主要包括区块头和区块主体两部分
  2. 区块头主要由 ①父区块哈希值,② 时间戳, ③ 默克尔树根等信息组成
  3. 区块主体一般包含一串交易的列表
在这里插入图片描述

3. 区块链基础技术

3.1 哈希运算

3.1.1 哈希运算的特性

一个优秀的哈希算法要具备正向快速, 输入敏感, 逆向困难, 强抗碰撞等特性

3.1.2 通过哈希构建区块链的链式结构, 实现防篡改

3.1.3 通过哈希构建默克尔数, 实现内容改变的快速检测

3.2 数字签名

3.2.1 数字签名的作用

数字签名也称作电子签名, 是通过一定算法实现类似传统物理签名的效果.区块链主要使用数字签名来实现权限控制, 识别交易发起者的合法身份, 防止恶意节点身份冒充.

3.2.2 数字签名的原理

数字签名通常采用非对称加密算法, 即每个节点需要一对公私钥对.,签名时需要私钥, 验签时需要公钥, 即私钥加密, 公钥解密

数字签名流程:

  1. 发送方A对原始数据通过哈希算法计算数字摘要, 使用非对称秘钥中的私钥对数字摘要进行加密, 这个加密后的数据就是数字签名.
  2. 数字签名与A的原始数据一起发送非验证签名的任何一方

验签流程:

  1. 首先, 验证方一定要持有发送方A的非对称密钥对的公钥
  2. 在就收到数字签名与A的原始数据后, 首先使用公钥, 对数字签名进行解密, 得到原始摘要(原始数据Hash后的值)
  3. 对A的原始数据通过同样的hash算法计算摘要值, 进而比对解密得到的摘要值与重新计算的摘要值是否相等.如果相同, 则验证通过.

验签的结果:

  1. A 的公钥可以解密数字签名, 保证了原始数据确实来自A
  2. 解密后的摘要值,与原始数据重新计算得到的摘要值相同,保证了原始数据在传输过程中未被篡改.

3.2.3 区块链中的用法

在区块链网络中, 每个节点都有一个公私钥对, 节点发送交易时, 先利用自己的私钥对交易内容进行签名, 并将签名附加在交易中, 其他节点收到广播消息后,首先对交易中附加的数字签名进行验证, 完成消息完整性验证及消息发送者身份合法性校验后, 该交易才会触发后续处理流程.

3.3 共识算法

3.3.1 为什么要共识

以谁的记录为准?

3.3.2 有哪些共识算法

  1. PoW
  2. Po*
  3. BFT

3.4 智能合约

定义:

一个智能合约是一套以数字形式定义的承诺包括合约参与方可以在上面执行这些承诺的协议
简单来说, 智能合约是一种在满足一定条件时, 就自动执行的计算机程序.
例如自动售货机, 就可以视为一个智能合约系统. 客户需要选择商品, 并完成支付, 这两个条件都满足后售货机就会自动吐出货物.

合约在生活中处处可见: 租赁合同, 借条等. 传统合约依靠法律进行背书, 当产生违约及纠纷时, 往往需要借助法院等政府机构的力量进行裁决. 智能合约,不仅仅是将传统的合约电子化, 它的真正意义在于革命性地将传统合约的背书由法律替换成了代码.

3.5 P2P网络

对等计算机网络, 是一种消除了中心化的服务节点, 将所有的网络参与者视为对等者(peer), 并在他们之间进行任务和工作负载分配.
P2P结构打破了传统的C/S模式, 去除了中心服务器, 是一种依靠用户群共同维护的网络结构. 由于节点间的数据传输不再依赖中心服务节点,P2P网络具有极强的可靠性, 任何单一或者少量节点故障都不会影响整个网络正常运转. 同时, P2P网络的网络容量没有上限, 因为随着节点数量的增加, 整个网络的资源也在同步增加, 由于每个节点可以从任意(有能力的)节点处得到服务, 同时由于P2P网络中暗含的激励机制也会尽力向其他节点提供服务,因此, 实际上P2P网络中节点数目越多吗P2P网络提供的服务质量就越高.

3. 区块链的特性

3.1 透明可信

  1. 人人记账保证人人获取完整信息, 从而实现信息透明
  2. 节点间决策过程共同参数, 共识保证可信性

3.2 防篡改可追溯

3.3 隐私安全保障

3.4 系统高可靠

4. 区块链将带来什么变革

“区块链,是互联网的二次革命。”

“区块链,是互联网2.0。”

“区块链,让我们从信息互联网跨越到价值互联网。”

信息互联网VS价值互联网

之前,互联网处理的是“信息”;现在,互联网可以处理“价值”。从 2008 年到 2018 年,酝酿了近十年的区块链技术弥补了互联网与数字世界中一直缺失的另一半。区块链提供了在数字世界中处理价值所需的两个基础功能:价值表示与价值转移,让互联网跃迁到价值互联网。

在这里插入图片描述

5. 从架构设计的角度再谈区块链

从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。其中,协议层又可以分为存储层和网络层,它们相互独立但又不可分割。如图:在这里插入图片描述

5.1 协议层

所谓的协议层,就是指代最底层的技术。这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,它维护着网络节点,仅提供Api供调用。通常官方会提供简单的客户端(通称为钱包),这个客户端钱包功能也很简单,只能建立地址、验证签名、转账支付、查看余额等。这个层次是一切的基础,构建了网络环境、搭建了交易通道、制定了节点奖励规则,至于你要交易什么,想干什么,它一概不过问,也过问不了。典型的例子,自然是比特币,还有各种二代币,比如莱特币等

5.2 扩展层

这个层面类似于电脑的驱动程序,是为了让区块链产品更加实用。目前有两类,一是各类交易市场,是法币兑换加密货币的重要渠道,实现简单,来钱快,成本低,但风险也大。二是针对某个方向的扩展实现,比如基于亿书侧链,可为第三方出版机构、论坛网站等内容生产商提供定制服务等。特别值得一提的就是大家听得最多的“智能合约”的概念,这是典型的扩展层面的应用开发。所谓“智能合约”就是“可编程合约”,或者叫做“合约智能化”,其中的“智能”是执行上的智能,也就是说达到某个条件,合约自动执行,比如自动转移证券、自动付款等,目前还没有比较成型的产品,但不可否认,这将是区块链技术重要的发展方向。

5.3 应用层

这个层面类似于电脑中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为B/S架构的产品中的浏览器端(Browser)。这个层面的应用,目前几乎是空白。市场亟待出现这样的应用,引爆市场,形成真正的扩张之势,让区块链技术快速走进寻常百姓,服务于大众。大家使用的各类轻钱包(客户端),应该算作应用层最简单、最典型的应用。

全部评论 (0)

还没有任何评论哟~