Kann eine Transaktion verloren gehen?

Da ich mit mindestens einem Peer mit dem Netzwerk verbunden bin, kann ich sicher sein, dass eine von mir gesendete Transaktion ausgeführt wird (entweder mit Fehler oder Erfolg)? Besteht die Möglichkeit, dass es nie in die Blockchain gelangt, sodass der Absender nichts ausgibt? Was ist, wenn es in einem Block enthalten war, der Block dann aber verwaist ist? Wird meine Transaktion „entfernt“?

Wenn es eine solche Möglichkeit gibt, wie geht man damit um? Da ich die speichere TxHash, kann/sollte ich sie regelmäßig überprüfen, und wenn sie nach einer "großen" Anzahl von Blöcken immer noch nicht existiert, den Benutzer darauf hinweisen, dass ihre Transaktion nicht ausgeführt wird und sie sie erneut senden sollten? Diese Lösung scheint anfällig für doppelte Ausgaben zu sein. Aus dieser Antwort verstehe ich auch, dass eine Transaktion verschwinden und viel später wieder auftauchen kann, so dass die "große" Menge an zu wartenden Blöcken unbestimmt ist. Wie kann ich also sicherstellen, dass eine Transaktion in die Blockchain aufgenommen wird?

Vielen Dank

Antworten (1)

Auf Proof of Work basierende Blockchains sind probabilistisch, und je mehr Blöcke auf dem Block aufgebaut werden, der eine Transaktion enthält, desto geringer wird die Wahrscheinlichkeit, dass eine Kettenreorganisation diesen Block und diese Transaktion entfernt.

kann/soll ich es regelmäßig überprüfen, und wenn es nach einer "großen" Anzahl von Blöcken immer noch nicht vorhanden ist, den Benutzer darauf hinweisen, dass seine Transaktion nicht ausgeführt wird und er es erneut senden sollte?

Ja, und für Code siehe Wie kann eine DApp eine Fork- oder Chain-Reorganisation mit web3.js oder zusätzlichen Bibliotheken erkennen?

Im Mainnet gelten etwa 12 Bestätigungen als sicher. (Auf Testnetzen wie Ropsten sind die Garantien viel schwächer und sogar 64 Bestätigungen sind unzureichend ).

Um sicherzustellen, dass eine Transaktion in die Blockchain aufgenommen wird, stellen Sie sicher, dass sie Folgendes hat:

  • ein angemessener Gaspreis (damit Miner ihn in einen Block aufnehmen)

  • ausreichend Gas (damit die Transaktion nicht rückgängig gemacht wird)

Dann übertragen Sie die Transaktion an ein Dutzend Peers und überwachen sie mit mehreren Clients.

Groß! Vielen Dank für diese Antwort. Es gibt also keine Möglichkeit, 100% sicher zu sein, aber wir können nach einer Reihe von Bestätigungen "sicher genug" sein.
Nach Mathematik, das ist richtig. Beachten Sie aus Neugier, dass es trotz der enormen Menge an Arbeit in der Bitcoin-Blockchain immer noch möglich ist, dass jemand (möglicherweise aus dem Weltraum) mit einer Blockchain daherkommt, die mehr Arbeit hat, und alle Bitcoin-Blöcke (nach der Entstehung) neu organisiert werden könnten . Wenn dies passieren sollte, kann sich die Community für eine Hardfork entscheiden, um die Kette vor dem „Einbruch“ zu erhalten.