Warum wird von OP_RETURN-Transaktionen abgeraten? Zahlen sie im Vergleich zu anderen Transaktionen weniger Gebühren?
Wird es einen Unterschied machen, wenn dasselbe mit Version oder Sperrzeit gemacht wird, wenn die Daten entweder 1 oder 2 sind?
Beispiel:
OP_RETURN
createrawtransaction '[]' '{"data":"32"}'
Sperrzeit
createrawtransaction '[]' 2
AUSFÜHRUNG
Ändern Sie den Quellcode und machen Sie ihn konfigurierbar, obwohl er bereits 2 ist, also müssen Sie ihn für dieses Beispiel nicht ändern: https://github.com/bitcoin/bitcoin/blob/7fcf53f7b4524572d1d0c9a5fdc388e87eb02416/src/primitives/transaction.h#L263
Sie können dasselbe nicht erreichen, wenn Sie die Teile ohne Konsensbedeutung von nSequence
+ verwenden nLockTime
(wie es zum Beispiel Lightning tut ). Es ist einfach nicht genug Platz: 48 "freie" Bits.
Das Ändern der Version ist eine schlechte Idee, da es verwendet werden könnte, um sich für einen zukünftigen Soft Fork anzumelden, dessen Regeln noch nicht definiert wurden. Transaktionen mit einer Version < 2
sind auch (und daher) keine Standards.
Ob von OP_RETURN-Transaktionen abgeraten wird oder nicht, ist Ansichtssache.
Persönlich denke ich, dass Transaktionen keine Daten speichern sollten, die nicht für die Welt benötigt werden, um sie zu überprüfen, was per Definition für die in OP_RETURNs gespeicherten Daten der Fall ist. Entweder Sie verwenden es, um die Blockchain als Datenspeicher zu verwenden (was eine lächerlich ineffiziente Technologie für den Zweck ist, dem es dient, und bei ausreichendem Gebührendruck sehr teuer), oder Sie verwenden es, um dem Empfänger etwas mitzuteilen, das dies könnte wurden stattdessen außerhalb der Band gemacht.
Es ist also keine Kritik an OP_RETURN selbst – es ist eine Kritik an dem, was Sie damit zu tun versuchen. Es würde gleichermaßen für den Versuch gelten, Locktime oder Versions- oder Sequenznummern für denselben Zweck zu verwenden: Meiner Ansicht nach ist dies alles nur der Aufbau technisch minderwertiger Lösungen, die vollständig andere Ansätze (nicht die Verwendung der Blockchain) verwenden sollten.
Es gibt keinen Preisunterschied; die Bytes im OP_RETURN zählen genauso viel wie alle anderen (nicht-segwit) Bytes. Warum ist das besorgniserregend? Das Problem ist, dass jede Transaktion, selbst solche mit Ausgaben, die es nicht in das UTXO-Set schaffen, Kosten für das Netzwerk verursacht. Jeder vollständige Knoten muss es herunterladen und verarbeiten. Transaktionen zahlen eine Gebühr, aber diese Gebühr geht an Miner, nicht an Full-Node-Betreiber. Es gibt verschiedene Gründe für den Betrieb eines Knotens, aber alle beziehen sich auf die eine oder andere Weise darauf, dass er die Teilnahme an der Bitcoin-Wirtschaft ermöglicht. Sie tun dies nicht, um mit Ihren persönlichen und/privaten Daten umzugehen.
Ich glaube nicht, dass dies langfristig ein Problem darstellt – der Gebührendruck wird sinnlose Nutzungen der Blockchain auf andere Systeme verdrängen (und hat dies weitgehend verdrängt). Das Bitcoin-Ökosystem ist jedoch noch relativ jung, und um sein Wachstum nicht zu ersticken, finde ich es klug, Menschen davon abzuhalten, Knoten mit Transaktionsdaten zu belasten, die dem Ökosystem nicht helfen.
Wenn Sie aus irgendeinem Grund sowieso eine Datenspeicherlösung auf Basis der Blockchain erstellen, verwenden Sie auf jeden Fall OP_RETURN. Auf diese Weise belasten Sie zumindest die Blockchain und nicht das UTXO-Set.
Benutzer103136
Antoine Pointot