Block

原始比特幣論文中“時間戳伺服器”部分的解釋

  • May 15, 2021

我試圖理解原始比特幣論文中的“時間戳伺服器”部分。對於不了解密碼學的人來說,感覺太短了。

是在說嗎?

  1. 一個塊包括:

  2. 塊本身

  3. 區塊創建時間

  4. 前一個區塊的雜湊

  5. 創建新塊時:

  6. 該塊包括目前時間和前一個塊的雜湊

  7. 這個新區塊的雜湊被廣播到所有節點

網上很少有資料試圖研究“時間戳伺服器”的概念。抱歉,如果這是一個愚蠢的問題。作為一名軟體開發人員,我試圖了解這是如何在粒度級別上工作的。

資源:

來自原始論文,比特幣:點對點電子現金系統

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.

在此處輸入圖像描述

是不是在說…

我認為你說得對,除了 2.2。整個新塊被廣播,而不僅僅是散列。

實際上,“廣播”並不是真正正確的術語。我相信節點會將新塊傳輸給少數對等節點(例如十個左右的其他節點)。如果這些其他節點看起來沒問題,那麼這些其他節點就會傳遞新塊。最終,新塊到達網路中的所有節點。

在下面的評論中,Pieter Wuille 澄清了一些細節,“塊被宣布給所有對等點。然後這些對等點從(通常)第一個從他們那裡宣布的對等點獲取實際塊。”

我還沒有找到關於網路操作的確切順序的明確詳細描述,但是如果你閱讀比特幣維基的協議文件,你會發現有很多消息類型,其中之一是inv (庫存)

允許節點公佈其對一個或多個對象的知識。它可以不請自來地接收,也可以作為對 getblocks 的回复。

inv有效載荷包括一個數組,該數組inv_vec[]包含一種可用數據(例如塊)的程式碼和該數據的散列。

因此,該消息的接收者可能會看到發送者有一個或多個接收者沒有的塊,然後可能會發出一條getdata消息以獲取該新數據。正如我所說,我還沒有找到關於操作的確切順序的詳細解釋,但我想現實是沿著這些路線的。所以我將其描述為廣播新塊是一種簡化。


網上很少有資料試圖研究“時間戳伺服器”的概念

正如您顯然知道的,但其他人可能不知道,中本聰在第3 節中所描述的內容。時間戳伺服器,是一種我們現在稱為探勘的活動。

引用自:https://bitcoin.stackexchange.com/questions/106282