区块链的基本概念、技术构成 与 逻辑结构

道伽会计事务所 > 企业服务 > 区块链 > 区块链的基本概念、技术构成 与 逻辑结构

一、基本概念

“区块链” 这个概念是由一个网名为中本聪的人在2008年发表的《比特币:一种点对点的电子现金系统》中提出的。随后他实现了一个比特币系统,并发布了加密数字货币—比特币。接下来出现了以太坊和超级账本这样的大型区块链项目。

那么在你的认知中,区块链是什么样的?下面整理了几种选项,看下是否有符合你认知的选项。

  1. 区块链是比特币,比特币就是区块链
  2. 区块链很值钱
  3. 区块链可以运用在任何领域
  4. 区块链是免费的
  5. 区块链是非常安全的

通常来说,选项1是大多倾向的结果。但比特币和区块链两者不能等同,实际上,区块链是比特币的底层技术,如果要举例比喻的话,就好比用面粉可以做包子,但不能说面粉等于包子,包子等于面粉。而这里的面粉就相当于是包子。当然了作为底层技术的存在,不仅仅应用于比特币的实现中,还有很多其他基于区块链技术的应用。

那么区块链究竟是什么?从比较专业的维度上看,可以从以下三点来解释

  1. 区块链是底层技术

作为一个底层技术,它是包含了 P2P动态组网基于密码学的共享账本共识机制智能合约 等关键技术

  1. 区块链是一个数字货币和账本系统

从货币学的角度看,区块链是数字货币系统的分布式共享账本系统,这是一个去中心化的、网内用户共同维护的账本系统。

  1. 区块链是互联网的基础设施

它提供了分布式去中心化的价值互联网,为更多大规模的共享、协作应用创造可能。

作为解释依据,这里提取了来自中本聪在2008年发表的《比特币:一种点对点的电子现金系统》中的一段描述:

时间戳服务器对以区块(Block)形式存在的一组数据是实施随机散列并加上时间戳,然后将该随机散列进行广播,就像在新闻后世界性新闻组网络(Usenet)的发帖一样。显然,该时间戳能够证实特定数据于某特定时间是的确存在的,因为只有在该时刻存在了才能获取相应的随机散列值。每个时间戳应当将前一个时间戳纳入其随机散列值中,每一个随后的时间戳都对之前的一个时间戳进行增强(Reinforcing),这样就形成了一个(Chain),即区块链,如下图所示:

文字较为苍白,我们看图可以很清晰的看出 区块链就是由 区块 和  构成的

1)区块

区块是区块链的组成单元,就像金字塔是由一块块石头组成的一样,区块链就是一个个区块组成的。

区块是由一系列特征值和一段时间内的交易记录组成的一个数据结构。区块的数据结构是由 区块头 和 区块体 组成。其中区块头包含了当前区块的特征值,区块体中包含的是实际的交易记录数据。

1、数据结构

1️⃣ 区块头

区块头是由 80 个字节组成,主要由版本号、前一个区块的哈希值、Merkle根、时间戳、bits、Nonce 这几项区块的特征值组成。

  • ver: 版本号,表示本区块遵守的验证规则
  • prev_block: 父区块哈希值,指的是这个区块连接的上一个区块的哈希值
  • mrkl_root: mrkl_root 根,是该区块链交易的 Merkle 树根的哈希值(Merkle 是一种哈希树的数据结构)
  • time: 时间戳,区块生成的时间
  • bits: 区块的难度值,该区块工作量证明算法的难度目标,使用特定的算法编码
  • Nonce: 是一个随机数,为了找到满足难度目标所设定的
2️⃣ 区块体

区块体主要包括了 交易数量(n_tx)、区块大小(size)和长度不定的交易记录(tx 字段包含的交易列表) 等信息。但这只是比特币中的区块体结构,实际上区块体重可以包括任何内容,比如以太坊的区块体中除了交易数据还包含智能合约。

2)区块特点

区块是由计算机通过加密算法生成的。如果成功地生成一个有效的区块,该计算机(节点)就能获得一定的奖励,这个奖励就是加密数字货币,也就是所谓的 挖矿

加密算法并不是容易生成结果的,而是该区块的哈希值必须满足一定的条件。这个条件就是能够使得区块头中特征值相加生成的哈希值需要符合一定格式,比如难度值为 000,由于哈希值随着输入的不同而不同,因此计算机要不断尝试改变区块头的 Nonce 值直至最终生成的哈希值满足条件才算生成了一个有效的区块。

我们可以借助 Blockchain Demo 工具来尝试生成一个区块。

从图中可以看出在 HASH 一栏中的数据是红色的,说明该哈希值是无效的。因为未满足 000 开头的数据。那么我们需要再次计算后查看结果

可以看出这次的结果为绿色,是有效的,因为该数据满足 000 开头。我们将上面的区块结果进行解读,可以分为以下几部分:

  • 索引: 表示区块在区块链中的位置,其中第一个区块为 创世区块(索引为 0) ,第二个区块的索引为1,第三个区块的索引为2,以此类推。
  • 时间戳: 表示该区块的生成时间,根据时间戳可以判断区块链中各个区块生成的先后顺序。
  • 哈希值: 表示每个区块的唯一标识,也可称为区块的 数字指纹。哈希值的长度是固定的,而且和区块的内容紧密关联,一旦区块内容发生改变,该区块的哈希值也会发生改变。而且,区块中的哈希值还有 有效 和 无效 之分,满足特定条件的哈希值是有效的,否则就是无效的。这个特定条件一般称称为 困难度(Difficulty)。父区块哈希值就是区块中特定区块前一个区块的哈希值。
  • 数据:区块中的数据可以是任何内容,比特币区块链的区块中的数据为一串串交易记录。
  • Nonce: 是一个随机数,用来生成一个有效的哈希值。Nonce 会根据区块数据的不同而不同,每个区块都需要经过大量计算才能找到对应的 Nonce 值。
  • 创世区块: 区块链中的第一个区块,它没有父区块,故创世区块的父区块哈希值为空或者为 0。

