Bitcoin Whitepaper - Einzelheiten zur digitalen Signatur, die bei Transaktionen verwendet wird

Ich habe das Whitepaper jetzt ein paar Mal gelesen, ich möchte nur genau wissen, was Satoshi damit meinte, „einen Hash der vorherigen Transaktion und den öffentlichen Schlüssel des nächsten Besitzers digital zu signieren und diese am Ende der Münze hinzuzufügen“.Geben Sie hier die Bildbeschreibung ein

Vergessen Sie alles, was Sie über Bitcoin wissen, stellen Sie sich vor, Sie lesen dies Ende 2008 zum ersten Mal und haben nur die Zusammenfassung und die Abschnitte 1 und 2 gelesen. Meint er:

  1. Holen Sie sich den Hash der vorherigen Transaktion, Prev_Hash
  2. Holen Sie sich den öffentlichen Schlüssel, an den wir Coins übertragen, Pub_Key
  3. Verketten Sie diese beiden Strings, New_String = concat(Prev_Hash,Pub_Key)
  4. Signieren Sie New_String digital mit einem beliebigen Algorithmus (keine Erwähnung von Einzelheiten im Whitepaper)

ODER

  1. Holen Sie sich die vorherige Transaktion, Prev_Tx
  2. Holen Sie sich den öffentlichen Schlüssel, an den wir Coins übertragen, Pub_Key
  3. Verketten Sie diese beiden Strings, New_String = concat(Prev_Tx, Pub_Key)
  4. Hash New_String , Hashed_New_String
  5. Signieren Sie Hashed_New_String digital mit einem beliebigen Algorithmus

Oder andere Möglichkeiten, dies zu tun, z. B. einen Hash von Prev_Tx zu signieren und dann auch einen Hash von Pub_key zu signieren und 2 Signaturen zu haben.

Ich möchte die Entwicklung von Bitcoin chronologisch untersuchen, indem ich versuche, mich in die Lage der Leute zu versetzen, die ganz am Anfang daran gearbeitet haben, und deshalb möchte ich wissen, was Satoshi wirklich gemeint hat. Kann scheinbar nichts online finden

Ich denke, das erste wäre am besten, denn wenn Sie es entschlüsseln, bleibt eine Zeichenfolge übrig, und wenn Sie dann beispielsweise wissen, dass sich die ersten 32 Bytes auf den Prev_Hash beziehen (weil es eine Ausgabe von SHA_256 ist), können Sie dies einfach aufteilen Zeichenfolge in 2 und die erste Zeichenfolge wäre ein digitaler Fingerabdruck der vorherigen Transaktion, auf die Sie sich beziehen, und die zweite Zeichenfolge wäre der öffentliche Schlüssel, auf den Sie übertragen. Das ist alles, was ein Miner brauchen würde, um eine Transaktion zu validieren, oder nicht?
Was genau ist in jeder Transaktion enthalten, 3 Dinge? Pub_Key des nächsten Besitzers, Hash der vorherigen Transaktion und die Signatur? [Pub_Key, Hash(Prev_Tx), Signatur]? Wenn also ein Miner dieses Tupel erhält, schaut er sich den zweiten Eintrag an, um „Tx_id“ zu erhalten, und findet ihn in der Blockchain, er verwendet dann den ersten Eintrag von Prev_Tx, um die Sig (3. Eintrag) zu entschlüsseln, und kann dann die ersten beiden Einträge verwenden und tun: concat(Prev_Hash,Pub_Key) und prüfen, ob beide gleich sind?
"TX_id" wird als Hash der Transaktion definiert ...
Sie können (und sollten) Ihre Frage bearbeiten, anstatt Kommentare hinzuzufügen. Auf Stackexchange-Websites sind Kommentare temporär und wegwerfbar. Kommentare dienen hauptsächlich dazu, einem Autor zu helfen, eine Frage oder eine Antwort zu verbessern.
Ah okay, das werde ich in Zukunft tun, es ist mein erstes Mal hier, also war mir das nicht bewusst

Antworten (1)

