首页 网站首页 政策法规 查看内容

迄今为止最好懂的区块链研究报告(二)

2019-10-28 15:05| 发布者: 小圈| 查看: 2115| 评论: 0

摘要: 正文:一、区块链如何创造信任:基本结构、关键机制与核心性质近年来,区块链成为科技界和创业圈的一大热词。第46届世界经济论坛达沃斯年会将区块链与人工智能、自动驾驶等一并列入“第四次工业革命”,显示出区块链 ...
正文:
一、 区块链如何创造信任:基本结构、关键机制与核心性质
近年来,区块链成为科技界和创业圈的一大热词。第46届世界经济论坛达沃斯年会将区块链与人工智能、自动驾驶等一并列入“第四次工业革命”,显示出区块链技术的重大意义和极为广阔的发展空间。
IBM公司CEO罗睿兰女士有一句著名的论断:“区块链对于可信交易的意义正如互联网对于通讯的意义”(What the internet did for communications, I think blockchain will do for trusted transactions)。那么区块链是什么?为何它被称为“信任的机器”?
1. “1”句话概括区块链:可信的分布式数据库
狭义来说,区块链是一种将数据区块以时间顺序相连的方式组合成的、并以密码学方式保证不可篡改和不可伪造的分布式数据库(或者叫分布式账本技术,Distributed Ledger Technology,DLT)。分布式包含两层意思:
  • 一是数据由系统的所有节点共同记录,所有节点既不需要属于同一组织,也不需要彼此相互信任;

  • 二是数据由所有节点共同存储,每个参与的节点均可复制获得一份完整记录的拷贝。那么这个分布式数据库的基本结构如何?

区块链可以视作一个账本,每个区块可以视作一页账,其通过记录时间的先后顺序链接起来就形成了“账本”。一般来说,系统会设定每隔一个时间间隔就进行一次交易记录的更新和广播,这段时间内系统全部的数据信息、交易记录被放在一个新产生的区块中。如果所有收到广播的节点都认可了这个区块的合法性,这个区块将以链状的形式被各节点加到自己原先的链中,就像给旧账本里添加新一页。

区块可以大体分为块头(header)和块身(body)两部分。块头一般包括前一个区块的哈希值(父哈希)、时间戳以及其他信息。哈希是一类密码算法,将任意一段信息都可以通过某种加密算法表现为一串“乱码”,也就是哈希值。父哈希指向上一个区块的地址(头哈希),如此递推可以帮我们一直回溯到区块链的第一个头部区块,也就是创世区块(genesis block)。
每个特定区块的块头都具有唯一的识别符,即头哈希值。任何节点都可以简单地对区块头进行哈希计算独立地获取该区块的哈希值。区块高度是区块的另一个标识符,作用与区块头哈希类似。创世区块高度为0,然后依次类推。
以上图的比特币#515056区块为例,其块头中除了包含头哈希、父哈希及默克尔根以外,还包含了以下重要信息:
  • 奖励(Block Reward):系统发放给发现正确哈希值并创建新区块的矿工的奖励,这部分为内置代币系统的区块链独有。目前比特币区块链奖励为12.5个比特币,该数字每四年减半(比特币总量设定为2100万个)。
  • 难度(Difficulty):该区块工作量证明算法的难度目标。
  • 随机数(Nonce):用于工作量证明算法的计数器。
块身包含经过验证的、块在创建过程中发生的所有价值交换的数据记录,通过一种特殊的数据结构存储起来,通常组织为树形式——比如默克尔树(Merkle Tree)。所有数据记录在这棵树的“叶子”节点里,一级一级往上追溯,最后归结到一个树根,反之通过树根就追溯到每一笔交易详情。
2. 区块链三大关键机制:密码学原理、数据存储结构、共识机制
密码学原理之一:哈希算法
哈希算法是一类加密算法的统称,是信息领域中非常基础也非常重要的技术。输入任意长度的字符串,哈希算法可以产生固定大小的输出。通俗地说,我们可以将哈希算法的输出(也就是哈希值)理解为区块链世界中的“家庭地址”。
就像物理世界中我们总可以用一个特定且唯一的地址来标识一样,我们也可以用哈希特定且唯一地标识一个区块(如果不同区块的哈希总是不同的,那么我们称这类哈希函数具有“碰撞阻力”,这是对哈希函数的基本要求),而且就像我们无法从“家庭地址”倒推出房屋结构、家庭成员等内部信息一样,我们也无法从哈希值反推出区块的具体内容(哈希函数的隐秘性)。
密码学原理之二:非对称加密
非对称加密是指加密和解密使用不同密钥的加密算法,也称为公私钥加密。区块链网络中,每个节点都拥有唯一的一对私钥和公钥。公钥是密钥对中公开的部分,就像银行的账户可以被公开,私钥是非公开的部分,就像账户密码。使用这个密钥对时,如果用其中一个密钥加密一段数据,则必须用另一个密钥解密。

