Skip to content
Go back

区块链概述

Edit page

区块链概述

区块链是什么?

区块链起源于 2009 年由化名“中本聪”的学者发出的白皮书《比特币:一种点对点的电子现金》。文中描述了一个去中心化的分布式系统,用于解决双重支付问题和拜占庭将军问题。

狭义来讲, 区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构, 并以密码学方式保证的不可篡改不可伪造去中心化共享总账 (Decentral-ized shared ledger), 能够安全存储简单的、有先后关系的、能在系统内验证的数据.

特点:

演化

  1. 区块链 1.0——数字货币:货币数字化
  2. 区块链 2.0——智能合约:资产数字化 ——基于区块链的图灵完备的编程脚本语言,适合各种区块链数据结构和共识协议;
  3. 区块链 3.0——衍生应用:广义资产数字化

上述演化不是递进的,而是平行的。

根据应用场景不同,区块链被进一步分为了:私有链、联盟链、公有链。

基础模型和关键技术

picture 24

一般说来, 区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成.

数据层

狭义的区块链就是指的上述模型的数据层。每个分布式节点都可以通过特定的 Hash 算法Merkle 树结构,将一段时间内收到的交易数据和代码封装到带有时间戳的数据区块中,并链接到当前最长的主链中,形成最新的区块

取得记账权的矿工会将当前区块链接到前一区块后,形成链条主链;

下图是比特币使用的非对称加密流程图,其中私钥是通过随机数生成器得到的。

picture 26

网络层

网络层封装了组网方式、消息传播协议、数据验证机制等要素。需结合实际应用需求,设计适当的传播协议和验证机制,使得系统中每一个节点都能参与到区块的校验和记账过程,仅当大部分节点都通过验证后,区块才可上链。

共识层

在分布式系统中,如何达成共识是必须要讨论的问题。类似于如何在社会系统中保证民主的同时,实现全社会统一的决策。区块链中的共识层便是封装共识算法的层次。 早期的比特币使用的是基于算力的工作量证明机制(PoW,Proof of work),随着区块链技术的发展,越来越多的共识机制被开发出来,例如点点币首创的权益证明机制(PoS,Proof of service),比特股提出的股份证明机制(DPos,Delegated proof of stake)。

PoW 共识机制

在比特币系统中,各节点 (即矿工) 基于各自的算力,相互竞争来共同解决一个求解复杂但验证容易的 SHA256 数学难题 (即挖矿), 最快解决该难题的节点将获得区块记账权和系统自动生成的比特币奖励

该数学难题可表述为: 根据当前难度值, 通过搜索求解一个合适的随机数 ( Nonce ) 使得图 3 区块头各元数据的双 SHA256 哈希值小于或等于目标哈希值。通过灵活调整随机数搜索的难度值 ( difficulty ) 来控制区块的平均生成时间为 10 分钟左右。

具体来讲 PoW 共识过程包括如下四个步骤:

  1. 搜集全网当前尚未确认的交易,增加一个用于发行新比特币的 coinbase 交易,形成当前待确认的交易集合区块体;
  2. 计算区块体交易集合的 Merkle 根记入区块头,并填写区块头的其他元数据,随机数 Nonce 记为 0;
  3. Nonce 进行累加,并计算区块头整体的双 SHA256 值,若小于等于目标哈希值则该 Nonce 为答案,该节点获得记账权,否则继续循环;
  4. 一段时间之后未成功则更新时间戳、交易集合和区块头,继续寻找 Nonce 值;

符合要求的区块头哈希值一般有多个前导 0 ,每增加一个前导 0 ,寻找难度就成倍地增加。这是哈希算法的性质使然。目标哈希值的计算是通过使用常数除以 diffculty 值得到的。因此,比特币系统可以通过控制 difficulty 值来控制目标哈希值,从而控制出块概率。

通过算力竞赛支撑的 PoW 最显著的缺陷就是巨大的能源消耗,各个节点为了争夺区块记账权而开展的算力竞赛造成了显著的资源浪费。

PoS 共识机制

PoS 的提出就是为了解决 PoW 的资源浪费问题的。

PoS 使用权益证明替代了 PoW 的工作量证明机制,让系统中拥有最高权益的节点作为记账节点。而权益的体现为:币龄(coin days),即特定数量的货币与其最后一次交易的时间长度的乘积,每次交易,节点都会消耗掉一定的币龄。

和 PoW 的其他不同点:

  1. 挖矿难度:
    • PoW:对于所有节点来说,挖矿难度都是一样的,不同的是算力;
    • PoS:挖矿难度和交易输入的币龄成反比,消耗币龄越多则挖矿难度越低;
  2. 主链判断:
    • PoW:拥有最大工作量的链为主链;
    • PoS:用于最高币龄消耗的链为主链;
DPoS 共识机制

DPoS 是一种选举机制。过程可以大概描述为:由网络中的股东节点通过投票的方式,选举出前 101 个愿意记账的节点。由这 101 个节点按照定好的时间表轮流对交易打包并签署(生产)一个新区块,且签署之前必须验证前一个区块已经被记账节点签署了。记账节点在这个过程中可以取得一定的收益,但要想成为记账节点需要缴纳相当于一次出块收益 100 倍的保证金。若记账节点错过了自己的时间段,造成交易未签署,股东节点便会将其“投出”。因此为了保证盈利,记账节点需要保证自己高可用性。

与 PoW 和 PoS 不同,DPoS 并非基于某种节点内部的能力或指标进行记账权的赋予,而是由每个节点自由选择的,这种方式能够减少参与交易验证和记账的节点数量,使得共识能快速达成。

其他共识机制

除了上述三种主流的共识机制,还衍生出了许多诸如 PoW + PoS 、行动证明等多个变种机制,各有优劣。PoW 发展成熟,支持者众多。新生的机制虽然环保、安全、高效,但尚未得到广泛的认可。

激励层

区块链本质上是一种共识节点间的任务众包过程,记账节点是为了获得利益而参与到记账的过程中的。因此设计合理的众包激励制度,让记账节点的自利行为能够服务于区块链系统的安全和有效的目标。

比特币通过提供出块节点比特币奖励和手续费为记账节点提供激励,这是大量矿工购买专业设备进行工作量证明帮助比特币网络完成共识过程的动力。矿工可以将获得的比特币奖励通过交易中心换成一定的法币来实现盈利。

激励层主要通过发行机制和分配机制对记账节点进行激励:

总的来说,矿池的出现让比特币网络面临着安全风险,过于集中的算力可能导致比特币的去中心化优势被颠覆。

合约层

合约层封装区块链系统的各类脚本代码、算法以及由此生成的更为复杂的智能合约.


Edit page
Share this post on:

Previous Post
知识点整理
Next Post
区块链相关概念