Unterschied zwischen createmultisig und addmultisigaddress?

Was ist der funktionale Unterschied zwischen createmultisig und addmultisigaddress in bitcoincore (v 0.10)?

Um es klar zu sagen, ich verstehe, wie beide funktionieren. dh. multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."](wobei nder Wert n von m ist und eine JSON-Liste mit entweder Hex-Pubkeys oder Base58-Adressen folgt).

Die Ausgabe für multisigCmd ( createmultisig bzw. addmultisigaddress ) lautet jedoch:

  • createmultisig: ==> 3outputEqualsPay2scriptBTCAddress ,script as hex
  • addmultisigaddress: ==> 3outputEqualsPay2scriptBTCAddress ( kein Skript! )

Beide Befehle geben identische Ausgangsadressen (dh 3outputEqualsPay2scriptBTCAddress) aus, wenn dieselbe JSON-Dateneingabe verwendet wird. Der Unterschied besteht also eigentlich nur darin, dass ersteres das erlösende Hex-Skript ausgibt. Übersehe ich etwas? Warum die Notwendigkeit von 2 Befehlen anstelle von beispielsweise einem einzelnen Befehl mit einem -hex_script_outputFlag?

Antworten (2)

  • createmultisigerstellt eine P2SH-Multisig-Adresse zur Verwendung in Rohtransaktionen. Es gibt das Einlösungsskript aus, da Sie es benötigen, um alle an die P2SH-Adresse gesendeten Zahlungen auszugeben.

  • addmultisigaddressfügt Ihrer Bitcoin Core-Brieftasche eine P2SH-Multisig-Adresse hinzu, sodass Sie Zahlungen, die von dieser Adresse empfangen werden, verfolgen und ausgeben können. Es gibt das Einlösungsskript nicht aus, weil Bitcoin Core das für Sie speichert. (Sie können es später mit abrufen validateaddress.)

Das macht natürlich absolut Sinn. Mir ist aufgefallen, dass die neue v0.10-Hilfefunktion die beiden Funktionen in die Kategorien „Tx“ bzw. „Wallet“ unterteilt. Die Kategorien hätten die Abfrage für mich geklärt, da frühere Versionen der Hilfe nicht klar abgegrenzt waren

Ich weiß, das ist alt, aber ich möchte aus der Sicht des neueren Bitcoin-Codes kommentieren. Sowohl createmultisig als auch addmultisigaddress geben jetzt das Redeem-Skript aus.

Die Verwendung des Einlöseskripts scheint nur zum manuellen Signieren einer Rohtransaktion mit signrawtransactionwithkey erforderlich zu sein , was (für den normalen Gebrauch) redundant erscheint, da der Satz von PSBT-Befehlen all dies automatisch erledigt. createpsbt , decodepsbt , walletprocesspsbt , finalizepsbt , senddrawtransaction .

Dies hat mich hierher gebracht, um nach dem praktischen Unterschied zwischen createmultisig und addmultisigaddress zu suchen. Ich denke, was uns bleibt, ist nur, ob es Ihrer Brieftasche hinzugefügt wird. Ich war verwirrt, weil es zunächst so aussieht, als müssten Sie es erstellen und dann hinzufügen, aber in der Praxis können Sie direkt zu addmultisigaddress gehen.