Protocollo RBF

In questo articolo diamo una prima introduzione al protocollo #RBF (Replace-By-Fee). Tale protocollo è stato introdotto nello standard BIP-0125 e sostanzialmente permette di sostituire una transazione, non ancora confermata con un’altra transazione che abbia una fee maggiore della precedente, in modo tale da essere presa in carico dai miner nel Leggi tutto…

P2SH & NULL DATA

Aggiungiamo all’analisi delle procedure di verifica che esegue Script per sbloccare le UTXO: P2SH (Pay to Script Hash) e NULL DATA. La figura rappresenta lo script P2SH che ogni nodo deve eseguire per la verifica della transazione. l’Unlocking script e’ fornito da colui che esegue la transazione come prova di Leggi tutto…

P2PKH & P2MS

Proseguiamo con l’analisi delle procedure di verifica che esegue Script per sbloccare le UTXO.In questo articolo verifichiamo #P2PKH (Pay To PubKey Hash) e #P2MS  (Pay To Multi Signatures).  La figura rappresenta lo script P2PKH che ogni nodo deve eseguire per la verifica della transazione. l’Unlocking script e’ fornito da colui che Leggi tutto…

Verifica dello Script

Dopo aver compreso come funziona lo Script, analizziamo la procedura di verifica che esegue per sbloccare le UTXO.In questo articolo verifichiamo un vero script, #P2PK (Pay To PubKey). ce ne sono di altri tipi, ma li analizzeremo nel prossimo articolo. La figura rappresenta lo script P2PK che ogni nodo deve Leggi tutto…

UTXO

In questo articolo parleremo delle UTXO (Unspent Transaction Output). Tutte le transazioni, escludendo la coinbase, fanno riferimento agli UTXO per formare l’input. La coinbase fa eccezione in quanto l’input non e’ formato da precedenti transazioni ma direttamente dal protocollo Bitcoin, che eroga dei coin per premiare il miner data la Leggi tutto…

Bitcoin Script

In questo primo articolo parleremo di Script, il linguaggio di programmazione utilizzato dal protocollo bitcoin. Analizziamo le sue peculiarita: Turing Incomplete Stack Based Reverse Polish Un linguaggio #TuringComplete o #UniversalLanguage deve poter risolvere qualunque problema che la macchina di turing Universale sia in grado di  eseguire.  Un linguaggio #TuringInComplete o #non-universal ha Leggi tutto…