POW:Proof of Work,工作量证明 特点:比特币莱特币等货币型区块链(公有链) 一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。参与挖矿的矿工竞争将前一区块的hash与一个随机的比特串一起来计算出一个hash值,若输出的hash值满足前若干比特为0,即为解出了该难题,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。
把区块中的所有数据做SHA256哈希运算,并且得到哈希值小于给定的目标值。区块中还包含一个Nonce值,通过递增Nonce来寻找正确的哈希值。这个密码谜题被设计成,比特币每隔10Mins会找到一个谜题答案。
优点: 1,完全去中心化 2,节点自由进出,容易实现。 3,破坏系统花费的成本巨大 缺点: 1,区块的确认时间难以缩短,并且交易的确认时间需要10-16分钟,不能满足实时性需求 2,新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击 3,浪费能源;
比特币的工作量证明是如何解决计算机网络中的拜占庭将军问题
被所有将军都接受到的攻击计划,被认为是正式的攻击计划。问题是:两个或多个将军有可能同时发出不同的攻击计划。
这个问题模型被工作量证明简化了,比特币工作量证明系统中,不会追踪交易顺序,取而代之是在将军之间达成共识。每个将军基于工作量证明,解决一个难度适当的Hash难题,每个难题有足够的难度,仅当在所有的将军同时工作时,平均10Mins会找到一个难题的答案(solution)。当一个将军找到问题的答案,它会把这个答案连同攻击计划在网络中广播。一旦收到Solution,每个将军调整难题为在广播中收到的攻击时间,攻击计划。然后将军继续解决下一个工作量证明。这样接下来每个solution会依次在第一个solution后串联成链。如果有将军还在继续在对另一个不同的攻击方案进行工作量证明计算,它会切换到这个最长的链上。这个最长链上积累了最多的CPU算力。
平均一个小时后,这个链上会有六个区块。每个将军可以判断是否有足够多的将军工作在含有相同初始攻击计划的最长链上。链会在一小时累积到六个区块,说明大多数将军对相同的攻击计划进行工作量证明计算(CPU投票)。因此将军对攻击时间达成共识。
在没有中心化权威机构存在的P2P网络上,比特币共识协议功能上等同于一个受信任的中心化机构。这个协议解决了拜占庭将军问题中缺少中心化权威机构的难题。帮组将军在攻击时间上达成共识。而且,它缓解了多个攻击计划同时提交的可能性,同时也降低了攻击的可能性。因此比特币共识协议现代拜占庭将军中的问题。