Neues Portemonnaie pro Kunde oder neue Adresse?

Ich bin also dabei, einen neuen Dienst zu starten, möchte aber sicherstellen, dass ich die Grundlage von Anfang an richtig aufbaue. Wenn Kunden bei meinem Dienst auf ihr Benutzerkonto einzahlen, muss ich verstehen, ob ich eine riesige Brieftasche mit einer neuen Adresse für jeden Kunden verwenden und diese Adresse in der Datenbank ihrem Benutzer zuweisen soll, oder ob ich eine neue Brieftasche erstellen soll ( mit vermutlich neuen Samen) bei der Anmeldung für jeden Kunden, sodass jeder Kunde seine eigene einzigartige Brieftasche hat. Was ist hier die beste Vorgehensweise? Eine Sache, die Sie beachten sollten, ist, wie der Backup-Prozess ablaufen wird, und alle möglichen Race-Conditions (sagen wir, jemand generiert sich selbst eine Adresse und sendet Coins, aber der Server wird ausgelöscht und das Backup hat nicht die letzten 10 Sekunden Aktivität, damit die generierte adresse kann'

Verwahren Sie die eingezahlten Gelder oder versuchen Sie, ein Wallet-Produkt weiterzuverkaufen?

Antworten (2)

Wenn Sie Einzahlungen von Ihren Kunden akzeptieren möchten, sollten Sie eine deterministische Brieftasche mit Software wie Electrum erstellen und den erweiterten öffentlichen Schlüssel alias xpub alias Master Public Key (MPK) auf dem Server installieren. Daraus können Sie dann alle benötigten Adressen generieren.

Das obige erstellt ein Nur-Uhr-Setup, in dem Sie Adressen generieren können, um Bitcoin zu erhalten, aber nicht auszugeben. Falls also jemand Ihren Server kompromittiert, erfährt er Ihren gesamten Transaktionsverlauf, aber er kann Sie nicht stehlen. Um das Geld auszugeben, müssen Sie die Seed Wallet auf Ihrem PC verwenden.

Um Adressen Benutzern zuzuordnen, würden Sie diese in der Datenbank Ihrer App notieren.

Wenn Sie Adressen deterministisch mit Benutzern verknüpfen möchten, können Sie jedem Benutzer eine ID-Nummer und einen Zähler zuweisen, der als Adressindex dient. Dann können Sie einen geeigneten Ableitungspfad entwickeln, der diese beiden Dinge enthält. Alice könnte also beispielsweise die Benutzer-ID 5430 haben. Alices Einzahlungsadressen sind m/5430/i, wobei i der Zähler in der Datenbank ist. Die erste Alice-Adresse wäre m/5430/0, die zweite wäre m/5430/1 und so weiter. Die Benutzer-ID würde sich nicht ändern, sobald sich ein Benutzer registriert, also können Sie selbst bei etwas älteren Backups, solange Sie die Benutzer-ID haben, den Zähler erhöhen, bis Sie zur richtigen gelangen.

Stellen Sie am besten sicher, dass jeder Kunde seine eigene Brieftasche mit einer wiederherstellbaren Phrase hat.

Sie haben erwähnt, dass Sie einen Server verwenden, was unklug ist, da Hacker dies als großes Volltreffer betrachten werden.

Es hört sich so an, als würdest du einen Austausch machen.

Sie haben also Empfangsadressen, die echt sind und sich in der Blockchain befinden. Jedem Benutzer wird eine Adresse zugewiesen, an der er die Menge X BTC erhalten kann.

Die Sendeadressen befinden sich jedoch in der Datenbank, und die Datenbank verfolgt, wie viele BTC Sie intern haben.

Wenn Sie darum bitten, BTC an jemanden zu senden, prüft die Datenbank, ob sich diese Person auch in ihrer Datenbank befindet, basierend auf der toAddress, wenn ja, dann minus Betrag von Ihnen und Betrag für andere Person hinzufügen. Dies geschieht abseits der Kette.

Wenn nicht, dann ziehen sie den Betrag von Ihnen ab und senden die BTC von einer ihrer eigenen Adressen.

Sie sollten jemanden finden, der Ihr System für Sie aufbaut, da Sie sich um die Finanzen anderer Menschen kümmern und ein falscher Schritt Sie wie Mt. Gox zurücklassen könnte

Viel Glück!

Abgestimmt, weil a) Adressen nicht gesendet oder "in der Blockchain" sein müssen, bevor Sie sie verwenden können b) Sie nicht begrenzen können, wie viel Geld jemand an Ihre Adresse sendet c) es keine Absenderadressen in Bitcoin gibt
Ich habe nicht die richtige Terminologie wie UTXo verwendet, weil OP nicht so klingt, als wüsste er so viel über die Blockchain. Auch der OP hört sich so an, als wolle er einen Austausch aufbauen. Börsen funktionieren normalerweise, indem sie alle Austauschvorgänge, die innerhalb der Börse stattfinden, über ihre eigene Datenbank durchführen. Wenn Sie mir sagen können, was ich falsch gemacht habe, abgesehen von der Terminologie, dann werde ich mich gerne ändern. Blockchain ist ein schwieriges Konzept und ich habe vielleicht fälschlicherweise etwas Unpassendes gesagt, lassen Sie es mich wissen
Ich habe oben erklärt, wo du falsch gelaufen bist.