在比特币区块链中,私钥代表了对比特币的控制权。交易发起方用私钥对交易(包括转账金额和转账地址)签名并将签名后的交易和公钥广播,各节点接收到交易后可以用公钥验证交易是否合法。在这个过程中交易发起方无须暴露自己的私钥,从而实现保密目的。

数据存储结构:默克尔树
默克尔树(Merkle Tree)实际上是一种数据结构。这种树状数据结构在快速归纳和检验大规模数据完整性方面效率很高。在比特币网络中,默克尔树被用来归纳一个区块中的所有交易,其树根就是整个交易集合的哈希值,最底层的叶子节点是数据块的哈希值,非叶节点是其对应子节点串联字符串的哈希。我们只需要记住根节点哈希,只要树中的任何一个节点被篡改,根节点哈希就不会匹配,从而可以达到校验目的。

共识机制
共识机制是区块链网络最核心的秘密。简单来说,共识机制是区块链节点就区块信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。实践中要达到这样的效果需要满足两方面条件:一是选择一个独特的节点来产生一个区块,二是使分布式数据记录不可逆。
当前主流的共识机制包括:工作量证明/POW(Proof of Work)、权益证明/POS(Proof of Stake)、工作量证明与权益证明混合(POS+POW)、股份授权证明/DPOS(Delegated Proof-of-Stake)、实用拜占庭容错(PBFT)、瑞波共识协议等。其中比特币使用的是工作量证明机制。

  • 工作量证明/POW
工作量证明机制的基本步骤如下:
1) 节点监听全网数据记录,通过基本合法性验证的数据记录将进行暂存;
2) 节点消耗自身算力尝试不同的随机数(nonce),进行指定的哈希计算,并不断重复该过程直到找到合理的随机数,这一过程也被称为“挖矿”;
3) 找到合理的随机数后,生成区块信息(块头+块身);
4) 节点对外部广播出新产生的区块,其他节点验证通过后,连接至区块链中,主链高度加一,然后所有节点切换至新区块后继续进行下一轮挖矿。

比特币区块链就是通过足够大的工作量来求解数学难题来就“谁有权记账”达成共识。“矿工”在挖矿过程中会得到两种类型的奖励:创建新区块的新币奖励,以及区块中所包含交易的交易费用(交易双方为了交易被区块链尽早记录会提供给矿工一笔交易费用作为激励)。这种算法的竞争机制以及获胜者有权在区块链上进行交易记录的机制实际上分别解决了分布式记账以及记账权归属的问题。在比特币区块链中,这一过程还起到了货币发行的作用——目前每隔10分钟,就会有挖到新区块的矿工收到12.5个比特币的奖励。
尽管工作量证明机制解决了记账权归属问题,那么获得记账权的矿工有没有可能“作弊”,在构造的新区块中添加一些并不存在的交易呢?实际上,比特币区块链共识机制的重要环节是网络中的每个节点都会独立校验新区块,其中最重要的就是校验新区块中每一笔交易是否合法。如果没有通过验证,那么这个新区块将被拒绝,该矿工也就白白浪费了所有的电力和努力。
  • 权益证明
