区块链共识是指所有各方就一个区块(一组交易)的有效性以及将该区块纳入链上的过程。
网络中可能有数千个节点,每个人都不能同时提出有效的事务集,因此需要随机选择一个节点来提出新的块。随机选择节点,保证不存在集中控制。节点的随机选择有很多方式,这就是区块链共识中的不同算法。本文将介绍其中一些流行的算法和随机节点的选择过程。第一个提出的算法是工作量证明(PoW)。该算法要求节点解决一个密码难题,无论哪个节点只要首先解决了难题,它都有权构建下一个块。该算法的随机性是建立在加密难题只能通过蛮力来解决的基础之上,所以同一节点几乎提出连续两个块。一旦随机选取节点提出块,其余节点验证将会解谜并接受新的块。该算法具有极大的随机性和可靠性。但是,由于所有节点都在争着解决这个难题,所以会有大量的电能浪费。因此,第二种流行的算法是厉害关系证明 (PoS)。在这种机制中,希望成为块提出者的节点必须阻止一些加密货币,这将确保节点的可靠性和诚实性。这里的随机性是建立在有许多节点愿意下注的基础之上的。也就是说出价最高的人可以提出构建下一个项目。随机性降低到只有一组节点拥有大量的加密货币,但仍然提供了可靠性,因为如果这些节点恶意行为,加密货币的价值将下降。他们也会受到惩罚。权益证明的变体是股权权益证明(DPoS)。在这种情况下,放置权益的节点不会自己提议块,但是他们会进一步提名提出下一个块的节点。随机性与PoS算法的随机性非常相似。授权证明(PoA)是另一种预先定义了所建议节点的算法。该算法具有最少的随机性,因为节点是预先授权和已知的。这给区块链带来了许多集中化特性,这并不总是可取的,然而,对于这种共识也有一些用例。英特尔实现了另一种获得随机性的方法是基于节点CPU等待时间的区块链共识。这种算法被称为“运行时间证明”(PoET)。然而,这只能在英特尔的电脑上使用。另一种流行的算法是实用的拜占庭容错算法(pBFT)。该算法不使用一个块的单一提出者节点,而是每个节点同时验证事务,并且需要对该块进行链上包含多数的节点进行投票。
虽然在开发的不同阶段有许多算法,但唯一经过验证的算法是工作量证明,并且在大多数加密货币中使用。在未来几年里,这将是一个值得关注的领域。