Strategien zur Reduzierung hoher Transaktionsgebühren auf einem Marktplatz für Kryptowährungen?

Ich baue einen Marktplatz für Kryptowährungen auf, auf dem Benutzer hauptsächlich kleine Ticketartikel (im Wert von 10 bis 50 US-Dollar) mit Kryptowährung kaufen und verkaufen. Die „Minergebühren“ machen den Betrieb jedoch unerschwinglich teuer.

SZENARIO:

Ich habe einen Marktplatz mit Verkäufern und Käufern, auf dem ein Benutzer sowohl Verkäufer als auch Käufer sein kann. Ein Käufer muss Geld auf sein Konto einzahlen (Kontostand aufladen), bevor er Kryptowährung auf der Plattform ausgeben kann. Für jeden neuen Benutzer würden wir eine eindeutige Adresse generieren, sodass alle an diese Adresse eingezahlten Gelder diesem Benutzer gutgeschrieben würden. Es macht es einfach zu wissen, wem eine Gutschrift gutgeschrieben werden soll, wenn wir eine Einzahlung an eine bestimmte Adresse erkennen. Mein Hauptdilemma betrifft die Auszahlungen an den Anbieter und die Erhebung der Plattformgebühr (siehe unten).

Nachdem der Käufer einen Artikel (unter Verwendung des Kontostands) gekauft hat, wird die Zahlung treuhänderisch aufbewahrt, bis der Artikel an den Käufer geliefert wird. Sobald der Artikel geliefert wurde, wird die Zahlung abzüglich einer „Plattformtransaktionsgebühr“ von 1,9 % (die an den Plattformbesitzer gezahlt wird) an den Verkäufer „überwiesen“. Ein Verkäufer kann seine Einnahmen jederzeit abheben, nachdem er eine pauschale Abhebungsgebühr von 5 $ bezahlt hat. Ebenso kann ein Käufer seine Einzahlung (Kontostand) jederzeit gegen die gleiche Pauschalgebühr von 5 $ abheben. Denken Sie daran, dass eine Auszahlung durch einen Verkäufer normalerweise Zahlungen aus Hunderten von Transaktionen umfasst (die alle von zahlreichen Käufern und zahlreichen Adressen stammen). Es kann auch eine Einzahlung enthalten, die der Verkäufer selbst getätigt hat, um sein Guthaben aufzufüllen.

Wenn eine einzelne Bestellung abgeschlossen ist (dh ein Produkt geliefert wird), ist es offensichtlich nicht möglich, die Zahlung von der Brieftasche des Käufers auf die private Brieftasche des Verkäufers zu übertragen, da dies jedes Mal, wenn eine Bestellung auf der Website aufgegeben wird, eine „Mining-Gebühr“ verursachen würde. Stattdessen würden wir uns auf das in dieser Antwort beschriebene interne Ledger-Konzept verlassen .

Kurz gesagt, basierend auf dem Ledger-Konzept würden wir, wenn ein Produkt für 25 $ verkauft wird, dem Verkäufer eine bestimmte Art von Kryptowährung im Wert von 25 $ „gutschreiben“, ohne die Transaktion tatsächlich an die Blockchain zu übertragen. In ähnlicher Weise würden wir die 25 US-Dollar an Krypto vom Guthaben des Käufers „abziehen“ (unter Verwendung einer internen Datenbank, ohne tatsächlich etwas an die Blockchain zu übertragen). Nehmen wir nun an, ein Anbieter schließt 100 Transaktionen * 25 $ ab, wenn Bitcoin 10.000 $ pro BTC wert ist. Wir würden dem Anbieter also jetzt 2.500 USD oder 0,25 BTC (abzüglich 1,9 % Plattformgebühr) schulden.

DAS PROBLEM

Wenn der Verkäufer sich entscheidet, seine Einnahmen abzuheben, würden die 0,25 BTC von 100 verschiedenen Adressen (100 Käufern) stammen, was offensichtlich zu übermäßigen Miner-Gebühren führen wird. Da der Website-Eigentümer für jede Transaktion eine Gebühr von 1,9 % erhebt, würde es einen ähnlichen Prozess nach sich ziehen, wenn der Website-Eigentümer die gesamte kleine Kryptowährung, die er von 100 Adressen verdient, auf 1 Adresse konsolidieren wollte (und die relativen Kosten für die Plattformbesitzer).

ZEITSLOT ANSATZ

