Ich habe gerade angefangen, etwas über Bitcoin zu lernen, und bin mit p2pk und p2pkh irgendwie vertraut. Ich habe gerade diese Eingabe in einem Bitcoin-Blockchain-Explorer gefunden:
Es sieht so aus, als ob das Pkscript durch etwas, das hash160 ist, "gelöst" werden kann (ich bin mit der Terminologie nicht sehr vertraut), das 0b49fe ...
Das ScriptSig sieht etwas einschüchternder aus :)
Was genau macht das ScriptSig? Wie funktioniert diese Art von Zahlungsmechanismus?
Danke
Dies ist ein P2SH-Skript (Pay-to-Script-Hash), definiert in BIP 16 .
Das scriptPubKey
selbst ist sehr uninteressant: Es nimmt ein Element aus dem scriptSig
, hasht es mit OP_HASH160
und vergleicht es dann mit 0b49fe...f1. Mit anderen Worten, das einzige, was zum Ausgeben benötigt wird, ist die Kenntnis einiger Daten, deren Hash 0b49fe .... f1 ist.
Das hat BIP 16 nun geändert. Wenn a genauscriptPubKey
die Form OP_HASH160 + 20 Byte Hash + OP_EQUAL hat , dann lösen die speziellen P2SH-Validierungsregeln aus:
scriptSig
müssen Pushs sein.scriptSig
(derjenige, dessen Hash wir wissen, ist 0b49fe...f1) wird wieder als Skript (mit dem Namen the ) angesehen redeemScript
.scriptSig
.Semantisch entspricht die gesamte Operation also der einfachen Verwendung von as redeemScript
, scriptPubKey
ohne dass dies dem Absender mitgeteilt werden muss. Stattdessen kann dem Absender einfach eine kurze P2SH-Adresse (3 ...) gegeben werden, die den Hash der verschlüsselt redeemScript
, und die echte wird erst beim Verbringen von Zeit offenbart.
In Ihrem Beispiel redeemScript
scheint die eine 2-von-3-Multisig-Richtlinie zu codieren: OP_2 <pubkey1> <pubkey2> <pubkey3> OP_3 OP_CHECKMULTISIG
, und die zusätzlichen Stack-Elemente in scriptSig
sind OP_0 (eine Problemumgehung für einen Fehler, der OP_CHECKMULTISIG
ein Element zu viel vom Stack entfernt) plus 2 Signaturen.