Könnte eine Transaktion mit Standardgebühr durch die Verwendung einer höheren Gebühr doppelt ausgegeben werden?

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?

Antworten (2)

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.

Tolle Antwort, bis auf eine Sache: Es braucht nicht viele „Rogue Miner“, damit dies zu einem Problem wird. Selbst wenn nur 5 % der Miner dies tun, könnte dies die Annahme von Transaktionen ohne Bestätigung unmöglich machen. So würde es funktionieren: Ich gebe 100 mBTC für ein Abendessen in einer regulären Transaktion aus, die das Restaurant ohne Bestätigung akzeptiert. Ich sende eine weitere Transaktion, die 90 mBTC der Eingaben an mich selbst zurückgibt und 10 mBTC als Miner-Gebühr zahlt. Für mich besteht kein Risiko! Im schlimmsten Fall habe ich bezahlt, was ich sowieso ausgegeben habe. Aber bei x% Chance muss ich nur 10% des Abendessens bezahlen!
Sicher, die Formulierung „genug Schurkenminen“ war keineswegs mehrheitlich gemeint, sondern eher „genug, damit die Chance auffällt“. 5% sind schon eine große Zahl. Wie auch immer, es hebt nur das Risiko hervor, Transaktionen ohne Bestätigung zu akzeptieren, wenn Sie den Dienst IRL nicht zurückfordern können. In Ihrem Beispiel mit dem Restaurant könnte dies als Verlassen ohne Bezahlen angesehen werden, was ohnehin schon ein Risiko darstellt - und es gibt einige Möglichkeiten, damit umzugehen (einschließlich der Polizei). Stellen Sie also sicher, dass Sie bei der Bewertung Ihres Risikos den gesamten sozialen Aspekt berücksichtigen.
Nach dem, was ich gelesen habe, haben wir den Punkt erreicht, an dem die Nullbestätigung nicht mehr praktikabel ist. Wenn Sie zu diesem Thema noch auf dem Laufenden sind, können Sie Ihre ausgezeichnete Antwort vielleicht aktualisieren. :)
Bist du dir sicher? Mir ist keine wesentliche Änderung der Situation in den letzten Jahren bekannt; Es ist immer noch möglich, Zahlungen sofort zu akzeptieren, wenn die Transaktion entdeckt wird, insbesondere bei einigen rückforderbaren Online-Diensten, und es kann in Ordnung sein, solange dies berücksichtigt und Maßnahmen ergriffen werden, um weiterhin sicherzustellen, dass die Transaktion ordnungsgemäß bestätigt wird.

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.