Ich habe eine Bitcoin-Transaktion analysiert, die sowohl mit Segwit als auch mit Nicht-Segwit für Multisig-Skripte funktioniert. Hier ist die Transaktion: https://www.blockchain.com/en/btc/tx/80975cddebaa93aa21a6477c0d050685d6820fa1068a2731db0f39b535cbd369
Beachten Sie, dass wir auf den Indizes 0, 1 und 2 das Entsperrskript in der scriptsig abgelegt haben und auf Index 3 das Zeugenprogramm verwenden. Keine Probleme bis jetzt.
Was mich nervt, ist, warum, wenn ich das Redeem-Skript von den Indizes 0, 1 und 2 bekomme und das reifemd60, sha256 ausführe, eine Prüfsumme erstelle und in base58 kodiere, es die öffentliche Adresse generiert, wie wir auf dem Bildschirm von blockchain.com sehen können. Aber wenn ich dasselbe mit dem Einlösungsskript mache, das sich im Zeugenabschnitt befindet, gibt es mir eine völlig andere Adresse zurück, warum passiert das?
Außerdem, was ist das scriptSig auf dem Index 3? Wie wird es generiert?
Beispiel:
Einlöseskript von Index 0:
522102194e1b5671daff4edc82ce01589e7179a874f63d6e5157fa0def116acd2c3a522103a043861e123bc67ddcfcd887b167e7ff9d00702d1466524157cf3b28c7aca71b2102a49a62a9470a31ee51824f0ee859b0534a4f555c0e2d7a9d9915d6986bfc200453ae
Die Adresse, die mit meinem Skript aus Index 0 generiert wurde:
3JUJgXbB1WpDEJprE8wP8vEXtba36dAYbk
Es ist das gleiche wie die Transaktion.
Einlöseskript von Index 3 (Segwit):
5221021e6617e06bb90f621c3800e8c37ab081a445ae5527f6c5f68a022e7133f9b5fe2103bea1a8ce6369435bb74ff1584a136a7efeebfe4bc320b4d59113c92acd869f38210280631b27700baf7d472483fadfe1c4a7340a458f28bf6bae5d3234312d684c6553ae
Die aus Index 3 mit meinem Skript generierte Adresse:
36aKiVksQRLKwByBYVz3KwquFcvHZkwroP
Adresse aus der von blockchain.com wiederhergestellten Transaktion
3CYkk3x1XUvdXCdHtRFdjMjp17PuJ8eR8z
Sie berechnen nur die P2SH-Adresse für das Segwit-Skript. Es ist jedoch nicht nur P2SH, es ist ein Segwit-Skript, das in ein P2SH verpackt ist. Sie müssen tatsächlich zuerst das WitnessScript (das Multisig-Skript oder das Segwit-Einlöseskript) nehmen und damit ein P2WSH-Ausgabeskript erstellen. Dann wird dieses Skript zum RedeemScript für das P2SH-Skript.
Also gegeben
5221021e6617e06bb90f621c3800e8c37ab081a445ae5527f6c5f68a022e7133f9b5fe2103bea1a8ce6369435bb74ff1584a136a7efeebfe4bc320b4d59113c92acd869f38210280631b27700baf7d472483fadfe1c4a7340a458f28bf6bae5d3234312d684c6553ae
als WitnessScript produzieren Sie
002044c55c1da36a576217259c3bc21b0c3943f7eb3ff4e3c381d9fd3502434b9e87
als einlösenScript. Dies ist ein P2WSH-Ausgabeskript. Dies wird dann gehasht, um den Hash im P2SH-Skript zu erstellen:
a914771962306e72e479245d48e879dd2a1862225b4c87
die eine Adresse von hat
3CYkk3x1XUvdXCdHtRFdjMjp17PuJ8eR8z
Allan Romanato
Andreas Chow
Allan Romanato
Andreas Chow
Allan Romanato
Andreas Chow