エレメントはデータのことで、signature, pubkeyなど
オペレーションはデータに対して操作をする OP_CHECKSIG, OP_DUP, OP_HASH160
OP_DUPはスタックの先頭エレメントを複製し、新しく生成したエレメントにpush
重要なオペレーションはOP_CHECKSIG
stackから pubkey, signatureをpopし、その署名が公開鍵に対して有効であるか確認する。有効な場合、OP_CHECHSIGは1をスタックにpush
op_dup 118(10進数) -> 0x76(16進数)
def op_dup(stack):
if len(stack) < 1:
return False
stack.append(stack[-1])
return True
hash256 170(10進数) -> 0xaa(16進数)
def op_hash256(stack):
if len(stack) < 1:
return False
element = stack.pop()
stack.append(hash256(element))
return True
hash160だと同様に以下のようになる。
def op_hash160(stack):
if len(stack) < 1:
return False
element = stack.pop()
stack.append(hash160(element))
return True