2)运行原理

综上所述,区块链就是一个链表,而这个链表就是由一个个区块组成的,这些区块依次连接,形成一个不可篡改的链条,那么其中的运行过程我们也可以由此推出:

  1. 首先构成区块链的去中心化网络中的第一个节点,生成一个 创世区块
  2. 然后通过 挖矿 生成新的区块添加到区块链中
  3. 新的节点加入到去中心化网络中会先生成一个最新的区块链数据
  4. 随后每个节点生成的区块都会向网络中的其他节点进行广播
  5. 其他节点收到广播后会判断自己是否已经收到该区块,是的话就忽略,否的话会先校验该区块是否有效,如果是有效的区块则会添加到自己的区块链中

3)小结

  1. 区块链中的节点始终都讲最长的链条作为正确的链,并持续延长和维护这条链。当节点发现有更长的链条并且本身的链条不是最新时,就会使用最长的链条提花你当前节点的链条。若一个节点判断出本身的区块链是最新的,再收到新的区块信息时,节点就会把新的区块添加到自身链条的最后。
  2. 当一个区块链的节点掌握了整个区块链中 51% 以上的计算能力时,它就可以重写整个区块链。基于这个原因,区块链中的计算能力过度集中会很危险。只有一个庞大且均匀分布的区块链才比较安全。

二、技术构成

区块链主要由三个核心技术构成,分别是 共识机制、智能合约、去中心化网络

1)共识机制

共识机制是区块链中的重要机制,不同的区块链项目可能使用不同的共识机制。网络中的各个节点根据共识机制达成共识,共同维护整个区块链网络。

1、PoW 机制

工作量证明机制(Proof of Work,PoW),工作量证明就是一份证明,它用来确定完成了一定量的工作并可以因此获得一定的奖励。

工作量证明是一种对应服务与资源滥用,或是阻断服务供给的对策。一般要求发起者进行一些耗时的复杂运算,并且结果能被快速验算。在计算过程中耗用的时间和资源作为成本,据此来确定建立或惩罚,以此来维护系统的一致性。

工作量证明机制最常用的技术原理是哈希函数,工作量证明机制如下:

  1. 取得一些公开的数据,并加上一个随机数(Nonce)
  2. 以数据和随机数作为输入值计算哈希值
  3. 检查生成的哈希值是否符合一定的条件。若符合就几下这个随机数的值并退出。若不符合则改变随机数的值再重新计算。

由于工作量证明机制需要消耗巨大的算力,如果有人尝试恶意破坏,需要付出巨大的经济成本,这就防止了恶意的数据修改。

缺点: 只有第一个获取有效哈希值的节点能得到奖励,其他节点的计算会被浪费掉。

2、PoS机制

权益证明机制(Proof of Stake,PoS)试图解决在 PoW 机制中大量资源被浪费的问题。不同于 PoW 机制要求进行一定量的计算,PoS 机制要求提供的是保证金,或者说是一定数量数字货币的拥有权。

PoS 机制的工作原理是通过保证金来确认一个合法的块成为新的区块,收益为保证金的利息和交易服务费。提供证明的保证金越多,则获得记账权的概率越大。

比如系统中有A、B、C、D4个人,A有40个币,B有30个币,C有20个币,D有10个币,那么A获得记账权的概率就是D的4倍

PoS 机制的好处是在一定程度上缩短了共识达成的时间,不再需要大量消耗能源挖矿,其与 PoW 机制的区别如下:

3、DPoS 机制

股份授权证明机制(Delegated Proof of Stake,DPoS),与 PoS 机制基本原理相同,只是选举了若干代理人,由代理人执行验证和记账功能,工作原理如下

在 DPoS 机制下,每个节点按其持币比例拥有影响力,51%节点投票的结果将是不可逆切有约束力的。其过程为:

每个节点可以将其投票权授予一名代表,获票数最多的前 100 位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的 10% 作为报酬。如果一个平均水平的区块含有 100 股作为交易费,每个节点将获得 1 股作为报酬

DPoS 的好处是大幅缩小了参与验证和记账节点的数量,可以达到秒级的共识验证

4、DAG 机制

有向无环图(Direct Acyclic Graph,DAG),DAG 是一个没有有向循环的、有限的有向图。它由有限个顶点和有向边组成,每条有向边都从一个顶点指向另一个顶点;从任意一个顶点出发都不能通过这些有向边回到原来的顶点

传统的区块链只有一条单链,而在一条单链上无法并发打包区块。而DAG 是一种拓扑结构,在区块打包时间不变的情况下,可以并行打包N个区块,那么区块链的交易容纳能力就可以变成原来单链情况下的N倍。

2)智能合约

智能合约不是区块链的必要组成,它是区块链 2.0 之后出现的技术。如果把区块链比作一个公司,智能合约相当于公司中的规章制度,员工工作的时候会依据规章制度形式,而在有智能合约的区块链中,链上的节点会依据智能合约进行工作。

智能合约不只是一个可以自动执行的计算机程度,它还是一个基于区块链的参与者。它对接收到的信息进行回应,它可以接收和存储价值,也可以向外发送信息和价值。

Leave a Reply