区块链共识算法是按照一定的规则在多个节点之间来达成一致的共识。以比特币为例,区块链共识算法需要每一个区块交易的交易方在区块链网络中所有的节点都能确认该笔交易。
它也包括以下步骤:
(1)哈希技术:哈希技术将一个块的数据(包括交易的内容)全部收缩成一个叫做哈希值的密文,这个哈希值是按照算法,并且只能根据块的数据构造出来的。
(2)挖矿:由节点完成的验证工作,也就是通过穷举(搜索),找到一个被入链的区块使得这个块能够满足 “挖矿规则”,当某一节点能够满足这个规则,这个节点被称为 “挖矿节点”,挖矿的奖励就是它得到的一定的奖励,比如在比特币系统中,每挖到一个区块可以得到一定数量的比特币奖励。
(3)时间戳服务:区块链中是不允许同一个交易进入多个区块(double spending),所以每个交易都需要通过时间戳服务才能确保这份这份交易的有效性。时间戳服务就是一种服务,用于为每个交易分配一个唯一的哈希值,并且这个哈希值是在全网中可靠的,就是说,即使有一个节点被攻击,但是仍旧可以确保该交易的有效性和一致性。
(4)共识机制:区块链网络中的每一个节点都需要负责参与网络共识,保证网络数据的一致性和可靠性。在比特币中,采用了一种称为Pow(工作量证明)的共识机制,即AZ算法,该算法的主要设计思想是:首先挖矿节点使用其智能算力来求哈希值,直到某一个节点满足上诉挖矿规则时,该节点就成为一个挖矿节点,并获得比特币的挖矿奖励。它通过算力竞争来保证网络的安全性。其次,它通过时间戳来记录所有的交易,从而实现全网的可追溯性和不可篡改性。