4. 工作量证明

为了在点对点的基础上实现分布式时间戳服务器,我们需要使用类似于 Adam Back 的 Hashcash[6] 的工作量证明系统,而不是报纸或 Usenet 帖子。

工作量证明涉及扫描一个值,该值在进行哈希处理(例如使用 SHA-256)时,哈希值以多个零位开始。所需的平均工作量与所需的零位数量成指数关系,并且可以通过执行单个哈希来验证。

对于我们的时间戳网络,我们通过增加块中的随机数来实现工作量证明,直到找到一个值,该值为块的哈希提供所需的零位。

一旦花费了 CPU 的努力来满足工作量证明,则在不重做工作的情况下无法更改块。由于后面的块链接在它后面,因此更改块的工作将包括重做它后面的所有块。

工作量证明还解决了确定多数决策中的代表性问题。如果多数是基于一IP地址一票,那么任何能够分配多个IP的人都可能会颠覆它。

工作量证明本质上是一 CPU 一投票。多数决定由最长的链代表,该链投入了最大的工作量证明努力。

如果大部分CPU算力由诚实节点控制,诚实链将增长最快并超过任何竞争链

要修改过去的区块,攻击者必须重做该区块及其后所有区块的工作量证明,然后赶上并超越诚实节点的工作量。

稍后我们将证明,随着后续块的添加,速度较慢的攻击者追上的可能性呈指数级下降。

为了补偿不断增加的硬件速度和随着时间的推移对运行节点的兴趣的变化,工作量证明难度由针对每小时平均块数的移动平均值确定。如果它们生成得太快,难度就会增加。

#BinanceSquare

#BTC

#BitcoinWorld

#uniswap

#ftx