Was passiert, wenn ich mich bei der Zahlung bei der Adresse vertippe?

Ich habe Bitcoins an eine Adresse geschickt, aber ich glaube, ich habe beim Kopieren einen Tippfehler gemacht. Wo sind diese Bitcoins geblieben? Kann ich sie zurückbekommen?

Antworten (7)

Bitcoin ist sehr resistent gegen Tippfehler, da die Adressen einen eingebauten Prüfcode enthalten . Wenn Sie also nur ein paar Buchstaben oder Zahlen in der Adresse falsch eingegeben hätten, wäre es unwahrscheinlich, dass der Kunde Ihnen erlaubt hätte, sie zu senden. Wenn Sie jedoch eine andere und gültige Adresse eingefügt haben, werden die Coins bereits dauerhaft darauf übertragen. In diesem Szenario funktioniert Bitcoin ziemlich genau wie Bargeld – es gibt keine Möglichkeit, es zurückzubekommen, nachdem man es verschenkt hat.

Ein Hinweis für alle Vorbeigehenden: Das heute (2020) übliche Adressformat (bech32) ist noch fehlerresistenter gegen Tippfehler.

Es ist höchst unwahrscheinlich, dass Sie sich vertippt haben und trotzdem Coins versenden konnten. Es gibt einen Unterschied zwischen einer ungültigen Adresse und einer falschen Adresse.

Alle Bitcoin Wallets/Clients prüfen, ob die Adressen gültig sind.
Bitcoin-Adressen sind der in Base58 codierte PubKeyHash mit einem Versionswert und einer Prüfsumme. Die Prüfsumme sind die 32 Bits ganz links eines doppelten Hashs des PubKeyHash. Das Format der Adresse wird in technischen Dokumenten oft als Base58Checked bezeichnet.

Da die Prüfsumme 32 Bit beträgt, beträgt die Wahrscheinlichkeit, dass eine falsche Adresse eingegeben wird, die immer noch in einen falschen, aber gültigen PubKeyHash dekodiert wird, etwa 1 zu 4,3 Milliarden. Im Durchschnitt führt also ein Tippfehler in 4.294.967.295 von 4.294.967.296 Fällen zu einer falschen UND ungültigen Adresse. Wenn der PubKeyHash dekodiert wird, erzeugt er nicht die richtige Prüfsumme, der Fehler wird vom Client/Wallet erkannt und die Transaktion wird nicht erstellt.

Um tatsächlich Münzen durch einen Tippfehler zu verlieren, müssten Sie nicht nur eine ungültige Adresse angeben, sondern eine, die gültig, aber falsch ist, und die Wahrscheinlichkeit, dass dies passiert, ist fast null.

In diesem äußerst unwahrscheinlichen Fall (1 von 4,3 Milliarden ist 10-mal weniger wahrscheinlich als der Gewinn der US PowerBall-Lotterie) ist die Transaktion irreversibel und kann nur von der Person ausgegeben werden, die den privaten Schlüssel für die falsche Adresse/den falschen Pubkey hat. Wenn man bedenkt, wie viele private Schlüssel möglich sind, ist es fast sicher, dass niemand diese privaten Schlüssel jemals hat oder jemals haben wird, und die Gelder werden für immer unausgebbar bleiben.

Ist es also richtig zu glauben, dass es nicht möglich sein sollte, wenn Sie versehentlich einen ungültigen Empfänger ausgestellt haben, diesen doppelt an sich selbst zurückzugeben und ihn schneller verifizieren zu lassen, da er von den meisten Bergleuten abgelehnt wird? Oder ist es tatsächlich unmöglich, an eine ungültige Adresse zu senden (ich dachte, so schreiben die Leute Nachrichten an die Blockchain?)
@Murch, Es ist unmöglich, an eine ungültige Adresse zu senden. Kein (konformer) Client wird die Transaktionen überhaupt erstellen. Kein (konformer) Knoten wird die Transaktion weiterleiten und kein (konformer) Miner würde sie in einen Block aufnehmen. Wenn ein Miner dies getan hätte, würde der Block von allen anderen Knoten als ungültig angesehen werden. Wenn Leute Coins an eine Adresse schicken wollen, bei der der Schlüssel unbekannt ist, erstellen sie eine gültige Adresse, indem sie die richtige Prüfsumme für die "falsche" Adresse berechnen, an die sie die Coins schicken wollen.

Bitcoin-Transaktionen sind irreversibel. Wenn Sie bei der Transaktion mit dem Netzwerk verbunden waren, gehen Ihre Coins verloren.

Wenn Sie nicht mit dem Netzwerk verbunden waren, können Sie Ihre wallet.datBitcoin mit der --rescanOption wiederherstellen und starten. Dadurch wird die Transaktion effektiv rückgängig gemacht (die noch nicht an die Blockchain übergeben wurde).

