Angenommen, ich möchte ein großes Projekt durchführen, bei dem Benutzer ständig neue Adressen anfordern können, um Bitcoins auf ihr Online-Konto einzuzahlen. Ich nehme an, ich muss Tausende von Bitcoin-Schlüsselpaaren vorab generieren und sie in eine laufende Instanz von Bitcoin auf meinem Server importieren. Jedes Mal, wenn ein Benutzer eine neue Adresse anfordert, um Bitcoins auf sein Konto einzuzahlen, werde ich ihm eine neue Adresse zuweisen. Dann benachrichtigt mich Bitcoin, wenn eine der importierten Adressen eine Transaktion erhält.
Erste Frage: Ist Bitcoin in der Lage, Tausende von Adressen in Echtzeit zu überwachen? Soll ich dafür eine eigene Maschine einplanen?
Zweite Frage: Da ich erhaltene Bitcoins in einen Cold Storage verschieben und auch mehrmals am Tag automatisch Auszahlungen vornehmen muss, muss ich die privaten Schlüssel auch auf dem Online-Server speichern. Ich kann wallet.dat passwortgeschützt haben, aber was ist die sicherste Methode, um die Brieftasche automatisch zu entsperren, Geld zu verschieben und sie dann wieder zu sperren, ohne dass das Passwort möglicherweise kompromittiert wird? Ich halte es nicht für sicher, wenn das Passwort irgendwo im Code, in der Konfiguration oder in der Datenbank erscheint. Und ich möchte das Passwort nicht mehrmals am Tag manuell eingeben.
Dritte Frage: Wird Bitcoin jedes Mal eine neue „Änderungsadresse“ generieren, wenn ich Gelder von der Empfangsadresse zu Auszahlungen und Cold Storage bewege? Ich frage, weil es so aussehen würde, als ob der Client Bitcoins erhalten hätte, wenn Bitcoin eine der importierten Adressen zum Wechseln verwendet hätte.
Sie möchten keine finanzierten Schlüssel serverseitig speichern, es gibt einen fast konstanten Strom von Hosts, die kompromittiert werden, um Gelder zu stehlen. Die meisten Bitcoin-Systeme verwenden etwas, das als „Hot Wallet“ bezeichnet wird, und verschieben den Rest auf einzelne Papier-Wallets, die außerhalb der Kontrolle des Servers liegen. Es ist dann die Rolle des Administrators, Gelder hin und her zu bewegen, um die Hot Wallet finanziert zu halten. Dies reduziert das Risiko erheblich und bedeutet, dass ein Angreifer höchstens den Geldbetrag in der Hot Wallet erlangen kann.
Ist Bitcoin in der Lage, Tausende von Adressen in Echtzeit zu überwachen?
Ja, aber Sie möchten wirklich nicht mehr als eine kleine Hot Wallet auf einem Server speichern. Wenn Ihre Sicherheit nicht perfekt ist, wird sie einfach gestohlen. Wenn es gewöhnt war
Was ist die sicherste Methode, um die Brieftasche automatisch zu entsperren, Geld zu verschieben und sie dann wieder zu sperren, ohne dass das Passwort möglicherweise kompromittiert wird?
Sie können sich nicht sicher sein. Selbst wenn die Brieftasche „verschlüsselt“ ist, kann ein Angreifer einfach auf dem Server sitzen und darauf warten, dass Sie ihn entsperren. Auch aus diesem Grund müssen Sie Offline-Speicher und Hot Wallets verwenden, um den Schaden des kompromittierten Servers zu mindern.
Wird Bitcoin jedes Mal eine neue „Adresse ändern“ generieren, wenn ich Gelder von der Empfangsadresse zu Auszahlungen und Kühllagern bewege?
Ja. Aus diesem Grund sind alle Adressen, die dem Kunden präsentiert werden, einmalig verwendbar. Sie legen jedes Mal eine neue Empfangsadresse für die Hot Wallet fest bitcoind
und zeigen sie dem Kunden nie wieder an. Das müssen sie nicht, ihre Gelder sind nicht auf bestimmte Bitcoin-Ausgaben beschränkt. Ihr Guthaben ist nur ein externer Wert in Ihrer Datenbank, für den Sie zufällig die Gelder halten.
Idealerweise sieht das Setup so aus:
Server:
bitcoind
heiße Brieftasche, erstellt neue Empfangsadressen und präsentiert sie einem Kunden. Mit walletnotify
oder blocknotify
werden die empfangenen Salden für jeden Benutzer in einer externen Datenbank wie Postgres oder Redis aktualisiert.bitcoind
nie mehr als 50 BTC in seiner Wallet gespeichert werden, wenn das Guthaben 50 BTC übersteigt, wird ein Skript ausgeführt, das einen neuen Schlüssel mit einem deterministischen öffentlichen Schlüssel generiert (der Server muss dazu niemals den privaten Schlüssel kennen) oder verwendet eine vorab erstellte Liste. Es sendet den Überschuss an diese Adresse, um ihn sicher aufzubewahren.Offline:
Eine Armory-Wallet, die die privaten Schlüssel der Cold Wallet enthält. Idealerweise komplett offline, mit einer Papiersicherung in einem Schließfach.
Die Kontrolle liegt nur beim Administrator, der die Adresse der Hot-Wallet-Nachfüllung auf dem Server kennt. Bei Bedarf verschieben sie Gelder gemäß den Benachrichtigungen zurück auf den Server
Sehr umständlich, aber ungefähr so funktionieren andere Systeme, und es muss so sein, es sei denn, Sie wollen wie http://inputs.io/ enden, der aufgrund von Fahrlässigkeit eine ganze Hot Wallet von 4000 BTC verloren hat. In solchen Situationen kann man nie zu paranoid sein. Ihr maximaler Verlust wäre in diesem Fall die 50BTC Hot Wallet, was besser ist, als alles zu verlieren.
Spiele sicher.
Was ist die sicherste Methode, um die Brieftasche automatisch zu entsperren, Geld zu verschieben und sie dann wieder zu sperren, ohne dass das Passwort möglicherweise kompromittiert wird?
Sie möchten hier zwei grundsätzlich gegensätzliche Dinge, einerseits möchten Sie, dass Ihr Wallet für automatisierte Prozesse zugänglich ist. Andererseits möchten Sie nicht, dass es Hackern zur Verfügung steht, die das System kompromittieren, auf dem die automatisierten Prozesse ausgeführt werden. Beides geht im Grunde nicht.
Deshalb gibt es eine „Hot Wallet“ und eine „Cold Wallet“. Die Hot Wallet enthält eine Menge Bitcoins, die Sie sich leisten können, zu verlieren. Die Cold Wallet hält Bitcoins im Langzeitspeicher.
Auf einer normalen täglichen Basis übersteigen die Einzahlungen in der Regel die Auszahlungen. Ihr automatisiertes System sollte so konzipiert sein, dass es Geld in die Cold Wallet verschiebt, wenn sich zu viel in der Hot Wallet ansammelt.
Gelegentlich können Sie feststellen, dass das ausgegebene Geld das eingezahlte Geld übersteigt. In diesem Fall muss Ihr System Sie warnen, dass die Hot Wallet zur Neige geht. Sie müssen die Situation dann sorgfältig prüfen, bevor Sie Geld manuell aus der Cold Wallet verschieben.
Spamec