Crypto Academy / Season 3 / Week 8 - Homework Post for [@stream4u] - Let's Open The CryptoGraphy

Saludos estimados amigos de la #CryptoAvademy.

Hemos llegado al final de la tercera temporada, y mi complace haber participado de ella, mucho aprendizaje y buenas experiencias, espero que esta tarea sobre el tema que nos ha presentado el profesor @stream4u sea del agrado de todos y sea un buen cierre de temporada. Empecemos!

Imagen1.png
Diseño propio elaborado en PowerPoint.

sep avanz.png

1. Explica la criptografía de la cadena de bloques y menciona algunos nombres de las plataformas de la cadena de bloques (algunos nombres de las plataformas de la cadena de bloques).

Como blockchain se define a un tipo de tecnología que mediante una red distribuida permite crear un libro de registro de acontecimientos que no necesita de un servidor principal sino que funciona mediante una red de ordenadores distribuidos por todo el mundo, y donde el manejo de este libro se realiza en consenso con todas las partes que componen el sistema.

En este enorme libro, los registros (o los bloques) no solo se encuentran distribuidos sino que también la información está muy bien resguardada, ya que estos bloques están entrelazados y cifrados, mediante un hash criptográfico que vincula el bloque recién generado al anterior, formando un registro permanente, inalterable y transparente de las operaciones. Este sistema ha permitido la implementación y uso de las criptomonedas, así como otros sistemas que permiten el intercambio de activos digitales o el registro inmutable de información.

Entonces, este registro distribuido solo es posible mediante la criptografía, una técnica utilizada para proteger información, mediante una codificación que impide que terceros tengan acceso a los datos y puedan alterarlos con un propósito mal intencionado. La criptografía es el pilar sobre el que se erige la blockchain, permitiendo el funcionamiento del sistema y de los mecanismos de consenso.

Para asegurar que ninguna persona pueda manipular los datos o acceder de forma indebida a la información, se utiliza, por un lado, la criptografía de clave pública, la cual permite un cifrado que genera un hash que hace más sencilla la distribución de la información, y además, se utiliza la criptografía de clave privada, que permite cifrar y descifrar un mensaje entre las partes.

Una forma sencilla de verlo es así, un emisor desea enviar un mensaje encriptado, entonces este usa un código para cifrar el mensaje (clave pública) y lo envía, el receptor del mensaje, haciendo uso de un código para descifrar el mensaje (clave privada) lo puede interpretar. Esto permite el envió de una forma segura, anónima e inalterable de la información.

Por todo lo dicho antes, la criptografía es una herramienta esencial para la blockchain, ya que permite que las transacciones se puedan realizar de forma segura, sin que pueda haber manipulación de los datos por terceros.

Algunos nombres de las plataformas de la cadena de bloques

Hoy en día se han desarrollado muchas plataformas teniendo como base la tecnología blockchain, pero sin duda todos podremos reconocer nombres como:

  • Bitcoin blockchain
  • Ethereum
  • EOS
  • Cardano
  • Binance Chain
  • Riррlе
  • Steem
  • Tron

sep avanz.png

2. Explique la criptografía de clave pública

Sabemos que en internet es necesario que con frecuencia se produzca un intercambio de información entre dos computadoras, por ejemplo, cuando queremos enviar un correo electrónico necesitamos conocer una dirección de correo al cual enviarlo, que sería un código público que el receptor del mensaje nos comparte, y el receptor necesita una clave para abrir el buzón de correo y acceder al mensaje, que es un código privado.

Entonces, por un lado necesitamos un código identificador que nos permite recibir datos y que podamos compartir a voluntad, lo cual es necesario para recibir, por ejemplo, criptomonedas por parte de una tercera persona. Por lo que la clave pública constituye una de las dos partes que forman un conjunto de claves que nos permiten compartir información cifrada en internet.

Imagen2.png
La llave pública nos permite compartir información cifrada. Diseño elaborado en PowerPoint.