Eine Lösung für dieses Problem könnte darin bestehen, dass alle Benutzer der Website Gelder an eine einzige Kryptowährungsadresse einzahlen. Dies macht es natürlich schwierig zu verfolgen, wer wer ist, wenn Sie eine Einzahlung tätigen, da alle an dieselbe Adresse senden. Es ist möglich, die Adresse einem einzelnen Benutzer für einen bestimmten Zeitraum („Zeitfenster“) zuzuweisen und dann den Benutzer mit dem dedizierten „Zeitfenster“ zu kreditieren, aber dieser Ansatz ist nicht ideal, da wir nachverfolgen müssten, welcher Benutzer Zugriff hatte an die Adresse zu einem bestimmten Zeitpunkt. Darüber hinaus erinnern sich Benutzer möglicherweise nicht daran, dass die Adresszuweisung zeitkritisch ist, und können zu einem späteren Zeitpunkt unter dem „Zeitfenster“ einer anderen Person Einzahlungen an diese Adresse vornehmen. Es ist auch sehr verwirrend für den Benutzer und würde immer noch Dutzende eindeutiger Adressen erfordern, wenn die Site viele Benutzer hat. Jedoch,

Vermutlich gibt es andere Lösungen für dieses Problem, da es viele Websites mit ähnlicher Funktionalität gibt. Was ist die branchenübliche Lösung für dieses Problem? Was sind einige Möglichkeiten, es anzugehen? Jeder Einblick wird sehr geschätzt.

Hinweis: Der Marktplatz unterstützt Einzahlungen/Auszahlungen in Bitcoin, Ethereum, Bitcoin Cash, Ripple, Litecoin, USDC und USDT.

Hinweis: Ich bin offen für eine native Lösung, die auf dem Blockchain-Client oder einer API-Lösung einer seriösen Firma basiert.

Bitte beschränken Sie den Umfang dieser Frage auf Bitcoin. Andere Währungen sind hier off-topic.
@PieterWuille Ich dachte, wenn sich die primäre Frage auf Bitcoin bezieht, kann ich Altcoins als sekundäre einbeziehen: "Fragen zu alternativen Kryptowährungen sind nicht zum Thema, es sei denn, sie sind auf Bitcoin anwendbar."
Ich verstehe das, um Fragen abzudecken, für die die Antwort dieselbe ist wie für Bitcoin.

Antworten (3)

Wie @chytrik bereits beschrieben hat, löst die Wiederverwendung von Adressen Ihr Problem für UTXO-basierte Coins nicht, jede Transaktionsausgabe muss unabhängig davon einzeln referenziert werden.

Wenn Ihre Benutzer auf Ihrer Website einzahlen, möchten Sie ihnen separate Adressen geben, damit Sie nachverfolgen können, wessen internes Guthaben gutgeschrieben werden soll. Danach befinden sich die Gelder jedoch in Ihrer Obhut. Das bedeutet, dass Sie Ihren UXTO-Pool verwalten können und sollten. Ein guter Anfang wäre, regelmäßig kleinere Beträge in größeren UTXOs außerhalb der Spitzenzeiten zu konsolidieren, wenn die Gebührensätze niedrig sind. Vielleicht finden Sie diesen Artikel über das UTXO-Management für Unternehmens-Wallets interessant.

Im Allgemeinen eignen sich Bitcoin-On-Chain-Zahlungen nicht für schnelle Mikrozahlungen – wie Sie festgestellt haben, sind die Gebühren ein zu großer Teil des Wertes. Die Antwort von Bitcoin darauf ist das Lightning Network, ein Sofortzahlungsnetzwerk, das Multisignatur-basierte Zahlungskanäle nutzt.

Danke für deine Antwort. 1) Ist der „Zeitfenster“-Vorschlag eine praktikable Lösung für Altcoins wie Ethereum, die das Kontomodell verwenden? 2) Die Gebühr für die Überweisung von 2.500 USD an den Verkäufer beträgt ca. 376,37 $ (USD) (15 % der Gesamtsumme) mit einem Zeitrahmen von 60 Minuten laut dieser Website . Für einen Zeitrahmen von 400 Minuten reduzieren sich die Kosten auf 78,50 $ (USD) (1,5 % der Gesamtkosten). Die Plattform erhebt eine Gebühr von 1,9 %, die von den hohen Kosten aufgezehrt würde. Würden Sie sagen, dass dies die niedrigste Gebühr ist, die ich mit dem alten BTC-Protokoll zahlen könnte (die von mir verwendete API unterstützt kein Lighting Network)?
Bitcoin-Gebühren beziehen sich nicht auf den gesendeten Betrag, sondern auf die Menge an Blockspace, die eine Transaktion belegt. Wenn Sie länger warten können, werden Sie schließlich in der Lage sein, eine Transaktion bei 5 sat/vB oder niedriger durchzubringen. Wenn Sie schon bei 1 sat/vB so richtig geduldig sein wollen. Für eine durchschnittlich große Transaktion von 500 vB entspricht das 500-2.500 Satoshi Gebühren – zum heutigen Wechselkurs weniger als ein Dollar. Bei Fragen zu Ethereum würde ich vorschlagen, dass Sie sich auf ethereum.stackexchange.com umsehen .
Ein SE-Benutzer (@Prayank) kommentierte eine andere Frage von mir : "Ich kann eine Website haben, Benutzeranmeldung, alle zahlen an dieselbe Adresse, aber in meiner lokalen Datenbank mit Benutzer-ID und Transaktions-ID aktualisiert, wenn die Zahlung erfolgt ist." Würden Sie dem zustimmen? Stellungnahme? Ist es möglich, Benutzereinzahlungen anhand der Transaktions-ID (TXID) zu verfolgen, wenn alle auf der Website an dieselbe Bitcoin-Adresse senden? Es ergibt für mich keinen Sinn..
Es ist zwar richtig, dass jede Transaktion eine eindeutige ID hat und daher jede nicht ausgegebene Transaktionsausgabe eindeutig identifizierbar ist, aber wenn alle an dieselbe Adresse zahlen, führt dies zu einer Menge Overhead bei der Verfolgung, wer wann bezahlt hat. Es wird viel einfacher, für jeden Bezahlvorgang (oder zumindest jeden Kunden) eine neue Adresse zu vergeben. Im Allgemeinen hat die Wiederverwendung von Adressen viele Nachteile und leider keine greifbaren Vorteile bei Bitcoin.

