Verständnis des Bitcoin-Protokolls (durch Übung)

OK, erstens hat Ken Sheriff (der Typ, der Bitcoin mit Bleistift und Papier abgebaut hat) einige fantastische Bitcoin-Artikel in seinem Blog veröffentlicht .

In „ Using Bitcoins the Hard Way “ schreibt er (Hervorhebung hinzugefügt):

Es stellt sich heraus, dass die tatsächliche Verwendung des Bitcoin-Protokolls schwieriger ist, als ich erwartet hatte. Wie Sie sehen werden, ist das Protokoll ein bisschen durcheinander: Es verwendet scheinbar Big-Endian-Zahlen, Little-Endian-Zahlen, Zahlen mit fester Länge, Zahlen mit variabler Länge, benutzerdefinierte Codierungen, DER-Codierung und eine Vielzahl kryptografischer Algorithmen willkürlich. Infolgedessen gibt es viele lästige Manipulationen, um Daten in das richtige Format zu bringen .

Die zweite Komplikation bei der direkten Verwendung des Protokolls besteht darin, dass es, da es kryptografisch ist, sehr unversöhnlich ist. Wenn Sie ein Byte falsch verstehen, wird die Transaktion ohne Hinweis darauf, wo das Problem liegt, abgelehnt .

Die letzte Schwierigkeit, auf die ich gestoßen bin, ist, dass der Prozess der Unterzeichnung einer Transaktion viel schwieriger als nötig ist, mit vielen Details, die korrekt sein müssen. Insbesondere die Version einer Transaktion, die signiert wird, unterscheidet sich stark von der Version, die tatsächlich verwendet wird .

Offensichtlich hilft das Durcharbeiten von Kens Python-Dateien, die unterschiedlichen Instanzen des Anhängens von Bytes, das Ändern der Endianness und die verschiedenen anderen komplizierten Verfahren zu verstehen, die zum Senden einer Transaktion in Roh-Hex verwendet werden. Ebenso nützlich sind:

  1. Protokollspezifikation @ Bitcoin Wiki
  2. Grafischer Adressgenerator @ RoyalFork
  3. Der Python-Code von Ken Sheriff, der in Verbindung mit diesem Beitrag verwendet wird

Meine Frage: Wie lernt man das Bitcoin-Protokoll durch Üben mit dem Testnet? (Welche Ressourcen werden empfohlen, um eine Rohtransaktion zu formulieren, die über das Bitcoin (Testnet)-Netzwerk gesendet werden soll?)

Antworten (1)

Das Bitcoin-Protokoll ist SEHR einfach. Sie müssen nicht unzählige Handbücher lesen und jahrelang studieren.

Mein Standpunkt ist (zur Beantwortung Ihrer Frage):

  • Schreiben Sie auf den Zettel, was Sie tun möchten.
  • Nehmen Sie Ihre bevorzugte Programmiersprache (C++/Python/Delphi/Java/was auch immer)
  • Verwenden Sie Internetquellen nur als Referenzinformationen. Kopieren Sie keine großen Teile und fügen Sie sie nicht ein

Natürlich,

  • VERWENDEN SIE TESTNET FÜR EXPERIMENTE! NICHT DAS HAUPTNETZ!
Es ist eigentlich eine sehr gute Idee! Bitcoin-Mining mit Bleistift und Papier (in meiner Frage verlinkt) war wahrscheinlich eine Übung, die Sheriff angesichts der aufgewendeten Zeit nicht so schnell vergessen wird! Es ist jedoch sehr wahr, dass es aus irgendeinem Grund nicht so einfach ist, digitale Notizen im Vergleich zu schriftlichen Notizen zu behalten (GenXer vielleicht?)