通过数字货币了解区块链的本质

区块链技术的典型特质简要的说有下面三点:

  1. 数据采用“哈希链”的形式保存。
  2. 有多个分布式节点参与系统运行。
  3. 通过共识算法达成源数据的一致性。

看到很多社区和论坛都在争议区块链以及数字货币,五花八门,很多人陷入一些误区,其实准确的说,数字货币只是区块链技术应用的一个典型案例而已。比特币是区块链最典型且最有影响力的应用之一,本文将基于比特币的原理来简单介绍区块链技术。

比特币的数据存储——哈希链式结构

首先补习基础知识:密码学Hash()函数。

通过利用Hash()函数的单向性,

block1=Hash(a);

block2=Hash(block1 || b);   //这里的 || 表示连接符

block3=Hash(block2 || c);

block4=Hash(block3 || d);

……

现在应该能大致看出来, 为什么这种东西叫Hash链, 因为block4的值依赖于之前一系列数据的内容和计算顺序。现在假如你知道block4的值,有一个人去修改了abcd中的一个或多个数据的值,你在重复验证一次,得不到你已知的block4的值。这就是哈希链,纯字面理解,就是数据块组成的链条。

比特币区块链其实就是哈希链的一个变种。比特币添加了一个随机数,也就是nonce值。

block1=Hash(a || nonce1);

block2=Hash(block1 || b || nonce2);

block3=Hash(block2 || c || nonce3);

block4=Hash(block3 || d || nonce4);

……

比特币为什么要这么做呢,其主要原因是为了配置实现pow(工作量证明)共识机制。

比特币规定了计算出来的哈希值必须满足特定的要求,我们假设在上面的计算中,要求每次计算出的哈希值block需要满足以五个0开头,

类似“00000xxxxxxxxxxxx……”这种形式,

那么在Hash()计算的时候,难度就加大了,abcd和前面一系列计算出来的哈希值都是固定的,要让计算结果满足五个0开头的要求,就只能通过改变随机数nonce来穷举计算。

现在是不是明白了所谓的“矿工”是在干什么事情,所谓挖矿,就是在穷举计算寻找一个符合要求的nonce值。

到这里,区块链的本质,大致就差不多了,下面我们来介绍一下共识算法;

  • POW:Proof of Work,工作量证明

基本上通过上面的介绍,工作量证明机制已经很清楚了,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算。

  • POS:Proof of Stake,股权证明

类似于财产储存在银行,这种模式会根据持有者的数字货币存量及时间,分配相应的利息。 点点币就是采用这种证明机制。

  • DPOS:Delegated Proof of Stake,委任权益证明

股份授权证明机制(又称受托人机制),原理是让每一个持有者进行投票,获得“选票”的节点具有产生新区块的权利。如果某个获得“选票”的节点没有生产出新的区块,那么它将会被淘汰,网络将投票选出新的节点取代它。比特股就是采用这种证明机制。

其实说了这么多,区块链并不是一个新鲜事物,区块链的应用开发也不需要学习新的技术,其核心技术是基础的密码学知识,哈希函数以及最终一致性的共识算法,区块链更多的是一种思想,采用去中央网络点对点的户群通信以及分布式节点参与运行应用的一种体系。

发表评论

邮箱地址不会被公开。 必填项已用*标注