Erstellen eines Bitcoin-Online-Wallet-Dienstes

Meine Frage ist folgende: Nehmen wir an, ich wollte eine Bitcoin-Site erstellen, auf der sich Benutzer registrieren und Bitcoins auf ihr Konto einzahlen können. Soll ich mein MPK verwenden, um unendliche Adressen zu generieren, so wird, nachdem ein Benutzer in die Adresse eingezahlt hat, automatisch eine neue Adresse für diesen Benutzer generiert. und wenn der Benutzer an die alte Adresse einzahlt, kann es zurückverfolgt werden?

Wie könnte der Benutzer auch sein Guthaben nur auf seinem Konto abheben? Ich möchte nicht, dass mein privater Schlüssel offengelegt wird. Und wie können die Site-Gebühren von jeder Transaktion abgezogen werden, ohne dass der Benutzer diese ebenfalls abheben kann, und wie würde ich einen Treuhandservice für die Site implementieren, damit der Verkäufer einen Service anbietet und der Käufer kauft, aber die Coins bis dahin aufbewahrt werden Käufer sagt Freigabe oder meine Mitarbeiter sorgen dafür, dass es an die richtige Person freigegeben werden soll.

und wie kann ich eine Multi-Sig auf der Website für die Benutzer einrichten, die sich dafür entscheiden, sie zu verwenden?

Eine ähnliche Website wie die, auf die ich mich beziehe, ist www.localbitcoins.com

Und ist nicht der talentierte Programmierer, der die Seite macht, also kann ich ihm sicher mein MPK geben? Oder was ist "sicher" für mich, ihm zu geben?

Antworten (1)

Soll ich mein MPK verwenden, um unendliche Adressen zu generieren, so wird, nachdem ein Benutzer in die Adresse eingezahlt hat, automatisch eine neue Adresse für diesen Benutzer generiert.

Ja, das ist eine beabsichtigte Verwendung von BIP32.

und wenn der Benutzer an die alte Adresse einzahlt, kann es zurückverfolgt werden?

Vorausgesetzt, Sie erinnern sich an die Ableitung des Schlüssels, sicher. Aber es wäre wahrscheinlich einfacher, einfach eine Liste aller Bitcoin-Adressen zu führen, die Sie jemals einem Benutzer gezeigt haben, und eingehende Transaktionen damit zu vergleichen.

Wie könnte der Benutzer auch sein Guthaben nur auf seinem Konto abheben?

Es gibt zwei Möglichkeiten, dies zu implementieren:

  1. Bewahren Sie Münzen von verschiedenen Kunden in einer großen Brieftasche auf. Verfolgen Sie, wie viel jeder Kunde in einer separaten Datenbank hat.
  2. Sorgen Sie dafür, dass jede Adresse einem Kunden gehört, und stellen Sie sicher, dass Kunden Transaktionen nur mit ihren eigenen Schlüsseln signieren können.

#1 hat einige Vorteile, aber #2 ist im Allgemeinen einfacher umzusetzen, ohne sich selbst ins Knie zu schießen.

Ich möchte nicht, dass mein privater Schlüssel offengelegt wird. Und wie können die Site-Gebühren von jeder Transaktion abgezogen werden, ohne dass der Benutzer diese ebenfalls abheben kann, und wie würde ich einen Treuhandservice für die Site implementieren, damit der Verkäufer einen Service anbietet und der Käufer kauft, aber die Coins bis dahin aufbewahrt werden Käufer sagt Freigabe oder meine Mitarbeiter sorgen dafür, dass es an die richtige Person freigegeben werden soll.

Ich schlage vor, dass Sie Ihre privaten Schlüssel nicht an Ihre Benutzer weitergeben, insbesondere wenn Sie BIP32 verwenden oder den obigen Ansatz Nr. 1 gewählt haben. Generieren und signieren Sie die Transaktionen stattdessen selbst.

Bei der Hinterlegung oder manuellen Freigabe von Geldern kontrollieren Sie die privaten Schlüssel, sodass Sie die Coins nach Belieben verschieben können. (Das ist etwas, das Ihre Kunden möglicherweise nicht zu schätzen wissen, da es die Möglichkeit eröffnet, dass Sie ihr gesamtes Geld stehlen.)

und wie kann ich eine Multi-Sig auf der Website für die Benutzer einrichten, die sich dafür entscheiden, sie zu verwenden?

Ich nehme an, Sie meinen 2-von-3-Multisig zwischen Ihnen, dem Käufer und dem Verkäufer. Ich habe es nicht persönlich verwendet, aber ich habe gute Dinge über die Copay - Implementierung von BitPay gehört.

Und ist nicht der talentierte Programmierer, der die Seite macht, also kann ich ihm sicher mein MPK geben? Oder was ist "sicher" für mich, ihm zu geben?

Die Website, wie Sie sie beschrieben haben, erfordert, dass Sie den erweiterten privaten Schlüssel auf Ihrem Server oder an einem Ort haben, auf den Ihr Server zugreifen kann. Und nein, das ist nicht ungefährlich, wenn Sie es jemandem geben, dem Sie nicht vertrauen.