Mit RPC-Aufrufen an Bitcoin aus separaten (Python-)Skripten bin ich:
getnewaddress aufrufen, um ein neues Schlüsselpaar für eine „spezielle“ Adresse einzurichten, die einem bestimmten Konto zugewiesen ist (nennen wir dies „specialAccount“)
Erstellen von Rohtransaktionen (außerhalb von Bitcoin), die Ausgaben an diese spezielle Adresse ausgeben, und dann Aufrufen von Bitcoind zum Signieren des Sendens
Darüber hinaus ist es möglich, dass Bitcoin auch direkt aufgerufen wird, um Zahlungen zu leisten oder was auch immer.
Wie kann ich absolut sicher sein, dass Bitcoin keine Ausgaben an meine spezielle Adresse verbraucht, außer wenn Ausgaben an diese Adresse in signrawtransaction signiert werden?
Wir können davon ausgehen, dass es keine Anrufe gibt, die explizit von „specialAccount“ ausgegeben werden, aber das Problem ist, dass es Bitcoin nach meinem Verständnis möglich ist, beliebige nicht ausgegebene Ausgaben zum Bezahlen von Transaktionsgebühren zu leihen. (Siehe zum Beispiel diese Ausgabe und auch diese .)
Gibt es eine Möglichkeit für mich, die spezielle Adresse zu sperren und zu verhindern, dass diese zur Zahlung von Transaktionsgebühren für andere Konten verwendet wird, oder um Bitcoin anderweitig zum Signieren von Rohtransaktionen zu verwenden, die Ausgaben an diese Adresse verwenden, ohne den öffentlichen Schlüssel für die zu erstellen Adresse allgemeiner verfügbar in Bitcoin?
Sie können lockunspent verwenden , um (nur im Speicher) nicht ausgegebene Eingaben zu sperren, die von Transaktionen erstellt wurden, deren mindestens eine Ausgabe auf Ihre "spezielle Adresse" verwies.
Thomas Jung
Benutzer11221
bitcoind
beim Start wieder in Ihren Client laden und sperren, bevor etwas anderes passiert. Einmal gesperrt, können sie nicht ausgegeben werden.