Wie kann man benutzerdefinierte Daten in Blockheader einbetten?

Einige Mining-Pool-Administratoren fügen benutzerdefinierte Daten wie Gebete in Block-Header ein . Wie haben sie das gemacht? Wo kann ich diese Daten selbst einsehen?

fair genug, können wir jetzt eine allgemeine Antwort erhalten, die verdeutlicht, dass es (mindestens) zwei Möglichkeiten gibt, wie Menschen Nachrichten und andere benutzerdefinierte Daten in die Blockchain eingefügt haben?
Sie können NICHTS in den Blockheader einbetten. Sie können Daten in den Block selbst einbetten. Die beiden Methoden sind über die Coinbase-Transaktion oder über eine „Dummy-Transaktion“. Keiner von beiden hat etwas in den Blockheader eingefügt.
Leute haben mit etchablock.com Nachrichten in die Blockchain geschrieben – siehe blockexplorer.com/tx/… für ein Beispiel.

Antworten (4)

Wenn Sie einen Block generieren, hat die Generierungstransaktion (diejenige, die neue Coins erstellt) ein Attribut namens coinbase . Es ist ein besonderer Wert, in den Sie alles eingeben können, was Sie wollen, um den Block für andere unvorhersehbar zu machen (und das ist gut so).

Sie können also natürlich Text in dieses Attribut einfügen, obwohl die meisten nur miningbezogene Informationen einfügen, die nicht für Menschen lesbar sind (Nonce und Extra-Nonce).

Sie können diese Coinbase lesen, indem Sie einen gepatchten Bitcoin-Knoten verwenden, der Blöcke ausgeben kann, beispielsweise mit den Patches „dumpblock“ oder „getblockbyhash“.

Oder Sie können einfach jeden String direkt in der Blockchain-Datenbank drucken:strings -n 20 blk0001.dat

Beispiel für den 1. Block:

Münzbasis:04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

ASCII-Übersetzung:ᝣᝣᝣᝣᝣᝣᝣEThe Times 03/Jan/2009 Chancellor on brink of second bailout for banks

Dies wird vom Eligius-Pool verwendet; es bringt Gebete in dieses Feld.

Tatsächlich ist das nicht die effizienteste Art, Informationen in der Blockchain zu speichern. Siehe meinen Kommentar.
Es ist zwar nicht der effizienteste Weg, aber definitiv der einfachste Weg (sowohl zum Versenden von Nachrichten als auch zum Lesen).
Dieser Link pident.artefact2.com/b/0 ist tot. Es sagt mir "[...] ist auf diesem Server nicht mehr verfügbar und es gibt keine Weiterleitungsadresse. Bitte entfernen Sie alle Verweise auf diese Ressource."

Dan Kaminsky erläuterte bei einem Vortrag auf der Black Hat USA 2011 seine Methode und Beweggründe für das Einfügen von Bildern in die Blockchain – die entsprechenden Folien (12-20) aus der Präsentation finden Sie hier.

Seine grundlegende Methode bestand darin, Transaktionen mit vielen Ausgaben zu erstellen und die Nachricht in ASCII-Stücken in das Empfangsadressfeld der Ausgabeskripte aufzunehmen. Sie können die entsprechenden Hex-Codes für das ASCII in seiner Nachricht in der Rohtransaktion sehen . Sie können sehen, dass die Nachricht von den anderen Transaktionsfeldern unterbrochen wird, sodass Sie die Nachrichten nur richtig sehen können, wenn Sie mit einem Tool (z. B. strings ) suchen, das nicht druckbare Zeichen herausfiltert und druckbare Zeichen in Zeilen anzeigt. Seine Transaktion erforderte eine Bitcoin-Gebühr von 0,15, damals etwa 1,50 Dollar.

Können Sie in der Antwort neben dem Link ein paar Informationen angeben?
Ja, eine kurze Erklärung der verwendeten Methode wäre großartig.

Zu diesem Thema gab es dieses Jahr einen sehr interessanten Vortrag auf dem Chaos Communication Camp. IIRC können Sie beliebige Informationen in Bitcoin-Transaktionen speichern, da sie tatsächlich „Programme“ enthalten, die angeben, wie die Transaktion verifiziert werden soll.

Informationen zur 'Scripting'-Schnittstelle finden Sie hier . Siehe Abschnitt 2.3 für Details zum Einbetten von Nachrichten.

Die Frage bezieht sich auf das Einbetten von Daten in Blockheader, nicht auf Transaktionen.
@nmat: Nun, wenn Sie es wörtlich nehmen, lautet die Antwort, dass Sie es nicht können. Zumindest nicht annähernd praktikabel. (Die Kopfzeile ist zu klein und die meisten Felder sind zwingend erforderlich.)

Der Hacker war Dan Kaminsky und er hat dieses Bild in die Blockchain eingebettet.

Dies ist im Moment nur eine technologische Kuriosität, es hat keine bekannten Auswirkungen auf die rechtlichen oder technischen Aspekte von Bitcoin. Ich habe seine Arbeit nicht gelesen, aber er muss einen modifizierten Miner verwendet haben, der nach Hashes sucht, die mit einem voreingestellten Präfix beginnen.

Lassen Sie uns das klarstellen: Mining ist der Prozess, Lösungen (oder Hashes) für eine Kryptografiegleichung zu finden. Der erste, der eine Lösung findet, bekommt seine Lösung in die Blockchain aufgenommen – die permanente Transaktionsaufzeichnung. Was Kaminsky tat, war, nach einer bestimmten Art von Hash statt nur nach einem zufälligen Hash zu suchen, der den eingebetteten Test enthält. Sobald dies gefunden war (nur eine Frage des Betreibens eines Miners für einen ausreichend langen Zeitraum), wurde diese spezifische Lösung mit dem eingebetteten Text zur Blockchain hinzugefügt.

Können Sie ein oder zwei Sätze darüber schreiben, was das bedeutet (dh wie man ein Bild in eine Liste von Transaktionen einbettet). Ich versuche hier eine Antwort zu bekommen, die zeigt, dass niemand Zugriff auf die Blockchain hatte, um "Transaktionsdaten zu ändern" oder ähnliches.
@lemoginger - beantwortet meine erweiterte Antwort Ihre Frage?
Ich glaube schon. Ich habe selbst nicht verstanden, wie das funktioniert :)
Bist du dir sicher? Demnach tat er dies über Transaktionen mit speziellen Zieladressen
@nmat - überhaupt nicht sicher, ich hatte angenommen, dass dies so gemacht wurde. (Mutter aller ****ups). Bitte poste noch eine Antwort.
Ja, bitte poste jemand eine andere Antwort, das ist definitiv falsch.