Eine Lösung für dieses Problem könnte darin bestehen, dass alle Benutzer der Website Gelder an eine einzige Kryptowährungsadresse einzahlen

Dies ist definitiv keine Lösung für das Problem, das Sie skizziert haben. Beim Erstellen einer Transaktion gibt es keinen Unterschied zwischen der Konsolidierung vieler Zahlungen, die an dieselbe Adresse geleistet wurden, und der Konsolidierung vieler Zahlungen, die an eindeutige Adressen geleistet wurden. Jede Zahlung, die Sie einbeziehen, stellt eine einzelne Eingabe für die Transaktion dar.

So wie es klingt, verwechseln Sie das Konzept eines kontobasierten Modells für Transaktionen und eines UTXO-basierten Modells für Transaktionen (was Bitcoin verwendet).

Danke. Während sich die Hauptfrage um BITcoin dreht, wäre der Zeitfensteransatz eine Lösung für Transaktionen vom Typ Ethereum (kontobasiertes Modell)?
@SOS Ich finde Ethereum nicht so interessant, daher bin ich kein Experte für seinen Betrieb, aber ich würde vermuten, dass der „Zeitfenster-Ansatz“ angesichts des Problems vieler potenzieller Benutzer mit ziemlicher Sicherheit keine gute Lösung für eine solche Situation ist gleichzeitige Einzahlungen tätigen. (Und das Problem der verzögerten Sendebestätigung usw.)

Ich baue einen Marktplatz für Kryptowährungen auf, auf dem Benutzer hauptsächlich kleine Ticketartikel (im Wert von 10 bis 50 US-Dollar) mit Kryptowährung kaufen und verkaufen. Die „Minergebühren“ machen den Betrieb jedoch unerschwinglich teuer.

Verwenden Sie Segwit für On-Chain-Transaktionen, Batching, wo immer möglich, UTXO-Konsolidierung über Wochenenden, sobald Sie viele kleine Eingaben haben, und verwenden Sie die neuesten Technologien, wenn sie verfügbar sind, wie z. B. Taproot

Versuchen Sie, weniger On-Chain- und mehr Layer-2-Lösungen wie LN und Liquid zu verwenden

Kompromisse einschließlich unterschiedlicher Dezentralisierungsgrade und Vertrauensannahmen bei der Verwendung von Liquid oder beliebigen Bitcoin-Sidechains

Liquid ist wahrscheinlich kein guter Rat für jemanden, der Bitcoin verwenden möchte. Es ist so, als würde man sagen "benutze Altcoins".
*Bitcoin-Sidechains verwenden :)
Ich halte das generell für keinen guten Rat. Das Vertrauensmodell von Liquid stützt sich auf bestimmte Einheiten, die den Verbund bilden, der es kontrolliert. Wenn Sie noch keine Vertrauensbeziehung zu diesen Unternehmen haben, gibt es keinen Grund, warum Sie dies tun sollten.
Besser als wegen On-Chain-Gebühren zu einigen Altcoins zu wechseln. Abgesehen von wenigen Entwicklern und Benutzern kümmert sich sowieso niemand um On-Chain-Gebühren, sodass es für von OP erwähnte Transaktionen immer schwierig wird. Ich habe auch LN erwähnt. Wenn die Leute keine Bitcoin-Sidechains verwenden oder vorschlagen möchten, werden viele Benutzer zu Altcoins wechseln. Der einzelne Benutzer kümmert sich um seine Transaktionen und Gebühren. Auch wenn Leute darauf antworten könnten: github.com/bitcoin/bitcoin/pull/13990