La criptografía es una parte muy importante de Bitcoin, por algo se la conoce como criptomoneda, ya que es necesaria para su funcionamiento.
Podemos encontrar la criptografía en varios aspectos de Bitcoin, los cuales analizaremos durante el artículo. Pero primero, es necesario que expliquemos que es la criptografía para luego pasar a ver como se integra en distintos aspectos con esta cripto.
Contenido
¿Qué es la criptografía?
La criptografía forma parte de las matemáticas y engloba una serie de distintos métodos que sirven para mantener la seguridad digital y la privacidad.
Algunas de las áreas más importantes dentro del campo de la criptografía son las funciones de hash, la encriptación y la des encriptación y las firmas digitales. Todos estos son estudiados por esta disciplina para mejorar aún más las prestaciones que tienen.
Bitcoin es una forma de dinero digital, que es conocida como criptomoneda porque implementan la criptografía para conseguir un sistema monetario descentralizado y permitir a las personas efectuar pagos punto a punto completamente digitales.
Claro que Bitcoin no es la única en la actualidad en utilizar la criptografía, ni tampoco la primera solución en hacerlo.
Actualmente, encontramos que prácticamente todos los dispositivos electrónicos utilizan alguna forma de criptografía para proteger la información importante y verificar la identidad digital.
Aquellos móviles y ordenadores protegidos por contraseñas, sistemas gubernamentales, redes de telecomunicación, bancos, redes sociales y otros proyectos donde la seguridad es de vital importancia la implementan.
Diferencia entre Encriptación y Desencriptación
La encriptación es un proceso por el cual se oculta la información, se convierte en un secreto. Este es incomprensible para cualquiera que no sea el destinatario de la misma y que no cuenten con las capacidades para interpretarla.
El proceso de encriptación es bastante sencillo, al menos a grandes rasgos, y consiste en transformar la información que se desea encriptar, conocida como texto plano (plaintext), en un código secreto conocido como texto cifrado (ciphertext).
Por otro lado, tenemos un proceso opuesto que es conocido como desencriptación, y que consisten en transformar el texto cifrado de nuevo al texto plano.
La encriptación es utilizado en casi cualquier dispositivo o servicio digital actualmente, en función de poder proteger la información de aquellos agentes que no está autorizados o que buscan descubrir la misma para un uso indebido o malicioso.
Una encriptación fuerte permite que podamos navegar de manera segura por internet, proteger la información importante con contraseña y enviar mensajes a otras personas sin perder nuestra privacidad.
Existen muchas formas de encriptación, y cada una tiene un nivel diferente de seguridad. En la mayoría de los casos, se utilizan una o más claves para encriptar y desencriptar la información.
El tipo y número de claves requeridas dependerá del esquema de encriptación empleado. Algunos de estos se creen que son seguros hasta para la computación cuántica, mientras que otros proveen un nivel de seguridad suficiente para la tarea, donde un simple ordenador un humano no podría vulnerarlo.
Relación con Bitcoin
La red de Bitcoin y la cadena de bloques, que es una especie de base de datos, no necesita de la encriptación, debido a que es una base de datos distribuida abierta. No es necesario encriptar ninguna información.
Toda la información que es transmitida entre los nodos de Bitcoin se encuentra sin encriptar en función de que cualquiera pueda interactuar con la red de esta criptomoneda.
Sin embargo, los servicios que rodean a Bitcoin si requieren de mayor privacidad y seguridad. Almacenar las claves privadas en aplicaciones como los monederos de Bitcoin es uno de estos casos de uso. Para eso se emplean varios tipos de esquemas de encriptación.
Por ejemplo, Bitcoin Core encripta su monedero utilizando Advanced Encryption Standard (AES). Un algoritmo de encriptación que es usado por la NSA para la información clasificada que recolecta, por algo AES es considerado un esquema extremadamente seguro.
Para poder desencriptar, un usuario en Bitcoin Core necesitar proveer una contraseña, la cual es utilizada como clave de desencriptación.
Función de Hash
Una función hash es una función matemática que toma como entrada cualquier tipo de información y la convierte en su salida en un resultado con ciertas características especiales.
Existen muchos tipos de funciones hash, pero todas ellas comparten las mismas características base, que hace de esta función una muy importante no solo para Bitcoin, sino para otros proyectos criptográficos.
La salida de una función de hash es lo que se conoce propiamente como hash o digest, y es un una cadena de caracteres alfanuméricos que suele expresarse en forma hexadecimal.
Mientras que la entrada de una de estas funciones puede tener el tamaño que sea necesario, la salida siempre tiene la misma longitud.
Esta depende la función hash utilizada en particular. Por ejemplo, SHA-256 (empleada por Bitcoin), que es parte de la familia de funciones hash de Secure Hashing Algorithm, siempre tiene una salida de 256 bits sin importar lo grande o pequeña la entrada.
La salida de una función criptográfica también es determinista, lo que implica que ante la misma entrada siempre devuelve la misma salida, el mismo hash. Sin embargo, en el caso de que se cambie al menos un solo caracteres de la entrada, la salida debe ser completamente diferente y no tener ninguna relación con la otra.
Esta última propiedad es muy importante para poder verificar rápidamente si una información está vinculada a un hash. Por ejemplo, si tenemos un archivo muy grande y queremos comprobar que no ha sido alterado, podemos usar la función hash y comparar el hash con la última comprobación que hicimos.
Si ambos hashes son iguales, entonces el archivo no ha sido alterado. Sin embargo, cualquier tipo de cambio en el resultado nos dirá que la información ha sido modificada.
Por último, la salida de una función de hash es de una sola vía. Esto implica que no podemos utilizar la salida para formar la entrada. Por otro lado, la salida no muestra ningún tipo de información acerca de la entrada, y no puede ser empleada para encontrarla.
Esta última propiedad es muy útil para comprometerse con cierta información sin la necesidad de revelarla. Algo que veremos que es utilizado en un sistema como es el de Prueba de Trabajo de Bitcoin.
Relación con Bitcoin
El protocolo de Bitcoin utiliza principalmente SHA-256 para todas las operaciones en las que necesite hashear algo. Lo más importante, es que la función hash es usada para implementar el mecanismo de consenso llamado Prueba de Trabajo.
En función de que un minero pueda validar un bloque en la cadena, es necesario que encuentre el hash de la cabecera del bloque que este por debajo de un hash objetivo.
Debido a que el proceso es aleatorio e impredecible, encontrar el hash válido es una cuestión de prueba y error. Por lo que no le queda más remedio que seguir intentándolo hasta que lo consiga.
Las propiedades de la función hash también hacen posible la inmutabilidad de Bitcoin. Dentro de cada bloque, se construye un árbol de Merkle al calcular los hashes de cada transacción que forman parte del bloque. Esto permite que cada transacción que es agregada al bloque se vuelva inmutable luego de esto.
Además, cada bloque nuevo garantiza la inmutabilidad del bloque anterior. Algo que se consigue gracias a agregar en cada bloque el hash del bloque anterior, formando una cadena y haciendo más difícil que se pueda alterar la blockchain.
Firma digital
Una firma digital es similar a una firma física, con la particularidad de que la primera es más segura y confiable.
Al igual que su contraparte del mundo físico, una firma digital conecta la aprobación de una información que es firmada con la identidad especifica del firmante. Pero a diferencia de la firma física, una digital no puede ser copiada y pegada debido a que cada una es única para cada pieza de información que es firmada.
Hay tres partes que componen a una firma digital:
- La información que está siendo firmada: que puede ser cualquier tipo de información digital, como un texto, una imagen, un archivo de audio, etc.
- La clave pública del firmante: es una forma de identificación pseudoanonima, que sirve para determinar que el dueño de la determinada clave privada ha firmado el mensaje.
- La firma en sí: es una prueba matemática de que el dueño de la clave pública, y de la correspondiente clave privada, ha firmado esa información en específico.
Lo importante aquí es que la clave privada es necesaria para crear la firma, pero no es necesaria para verificarla. Cualquiera puede tomar la clave pública, la firma y la información y comprobar que todo es válido.
Además, como la firma es generada utilizando el hash de la información, también se puede analizar si la información suministrada no ha sido alterada desde que fue firmada.
Relación con Bitcoin
En el caso de Bitcoin, este implementa un algoritmo de firma digital llamado ECDSA, que se encuentra basado en curvas elípticas criptográficas.
Mientras que el algoritmo permite utilizar la clave privada para firmar cualquier tipo de mensaje, en el caso de Bitcoin se utiliza para firmar las transacciones y de esta forma enviar BTC.
El protocolo de esta criptomoneda permite que los bitcoins que se encuentran en las UTXO puedan ser enviados a una clave pública, donde solo la firma de la clave privada que hace juego con ella pueda desbloquearlos y así enviarlos.
Esta firma es publicada en la cadena de bloques para que cualquier miembro de la red pueda verificar la firma, la clave pública y el mensaje.
Gracias a esto, Bitcoin es un sistema completamente punto a punto. Una transacción de Bitcoin puede ser enviado desde una persona a otra sin la necesidad de un tercero que intermedie.
A su vez, si bien los mineros procesan cada transacción, no son capaces de generar firmas válidas en representación de otras personas y, por tanto, no pueden robarles los fondos.
Resumen
- La criptografía es una parte de las matemáticas e incluye el estudio de la encriptación, las funciones de hash y las firmas digitales.
- Bitcoin utiliza las funciones de hash para garantizar la seguridad y la inmutabilidad de la cadena de bloques.
- Bitcoin utiliza las firmas digitales basadas en claves públicas para que los usuarios puedan enviar y recibir Bitcoin sin confianza.
Agrega un Comentario