Transactions

比特幣白皮書 - 交易中使用的數字簽名的詳細資訊

  • January 24, 2022

我已經閱讀了幾次白皮書,我只是想確切地知道 Satoshi 所說的“對上一筆交易的雜湊和下一個所有者的公鑰進行數字簽名,並將這些添加到硬幣的末尾”是什麼意思。在此處輸入圖像描述

忘掉你對比特幣的了解吧,想像一下你在 2008 年底第一次閱讀這篇文章,而你只閱讀了摘要和第 1 和第 2 節。他的意思是:

  1. 獲取上一筆交易的雜湊Prev_Hash
  2. 獲取我們將硬幣轉移到的公鑰,Pub_Key
  3. 連接這兩個字元串,New_String = concat(Prev_Hash,Pub_Key)
  4. 使用任何算法對New_String進行數字簽名(白皮書中未提及細節)

要麼

  1. 獲取上一筆交易,Prev_Tx
  2. 獲取我們將硬幣轉移到的公鑰,Pub_Key
  3. 連接這兩個字元串,New_String = concat(Prev_Tx, Pub_Key)
  4. 雜湊New_String , Hashed_New_String
  5. 使用任何算法對 Hashed_New_String進行數字簽名

或任何其他方式,例如簽署 Prev_Tx 的雜湊,然後還簽署 Pub_key 的雜湊並具有 2 個簽名。

我想從一開始就站在從事比特幣工作的人的角度,按時間順序探索比特幣的演變,所以我想知道中本聰的真正含義。好像在網上找不到任何東西

根據他的其他一些著作,中本聰在撰寫白皮書時有一個工作原型¹。白皮書對比特幣的工作原理進行了高級概述,為此,中本聰簡化了一些概念。

例如,“我們將電子硬幣定義為數字簽名鏈”。是一種簡化,因為交易可以有多個輸入和多個輸出。生成的結構是有向無環圖,而不是鏈。

同樣,由先前交易和接收者的公鑰組成的“雜湊”框是一種簡化。第一種輸出類型,Pay to Public Key (P2PK),將資金鎖定到接收者的公鑰(字面意思是:)<pubkey> OP_CHECKSIG。同時,輸入通過引用交易輸出的 outpoint 來辨識他們正在花費的“硬幣” txid:vout, 由交易 id 和在輸出列表中的位置組成。對於簽名,我們然後創建整個交易的摘要,以送出確切的輸入和輸出以及交易的其他細節。這個要簽名的交易的雜湊,sighash, 然後與發送者的私鑰一起用作簽名算法的輸入。如您所見,白皮書沒有提供幾乎足夠的資訊來推斷實際的實現。

白皮書從廣義上解釋了比特幣,做得很好,但實際的實施細節只有在軟體本身發佈時才變得明顯。例如,這裡是由 Jeremy Rubin 註釋的原始版本程式碼庫的副本。


¹白皮書是一份旨在簡要概述某事的文件,通常是為了吸引讀者了解有關產品或提案的更多資訊。(它奏效了!大約九或十年前讀過它,我仍然著迷。)然而,它是一份行銷文件。它並不意味著是一份全面的技術文件。我不明白為什麼人們表現得好像它是某種形式的終極真理(在這種情況下,參見例如這個勘誤表)。

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