Script – Bitcoin Wiki ganha Bitcoin enquanto joga

Basicamente, um script é uma lista de declarações que são registradas durante cada transação e descreve como a próxima pessoa que deseja enviá-las Seja bitcoins pode transferir o acesso a ele. O roteiro para uma típica transferência de Bitcoin para o endereço D do Bitcoin, destino D, sobrecarrega o gasto futuro de Bitcoins com apenas duas coisas: o doador deve entregar

Os scripts fornecem a capacidade de alterar as configurações para transmitir os bitcoins transmitidos. Por exemplo, o sistema de scripts pode ser usado para exigir duas chaves privadas ou uma combinação de várias chaves ou nenhuma chave.

Uma transação é válida se nada no script combinado disparar o erro e o início módulo empilhável é verdadeiro (não zero) quando o script termina.


A parte que originalmente enviou os bitcoins dita as operações de script mais recentes a serem lançadas para uso em outra transação. A parte que ela deseja emitir deve fornecer as entradas para o script armazenado anteriormente para que o script combinado conclua a execução com um valor verdadeiro no início da pilha.

Os vetores de bytes na pilha não devem exceder 520 bytes. Os códigos operativos para remover os números inteiros e valores booleanos na pilha, o que requer não mais do que 4 bytes, mas a adição e subtracção pode ser usado para criar um número inteiro de 5 bytes excedem a pilha e executar.

Existem algumas palavras que estavam presentes nas primeiras versões do Bitcoin, mas foram excluídas porque o cliente pode ter um erro de implementação. Esse medo foi motivado por um erro encontrado no OP_LSHIFT que poderia bloquear qualquer nó do Bitcoin se ocorresse e outros erros que permitissem que alguém gastasse bitcoins. Os opcodes excluídos são por vezes considerados como tal "impróprio"Mas é um pouco inapropriado, já que não há absolutamente nenhuma maneira para qualquer um que Bitcoin costumava usar esse código de operação (eles simplesmente não existem mais no protocolo), nem existem quaisquer planos de som para reativar todos esses opcodes. Eles estão listados aqui apenas para interesse histórico.

Marca a transação como inválida. Um método padrão para anexar transações de dados adicionais é adicionar uma saída zero com uma conexão scriptPubKey OP_RETURN para adicionar precisamente uma operação pushdata. Tais resultados foram comprovados irrecuperáveis ​​para reduzir o custo da rede. Atualmente, geralmente é considerado não-padrão (embora válido) que uma transação tenha mais de uma saída OP_RETURN ou uma saída OP_RETURN com mais de uma transação de dados push.

As saídas, entradas e script de toda a transação (do último OP_CODESEPARATOR até o final) são criptografados. A assinatura usada pelo OP_CHECKSIG deve ser uma assinatura válida para esse hash e chave pública. Em caso afirmativo, 1 é retornado, caso contrário, 0.

Compare a primeira assinatura com cada chave pública até que uma correspondência ECDSA seja encontrada. Começando com a próxima chave pública, ela compara a segunda assinatura com cada chave pública restante até que uma correspondência ECDSA seja encontrada. O processo é repetido até que todas as assinaturas tenham sido verificadas ou não sejam suficientes chaves públicas fique a fim de alcançar um resultado bem sucedido. Todas as assinaturas devem corresponder a uma chave pública. carro chaves públicas se eles não forem verificados novamente, se eles falharem em uma comparação de assinatura, as assinaturas deverão ser colocadas no scriptSig na mesma ordem que a correspondente. chaves públicas foram colocados em scriptPubKey ou reademScript. Se todas as assinaturas forem válidas, 1 será retornado, caso contrário, será retornado 0. Devido a um erro, um valor extra não utilizado é removido da pilha.

Marca a transação como inválida se a primeira módulo empilhável é maior que o campo nLockTime da transação, caso contrário, os scripts continuarão sendo avaliados como se um OP_NOP fosse executado. A transação também é inválida se 1. a pilha estiver vazia; ou 2. o topo módulo empilhável é negativo; ou 3. o item de pilha superior é maior ou igual a 500000000, enquanto o campo nLockTime da transação é menor que 500000000 ou vice-versa; ou 4. o campo nSequence da entrada é igual a 0xFFFFFFFF. A semântica exata é descrita no GDP 0065.

OP_RETURN marca imediatamente o script como inválido e garante que não há scriptSig que possa passar essa saída. Portanto, a saída pode ser imediatamente cortada do conjunto UTXO, mesmo que não tenha sido emitida. dar-lhe um único valor de saída de zero, controlo completo 0.125BTC menor, de prejudicar a operação, sem uma adição UTXO entrada: eb31ca1a4cbd97c2770983164d7560d2d03276ae1aee26f12d7c2c6424252f29 é um exemplo. Você também pode usar OP_RETURN para adicionar dados a uma transação sem os dados aparecem em todos UTXO como mostrado na 1a2e22a717d626fc5db363582007c46924ae6b28319f07cb1b907776bd8293fc; O P2Pool faz isso com o hash Txout da cadeia de compartilhamento no cubo de bloco que ele cria.

Com algumas mudanças de software tais transações podem ser usados ​​para além das taxas de transação a fazer uma doação a menores de idade: Menores que realizam uma operação deste tipo, também pode adicionar outros depois de terem enviado o dinheiro para uma empresa controlada pelo seu endereço. Este mecanismo pode ser demonstrado de forma comprovada no futuro para este Fundo de Fidelidade às vítimas.

Esta operação foi aprovada com sucesso 09f691b2263260e71f363d1db51ff3100d285956a40cc0e4f8c8c2c4a80559b1. Os dados necessários devem ser o bloco Gênesis, e o hash especificado no script era o cabeçalho do bloco Gênesis, que foi hackeado duas vezes com o SHA-256. ser substituído Note-se que, embora as operações dessa natureza são divertidos, eles não são seguros porque contêm, em outros lugares podem os meios de envio outra transação sem assinatura e tentou uma transação gastar.

Em 2013, Peter Todd criou scripts que serão VERDADEIROS se uma colisão de hash for encontrada. Os endereços de bitcoins resultantes desses scripts podem receber dinheiro. Se alguém encontrar uma colisão de hash, poderá gastar bitcoins nesse endereço, portanto, essa configuração é um incentivo para que alguém faça isso.