Welcher Zusammenhang besteht zwischen Adresse und Nutzung des UTXO?

Ich erkläre, dass ich noch Anfänger bin. Ich brauche eine Klarstellung. Ich benutze das Testnet. Dies sind die Informationen bezüglich der Adresse, die ich verwendet habe, um Geld von einem Faucet zu erhalten

 bitcoin-cli validateaddress 2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd
{
  "isvalid": true,
  "address": "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd",
  "scriptPubKey": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
  "isscript": true,
  "iswitness": false
}
bitcoin-cli decodescript a9149ac58ff47e27214b158b38da04bc8cbf72def14387
{
  "asm": "OP_HASH160 9ac58ff47e27214b158b38da04bc8cbf72def143 OP_EQUAL",
  "reqSigs": 1,
  "type": "scripthash",
  "addresses": [
    "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd"
  ]
}

Was bedeuten Daten? Ich interpretiere, dass meine Adresse UTXO erhält, das von P2SH-Skripten blockiert wird, richtig? "iswitness": false bedeutet, dass diese Adresse UTXO segWit nicht verwenden kann?

Auf dieser Adresse erhielt ich als Input folgende Ausgabe:

{
      "value": 0.01944571,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 9ac58ff47e27214b158b38da04bc8cbf72def143 OP_EQUAL",
        "hex": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd"
        ]
      }

Das blockierte UTXO ist wie folgt:

"txid": "a61389ff9af670770182198a984a4c1785625c60795bd57645ecc78765b23679",
    "vout": 1,
    "address": "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd",
    "label": "",
    "redeemScript": "0014778daf651b21684b572644b47d551fce0ff71c74",
    "scriptPubKey": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
    "amount": 0.01944571,
    "confirmations": 116,
    "spendable": true,
    "solvable": true,
    "desc": "sh(wpkh([7de694b7/0'/0'/7']032c27921f2d15e7eca768c0e8a8b1aeb863328c74d6c194d41dde2888d4b0e75b))#6z7uwusp",

"Sh (wpkh ())" beschreibt eine P2SH-P2WPKH-Ausgabe und den öffentlichen Schlüssel, mit dem sie verknüpft ist.

Der Deskriptor teilt uns mit, dass das Hash-Skript (sh) die Ausgabe von wpkh (Witness - Public - Key - Hash) enthält. In einfachen Worten, das RedeemScript sollte mit dem HASH dieses öffentlichen Schlüssels übereinstimmen, richtig?

Wenn ich dieses UTXO entsperre und verwende, generiert meine Eingabe ein separates txinwitness-Feld.

"scriptSig": {
        "asm": "0014778daf651b21684b572644b47d551fce0ff71c74",
        "hex": "160014778daf651b21684b572644b47d551fce0ff71c74"
      },
      "txinwitness": [
        "3044022034a07f088dd88396cd378912a4ed6a156701b075f0facbbae810677048c390e602205df07e13bf4d56feece791a1b5e4d94bec9c93aae14bb87a1b4c6c54ae9bf2f701",
        "032c27921f2d15e7eca768c0e8a8b1aeb863328c74d6c194d41dde2888d4b0e75b"
      ],
      "sequence": 4294967295

Ich kann den Zusammenhang zwischen meinen Adressinformationen ("iswitness": false) und der Art und Weise, wie ich die UTXO erhalten / ausgegeben habe, nicht nachvollziehen.

Antworten (1)

Da die von Ihnen verwendete Adresse eine P2SH-P2WPKH-Adresse ist, wie Sie erwähnt haben ( sh (wpkh ())), erhalten Sie die Ausgabe

"isscript": wahr,

"iswitness": falsch

Es wird nur über die oberste Ebene (P2SH) gesprochen, da es sich um eine P2SH-Adresse handelt, unabhängig davon, was das Skript "darin" codiert. Es "sieht" das zugrunde liegende P2WPKH nicht, wenn Sie aufrufen validateaddress. Das einzige Mal isscript, dass iswitnessbeide wahr sind, ist für P2WSH-Adressen. Sie können den Code, der diesen RPC isscript/ diese iswitnessAusgabe erstellt, hier anzeigen .

Wenn Sie es ausgeben, enthüllen Sie das Skript im P2SH. Da es sich um ein P2WPKH-Skript handelt OP_0 <keyhash>, wird dieses Skript dann als solches ausgewertet (unter Verwendung der Schlüssel-/Signaturdaten im Zeugen).

Entscheidet die Brieftasche, welche Art von Adresse verwendet werden soll? Die eingehenden Transaktionen an die Adressen, die ich generieren werde, sind immer P2SH?
Sie können wählen, welchen Adresstyp Ihr ​​Wallet generieren soll. Wenn Sie P2SH-P2WPKH-Adressen generieren (wie Sie es getan haben), sollten eingehende Transaktionen dem richtigen Format folgen, ja. Technisch gesehen kann jemand, der den Schlüssel selbst kennt, auch Transaktionen mit den P2PKH- und Bech32-Formen dieses Schlüssels durchführen, und die Brieftasche wird sie derzeit akzeptieren.
für meine Brieftasche habe ich mit dem Befehl getnewaddress 3 Adressen generiert. Alle empfangenen utxo haben dasselbe Format. P2SH-P2WPKH ist das Standardformat für getnewaddress?
Dies ist die Standardeinstellung für Ihre Version von Bitcoin Core, aber Sie können sie ändern