Warum werden Transaktionen ohne Output standardmäßig nicht weitergeleitet?

Ich habe diesen Thread gelesen, in dem es darum geht, eine Transaktion ohne Ausgabe durchzuführen:

Dürfen Bitcoin-Transaktionen keine Ausgaben haben (dh alle Eingaben werden zu Transaktionsgebühren)?

Die Antwort ist, dass Ausgaben unter einem bestimmten Wert als „Staub“ oder „Spam“ betrachtet werden.

Was steckt dahinter? Wenn der Eingabewert abzüglich des Ausgabewerts über der getMinNonDustValueMindestgrenze liegt, warum würde die Transaktion dann als „Staub“ betrachtet? Die Coinbase des Blocks, der diese Transaktion enthält, würde einfach einen höheren Wert haben, so funktionieren Gebühren normalerweise.

Wenn ich richtig verstehe, würde das Netzwerk stark von einer Transaktion ohne Outputs profitieren. Es ist sowieso ziemlich einfach, diese Regel zu umgehen; Man könnte einfach eine passende Ausgabe hinzufügen getMinNonDustValueund die Eingabe um denselben Betrag erhöhen. Das Zulassen einer Nullausgabetransaktion würde weniger Netzwerklast, weniger Datenspeicherbedarf und vor allem weniger erforderliche CPU-Zyklen bedeuten, da das Ausgabeskript in dieser Transaktion nicht erforderlich ist. Es gibt auch den zusätzlichen Effekt, Bergleute glücklich zu machen, indem eine neue Regel eingeführt wird, die „Spenden nur“-Transaktionen erlaubt, bei denen alle Bitcoin an den Bergmann gehen, der diesen Block löst.

Antworten (1)

Die Regel, dass mindestens eine Ausgabe erforderlich ist, ist Teil des ursprünglichen Codes, und eine Änderung würde einen Hard Fork bedeuten. Es gibt viele gute Änderungen , die mit einer Hard Fork möglich sind, aber keine davon ist die Unterbrechung wert, die eine Hard Fork verursachen würde. Eine Änderung der Regeln, um No-Output-Transaktionen zuzulassen, wäre nicht einmal einen Soft Fork wert, da dies, wie Sie sagten, leicht umgangen werden kann.