Mir ist klar, dass, wenn jemand eine Transaktion ohne Gebühren durchführt und es noch keine Bestätigungen gab, die Transaktion doppelt ausgegeben werden könnte, indem er einfach die gleichen Eingaben an eine andere Adresse ausgibt, aber mit einer Standardgebühr.
Meine Frage ist, wenn jemand eine Transaktion mit einer Standardgebühr sendet und es noch keine Bestätigungen geben muss, könnte diese Transaktion genauso einfach überschrieben werden, indem die Transaktion umgeschrieben wird, aber mit einer höheren Gebühr? Wenn ja, was wären die Auswirkungen für eine Partei, die Zero-Confirmation-Transaktionen wie BitPay akzeptiert?
Das ursprüngliche Design geht von einem gemeinsamen Verhalten der Verarbeitung der eingehenden Transaktion auf FIFO-Basis aus . Das bedeutet, dass die erste von einem Miner empfangene Transaktion gewinnt und alle widersprüchlichen Transaktionen, die danach empfangen werden, ignoriert werden (egal ob die erste bereits bestätigt wurde oder nicht).
Während dieses Standardverhalten für das Netzwerk als Ganzes von Vorteil ist, könnten einige „intelligente“ Miner einen etwas anderen Ansatz verfolgen: Nehmen Sie beim Erstellen eines Blocks immer die Transaktion mit der höchsten Gebühr, unabhängig von der Reihenfolge, in der sie eingegangen ist.
Es mag den Anschein haben, dass dies nur ein geringfügiger Missbrauch des Protokolls ist, und es wird nicht genügend Schurken-Miner geben , die dies tun, also spielt es keine Rolle. Nun, leider gibt es bereits (mindestens) einen Mining-Pool , der versucht, sein Geschäft mit dieser Idee aufzubauen. Sollte es sich durchsetzen, müssen Dienste, die Transaktionen ohne Bestätigung akzeptieren, ihre Richtlinien überdenken.
Wenn ein Knoten eine Transaktion empfängt, speichert er sie. Wenn Sie jetzt eine weitere Transaktion mit derselben Eingabe senden, wird diese abgelehnt, da bereits eine Transaktion vorhanden ist. Sie können also auf diese Weise nicht doppelt ausgeben.
Wenn Sie die zweite Transaktion mit Gebühren an einen Miner senden würden, der Ihre erste Transaktion nicht erhält, würde er sie möglicherweise schneller aufnehmen und daher die ersten Transaktionen überschreiben, trotzdem können die ersten Transaktionen nicht in einen neuen Block aufgenommen werden, da die Ausgabe war schon benutzt.
Wenn ein Händler 0-Bestätigungs-Transaktionen akzeptiert, muss er akzeptieren, dass die Transaktion rückgängig gemacht werden kann. Also sollte er das nur tun, wenn er Ihnen mehr vertraut als den Betrag, den Sie ihm überwiesen haben.
Brian Fabian Crain
knaperek
Murch
knaperek