Transaction 88025f2bfa2435a7036a865ea0b4748491d21f9b8cfd72788e9d1c9aa8977e7d is valid, but its one and only input has an invalid script. (There are many transactions like this, but this one will suffice as an example.)
The previous transaction for the input is all zeroes, and the output index is 0xffffffff
which is technically not possible as far as I understand. Is one or both of these values used to determine the (in)validity of the script, or is there some other indicator that the script is not valid? How do the block explorers determine whether an input script is valid or not?
Also, if the input script is invalid, then why is it included at all? This transaction has a 49-byte input script. The hex bytes are: 0315ef0a04a656cf612f466f756e6472792055534120506f6f6c202364726f70676f6c642f0e9d8b480000000000000000
. What is all this data if it is not a script, and why would it be sent as part of the transaction?