Che cos’è il DER Format?
Il Distinguished Encoding Rules (DER) è uno standard definito utilizzato da Bitcoin per codificare le firme ECDSA (Elliptic Curve Digital Signature Algorithm). Una firma Bitcoin viene rappresentata da un numero casuale chiamato valore R e dalla firma stessa, chiamata valore S. In una firma tipica di Bitcoin, il valore R è lungo 32 byte e il valore S è anch’esso lungo 32 byte. Tuttavia, la firma DER introduce alcune regole di formattazione per consentire una codifica consistente e compatibile.
Il DER Format inizia con un byte prefisso di 0x30, che indica l’inizio del DER Format. Successivamente, viene specificata la lunghezza della firma. Viene quindi aggiunto un byte 0x02, che indica che il valore successivo rappresenta la lunghezza del valore R. Segue poi il valore R stesso. Dopo il valore R, viene aggiunto un altro byte 0x02, che indica la lunghezza del valore S. Infine, viene inserito il valore S.
Tuttavia, potrebbe essere necessario un byte 0x00 aggiuntivo per ciascuno dei valori R e S. Questo accade quando il primo byte del valore R o S è superiore a 0x80. In tal caso, il byte 0x00 viene aggiunto prima del valore per mantenere la codifica corretta. Pertanto, anche se i valori R e S sono di solito lunghi 32 byte, occasionalmente possono occupare 33 byte in formato DER.
Il DER Format permette quindi una codifica uniforme delle firme Bitcoin, garantendo che siano compatibili e possano essere verificate correttamente. È importante seguire le regole di formattazione DER durante la codifica delle firme e durante la loro decodifica per garantire l’integrità e la validità delle transazioni Bitcoin.