in BIP 143 zum Erstellen einer Witness-Signatur wird beschrieben, was serialisiert/signiert werden muss. Eine Sache, die dem Dokument zu fehlen scheint, ist, wie man bestimmt, WELCHER Outpoint verwendet werden soll. In diesen Transaktionen gibt es also in jedem Beispiel mehrere Txins, und sie scheinen immer nur eines davon auszuwählen?
Zum Beispiel vom Native P2WPKH in BIP 143
Das Folgende ist eine unsignierte Transaktion: 0100000002fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f0000000000eeffffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac11000000 nVersion: 01000000 txin: 02 fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f 00000000 00 eeffffff ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a 01000000 00 ffffffff txout: 02 202cb20600000000 1976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac 9093510d00000000 1976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac nSperrzeit: 11000000 Die erste Eingabe kommt von einem gewöhnlichen P2PK: scriptPubKey : 2103c9f4836b9a4f77fc0d81f7bcb01b7f1b35916864b9476c241ce9fc198bd25432ac Wert: 6,25 privater Schlüssel: bbc27228ddcb9209d7fd6f36b02f7dfa6252af40bb2f1cbc7a557da8027ff866 Die zweite Eingabe stammt von einem P2WPKH-Witness-Programm: scriptPubKey: 00141d0f172a0ecb48aee1be1f2687d2963ae33f71a1, Wert: 6 privater Schlüssel: 619c335025c7f4012e556c2a58b2506e30b8511b53ade95ea316fd8c3286feb9 öffentlicher Schlüssel: 025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357 So signieren Sie es mit einem nHashType von 1 (SIGHASH_ALL): hashPrevouts: dSHA256(fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f00000000ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b90ec) = 96b827c8483d4e9b96712b6713a7b68d6e8003a781feba36c31143470b4efd37 Hash-Sequenz: dSHA256(eeffffffffffffff) = 52b0a642eea2fb7ae638c36f6252b6750293dbe574a806984b8e4d8548339a3b Hash-Ausgaben: dSHA256(202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa8) = 863ef3e1a92afbfdb97f31ad0fc7683ee943e9abcf2501590ff8f6551f47e5e5 hash preimage: 0100000096b827c8483d4e9b96712b6713a7b68d6e8003a781feba36c31143470b4efd3752b0a642eea2fb7ae638c36f6252b6750293dbe574a806984b8e4d8548339a3bef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a010000001976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac0046c32300000000ffffffff863ef3e1a92afbfdb97f31ad0fc7683ee943e9abcf2501590ff8f6551f47e5e51100000001000000 nVersion: 01000000 hashPrevouts: 96b827c8483d4e9b96712b6713a7b68d6e8003a781feba36c31143470b4efd37 Hash-Sequenz: 52b0a642eea2fb7ae638c36f6252b6750293dbe574a806984b8e4d8548339a3b Endpunkt: ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a01000000 scriptCode: 1976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac Betrag: 0046c32300000000 nSequenz: ffffffff Hash-Ausgaben: 863ef3e1a92afbfdb97f31ad0fc7683ee943e9abcf2501590ff8f6551f47e5e5 nSperrzeit: 11000000 nHashType: 01000000
Sie können sehen, dass in der Signatur 2 txins und nur ein Outpoint verwendet werden, und dies gilt so ziemlich für alle Beispiele. Es steht nirgendwo in bip143, WIE du dich entscheidest. Jeder Rat wird sehr geschätzt.
Wenn Sie Signaturen erstellen, signieren Sie für eine bestimmte Eingabe in der Transaktion. Diese spezifische Eingabe hat einen entsprechenden Outpoint, also verwenden Sie ihren Outpoint im Sighash.
In den angegebenen Beispielen sind die Seufzer für alle Eingaben angegeben. Für jede Eingabe macht es also einen Seufzer unter Verwendung des Endpunkts für diese Eingabe.
Wenn Sie in diesem Beispiel für Eingang 1 signieren, verwenden Sie den Endpunkt fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f00000000
. Wenn Sie für Eingang 2 signieren, verwenden Sie den Endpunkt ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a01000000
.
niemand392
Pieter Wuille
Andreas Chow
niemand392