在工作量证明/POW机制中,所有参与POW竞赛的节点都将付出不小的经济成本(硬件、电力、维护等),而且每次只有一个节点“胜出”,也意味着其他节点的大量资源将被浪费。为了解决资源浪费问题,权益证明机制/POS在2013年被提出并最早在Peercoin系统中被实现。
权益证明类似现实生活中的股东机制,其出发点是:如果共识机制主要是用来证明谁在挖矿这件事情上投入最多,为何不简单直接地把挖矿“算力”按比例分配给当前所有的持币者?在工作量证明中,有更多算力的矿工会得到更多的投票权;在权益证明中,持有更多币(以及相应的时间)的矿工将获得更多的投票权。
  • 股份授权证明/DPOS
在这种系统中,每个币就等于一张选票,持有币的人可以根据自己持有币的数量来投出自己信任的受托人,而受托人不一定需要拥有最多的系统资源。股份授权证明机制模仿了公司的董事会制度,能够让数字货币持有者将维护系统记账和安全的工作交给有能力有时间的人来专职从事该项工作。
受托人也可以通过记账来获得新币的奖励。相对于权益证明机制,股份授权证明的优势在于记账人数量大大缩小,并且轮流记账,可以提高系统的整体效率,理想环境下,DPOS能够实现每秒数十万笔的交易数量。
共识机制的选择对区块链性能(资源占用、处理速度等)有着较大的影响,同时也会决定区块链“去中心化”的程度。一般来说,区块链去中心化程度越高,其性能越弱。去中心化程度和效率在多数情况下难以兼顾。

3. 区块链两大核心性质:分布式、不可篡改
分布式记账与存储
在记账方面,区块链不需要依赖一个中心机构来负责记账,节点之间通过算力或者权益公平地争夺记账权,这种竞争机制实际上是区块链与传统数据库最大的主要区别之一。通过“全网见证”,所有交易信息会被“如实地记录”,而且这个账本将是唯一的。在传统复式记账中,每个机构仅保存与自己相关的账目,但往往花费大量的中后台成本进行对账与清算,这种低效的方式将被区块链彻底变革。
在存储方面,由于网络中的每一个节点都有一份区块链的完整副本,即使部分节点被攻击或者出错,也不会影响整个网络的正常运转。这使得区块链相比传统数据库具有更高的容错性和更低的服务器崩溃风险,同时由于每个节点都有一份副本也意味着所有的账目和信息都是公开透明、可以追溯的。所有参与者都可以查看历史账本、追溯每一笔交易,也有权公平竞争下一个区块的记账权,这是传统数据库无法做到的。
不可篡改
在区块链中伪造、篡改账目基本是不可能的,不可篡改也意味着数据的高度一致性和安全性,这是区块链与传统数据库的另一主要区别。
为什么区块链中的交易无法被伪造?首先,合法的交易需要私钥签名,否则无法被其他节点验证;其次,每一笔交易都是可回溯的,也就杜绝了无中生有的可能。
为什么区块链是不可篡改的?假如我们要篡改区块链中第k个区块的数据,那么当前区块的头哈希就会发生改变,由于哈希函数具有碰撞阻力,改变后的头哈希将无法与k+1区块的父哈希相匹配,篡改者需要继续修改k+1区块的父哈希,并一直修改之后每个区块。
这要求篡改者在同一时间同时入侵全球所有参与记录的节点并篡改数据,只有重新计算被更改区块后续的所有区块,并且追上网络中合法区块链的进度后,并把这个长的区块链分叉提交给网络中的其他节点,才有可能被认可。在很多情况下,产生一个新区块的难度不小,要连续产生多个区块组成新分叉的计算难度更是惊人。
在全网巨大算力的背景下,一个恶意节点要做到这点需要拥有至少全网51%的算力基础,由于区块链是一个分布式系统,大部分节点都是相互独立的,“51%攻击”在现实中很难发生。 

《经济学人》曾在2015年10月刊的封面文章《信任的机器》中这样介绍区块链——“比特币背后的技术有可能改变经济运行的方式”。
在我们看来,分布式与不可篡改正是区块链被称为“信任机器”的原因所在——不可篡改意味着区块链总是“诚实”的,分布式意味着区块链总是“透明”的。而不论人与人之间的交往,抑或商业机构之间的交易,诚实和透明都是双方或多方互信的基石。区块链的“诚实”与“透明”,也让它被人们寄予厚望成为互联网的“信任机器”。
分享至:
| 收藏

最新评论(0)

1
QQ