|
May 08, 2016, 01:26:12 PM |
|
Because "addresses" aren't actually what the outputs are. Outputs are really scripts -- programs -- which are run, and if they run successfully, then you are allowed to spend the money. An "address" is just short-hand for the most common type of output script, which is "take the given public key and make sure its hash matches this hash: XXXXX, and if it does, make sure the signature verifies also, and if one of those two checks fails, then mark the transaciton as invalid". So whenever that statement is an output for a transaction, all Bitcoin software knows to translate it as an "address" for easier user interaction. But any other type of statement can be made in an output too. Like "anybody can spend this money", or for multi-sig, "here's a list of three keys, if two of them are used to sign the transaction, then the money can be spent". Or for an OP_RETURN output: "This output is invalid and cannot be spent, and by the way, here's some useless data: XXXX".
So when Blockchain.info says it can't decode the output, it just means that the output script isn't a common one that they know what to do with. The script is still valid, it's just not a common one.
|