BIP 113 Median time-past

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

In un network decentralizzato come Bitcoin non esiste un servizio che fornisce un tempo affidabile: gli eventi non sono simultanei, esiste una latenza nella propagazione delle informazioni tra i partecipanti e ogni nodo ha il suo orario che può essere più o meno preciso. Sono i miner ad inserire il timestamp nei nuovi blocchi da loro minati e su questo hanno un certo grado di libertà, e ci sono diversi blocchi nella blockchain bitcoin nei quali blocchi successivi hanno un orario inferiore a quelli precedenti. Inoltre dal momento che le regole del consenso non impongono un rigoroso ordinamento dei timestamp dei blocchi, si crea un incentivo perverso per i miner nel poter impostare ad arte il timestamp nei nuovi blocchi minati al fine di riscuotere fee più sostanziose includendo transazioni che potrebbero non essere ancora valide, transazioni che hanno un timelock che ancora non è passato.

BIP-113 definisce una nuova misurazione del consensus time, l'orario concordato tra i partecipanti alla rete, chiamata Median time-past: viene calcolato prendendo il timestamp degli ultimi 11 blocchi e facendo la media, e utilizzare per i timelock questo orario medio invece del timestamp deciso dal miner del blocco nel quale è inserita la transazione. Le regole di consenso esistenti garantiscono che questo valore avanzi in modo monotono, eliminando così la possibilità per i miner di inserire transazioni ancora bloccate con fee alte impostando dei timestamp artefatti. Median time-past cambia l’implementazione del calcolo del tempo per nLocktime, CLTV, nSequence e CSV (il consensus time è approssimativamente un’ora indietro rispetto all’orologio). Se si creano transazioni con timelock occorre tenerne conto quando si stima il valore desiderato da codificare in nLocktime, CLTV, nSequence e nSequence.


aggiornato il 2024-04-21