作者:禅与计算机程序设计艺术

1.简介

概念篇

区块链是一种分布式数据库,本质上是一个去中心化的数据库。它通过密码学的多方计算共识算法解决了分歧的产生。

共识算法是用来建立并维持区块链网络的基本方法之一。共识算法旨在解决所有参与者对数据状态的最终确认。共识算法的作用如下:

1、防止双重支付问题

共识算法可以确保每笔交易只能被网络中的某个人授权进行交易,从而避免出现两种不同的账户拥有同一笔钱的情况。

2、防止恶意攻击

共识算法还可以让网络中的节点对数据的改动保持一致性,防止恶意攻击者对数据进行篡改。

3、降低网络成本

共识算法能够减少不必要的重复计算,节约资源开销,提升网络效率。

4、促进合作关系

共识算法能够促进不同节点之间的信息共享,降低不同团体之间的交易成本,提高合作效率。

算法篇

Proof of Work (PoW) 工作量证明

工作量证明(PoW)是一种去中心化的共识机制,即各个节点相互竞争生成新的区块。PoW 基于“先胜者得利”的原则,采用计算机算力并行解决复杂的数学难题,根据算力难度和时间消耗排名选出第一名的节点获得记账权,记账权越大,奖励越高。每个节点必须耗费大量的电力、算力、时间等硬件设备才能成功生成新区块,从而保证了整个网络的安全运行。其特点是较为复杂、具有中心化风险。

下图展示了 PoW 的过程:

  • 矿工首先会向区块链网络提交一个任务,需要将一个数据结构正确填充到符合要求的区块中,由此激活其算力。
  • 当节点发现当前最高的区块高度没有达到 10 分钟的平均速度时&