Laut einigen seiner anderen Schriften hatte Satoshi einen funktionierenden Prototyp, als er das Whitepaper schrieb¹. Das Whitepaper gibt einen allgemeinen Überblick über die Funktionsweise von Bitcoin, und zu diesem Zweck hat Satoshi einige der Konzepte vereinfacht.

Zum Beispiel: „Wir definieren eine elektronische Münze als eine Kette digitaler Signaturen.“ ist eine Vereinfachung, da Transaktionen mehrere Eingaben und mehrere Ausgaben haben können. Die resultierende Struktur ist ein gerichteter azyklischer Graph, keine Kette.

Ebenso ist die „Hash“-Box, die sich aus der vorherigen Transaktion und dem öffentlichen Schlüssel des Empfängers zusammensetzt, eine Vereinfachung. Der erste Ausgabetyp, Pay to Public Key (P2PK), sperrte Gelder an den öffentlichen Schlüssel des Empfängers (wörtlich: <pubkey> OP_CHECKSIG). In der Zwischenzeit identifizieren Eingaben, welche "Münze" sie ausgeben, indem sie auf den Endpunkt der Transaktionsausgabe verweisen, der txid:voutsich aus der Transaktions-ID und der Position in der Ausgabeliste zusammensetzt. Zum Signieren erstellen wir dann einen Digest der gesamten Transaktion, um die genauen Eingaben und Ausgaben sowie andere Details der Transaktion festzulegen. Dieser Hash der zu signierenden Transaktion, der Sighash, wird dann zusammen mit dem privaten Schlüssel des Absenders als Eingabe für den Signaturalgorithmus verwendet. Wie Sie sehen können, enthält das Whitepaper nicht annähernd genug Informationen, um die tatsächliche Implementierung abzuleiten.

Das Whitepaper leistet gute Arbeit, indem es Bitcoin in groben Zügen erklärt, aber die tatsächlichen Implementierungsdetails wurden erst deutlich, als die Software selbst veröffentlicht wurde. Hier ist zum Beispiel eine Kopie der Codebasis der Originalversion , kommentiert von Jeremy Rubin.


¹ Ein Whitepaper ist ein Dokument, das einen prägnanten Überblick über etwas geben soll, normalerweise um Leser dazu zu bringen, mehr über ein Produkt oder einen Vorschlag zu erfahren. (Und es hat funktioniert! Ich habe es vor neun oder zehn Jahren gelesen, ich bin immer noch fasziniert.) Es ist jedoch ein Marketingdokument. Es soll kein umfassendes technisches Dokument sein. Ich verstehe nicht, warum die Leute so tun, als wäre es eine Form der ultimativen Wahrheit (in diesem Sinne siehe zB diese Errata ).

Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten. Ich habe versucht, mich in die Denkweise von jemandem hineinzuversetzen, der damals auf der Mailingliste gestanden und dieses Whitepaper gesehen hätte. Wenn Sie Satoshis E-Mail und Whitepaper im Jahr 2008 gesehen und nur die Zusammenfassung und Einführung gelesen hätten und dann Abschnitt 2 (Transaktionen) gelesen hätten, wie hätten Sie seine Aussage interpretiert? Würden Sie ihm antworten und ihn bitten, etwas genauer zu sein? Oder denkst du, er hat es absichtlich etwas vage gelassen, als wollte er sagen: „Die Umsetzung könnte sehr, aber das ist das Wesentliche“?
Wissen Sie auch, wo ich eine Kopie des Originalcodes finden würde? Ich glaube nicht, dass sein Prototyp jemals veröffentlicht wurde, ich bin mir nicht sicher, wo ich die früheste Version finden würde?
@Kryptonite: Ich habe einen Link zu einer Kopie des ursprünglich veröffentlichten Quellcodes hinzugefügt.
Oh, sehe gerade deinen vorherigen Kommentar. Ich habe einen Kommentar dazu hinzugefügt, wie ich das Whitepaper wahrnehme.
Okay, das hat geholfen, ein paar Dinge zu klären, insbesondere das Erratum, auf das Sie verlinkt haben - genau das wollte ich, danke.
Toll, freut mich zu hören, dass es hilfreich war.