Cryptocurrency

關於時間戳伺服器的澄清問題

  • January 2, 2021

我正在閱讀比特幣白皮書,我在其中遇到了時間戳伺服器的概念。不幸的是,時間戳伺服器使用的描述給我留下了更多的問題。不幸的是,Google搜尋並沒有太大幫助。

論文有這個:

我們提出的解決方案從時間戳伺服器開始。時間戳伺服器的工作原理是獲取要標記的項目塊的雜湊並廣泛發布雜湊,例如在報紙或 Usenet 文章中

$$ 2-5 $$. 時間戳證明數據必須在當時已經存在,顯然,才能進入散列。每個時間戳都在其雜湊中包含前一個時間戳,形成一個鏈,每個額外的時間戳都會加強它之前的時間戳。

好的,我有問題:

  1. 時間戳伺服器發布的工件的格式是什麼?它像雜湊嗎?或簽名?或者是其他東西?日期是如何附加到這樣的文物上的?
  2. Each timestamp includes the previous timestamp in its hash如何在另一個時間戳中包含先前的時間戳?時間戳是否具有某種形式的可驗證身份?這看起來怎麼樣?
  3. 時間戳伺服器發佈到哪裡?某種URI?
  4. 有人知道時間戳伺服器的範例嗎?最好在比特幣的範圍之外使用?我問這個是為了更好地了解時間戳伺服器是如何工作和使用的。

1991 年,Stuart Haber 和 Scott Stornetta 提出了一種為數字文件添加時間戳的方法。在他們的方法中,當某人 (Alice) 想要為文件添加時間戳時,她會將文件的雜湊發送給受信任的第三方 (TTP)。TTP(類似於圖 1)將此雜湊放入 Merkle 樹中,並向 Alice 發送她的文件在 Merkle 樹中的證明,然後在報紙或 Usenet 文章中發布此 Merkle 根 [ RH(i-1) ],僅用於時間戳,將特定時間(發布日期)添加到RH(i-1)

在此處輸入圖像描述

第二天,TTP 做了類似的工作,但不同的是:為了計算默克爾根RH(i),他使用前一天的默克爾根 [ RH(i-1) ]。它被稱為連結雜湊指針,而鍊錶使之成為可能。雜湊指針(2)是指向某些資訊雜湊的指針,它會保證資訊沒有改變,因為如果有人想改變之前的雜湊,他應該改變鏈中所有的下一個雜湊和資訊。 在此處輸入圖像描述

比特幣使用雜湊指針(3)來創建交易賬本(Tx),不同之處在於:為了計算鏈的雜湊,它使用Hashcash。Hashcash 將作品證明添加到比特幣中。在 hashcash 中,礦工掃描一個值,當散列時,散列以特定數量的零位開始。為了找到這個特定的雜湊,礦工改變了區塊鏈中的Nonce參數。 在此處輸入圖像描述

在比特幣中,通過點對點網路,基於 hashcash 的時間戳伺服器和交易賬本是分佈式的,所有礦工都有一份副本,因此比特幣不需要可信第三方 (TTP)。

連結論文的第 4 節回答了您的一些問題:

要在點對點的基礎上實現分佈式時間戳伺服器,我們將需要使用類似於 Adam Back 的 Hashcash 的工作量證明系統,而不是報紙或 Usenet 文章。工作量證明涉及掃描一個值,該值在散列時(例如使用 SHA-256),散列以多個零位開頭。所需的平均工作量與所需的零位數量呈指數關係,並且可以通過執行單個雜湊來驗證。

對於我們的時間戳網路,我們通過增加塊中的隨機數來實現工作量證明,直到找到一個值,該值使塊的散列具有所需的零位。一旦 CPU 努力使其滿足工作量證明,就不能在不重做工作的情況下更改塊。由於後面的塊被連結在它之後,更改塊的工作將包括重做它之後的所有塊。

  1. “伺服器”發布帶有雜湊摘要的數據塊。
  2. 先前的雜湊包含在每個塊中,如第 4 節所示(上文未包括)。
  3. 它發佈到所有連接的 P2P 節點。論文的第 5 節更詳細地介紹了一些內容。
  4. OriginStamp使用多個區塊為文件添加時間戳。Zoho 提供類似的付費服務。 OpenTimestamps是免費的並且依賴於捐贈。自然,此類時間戳服務的範例是建立在現有的加密貨幣區塊鏈上的。

引用自:https://crypto.stackexchange.com/questions/87248