Se puede definir entonces como una clave generada por un proceso de criptografía de cifrado asimétrico, el cual utiliza llaves diferentes para el cifrado y descifrado de los datos, lo que permite una comunicación segura entre emisor y receptor. Mediante este cifrado asimétrico se generan dos claves, o más bien dos cadenas de códigos vinculados matemáticamente, una es la clave pública de la cual hablamos y la otra es la clave privada, que definiremos en la siguiente pregunta. De esta forma, la computadora que envía la información cifra los datos con la llave publica del receptor mediante una operación matemática, los datos son enviados por internet sin la posibilidad de que puedan ser manipulados, y el receptor puede descifrar el mensaje mediante su clave privada.

Y algo que debemos tener presentes es que la clave pública y la privada están relacionadas criptográficamente, específicamente, la clave pública se deriva de la clave privada, por lo que tienen una relación matemática que las vincula, pero la función matemática que las une es de un solo sentido, lo que quiere decir que, aunque la clave pública se derive de la privada es imposible invertir la operación y calcular la clave privada a partir de la pública.

sep avanz.png

3. Explique la Criptografía de Clave Privada.

Como ya mencionamos, la clave privada es una de las claves que se genera durante el proceso de criptografía asimétrica. Siendo esta la clave secreta que solo su propietario debe conocer y que le da acceso y control total, por ejemplo, a su monedero de criptomonedas.

Esta se genera mediante la combinación de caracteres alfanuméricosa por medio de un procedimiento matemático, por ejemplo, el modelo criptográfico de Bitcoin genera las claves mediante un esquema de criptografía conocido como “ECDSA”, un algoritmo que crea claves de 256 bits de longitud codificados en base a operaciones aritméticas sobre puntos de una curva elíptica, sobre esa curva se asigna un número determinado al azar el cual se define como su punto de origen, y a continuación se genera un número aleatorio que representara la clave privada.

Imagen3.png
Representación de la interseción de puntos sobre una curva elíptica. Diseño elaborado en PowerPoint.

La explicación es algo compleja, pero básicamente la clave privada es un número elegido al azar entre el conjunto de datos que forman la curva, y asignando otro punto como punto de origen, mediante una operación matemática obtenemos un segundo punto sobre la curva que sería la clave pública, por eso decimos que están vinculadas matemáticamente.

Esto proporciona un gran nivel de seguridad ya que se puede generar un número casi infinito de claves. Y gracias a este sistema, podemos compartir la clave pública para recibir mensajes cifrados, de esta forma la información transmitida solo puede ser conocida por la persona que origino el mensaje y por nosotros que tenemos la clave privada para descifrar el contenido del mensaje.

Imagen4.png
La clave privada, junto con la llave pública, nos permite una comunicación segura. Diseño elaborado en PowerPoint.

sep avanz.png

4. Explique la criptografía de las firmas digitales y qué es el firmando de la transacción/mensaje.

Así como se utiliza una firma a mano ordinaria para verificar la autenticidad de un documento, las firmas digitales se utilizan para cifrar y verificar la autenticidad de un mensaje digital; solo que estas firmas digitales precisan de mecanismos criptográficos para verificar la integridad de dicho mensaje, lo que añade una capa adicional de seguridad.

Básicamente, una firma digital es un código cifrado vinculado a un mensaje que actúa como prueba de que la información no ha sido manipulada durante la transmisión hasta su receptor. Aunque el concepto de criptografía es bastante antiguo, las firmas digitales se hicieron posibles a mediados de los 70, después del desarrollo de las funciones hash y de la criptografía asimétrica.

Para el caso de las criptomonedas, el proceso de firma digital consta de tres pasos:

Hashing: el primer paso consiste en codificar el mensaje mediante una función de hashing para obtener un valor con una extensión fija.

Firmar: una vez que el mensaje ha sido cifrado, el emisor del mismo lo firma, para ello, el emisor utiliza una clave privada y el receptor puede verificar la originalidad del mensaje mediante la clave pública que le ha suministrado el remitente. Pero a diferencia de una firma a mano, en la que esperamos que nos salga igual en cada documento, la firma digital es diferente para cada mensaje.

Verificación: tanto la clave privada como la pública son generadas por el emisor del mensaje, pero solo comparte la clave pública, de esta forma el receptor del mensaje puede verificar la autenticidad de la información y estar seguro de quien fue su emisor.

