Transações reais
Podemos dar uma olhada no Bloco Genesis e ver que houve uma transação coinbase enviada para 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa que nunca foi gasta!
Aqui estão mais algumas informações sobre o Genesis Block. Ele scriptPubKey
também é chamado de "Witness Script" ou "Locking Script".
Para cada Locking Script deve haver um Unlocking Script que desbloqueará o UTXO e permitirá que ele seja gasto. Normalmente, tudo o que o unlocking script precisa fornecer é uma assinatura que verifique a propriedade de uma chave pública, e então a chave pública precisa corresponder ao endereço após ser hash duas vezes.
📖 Se você olhar para baixo naquele artigo wiki, verá que o Genesis Block Coinbase UTXO não está incluído no banco de dados do cliente, então não pode ser gasto! Para mais informações sobre isso, veja aqui.
Script de Bitcoin
A linguagem Bitcoin Script foi criada para ser uma linguagem simples baseada em pilha que não tem loops, então ela sempre resolverá e não haverá ataques de negação de serviço. A linguagem é basicamente uma lista de códigos de operação do tipo função, que retiram argumentos da pilha e operam neles. Veja a lista completa de códigos de operação aqui.
Você pode encontrar algum histórico interessante sobre o Bitcoin Script nesta resposta do Stack Overflow aqui. O autor dessa resposta menciona um bug com OP_RETURN
e concatenando os scripts de desbloqueio e bloqueio. Você pode encontrar mais informações básicas sobre isso aqui
📖 Alguém fez uma implementação JavaScript de Script. Muito legal!
Duas formas comuns de scripts de transação para Bitcoin são o Pay-to-Pubkey Hash e o Pay-to-Script Hash.
Top comments (0)