Ich versuche, eine Möglichkeit einzurichten, Bitcoin-Zahlungen in realen Situationen zu akzeptieren, in denen das Warten auf Bestätigungen normalerweise keine Option ist. Ich verstehe, dass dies nie 100% risikofrei ist (insbesondere mit Mist wie bitundo.com), ich möchte nur das Risiko minimieren.
Ich habe eine Bitcoin Core-Brieftasche mit einer Reihe unbenutzter Adressen. Ich zeige dem Kunden eine Adresse, er schickt das Geld, und jetzt kann ich ein paar Dinge tun: (alles automatisiert, dh durch eine Art Anwendung oder Skript)
Wenn 1 oder 2 in Ordnung sind und 3 beispielsweise fünf bis zehn Sekunden lang nicht auftritt, wie (un)sicher ist die Transaktion zu diesem Zeitpunkt?
Mir ist aufgefallen, dass Zahlungsanbieter wie Bitpay und Coinbase Zahlungen sofort akzeptieren können. Wie unterscheiden sie legitime Transaktionen von Doppelausgabeversuchen?
Unter http://www.cryptocoinsnews.com/news/the-mathematically-secure-way-to-accept-zero-confirmation-transactions/2014/02/13 finden Sie hier, was Dienste wie MyCelium und BitPay möglicherweise tun:
Genauer gesagt, mit jeder weiteren Sekunde wird ein größerer Prozentsatz aktiver Bitcoin-Knoten die ursprüngliche Transaktion gehört haben und jeder, der die Blockchain betrachtet, kann sich zunehmend sicher sein, dass die Transaktion im nächsten Block abgebaut wird und eine Bestätigung erhält, dann zwei und so weiter und so weiter.
Das bedeutet, dass jede Bitcoin-Transaktion ohne Bestätigungen mit einem mathematisch abgeleiteten Konfidenzniveau akzeptiert werden kann, das manche als „Transaktionsvertrauen“ bezeichnen. Dieses Transaktionsvertrauensmaß versichert uns, dass, selbst wenn eine doppelte Ausgabe versucht würde, die ursprüngliche und korrekte Transaktion bereits zu stark propagiert wird, um überholt zu werden.
Aber wie Sie treffend bemerkt haben, gibt es keine 100% risikofreie Möglichkeit, dies zu tun, wenn Sie dem Absender nicht vertrauen. Deshalb existiert die Blockchain überhaupt.
Ein Risiko, sich auf „Transaktionsvertrauen“ zu verlassen, besteht darin, dass es nichts im Netzwerk gibt, das jemanden daran hindert, eine Transaktion mit doppelten Ausgaben direkt an die Miner zu senden, ohne sie an das gesamte Netzwerk zu senden, unter der Vereinbarung, dass diese Miner blockiert werden find sollte ihr geheimes anstelle desjenigen auswählen, das sie an das Netzwerk senden. Dies ist ein Risiko, egal wie viel vom Netzwerk die öffentliche Transaktion sieht, was einer der Gründe ist, warum Sie einer Transaktion, die es nie in einen Block geschafft hat, nicht 100% vertrauen können.
Insbesondere wenn Sie eine 0-Bestätigungs-Transaktion akzeptieren, die Eingaben von anderen 0-Bestätigungs-Transaktionen ausgibt, ist das Risiko viel größer, da entweder die Transaktion direkt an Sie oder eine ihrer 0-Bestätigungs-Eingaben für Sie doppelt ausgegeben werden könnte Nachteil.
Ehrlich gesagt sind auch 1-Bestätigungs-Transaktionen nicht risikofrei. Selbst unter normalen Umständen verwaisen Blöcke, was ein Fenster für doppelte Ausgaben schaffen könnte, da der Gewinnerzweig die Transaktionen möglicherweise nicht so löst, wie es der Verliererzweig getan hat.
Wenn Sie es ernst meinen mit dem Versuch, die Risiken der Annahme von BTC in „realen“ Situationen (auch bekannt als Ziegel und Mörtel), in denen Geschwindigkeit wichtig ist, zu minimieren, kann ich mir keine bessere Idee vorstellen, als mit einem Dienst wie zu gehen Coinbase (keine Zugehörigkeit). Diese Dienste arbeiten in einem Umfang, in dem sie es sich leisten können, Verluste durch doppelte Ausgaben zu verkraften, was selten sein sollte, sodass Sie sich darüber keine Sorgen machen müssen. Derzeit haben sie einen wirtschaftlichen Anreiz, die Akzeptanz der Währung zu erhöhen, indem sie für Händler, die sich dafür entscheiden, sehr attraktiv sind.
Zuallererst und am wichtigsten: Machen Sie nur Geschäfte mit Menschen, denen Sie vertrauen. Das bedeutet nicht, dass Sie sie schon lange kennen müssen, sondern nur, dass die Person, die mit Ihnen Geschäfte macht, eher ihren Gewinn optimiert, wenn er Sie nicht betrügt.
Ich bin mir nicht sicher, ob es wahrscheinlich ist, dass Sie nach einer Wartezeit von maximal Sekunden erfolgreich einen Double-Spend-Angriff starten, aber was Sie tun können, ist, eine Software zu schreiben, die sich mit einigen der wichtigsten Mining-Pools verbindet und wartet, wenn Ihre Transaktion (oder ein böswilliger Double-Spend-Versuch). Transaktion) auftaucht. Es wäre großartig, wenn Mining-Pools eine Web-API hätten, um zu prüfen, welche Transaktionen wahrscheinlich in ihren nächsten Block aufgenommen werden, aber leider tun sie das nicht. Das bedeutet, dass Sie eine solche Anwendung selbst programmieren müssten (ich kenne keine vorhandenen Bibliotheken mit dieser Funktionalität, aber kläre mich auf, wenn es sie gibt).
Schließlich konnte man immer mit grünen Adressen arbeiten . Wenn Ihr Partner damit einverstanden ist, einem Dritten zu vertrauen, können Transaktionen sofort freigegeben werden.
knaperek
Joe Pineda
Mursch
Joe Pineda
Schrittmacher
Schrittmacher
Jangorecki