El proceso se puede ilustrar el proceso de firmado de la forma siguiente.

Imagen5.png
Representación del proceso de firma digital. Diseño elaborado en PowerPoint.

Si el emisor “A” quiere enviar un mensaje seguro al receptor “B”, entonces este lo codifica y combina el valor del hash generado con su clave privada, de esta forma “B” puede verificar la validez del mensaje con la clave pública que fue suministrada por “A”, B puede estar seguro de su autenticidad ya que solo A tiene la clave privada vinculada.

sep avanz.png

5. Explique qué es la Criptografía Simétrica y Asimétrica.

Criptografía Simétrica

Este es uno de los primeros tipos de criptografía, sin embargo aún puede ofrecer un nivel elevado de seguridad dependiendo el caso de uso. También se le conoce como criptografía de clave secreta ya que para cifrar y descifrar un mensaje se requiere que el emisor y el receptor posean la misma clave, por lo que previamente deben determinar que clave utilizaran.

Básicamente la seguridad del sistema de encriptación recae sobre la clave, por lo tanto esta no debe ser fácil de determinar por otra persona y debe estar resguardada para evitar que pueda ser robada, por lo que la forma en que se comunica o se distribuye la clave representa la vulnerabilidad de este método.

Imagen6.png
Representación del cifrado simétrico. Diseño elaborado en PowerPoint.

Una forma muy emblemática de este sistema de encriptación es la maquina Enigma que emplearon los Nazis durante la Segunda Guerra Mundial, la cual fue muy efectiva ya que se necesitaba de otra máquina igual y una clave para descifrar los mensajes; pero como sabemos, con el tiempo los Aliados lograron descifrar la clave utilizando los primeros computadores de entonces. Y con el avance del poder de la informática este método se volvió más complejo, pero su punto vulnerable sigue siendo el método de transferencia o comunicación de la clave al receptor del mensaje.

Criptografía Asimétrica

Este es otro método de encriptación, pero mucho más complejo que la anterior, ya que se basa en el uso de funciones matemáticas complejas para generar dos claves, la primera es una clave que es de uso y propiedad exclusiva de su creador y que sirve para cifrar y descifrar los mensajes, mientras que la segunda clave se crea a partir de la primera y su función es cifrar los mensajes que terceras personas enviaran a su creador, el cual es el único que puede acceder a ellos mediante la primera clave.

La segunda clave puede ser compartida, y todo aquel que necesite enviarle un mensaje a su creador puede acceder a ella, por eso se le conoce como clave pública; mientras que la clave de la cual se deriva se le conoce como clave privada y debe ser resguardada únicamente por su creador.

Imagen7.png
Representación del cifrado asimétrico. Diseño elaborado en PowerPoint.

Este sistema de cifrado es altamente seguro, pues se basa en cálculos virtualmente imposibles de revertir por lo que son extremadamente resistentes a los ataques de fuerza bruta, y el sistema también tienen la ventaja de agregar una firma digital para autenticar la información. Pero este elevado nivel de seguridad hace que, en comparación con el sistema de cifrado simétrico, requiera mayor cantidad de recursos de cómputo.

sep avanz.png

6. Cómo funciona la Criptografía de Carteras de Blockchain y explica los tipos disponibles de Carteras de Criptografía.

Como sabemos, cualquier usuario de criptomonedas sabe que debe tener un monedero blockchain, el cual no es otra cosa que un software o hardware que permite el almacenamiento, envió o recepción de activos. Y así como una cuenta bancaria, estos activos están protegidos mediantes direcciones y claves únicas donde la criptografía juega un papel fundamental.

Estos monederos están diseñados para almacenar las claves privadas que son requeridas para administrar nuestros criptoactivos, los cuales se encuentran registradas en una dirección pública de la correspondiente cadena de bloques de cada criptomoneda. Por lo cual son necesarias claves públicas y privadas para que podamos utilizarlos, y como hemos mencionado antes, las claves publicas están vinculadas matemáticamente con la clave privada, por lo que es imposible acceder al monedero de otra cuenta que no sea la nuestra.

