El checksum es una pequeña cadena de bytes que se agrega a una pieza de información en función de poder verificar su validez y evitar errores de tipeo o alteraciones. En criptomonedas se utiliza para las direcciones y las claves privadas.
La mayoría de los checksums son generados al tomar los primeros bytes de la información que se busca proteger.
Cuando se añade este checksum a una información, cualquiera que examine la información puede fácilmente comprobar que el hash de la información coinciden con el checksum. Lo que otorga la confianza de que la información no ha sido modificada desde que se generó el checksum.
En el caso de Bitcoin, se utiliza un doble hash SHA-256 como función de hash para obtener el checksum.
Los checksums son utilizados para las direcciones y las claves privadas de los monederos cuando son importados. Estas informaciones son almacenadas, compartidas y utilizada por los usuarios, por lo que es importante prevenir errores en su transmisión.
Contenido
Principal beneficio de los Checksums
Un gran beneficio de las cadenas de bloques es que son seguras. Por algo se dicen que son inmutables, lo que permiten verificar cuestiones como el fraude de forma simple al revisar la blockchain.
Sin embargo, otra característica muy importante que nos ayuda a proteger los fondos son los checksums de las direcciones y las claves privadas.
Por ejemplo, el checksum de una dirección nos permite verificar si la dirección que estamos intentando utilizar no ha sido modificada, tanto por error como intencionalmente.
El principal beneficio de esto es evitar que enviemos sin saberlo nuestros BTC a una dirección que no existe, simplemente porque hemos ingresado algún valor mal o ha sido modificada desde el momento que la copiamos hasta cuando la pegamos en el campo.
El checksum es creado luego de correr un algoritmo sobre una pieza de información que se quiere proteger, lo cual produce un número de checksum, también llamado hash.
Este hash es luego enviado con la información original, así la persona que la recibe pueden usar el hash para comprobar con un grado alto de probabilidad de que la información que tiene en su poder no ha sido corrompida o alterada.
¿Cómo funciona el Checksum?
Si necesitamos enviar 10 dígitos de información a alguien y queremos asegurarnos de que nada la ha alterado en su camino, podemos agregar un checksum.
Para esto es necesario que las personas que envían y la que reciben se ponga de acuerdo en un número, que es utilizado para dividir la suma de los 10 dígitos que han sido enviados. El resto de este número es lo que se convierte en la suma de comprobación.
Supongamos que queremos enviar los números 14, 5, 2, 9, 21. Para producir el checksum debemos sumarlos todos, lo que es igual a 51.
Si ambas partes se ponen de acuerdo en que el número para dividir este resultado es 15, entonces 51/11 = 3,4, siendo el resto 4.
El resto de la división, es lo que conocemos como la suma de comprobación, que en nuestro caso es 4. Que es agregado al final de la cadena de número que deseamos enviar: 14, 5, 2, 9, 21, (4).
Es importante que sea agregado al final de la cadena de número para que se note que es el checksum y no un número que forma parte de la información que se desea transmitir.
Supongamos ahora que durante la transmisión de la información uno de los números es modificado por error o adrede. Por ejemplo, 14, 5, 3, 9, 21. Si realizamos toda la cuenta de nuevo, ahora el resto es 45. Este conjunto de números ahora no coincide con los originales, cuyo checksum es 4.
Pero ¿qué pasa si se alteran la información, pero el resto vuelve a dar 4?. Por ejemplo, 19, 10, 7, 9, 21. La división sería 4,4, mientras que el resto volvería a dar 4. Según nuestro checksum entonces sería un valor correcto.
La realidad es que dividirlo por 15 como hicimos nosotros es práctico para mostrar el ejemplo, pero no es tan conveniente cuando ocurre lo que vimos aquí arriba.
Por suerte, las implementaciones en Bitcoin y otras criptomonedas no son tan simples como esto, y se utilizan número más grande que aseguran un grado de certeza mayor en la comprobación de la información.
El checksum de las direcciones de Bitcoin
Las direcciones de Bitcoin son creadas con un código checksum incorporado. Generalmente, esto impide que enviemos los BTC a una dirección mal escrita.
El valor de hash y los datos en la suma de comprobación de una dirección de esta criptomoneda se convierte en una representación alfanumérica utilizando un esquema personalizado que se conoce como esquema de codificación Base58Check.
El checksum es almacenado directamente en la dirección y si alguna parte de la misma contiene un error, el checksum incorporado no coincidirá con el checksum de la dirección incorrecta.
En teoría, nuestro monedero debería detectar esto e impedirnos que enviemos la transacción.
Muchas criptomonedas utilizan esta característica de incorporar el checksum a las direcciones. Al menos aquellas que emplean el código de Bitcoin tendrán una suma de comprobación para evitar problemas.
Por su parte, Ethereum utiliza su propia versión modificada, que capitaliza algunos caracteres alfanuméricos.
¿Puede fallar este método?
Teóricamente, es posible ingresar una dirección de Bitcoin mal y aun así conseguir que la suma de comprobación sea correcta, al igual que como vimos en el ejemplo de más arriba.
Sin embargo, las chances de que eso ocurra en esta criptomoneda es de 1 en 4.294.967.295, de acuerdo a algunas personas que se han tomado el trabajo de hacer los cálculos.
La realidad es que ninguna persona debería ingresar manualmente una dirección de criptomoneda, ya que no solo son extremadamente largas, también es muy fácil cometer un error con tantos números y letras.
Las direcciones públicas que son utilizadas para enviar y recibir fondos, deberían ser copiadas o utilizadas con un código QR para simplificar el proceso.
Claro que esto no es siempre posible en todo los casos. Por ejemplo, si hemos almacenado los fondos en un almacenamiento en frío, como un monedero de papel.
En caso de que este fuera nuestro escenario, lo mejor que podemos hacer es revisar 2 o 3 veces de que hemos ingresado la dirección correcta. Es un trabajo aburrido, pero es mejor que lamentarnos luego de lo que pueda suceder.
También es importante saber si nuestro monedero nos notificara en caso de haber ingresado mal la dirección, una funcionalidad que debería tener cualquier billetera actualmente.
Agrega un Comentario