Multisig-Adressen mit Schlüsseln aus verschiedenen Wallets

Ich lerne, wie man mit Multisig umgeht. Zuerst habe ich eine 2-3-Multisig-Adresse mit allen Schlüsseln aus meiner Test-Wallet (Bitcoind auf dem Server) erstellt und Geld von einer anderen Wallet an die neue Multisig-Adresse gesendet. Die Transaktion wird in der Test-Wallet angezeigt und ich kann die nicht ausgegebene Ausgabe verwenden.

Dann habe ich eine 2-2-Adresse mit einem Schlüssel aus dem Test-Wallet und einem Schlüssel aus einem anderen Wallet erstellt und Geld von einem anderen Wallet an die neue Adresse gesendet. Die Transaktion wird auf blockchain.info angezeigt:

https://blockchain.info/tx/910298ae8133cc142009539298b6e2127b2c49960facd3b21470e130d07a1701

aber es wird nicht in der Test-Brieftasche angezeigt, und die neue Multisig-Adresse hat kein Guthaben.

Lesen dieser vorherigen Frage/Antwort:

Multisig funktioniert nicht, wenn nicht alle Schlüssel aus der aktuellen Wallet generiert wurden?

Ich sehe, dass Bitcoin Core im Juli 2014 nur Transaktionen an Multisig-Adressen mit allen Schlüsseln in seiner Brieftasche anzeigte.

Fragen:

1) Ist das immer noch so?

2) Wenn ja, kann ich die nicht verbrauchte Ausgabe trotzdem verwenden und wie?

Antworten (1)

  1. Addmultisigaddress 2 sollte die P2SH-Adresse ( [{"address/pubkey of Bitcoincore address", "pubkey of other wallet key"}]3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA ) zurückgeben und außerdem 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA zu den UTXOs hinzufügen
  2. importaddress fügt die P2SH-Adresse als 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRAWatchOnly zur Wallet hinzu

Ich gehe davon aus, dass Sie keinen vollständigen Knoten ausführen und das Flag verwenden txindex=1. Der addmultisigaddressBefehl ist also das, was Sie benötigen, um 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA in Bitcoincore einzulösen. FYI, createmultisig hat die gleichen Parameter wie addmultisigaddress ( RPC-Referenz ), aber es gibt nur das Einlöseskript zurück; dh es fügt die P2SH-Adresse nicht zu den UTXOs hinzu.

Wie bereits erwähnt, benötigen Sie für alle Multisig-Befehle den vollständigen Pubkey (Hex-Version, beginnend mit 0x04 oder 0x02/03 für komprimiert). Der einzige Grund, warum Sie die Base58Check-Adresse in Bitcoincore als öffentlichen Schlüssel ersetzen können, ist, dass die Software den Pubkey aus der Brieftasche abruft und ihn entsprechend ersetzt.

Eine alternative Möglichkeit besteht darin, dumpprivkey / validateaddress zu verwenden , um die erforderlichen Bitcoincore-Schlüssel zu erhalten, und dann den privaten Schlüssel in die andere Wallet-Software zu importieren und damit zu signieren/einzulösen.

BEARBEITEN: Ich habe den Import von Non-wallet.dat-Pubkeys für eine Multisig-P2SH-Adresse getestet und den Tx erfolgreich zu den von zurückgegebenen UTXOs hinzugefügtlistunspent, mit dem einzigen Unterschied, dass die JSON-Rückgabedatenspendable: false. Ich habe es wie folgt gemacht:

  1. addmultisigaddress 2 '["pubkey1", "pubkey2"]'
  2. Nehmen Sie die zurückgegebene P2SH-Adresse ...
  3. importaddress 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA "TESTING" true
  4. Warten Sie, bis der Scan abgeschlossen ist
  5. Funded 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA mit createrawtransaction/ signrawtransaction/ sendrawtransaction(aber ich bin sicher, dass Sie es mit der GUI tun können
  6. listunspent 0gibt ein JSON-Array (einschließlich 0Bestätigungen) mit einem Objekt zurück, das angezeigt wird, redeemScriptaber mit spendable: false
  7. Sie müssen den Tx createrawtransactionnatürlich mit den als Parameter übergebenen privaten Schlüsseln einlösen, um dies auszugeben
Danke für die Antwort. Ich habe Multisig-Adressen erfolgreich mit Schlüsseln aus verschiedenen Brieftaschen auf anderen Plattformen (coinb.in) getestet, aber ich habe es mit meiner Bitcoincore-Installation noch nicht geschafft, obwohl ich alle Ihre Vorschläge befolgt habe. Ein Problem ist, dass ich selbst nach dem Importieren der Adresse als watchonly (importaddress) die Transaktionen zu der Adresse nicht sehe.
Ich werde ASAP nachsehen. Ich gehe aus der Erinnerung. Ich erlebe eine ähnliche Frustration mit BIP32/Electrum 2.0.4, obwohl es aus verschiedenen technischen Gründen ein Problem ist, zeigt es immer noch, wie schwierig verschiedene Wallet-Clients mit Multisig und BIP32/39 sein können
Ich denke, Sie müssen Ihre Blockchain-Daten erneut scannen, was etwa 5-10 Minuten dauern wird, vorausgesetzt, Sie verwenden keinen vollständigen Knoten mit txindex=1. Wenn Sie importaddress verwenden , wird es standardmäßig neu gescannt, Sie müssen jedoch sicherstellen, dass Sie zuerst das Einlöseskript mit addmultisigaddress erstellt haben . Auch hier muss ich dies jedoch bestätigen, da es sein kann, dass ohne beide privaten Schlüssel in der Brieftasche die UTXOs, die den P2SH für den verwendeten externen öffentlichen Schlüssel finanzieren, nicht "gesehen" werden
@GiulioPrisco Siehe Bearbeiten.