Imagen8.png
Diferencia entre un monedero real y un monedero blockchain. Fuente: diseño propio, contiene una imagen de dominio público.

Entonces, aunque en el mundo físico un monedero nos permite guardar dinero, un monedero blockchain es realmente una herramienta o aplicación que nos permite guardar claves, recordemos que las criptomonedas son registros de operaciones dentro de una blockchain más que dinero propiamente, entonces, las claves almacenadas en los monederos son las que permiten que podamos tener derecho sobre las criptomonedas enviadas a una determinada dirección.

Como es de esperar, los monederos blockchain requieren de complejas y avanzadas técnicas criptográficas para garantizar la seguridad de los activos. Cuando configuramos un monedero un algoritmo crea una clave privada, por ejemplo mediante el esquema ECDSA mencionado anteriormente, una vez creada la clave privada se procede a crear la clave pública empleando un algoritmo hash y la clave anterior, y a partir de esta clave pública se generan las direcciones en las que vamos a poder recibir criptomonedas.

También existen monederos que al momento de configurarse generan palabras al azar que funciona como una especie de código nemotécnico a partir del cual se crean las direcciones y claves, estas palabras son conocidas como “semilla” y debemos almacenarlas muy bien ya que luego sirven para recuperar el monedero en caso de pérdida o daño del equipo donde está instalado.

Hay diferentes tipos de monederos, cuyo nivel de seguridad y facilidad de uso dependen del tipo que se tenga, pudiéndose agrupar en dos categorías principales:

Hot wallets

Son plataformas que operan directamente conectadas a internet, en la mayoría de los casos las claves privadas están en custodia de la plataforma, por lo que son más vulnerables a los ataques. Dentro de esta categoría podemos encontrar software de escritorio o para Smartphone.

Este tipo de monedero es más fácil de usar y tienen un bajo costo de adquisición, pero su desventaja es la vulnerabilidad a los ciber ataques. Dentro de esta categoría de monederos podemos encontrar los siguientes tipos:

  • Monederos web. Estos son sitios web que gestionan nuestras claves, son aplicaciones a las que podemos acceder desde nuestro navegador, por ejemplo, muchos intercambios de criptomonedas como Binance nos ofrecen un monedero al crear una cuenta.
  • Monederos móviles: estas son aplicaciones que podemos descargar e instalar en los smartphones, por ejemplo Trust Wallet o Electron Cash, lo cual los hace muy convenientes para realizar pagos en línea.
  • Monederos de escritorio: en este caso el monedero se instala en nuestra computadora de escritorio y las claves se almacenan en el disco duro, por lo que pueden ser más seguras que las anteriores, algunos ejemplos son Bitcoin Core, Electrum y Bither.

Cold wallets

Son monederos físicos o un hardware cuyo acceso a las criptomonedas está cifrado por el propio dispositivo y que no requiere acceso a internet, lo que hace que sean las más seguras para almacenar grandes sumas de monedas ya que no pueden ser hackeados, su única desventaja es que pueden ser costosos y poco convenientes de usar. Entre ellas podemos encontrar:

  • Wallets de hardware: aquí hablamos de un dispositivo, muy compacto similar a un pendrive, donde se almacenan nuestras claves, entre ellos destacan los monederos Ledger y KeepKey.
  • Paper wallets: como su nombre lo indica, la información necesaria para gestionar las criptomonedas no se almacena en ningún dispositivo electrónico sino que se imprime sobre papel

Imagen9.png
Seguridad y facilidad de uso de los diferentes monederos blockchain. Diseño elaborado en PowerPoint.

sep avanz.png

7. ¿Qué son los árboles de Merkle y cuál es su importancia en blockchain?

En los bloques de la red blockchain de Bitcoin nos vamos a encontrar con este tipo de organización denominada “Arbol de Merkle”, el cual básicamente es una forma de organizar datos estructurada en varias capas o niveles, cuyo propósito es poder asociar cada nodo con una raíz única. Para ello, cada nodo es identificado de forma única con un Hash.

