Glossário · em profundidade

Opcode

Uma instrução de um byte no Bitcoin Script, como OP_DUP ou OP_CHECKSIG.

O Bitcoin Script é uma lista de instruções lidas da esquerda para a direita. Cada instrução é um opcode: um único byte que diz ao intérprete o que fazer. Empurrões de dados colocam bytes (como uma assinatura ou chave pública) numa pilha; outros opcodes retiram elementos da pilha, trabalham neles e empurram um resultado.

Exemplos

  • OP_DUP copia o elemento do topo da pilha.
  • OP_HASH160 substitui o elemento do topo pelo seu hash SHA-256 e depois RIPEMD-160.
  • OP_EQUALVERIFY faz falhar o script a menos que os dois elementos do topo sejam iguais.
  • OP_CHECKSIG verifica uma assinatura digital face a uma chave pública.
  • OP_RETURN marca uma saída como comprovadamente não gastável, muitas vezes usada para embutir pequenos pedaços de dados.

Opcodes desativados e reservados

Em 2010 vários opcodes, como OP_CAT e OP_MUL, foram desativados para evitar bugs de negação de serviço. Opcodes «NOP» não usados foram depois redefinidos por soft fork: OP_NOP2 tornou-se OP_CHECKLOCKTIMEVERIFY e OP_NOP3 tornou-se OP_CHECKSEQUENCEVERIFY. Em Tapscript, opcodes não usados chamam-se OP_SUCCESS e tornam atualizações futuras mais simples.