Ich habe gerade einen blonden Moment.
Der ScriptPubKey stellt eine gehashte Version des öffentlichen Schlüssels des Empfängers bereit.
scriptPubKey OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
Wenn ich jedoch jemandem meine Bitcoin-Adresse gebe, um mir Geld zu schicken – wie ruft der Absender meinen öffentlichen Schlüssel ab und hasht ihn dann? Als pubKeyHash != meine Bitcoin-Adresse
Wahrscheinlich vergesse ich etwas sehr Offensichtliches – aber es hat mich heute Morgen verwirrt.
Adressen sind eigentlich nur Abkürzungen für bestimmte Skripte. Der Standard-Adresstyp (beginnend mit einer '1' im Mainnet) entspricht tatsächlich genau dem Skripttyp, den Sie oben angegeben haben.
Wenn Sie eine solche Adresse base58 decodieren, erhalten Sie am Ende einen Byte-String der Form 0x00 + [20-Byte-Hash] + [4-Byte-Prüfsumme]. Das entsprechende Skript ist OP_DUP OP_HASH160 [20-Byte-Hash] OP_EQUALVERIFY OP_CHECKSIG.
Ihre Adresse enthält also gewissermaßen den Hash des öffentlichen Schlüssels.
Der Absender muss nicht Ihren öffentlichen Schlüssel kennen, sondern nur die von Ihnen angegebene Bitcoin-Adresse, die jedes Mal anders sein kann. Sie verwenden den öffentlichen Schlüssel später, um das Geld einzulösen und an eine andere Adresse zu senden.
Tim S.