En esta estructura, que parece un árbol de jerarquías, los nodos iniciales denominados “hojas” se asocian con u nodo superior que se denomina rama, este nodo rama tiene un identificador único que es el resultado del hash de sus nodos hojas. Y en la estructura se va agrupando cada nodo de esta forma hasta llegar a un nodo raíz, cuyo hash está asociado con todos los nodos de este árbol. Este diseño de organización fue propuesto por Ralph Merkle en 1979 con la finalidad de facilitar la verificación de grandes volúmenes de datos.

arbol merkle.png
Estructura general de un árbol de Merkle. Diseño elaborado en PowerPoint.

¿Cómo funciona?

En el árbol Merkle se relacionan todas las transacciones agrupándolas por pares hasta obtener una dirección raíz o “Root Hash”. Como vemos en la imagen anterior, este árbol consta de las transacciones A, B, C, D, E, F, G y H, que representan las hojas del árbol, el hash de cada hoja se combina por pares para formar una rama que las vincula, de las misma forma estas ramas se combinan por pares para formar el siguiente nivel de datos, cuyos hashes se combinan para formar el hash de todo el árbol o Root Hash.

Revisar todas las transacciones de la red sería algo demasiado lento, por lo que este sistema permite hacer un resumen de todas las transacciones que se han realizado en una cadena de bloques para agilizar su verificación, ya que si un solo hash es cambiado todo el árbol se verá afectado, modificando todos los hash hasta la raíz, invalidando toda la información registrada en ese árbol.

Este sistema facilita, por un lado, la verificación de los todos los bloques de datos, ya que el bloque superior contiene la suma de la información de los bloques anteriores, y así se puede escalar toda la pirámide ya que la estructura se repite conectando todos los bloques. Y por otro lado, el sistema actúa como mecanismo de defensa ya que se pueden detectar fácilmente si algún bloque ha sido manipulado.

Árbol Merkle para la tecnología blockchain
El árbol Merkle es simplemente vital para la blockchain, su uso le permite al cliente revisar todo el historial de la blockchain facilitando su descarga, ya que puede ir podando el árbol, es decir, es posible descargar específicamente un Root Hash y desde ahí revisar el historial, puesto que un root hash está vinculado con los bloques anteriores, con verificar este es suficiente, basta con acudir a una serie de nodos y asegurarse que el Root Hash seleccionado coincida, si es así, se da como válida toda la información de este. Esto brinda la facilidad de rastrear información a través de la cadena de bloques al mismo tiempo que brinda grandes niveles de seguridad.

sep avanz.png

8. Práctica + Teoría, haz una investigación práctica, estudia en Blockchain Demo: Claves Públicas / Privadas y Firma y luego explica la funcionalidad de Clave, Firma, Transacción, Blockchain con capturas de pantalla adecuadas de tu práctica. (Estudia bien este tema)

Para esta parte vamos a ingresar en Blockchain Demo

Claves

A primera vista notaremos que en esta web se pueden generar los dos tipos de claves comentados en la criptografía asimétrica, la clave privada y la clave pública.

Imagen10.png
Captura de pantalla de Blockchain Demo.

Como podemos observar en la imagen anterior, la clave privada está compuesta por números enteros dispuestos de forma aleatoria, y esta clave tiene asociada una única clave pública compuesta por un código alfanumérico con más caracteres que la clave privada.

En la siguiente imagen podemos observar que si modificamos la clave privada en tan solo un número, generaremos una clave pública completamente diferente.

Imagen12.png
Captura de pantalla de Blockchain Demo.

Como vemos, al cambiar el último digito de 3 a 4, se modifica la clave pública, pero si volvemos a colocar el número 3 como estaba, generaremos nuevamente la clave pública inicial, por lo que nos damos cuenta que cada clave privada está relacionada con la pública de forma única.

Firma

Ahora bien, si vamos a la sección “Signatures” podemos ver que podemos generar la firma utilizada para dar mayor seguridad a una transacción. En esta sección nos vamos a fijar que tenemos un cuadro con la opción “Sing” y “Verify”, en la opción Sing podemos colocar un mensaje que va a estar asociado con la clave privada generada en el paso anterior, yo coloque “Hi CryptoAcademy”, entonces, este mensaje y la clave privada:

68688178702462143529239094079366138974463627373193619068320442159806724714823

