3.时间戳服务器
我们提出的解决方案以一个时间戳服务器为起点。时间戳服务器的任务是通过提取一组即将打上时间戳的数据的哈希值并将这个哈希值通过特定媒介(如报纸或者电子公告板帖子)广播出去。因为能够被哈希进去,所以,时间戳很显然能证明在提取哈希值的当时这些数据已经存在了。每一个时间戳的哈希值之中都包含之前的时间戳,如此一来,就形成了一个链条,每一个新增的时间戳都确认了之前所有时间戳的效力。
3. Timestamp Server
The solution we propose begins with a timestamp server. A timestamp server works by taking a
hash of a block of items to be timestamped and widely publishing the hash, such as in a
newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the
time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in
its hash, forming a chain, with each additional timestamp reinforcing the ones before it.
4.工作证明
为了能将这个分布式的时间戳服务器布置在点对点网络中,时间戳不能通过报纸或者网络发帖的形式广播,我们需要一种与Adam Back的Hashcash类似的工作证明系统,这种工作证明旨在搜索采用诸如SHA-256等方式哈希的过程中以一定数量的零开头的哈希值。平均工作量与该零的数量成指数关系,并且可以通过只执行一次哈希过程就能完成验证。(此处参考部分笑来老师的翻译版本)
在找到满足区块的哈希值所需的以一定数量的零开头这个条件的值之前,我们的时间戳服务器通过不断的往区块中添加一个随机数的方式来完成工作证明。只要CPU的计算能力被用来满足工作证明的条件,除非重做所有工作,否则区块不可更改。同时,后续的区块接续前面的区块,更改一个区块就意味着重新产生连接在其后面的所有区块。
4. Proof-of-Work
To implement a distributed timestamp server on a peer-to-peer basis, we will need to use a proof-
of-work system similar to Adam Back's Hashcash [6], rather than newspaper or Usenet posts.
The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the
hash begins with a number of zero bits. The average work required is exponential in the number
of zero bits required and can be verified by executing a single hash.
For our timestamp network, we implement the proof-of-work by incrementing a nonce in the
block until a value is found that gives the block's hash the required zero bits. Once the CPU
effort has been expended to make it satisfy the proof-of-work, the block cannot be changed
without redoing the work. As later blocks are chained after it, the work to change the block
would include redoing all the blocks after it.