Was wäre, wenn ich mit dem Netzwerk verbunden wäre, aber schnell (d. h. bevor meine Transaktion in einen Block gelangt) meine wallet.dat und --rescan wiederherstellen und dann die gleichen Coins erneut ausgeben, aber mit einer höheren Transaktionsgebühr? Besteht die Chance, dass die neue Transaktion der alten vorgezogen wird?
nein, sehr unwahrscheinlich. Wenn Bitcoin der ersten Transaktion den Vorzug gibt, werden alle später auftretenden widersprüchlichen Transaktionen ignoriert und nicht weitergeleitet, auch wenn sie höhere Gebühren haben.
@ChrisMoore: Was Nanotube gesagt hat, und wenn dies möglich wäre, wäre es natürlich auch extrem einfach, doppelt auszugeben.
@ChrisMoore - so wie ich es verstehe, are encouragedgeben Bergleute den ersten Transaktionen Vorrang, aber dies ist kein Auftrag des Protokolls.
Wenn die Transaktionsgebühr der „Ersatz“-Transaktion hoch genug wäre, könnten einige Miner versucht sein, die erste Transaktion zu ignorieren und sich für die höhere Belohnung zu entscheiden, denke ich. In jedem Fall ist es für Empfänger von Bitcoin-Zahlungen am besten, auf eine Bestätigung zu warten, wenn der Betrag der Zahlung erheblich ist.
@ ripper234 Obwohl das stimmt, könnte ein Bergmann modifizierte Bitcoins ausführen und doppelte Ausgaben durch Gebühr priorisieren, anstatt zuerst gesehen zu werden, dass das Problem darin besteht, diese Transaktion an einen Bergmann zu bringen (und einen, der bereit ist, die Sicherheit des Netzwerks für einen kleinen Gewinn zu verringern). Die überwältigende Mehrheit der Knoten ist nicht direkt mit einem Miner verbunden, und wenn alle Peers, mit denen Sie verbunden sind, konformen Code ausführen, werden sie die doppelten Ausgaben ablehnen und nicht weiterleiten. Dies bedeutet, dass ein gieriger, aber williger Miner die Transaktion niemals sehen wird, um zu versuchen, die zweite in einen Block aufzunehmen.

Die Bitcoin-Adresse enthält Prüfsummen, daher ist es weniger wahrscheinlich, dass Sie einen zufälligen Tippfehler gemacht und eine gültige Bitcoin-Adresse eingegeben haben. Wenn die Adresse jedoch gültig und auch falsch ist, dann ist es wahrscheinlich, dass die Münzen effektiv zerstört werden. Sie können die Adresse im Blockchain-Explorer überprüfen . Es kann Ihnen helfen, festzustellen, ob die Adresse eine gültige Adresse war (z. B. die eines Freundes, falls Sie die falsche Adresse eingefügt haben) oder eine, auf die Sie woanders Zugriff haben.

Da Transaktionen jedoch irreversibel sind, gibt es keine Möglichkeit, sie "zurückzuziehen" oder die Transaktion abzubrechen.

Bitcoin-Adressen enthalten einen Prüfwert: zusätzliche Daten, die als Funktion des Rests berechnet werden, sodass Fehler wahrscheinlich keine akzeptablen Adressen sind. 1x- und 3x-Adressen verwenden einen kryptografischen 32-Bit-Hash für ihren Prüfwert, und als Ergebnis hat jede gegebene gut formatierte Zufallsadresse eine ungefähre Chance von 1 zu 2^32, akzeptiert zu werden.

Aber wenn Benutzer Fehler machen, erzeugen sie im Allgemeinen keine zufälligen Zeichenfolgen, sondern neigen zu Tippfehlern, bei denen eine kleine Anzahl von Zeichen durch Alternativen ersetzt wird, die visuell ähnlich, hörbar ähnlich, ähnlich der Tastaturposition oder Groß- und Kleinschreibung sind. Die Transposition benachbarter Zeichen ist ebenfalls wahrscheinlicher als zufällige Fehler. 1x/3x-Adressen wurden mit einer Verbesserung gegenüber wahrscheinlichen Fehlern entwickelt: Der base58-Zeichensatz schließt eine Reihe visuell ähnlicher Zeichen aus.

Im Durchschnitt wird einer dieser wahrscheinlichen Fehler auch nur 1 in 2^32 Mal akzeptiert, aber manchmal ist eine bestimmte Adresse anfälliger, da die Erkennungsleistung nur durchschnittlich ist. Beispielsweise könnten Sie eine Adresse haben, an der es einen oder mehrere verschiedene Orte gibt, an denen ein wahrscheinlicher Fehler gemacht werden könnte. Dies ist kein praktisches Problem, da diese Fälle unwahrscheinlich sind, aber es ist ein Bereich, der verbessert werden könnte.

