Bitcoin-Transaktion
Transaktion ist ein Datenabschnitt, der durch eine Unterschrift bestätigt wird. Es wird an das Bitcoin – Netzwerk gesendet und bildet Blöcke. Es enthält normalerweise Verweise auf vorhergehende Transaktionen und ordnet eine bestimmte Anzahl von Bitcoins mit einem oder mehreren öffentlichen Schlüsseln zu ( Bitcoin-Adressen). Es ist nicht verschlüsselt, da im Bitcoin-System nichts zu verschlüsseln ist.
Im Browser Blockchain werden alle Transaktionen in Form einer Blockkette zusammengefasst. Sie können gefunden und verifiziert werden. Dies ist notwendig, um technische Transaktionsparameter zu ermitteln und die Details von Zahlungen zu überprüfen.
Inhaltsverzeichnis
Das allgemeine Format von Bitcoin-Transaktionen
Feld | Beschreibung | Größe |
---|---|---|
Versionsnummer | Derzeit 1 | 4 Bytes |
In-Counter | Positive ganze Zahl VI = Varlnt | 1-9 Bytes |
Liste der Eingaben | Die erste Eingabe der ersten Transaktion wird auch als Coinbase bezeichnet | <In-counter> viele Eingaben |
Out-counter | Positive ganze Zahl VI = Varlnt | 1-9 Bytes |
Liste der Ausgaben | Die erste Ausgabe der ersten Transaktion verwendet Bitcoins für den Block | <out-counter> viele Ausgaben |
Sperrzeit | Wenn ungleich 0 ist und Sequenznummern sind schlechter als OxFFFFFFFF: Höhe oder Zeitstempel vom Block (für abschließende Transaktionen) | 4 bytes |
Beispiel einer Bitcoin-Transaktion mit Eingabe und Ausgabe
Daten
Eingang: Vorheriger Tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6 Index: 0 scriptSig: 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10 90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501
Ausgabe: Wert: 5000000000 scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d OP_EQUALVERIFY OP_CHECKSIG
Deutung
Die Eingabe in dieser Transaktion importiert 50BTC von der Ausgabe #0 in Transaktionen f5d8 …, dann sendet der Ausgang 50 BTC an eine Bitcoin-Adresse (hier in Form eines hexadezimalen Systems ausgedrückt – 4043 …). Wenn der Empfänger sein Geld ausgeben möchte, wird er auf die Ausgabe #0 dieser Transaktion für die Eingabe seiner eigenen Transaktion verweisen.
Eingabe
Eingabe ist eine Referenz auf die Ausgabe einer anderen Transaktion. Eine Transaktion besitzt oft mehrere Eingaben. Die Werte dieser Referenzen werden wieder aufgenommen, und der Gesamtwert von Bitcoins kann für die aktuelle Transaktionsausgabe verwendet werden. Vorheriges tx ist der Hash einer vorhergehenden Transaktion. Der Index ist eine bestimmte Ausgabe dieser Transaktion. ScriptSig ist die erste Hälfte des Skripts (mehr Details dazu finden Sie weiter unten).
Das Skript besteht aus zwei Elementen: der Signatur und dem öffentlichen Schlüssel. Der öffentliche Schlüssel gehört dem Benutzer, der die Transaktionsausgaben anwendet und bestätigt, dass der Ersteller der Transaktion das Recht hat, über die aus den Ausgaben erhaltene Geldsumme verfügen zu können. Ein anderes Element ist EDCSA (Hash – Signatur einer vereinfachten Version der Transaktion). In Kombination mit dem öffentlichen Schlüssel bestätigt diese Signatur, dass die Transaktion vom echten Eigentümer dieser Bitcoin-Adresse erstellt wurde.
Ausgabe
Die Ausgabe enthält Anweisungen zum Senden der Bitcoins. Der Wert ist ein Betrag in Satoshi (1 BTC = 100000000 Satoshi), der von der Transaktion verwendet werden kann, für die die aktuelle Transaktion die Eingabe ist. ScriptPubKey ist die zweite Hälfte des Skripts (auf das später noch eingegangen wird). Es kann mehr als eine Ausgabe sein, und diese teilen sich die Menge, die von den Eingaben gesendet wird. Jede Transaktionsausgabe darf nur einmal als Eingabe für die nachfolgende Transaktion verwendet werden, so dass die Summe aller aktuellen Transaktionseingaben in der Ausgabe verwendet werden muss. Andernfalls geht die verbleibende Summe aus den Transaktionseingaben verloren. Wenn zum Beispiel die Eingabe gleich 50BTC ist und der Benutzer nur 25BTC senden muss, erzeugt Bitcoin jeweils zwei Ausgaben von 25BTC: eine geht zum Ziel, die Andere geht wieder an den Besitzer des Geldes (der so genannte ‘ change ‘- eine Transaktion, bei der der Benutzer tatsächlich Geld an sich selbst sendet). Jeder verbleibende Betrag aus der Eingabe von Bitcoins, die nicht in der Transaktion verwendet werden, wird die Gebühr für die Transaktion. Die Person, die den Block generiert, erhält diese Gebühr.
Transaktionsverifizierung
Zu überprüfen, ob die Eingaben die erforderlichen Summen von den Ausgaben der vorhergehenden Transaktionen sammeln dürfen, verwendet Bitcoin das Standardsystem des Skripts (sehen unten) der ScriptSig-Eingabe und der ScriptPubKey-Ausgabe, auf die diese Transaktion verweist. Sie werden mit Hilfe von ScriptPubKey unter Verwendung der restlichen Werte im ScriptSig-Stapel ausgewertet.
Die Eingabe wird bestätigt, wenn das Script ScriptPubKey einen “True” -Wert zurückgibt. Mit dem Skript-System kann der Sender sehr komplexe Bedingungen schaffen, die diejenigen erfüllen müssen, die den Ausgabewert erhalten möchten. Zum Beispiel ist es möglich, eine Eingabe zu erstellen, die jeder Benutzer ohne Berechtigung erhalten wird. Es ist ebenso möglich, die Eingabe mit 10 verschiedenen Schlüsseln zu signieren oder mit einem Passwort zu verifizieren.
Allgemeines Format jeder Transaktionseingabe – Txin
Feld | Beschreibung | Größe |
---|---|---|
Hash der vorhergehenden Transaktion | Doppelter SHA256 der vorhergehenden Transaktion | 32 Bytes |
Vorheriger Txout-Index | Arithmetische Ganzzahl. Es indiziert Ausgaben der vorhergehenden Transaktion | 4 Bytes |
Liste der Eingaben | Die erste Eingabe der ersten Transaktion wird auch als Coinbase bezeichnet | <In-counter> viele Eingaben |
Länge des Txin-Skripts | Arithmetische Ganzzahl VI = Varlnt | 1-9 Bytes |
Txin-Skript / SkriptSig | Script | <Länge innerhalb des Skripts> viele Bytes |
Sequenznummer | Normalerweise 0 [FFFFFFFF; funktioniert in dem Fall, dass die Sperrzeit der Transaktion> 0 ist | 4 Bytes |
Die Eingabe beschreibt angemessen, wo und wie die Anzahl der Bitcoins erreicht werden kann, die von ihrem neuen Besitzer eingelöst werden können. Wenn es sich um die einzige Eingabe der ersten Transaktion im Block handelt, wird sie als generierte Transaktionseingabe bezeichnet. Sein Inhalt wird komplett ignoriert.
Allgemeines Format jeder Transaktionsausgabe – Txout
Feld | Beschreibung | Größe |
---|---|---|
Wert | Arithmetische Ganzzahl, die einen Betrag Satoshi (BTE/10^8) ergibt, der für Transaktionen erforderlich ist | 8 Bytes |
Länge des Txout-Skripts | Arithmetischer Stapel | 1-9 Bytes |
Txout-Skript / ScriptPubKey | Script | <Länge des Ausgabeskripts> viele Bytes |
Die Ausgabe bestimmt die Bedingungen der Verwendung der Bitcoin-Daten in den folgenden Transaktionen, die Summe der Ausgabewerte der ersten Transaktion in dem Block ist ein Wert von Bitcoins, die für den Block genommen werden. Hier wird ein Gebührenbetrag von den anderen zu diesem Block hinzugefügten Transaktionen hinzugefügt.
Transaktionsbestätigung
- Hauptseite: Transaktionsbestätigung
Eine Transaktion ist eine Wertübertragung zwischen Bitcoin-Wallets, die in die Blockkette aufgenommen wird. How does Bitcoin work? Bitcoin-Transaktionen sind nicht unmittelbar. Wenn ein Benutzer Bitcoins senden möchte, werden Informationen von seiner Brieftasche an die (Benutzer im) Netzwerk gesendet, die verifizieren, dass sie genug Münzen hat und dass sie noch nie zuvor ausgegeben wurden. Nach der Validierung werden Miners diese Transaktion – zusammen mit anderen – in einen neuen Bitcoin-Block in der Blockchain aufnehmen. Dies wird als Transaktionsbestätigung bezeichnet. Die Transaktion wird nun als “0/unbestätigt” bezeichnet.
Jedes Mal, wenn der Kette ein neuer Block hinzugefügt wird (alle zehn Minuten), wird die Transaktion erneut bestätigt. Als Konsens warten viele Nutzer darauf, dass eine Transaktion sechs Mal bestätigt wird (nach ungefähr sechzig Minuten), bevor sie sie als Zahlung akzeptieren, um Doppelausgaben zu vermeiden. Benutzer zeigen eine Transaktion normalerweise als “n/unbestätigt” an, bis sie sechs Blöcke tief ist.
Transaktionsgebühr
Derzeit wird eine große Anzahl von Transaktionen so verarbeitet, dass keine Provision erforderlich ist. Zur gleichen Zeit, wenn die Transaktion viele Einstiegspunkte hat (z.B. große Datenmengen), ist eine kleine Provision nicht ungewöhnlich.
Jeder Miner kann derjenige sein, der die Transaktion verarbeitet und die Transaktionsgebühr verdient. Wenn das Netzwerk einen neuen Block findet, enthält es alle Informationen über Transaktionen einschließlich ihrer Provision. Somit erhält jeder Benutzer einer Gruppe von Benutzern, die diesen Block finden, sowohl die Belohnung für die Blockierung als auch die Provisionsgebühren für jede darin enthaltene Transaktion.
Die Einbeziehung der Provision in eine Transaktion ist eine freiwillige Entscheidung, aber ein Benutzer, der einen Block findet, kann beliebige Transaktionen, die er wünscht, an den besagten Block anhängen. Auf diese Weise haben Transaktionen mit 0 Provisionen die niedrigste Priorität, wenn Transaktionen mit der minimal möglichen Provision (~ 0,0001 BTC zum aktuellen Zeitpunkt) Standardpriorität haben und wahrscheinlich in den Block aufgenommen werden.