Se combinan para generar la siguiente firma del mensaje:

30450220770b00de19a7c8fe564aa2cd1d8428209d4505b9420c285e41c189b72c79fb86022100b9a7f6b81b000427b5b4ed2100aa775987f549f0c4bd8466bc22fdf6ccfbb000

Lo que podemos apreciar en la siguiente imagen.

Imagen13b.png
Captura de pantalla de Blockchain Demo.

Si vamos a la opción “Verify” sobre el cuadro del mensaje podremos observar que aparece el mensaje, la clave pública vinculada a la clave privada que utilizamos para firmar y la firma del mensaje, si hacemos clic en "Verify" el cuadro azul nos confirma que coinciden, como podemos ver a continuación.

Imagen14.png
Captura de pantalla de Blockchain Demo.

Pero podremos notar que si modificamos el mensaje, en este caso cambie la “y” de Acedemy por “i”, y presionamos verificar, el cuadro rojo nos alerta que no coindicen los datos suministrados.

Imagen15.png
Captura de pantalla de Blockchain Demo.

Transacción

Si vamos a la siguiente sección al hacer clic en la pestaña “Transaction” podemos ver la información asociada a una transacción que se adjunta en un bloque. Por ejemplo, podemos observar que en mensaje aparece la cantidad en dinero que vamos a enviar, que se envía desde nuestra clave pública, también aparece nuestra clave privada y se puede añadir la firma digital.

Imagen16.png
Captura de pantalla de Blockchain Demo.

Si vamos a la opción verificar sobre el cuadro de mensaje podremos confirmar los datos, al hacer clic en “Verify” el cuadro cambia a color azul, siendo esta la señal de verificación.

Imagen17.png
Captura de pantalla de Blockchain Demo.

En caso contrario, si son modificados los datos, como por ejemplo el monto de la transacción, al hacer clic en “Verify” el cuadro cambia a color rojo, siendo esta la señal de que los datos no coinciden.

Imagen18.png
Captura de pantalla de Blockchain Demo.

Blockchain

Si ahora vamos a la sección “Blockchain” del menú superior podremos observar la información correspondiente a todos los bloques verificados, como el número, hash, nonce entre otros.

Imagen19.png
Captura de pantalla de Blockchain Demo.

Como en los casos anteriores si uno de los datos es manipulado, como por ejemplo el monto de la operación en el bloque 1, automáticamente los cuadros de todos los bloques se coloca en rojo, esto nos demuestra que la información de cada bloque está vinculada con el siguiente.

Imagen20.png
Captura de pantalla de Blockchain Demo.

Esto lo podemos demostrar nuevamente si ahora modificamos el mismo campo pero en el bloque 2, el bloque 1 se vuelve azul como señal que los datos coinciden, pero del bloque 2 en adelante todos se colocan en rojo, con lo que podemos saber donde ocurrió la modificación.

Imagen21.png
Captura de pantalla de Blockchain Demo.

sep avanz.png

9. Conclusión

Sin duda alguna que la evolución de los métodos de criptografía han hecho posible el desarrollo de la tecnología blockchain, sin métodos como la criptografía asimétrica seria simplemente imposible revestir esta tecnología de la elevada seguridad que posee, con lo cual no se habría podido implementar como herramienta para el intercambio de activos financieros y para el resguardo de información, simplemente no tendríamos las criptomonedas.

Procedimientos como la firma digital añadieron mayor seguridad a las transacciones, esto gracias al uso de las claves públicas y privadas, y por otro lado la criptografía también es fundamental para la implementación y uso de los monederos para criptomodenas, ya que hablamos de los medios para proteger nuestras claves y gestionar nuestros activos digitales. Y soluciones como los algoritmos hash y el árbol Merkle hicieron esta tecnología más eficiente en términos de cómputo.

Por ello podemos decir que la criptografía simplemente es fundamental para la blockchain y todo su entorno.


Bueno amigos espero que mi tarea sea del agrado de todos y haya podido contribuir con la comprensión de tan importante tema. Hasta la próxima temporada!

Sort:  
Loading...

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.034
BTC 98914.40
ETH 3374.27
USDT 1.00
SBD 3.08