BIP173 führte Adressen im BC1x-Stil ein (auch bech32 genannt). BC1-Adressen verwenden einen kleineren Zeichensatz ohne gemischte Groß-/Kleinschreibung, wodurch eine Hauptursache für Übertragungsfehler vollständig beseitigt wird. Wie Base-58 schließt der bech32-Zeichensatz auch einige visuell verwirrende Zeichen aus (zusätzlich zu allen Groß- und Kleinschreibung).

BC1-Adressen haben auch einen Prüfwert, aber dieser beträgt 30 Bit statt 32 Bit. Die 30-Bit-Prüfung in BC1-Adressen ist zwar kürzer, aber radikal stärker als der alte Ansatz, da sie aus einem Fehlerkorrekturcode anstelle eines kryptografischen Hashs aufgebaut ist.

Der Aufbau für BC1-Adressen garantiert, dass bis zu 4 Zeichenfehler oder 4 Vertauschungen in einer Adresse immer erkannt werden. 5 Fehler werden auch immer erkannt, wenn sie alle unter den optisch ähnlichsten verbleibenden Zeichen gemacht werden. Bei mehr Fehlern als garantiert, nähert sich die Rate falscher Annahmen 1 zu 2^30, wenn die Anzahl der Fehler steigt.

Das auf dem Fehlerkorrekturcode basierende Design von bech32 bedeutet auch, dass Anwendungen Benutzern ohne eine rechenintensive Brute-Force-Suche mitteilen können, welche Zeichen sie falsch verstanden haben.

Als wir BIP173 entworfen haben, hielten wir 30-Bit-Schutz gegen zufällige Fehler wahrscheinlich für übertrieben, aber wir wollten keine Fehlererkennungsleistung haben, die in irgendeiner wichtigen Hinsicht viel schlechter war als der alte Standard.

Wenn Sie den Benutzer so modellieren, dass er zufällige Fehler macht und im Durchschnitt beispielsweise 2,5 % der Zeichen falsch eingibt (also ein Fehler pro eingegebener Adresse erwartet wird), bietet bech32 diesem Benutzer im Durchschnitt einen besseren Schutz als ein zufälliger 39-Bit-Hash (also 1 in 2^39 falsch eingegebene Adressen werden fälschlicherweise akzeptiert). Vorsicht zahlt sich auch aus: Wenn die Fehlerrate des Benutzers auf 0,1 % reduziert wird, sinkt die Rate der akzeptierten schlechten Adressen auf 1 zu 2^60).

Diese Grafik zeigt das effektive Schutzniveau als Funktion der Fehlerrate des Benutzers für Bech32, einen 32-Bit-Hash (wie 1x-Adressen) und alternativen Fehlerkorrekturcode, den wir hätten bekommen können, wenn wir nicht so viel Sorgfalt walten lassen würden bei der Gestaltung von bech32:

Bech32-Fehlerschutzstufe

BC1-Adressen vermeiden Fehler auch auf andere Weise: Menschen verlieren manchmal Geld, weil eine Reihe rücksichtsloser/betrügerischer Altcoins das Bitcoin-Adressformat kopiert haben, sodass Sie versehentlich Bitcoins an eine Altcoin-Adresse senden können. Im Moment gilt dies nicht für die BC1-Adresse, und das Präfix, das mit „BC“ beginnt, wird hoffentlich die Wahrscheinlichkeit dafür in Zukunft verringern. (Obwohl es leider für mehr betrügerische Kryptowährungen in Mode gekommen ist, sich jetzt „Bitcoin“ zu nennen, also vielleicht nicht.)

Die verbesserte Fehlererkennung ist nur einer von vielen Gründen, warum Benutzer heutzutage BC1-Adressen bevorzugen sollten.

Diese Antwort wird zutiefst unterschätzt (TBF wurde acht Jahre nach der ursprünglichen Frage geschrieben). Ich bin dieser Community nur beigetreten, um sie positiv bewerten zu können. :-)

Ein Händler könnte seinen eigenen lokalen Bitcoin-Prozessor anbieten, um einen Kunden zu verbinden, wenn die Transaktion ungenau ist, könnte er sie „rückgängig machen“ und die Transaktion einfach nicht an das Bitcoin-Netzwerk übertragen.

Wenn ein Dienst wie BitUndo genügend Miner zur Unterstützung bekommen kann, könnte er eine Chance haben (wahrscheinlich keine große, aber eine gewisse Chance), Transaktionen rückgängig zu machen, wenn Sie Ihre Anfrage zum Rückgängigmachen innerhalb von Minuten nach der ursprünglichen Transaktion einreichen. Dies funktioniert, denn wenn sie in der Lage sind, den nächsten Block erfolgreich abzubauen, können sie die ursprüngliche Transaktion ausschließen und stattdessen ihre Rückerstattungstransaktion einbeziehen.

Urgh. Bitcoin ist das, was es aus einem bestimmten Grund ist, unterstützt solche Dienste nicht. Die Tatsache, dass sie gleich im ersten Textteil für eine zufällige Glücksspielseite werben, ist ebenfalls ein großes Warnsignal.