First, you all are not explaining anything … nowhere does it state what “marking a stack as invalid” actually does … “what does that look like?” … Also, nowhere does it describe the difference in for example OP_CHECKSIGVERIFY and OP_CHECKSIG OP_VERIFY … or if there is a difference. Why just add the verify at the end of the last opperation instead of a OP_ in between. Is there a difference. Is this just shortening code for ease of creating code?
But I digress.
Question 1: What is the practical difference between OP_OP_CHECKSIG and OP_OP_CHECKSIGVERIFY?
OP_0 or OP_FALSE reports an empty value to the stack
OP_1 ot OP_TRUE The number 1 is pushed to the stack
so:
OP_OP_ would mean the OP_ reporting a 0 or 1 would return one of the above items when the initial OP performs its duty
OP_CHECKSIG returns a 1 or 0 depending on if the signature is correct or not.
(Note: The entire transaction’s outputs, inputs, and script (from the most recently-executed OP_CODESEPARATOR to the end) are hashed. The signature used by OP_CHECKSIG must be a valid signature for this hash and public key. If it is, 1 is returned, 0 otherwise.)
OP_CHECKSIGVERIFY returns
Hmmm … OP_VERIFY -
Marks transaction as invalid if top stack value is not true. The top stack value is removed. What does mark invalid mean or “look like”???
Well anyway … so OP_OP_CHECKSIGVERIFY returns a 1 or returns a zero with the stack marked as invalid
Question 2: What is the “Pop” functions called in Script? (It is not called OP_POP)
OP_DROP … Removes the top stack item.
Question 3: What is the hexadecimal OP Code for OP_CHECKMULTISIG?
0xae