All I've learned about script so far is that while theoretically quite versatile (e.g. allowing multisignature transactions) most scripts are simply not propagated by the default client nodes, i.e. while you can easily transfer funds to a script, you may end up having a difficult time of ever spending these transactions. So, what makes a script standard/non-standard, is there a list of scripts currently supported by the network?
I know of four standard scripts. As Luca said, the source code for the reference client is the protocol definition, so you need to read the code to get the definitive answer. As Peter noted, a standard script is one that is relayed by the reference client. A non-standard script will not be rejected if it is in a block as long as it is a valid script.
The ones that I know are:
- Pay-to-PubKey-Hash: This is the standard payment to a bitcoin address. The address is in the output and the signature and pubkey are in the input.
- Pay-to-Pubkey: This is a payment to a pubkey. The pubkey is in the output and the signature is in the input.
- Pay-to-ScriptHash: This is being used for some of the fancier payment transactions. A script hash is in the output and the signature and a serialized script are in the input. On the first pass, the script hash is verified against the serialized script. If it checks, then the serialized script is expanded and a second pass is done using that script.
- Pay-to-MultiSig: Multiple signatures are required to sign the script. The output contains the pubkeys and the input contains the signatures. All signatures must be verified by one of the pubkeys but there can be more pubkeys than signatures. The current limit for M of N scripts is N=3.
The standard list of operations for scripts are actually within the
bitcoind source-code which you can find here: https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp#L90
To understand which ones are actually implemented and used, you'd have to read the source-code.
So no, there's no standard for this. The standard is the actual bitcoind program.