Crypto Academy / Season 3 / Week 8 - Homework Post for [@stream4u] - Abramos la Criptografía

La criptografía es un tema muy fascinante, y es de ese tema del cual vengo a hablarles hoy, así que empecemos:

imagen.png

1. Explique el Blockchain CryptoGraphy y mencione algunos nombres que son las Plataformas Blockchain (Pocos nombres de las Plataformas Blockchain)

La criptografía Blockchain es el sistema mediante el cual están conectadas y relacionadas la tecnología blockchain y la codificación en sí misma.

La codificación o encriptación es el proceso mediante el cual, una persona emite una data o información que solo puede ser recibida y decodificada por la persona a la que le envía la misma.

Sin un sistema de codificación, la blockchain sería poco más que un corriente sistema de base de datos descentralizado. No obstante, cuando la información es compartida y manejada entre tantas personas, debe haber una forma de proteger dicha data, y es allí donde entra en juego la criptografía o capacidad de codificación del sistema.

Los sistemas de tecnología blockchain son diseñados para hacer uso de los beneficios de la criptografía, mediante la implementación de firmas digitales en el momento mismo de las transacciones o envío de información relevante.

En este tenor, puede entenderse que si la blockchain es el espacio descentralizado donde se concatenan, organizan, estructuran y almacenan los datos de las transacciones que se realizan, entonces la criptografía es la piedra fundamental que le otorga seguridad a este proceso, ya que al codificar la data de las transacciones mediante claves digitales públicas y privadas, y mediante las firmas, la información se puede compartir de manera rápida y confiable.

Para entenderlo mejor pongámoslos así: Cada transacción posee, como es lógico, un emisor y un receptor. El emisor envia fondos criptográficos desde una dirección A de su propiedad, a una dirección "B" de un tercero que es el receptor de dichos fondos. Cabe destacar que dichas direcciones (tanto la de envío como la de recepción) son únicas, como de hecho todas las direcciones de la blockchain son únicas por sí mismas, ya que es una de las características que les define.

El Proceso de codificación de firma digitales y claves hace que la emisión de los fondos de una persona a otra entre una dirección "A" y "B" no pueda ser interferida por terceros, ya que nadie podrá verla ni entenderla al no haber intermediarios en el proceso mismo.

El mencionado proceso de encriptación hace entonces que texto plano corriente y legible, se transmita en un formato no legible que debe ser decodificado en texto plano de nuevo tan pronto como llega a manos del destinatario programado (por decirlo de alguna manera).

En cuanto a nombres de plataformas Blockchain, debemos mencionar el nombre de proyectos importantes, tales como Bitcoin, Ethereum y TRON, entre muchos otros.

2. Explique la CryptoGraphy de clave pública

El proceso de las transacciones dentro de la blockchain a través de la criptografía hace uso tanto de claves públicas como privadas. No obstante, en cuanto a claves públicas, sucede que cada clave pública se genera en función de la clave privada misma del emisor.

Para explicarlo de otra manera; la clave pública es una especie capa de protección de nuestra clave privada, la clave pública enmascara nuestra clave privada en la forma de otro código de extensión fija distinto y aleatorio que permitirá posteriormente codificar la data que se envía en la forma de una firma que solo puede ser descifrada por un receptor con clave privada.

Veamoslo a través de un ejemplo:

imagen.png
Imagen de la interfaz de andersbrownworth.com

En el ejemplo puse que la clave privada era 1524 y eso generó una clave pública específica.

Ahora pongamos que cambio y digo que la clave privada es 1525.

imagen.png
Imagen de la interfaz de andersbrownworth.com

Pues allí vemos como la clave pública generada cambió totalmente. Entonces, la clave pública, hace posible la codificación de la información que solo se puede descrifrar usando una clave privada.

3. Explique la CryptoGraphy de clave privada

La clave privada es una secuencia de caracteres alfanuméricos de extensión fija que asegura nuestros fondos criptográficos. Dicho de otra manera, la clave privada es nuestra llave personal mediante la cual tenemos acceso a nuestros fondos criptográficos y por ende, mediante la cual podemos realizar transacciones con dichos fondos.

Como ya dije, es una clave de naturaleza personal, por lo que no debe ser expuesta, compartida o revelada directamente al público, porque quien conozca dicha clave, tendrá acceso inequívoco y total a los fondos criptográficos de nuestra billetera.

4. Explique la CryptoGraphy de firmas digitales y ¿qué es Singing Of Transaction / Message?

La criptografía de las firmas digitales es algo muy simple de entender; cada transacción de criptomoneda que hacemos desde una dirección nuestra a la dirección de un tercero, requiere que tengamos una clave privada (nuestra clave privada personal de nuestra dirección específica), pero para que dicha clave privada no quede expuesta a intrusos o terceras partes no implicadas en nuestra transacción en específico, existirá la clave pública (generada en base a la clave privada), a fin de que se valide y ejecute la transacción debidamente.

Ahora bien, respecto al Singing of transaction/message, debemos aclarar que la firma digital se genera por la mezcla matemática de los datos de la transacción con la clave pública del emisor, y eso es lo en resumidas cuenta genera una firma digital única para cada transacción que se haga. Esto significa lógicamente que aunque mi clave privada siempre es la misma, las firmas digitales para cada transacción variarán en función del mensaje o transacción, por lo tanto, nunca serán iguales a ninguna otra realizada.

Para explicarlo de un modo todavía más simple, pongámoslo así: La firma digital se crea a partir de nuestra clave privada, que se codifica primeramente en la forma de una clave pública generando un mensaje en la forma de un código alfanumérico de extensión fija que variará tanto en función de la clave pública específica, como de la información específica de nuestra transacción (y cuando digo información, me refiero a cantidad de fondos enviados, y dirección específica).

En resumidas cuentas, las firmas digitales son una especie de forma de regular y comprobar que verdaderamente somos los propietarios de una clave privada sin necesidad de exponerla o revelarla en general a cada momento o durante cada transacción.

5. Explique qué es la criptografía simétrica y asimétrica

Puede decirse de manera simple y concisa que la criptografía de tipo simétrica es la criptografía de las claves privadas y la criptografía de tipo asimétrica es la criptografía de las claves públicas respectivamente.

La criptografía asimétrica funciona en base a la encriptación de datos a partir de dos claves, una pública y otra privada.

La clave pública, como ya mencioné, permite la codificación de la información que solo es posible descrifrar a partir del uso de la clave privada.

La criptografía simétrica es más elemental y simple que la criptografía asimétrica, su forma de cifrado funciona de modo que los datos son protegidos o camuflados a partir de una sola clave, que sirve a la vez tanto para encriptar como para desencriptar la información.

La criptografía asimétrica resulta entonces más robusta, completa y segura que la criptografía de tipo simétrica por sí sola.

6. Cómo funciona Blockchain Wallets CryptoGraphy y explica los tipos disponibles de Crypto Wallets

Una Blockchain Wallet es una dirección específica de referencia, necesaria tanto para recibir fondos criptográficos, como para transferirlos a un tercero.

Es una secuencia de números y letras, como una especie de código que identifica nuestra cuenta criptográfica. Para ponerlo en perspectiva y explicarlo mejor, pongamos el ejemplo de los bancos y del sistema bancario convencional. Cuando tenemos una cuenta en un banco, dicha cuenta es una secuencia de números única y personal, que nada más nos pertenece a nosotros, y desde la cual podemos realizar transferencias o recibirlas de un tercero.

Por lo tanto, si alguien quiere hacernos una transacción de fondos a nuestra Crypto Wallet, deberemos darle la dirección de la misma para que la pueda realizar, tal como si alguien quiere hacernos una transferencia bancaria debe tener nuestro número de cuenta bancaria personal.

Entonces, las direcciones de las Crypto Wallets son para compartirlas, porque no hay ningún riesgo de perder los fondos debido a ello y porque es necesario para poder transferir y recibir fondos.

Un ejemplo de cómo en la práctica luce una dirección Wallet de una criptomoneda lo podemos apreciar en la siguiente dirección de BTC: 19WsfjTgHzAkRqLfUFQAe2K8u5SLP35r8

De la forma que acabo de mostrarles es cómo lucen las direcciones de las Wallets de criptomonedas, y nosotros como usuarios de una Wallet, poseemos una dirección como la que acabo de mostrar y una clave privada que nos permite manejar o disponer de los fondos que tengamos allí.

En ese sentido, repito, tal como funcionan los números de cuenta bancarios, es cómo funcionan la direcciones de las Crypto Wallets, pero hay algunas diferencias con respecto al caso de los bancos.

En el caso de una cuenta bancaria, el tercero que te va a transferir fondos, además de tu número de cuenta bancaria, banco a transferir y tipo de cuenta que tienes, requiere conocer tus datos personales, tales como nombre, apellidos, identificación personal, etc.

En el caso de las Wallets Criptográficas, quien te va a transferir no requiere ninguno de estos datos, simplemente la dirección de tu billetera y listo. Esto es parte del anonimato de las criptomonedas.

En el caso de las transacciones bancarias, solo el emisor, el receptor y el banco saben los datos de las transacciones que se realizan, pero las transacciones como tales no son de conocimiento público general, ni hay una forma en la que todo el mundo pueda consultar dicha información. Pero en el caso de las criptomonedas, las transacciones son públicas y visibles por cualquiera que revise la blockchain de la criptomoneda de las transacciones en cuestión, pero tal como ya mencioné, nadie puede saber los datos personales específicos de los participantes de dichas transacciones; solo las direcciones implicadas y los montos transferidos.

Existen muchas opciones la hora de elegir Crypto Wallets; pero esencialmente entran en dos categorías o tipos, es decir, básicamente tenemos la billeteras frías y las billeteras calientes.

Las billeteras frías son todas aquellas que nos permiten acceder, manejar y resguardar nuestros fondos criptográficos sin necesidad de conexión a Internet; esta es una característica que les confiere una enorme seguridad en todos los sentidos ante ataques de terceros. Ejemplos de este tipo de billeteras son las paper wallets, los hardwares wallets (tales como Trezors, Ledgers Nano, etc), los desktop wallets, etc.

Las billeteras calientes son todas aquellas opciones que nos permiten acceder, manejar y resguardar nuestras criptomonedas a través de Internet. Ejemplos de este tipo de Wallets son las Wallets Online, los Exchanges, etc.

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

Los árboles de Merkle son, definidos en su aspecto más esencial, una forma de clasificación, un recurso de categorización de la información de una base de datos de manera simplificada, a fin de reducir la extensión de la data o información almacenada y procesada y, a la vez, los recursos informáticos requeridos para procesar y almacenar dicha información.

Y en la blockchain es precisamente esa su función e importancia, es decir, los árboles de Merkle permiten simplificar la información de manera tal que facilite el manejo de grandes volúmenes de dicha información.

El árbol de Merkle, entonces, es la manera como se estructura la información de cada bloque dentro de una blockchain; funciona en base a nodos de información de las transacciones. Cada nodo tiene un hash que le identifica, y a cada nivel superior del árbol que van ascendiendo se va juntando con sus paralelos hasta llegar a la raíz que define e identifica el bloque (que contiene todo el compendio general de la información).

La estructura de un árbol de Merkle es de la siguiente manera: Hojas (el nivel inferior más bajo), las hojas (niveles intermedios) y raíz (la parte superior de la estructura). Para ponerlo en un ejemplo simple, supongamos que tenemos las siguientes hojas que representan las transacciones en un nivel básico. Q11, Q22, Q33, Q44.

Como ya dije, esas serían las hojas, pero las ramas de dicho árbol sería Q11Q22 y Q33Q44. Entonces tendríamos a fin de cuentas la raíz que sería Q11Q22Q33Q44. Gráficamente, todo este árbol luciría así:

imagen.png
Imagen creada por mí

Esta es la manera como funciona un arbol de Merkle, claro está que en términos de criptografía, esto funciona en conjunto con los output de hashes respectivamente.

La gran ventaja entonces, y la razón por la que se implementó desde un principio en el funcionamiento de la blockchain, es porque permite simplificar el manejo, estructura organizativa y el volumen de datos de las transacciones que se procesan.

8. Práctica + Teoría, haga una investigación práctica, estudie en Blockchain Demo: Claves públicas / privadas y firma y luego explique la funcionalidad de Clave, Firma, Transacción, Blockchain con capturas de pantalla adecuadas de su práctica. (Estudie bien este tema)

Antes que nada me voy a Blockchain Demo y me dirijo a la sección de claves públicas y privadas.

Esta sección ya se las mostré anteriormente en este post, pero procedo a mostrárselas de nuevo:

imagen.png
Imagen de la interfaz de andersbrownworth.com

Suponiendo que mi clave privada es 1525, el sistema me la enmascara en la forma de una clave pública, específicamente, en la forma de:

04a85d800afc2c0315889f1faa29e5766aa180f31a400e3c1985589af0302c78aa7429d7f4903c76a0a4437b4192865b7aff5aca7a52dd32a508f8b00db97ec85e

Posteriormente, voy a la opción de "signatures" o "firma".

imagen.png
Imagen de la interfaz de andersbrownworth.com

En el campo de texto de Message, voy a escribir: La SteemitCryptoAcademy es la mejor forma de aprender sobre blockchain y criptomonedas.

imagen.png
Imagen de la interfaz de andersbrownworth.com

Y dando click en Verify obtengo una firma para el mensaje o "Signature message".

imagen.png
Imagen de la interfaz de andersbrownworth.com

Ello me dio como Signture message: 304402203dd424dbb1373e901b2b44909472a03167bf41b600794f64be75a2a9127288b0022007a6b287efd93f78d1263a44d883921cc28c8e911c88c0b3e6c2a32aab8e6a32

Ahora bien, para verificarlo doy click en la pestaña "Verify" y hago click en el botón "Verify".

imagen.png
Imagen de la interfaz de andersbrownworth.com

E inmediatamente el cuadro se torna de color azul, debido a que verificó correctamente la firma del mensaje.

imagen.png
Imagen de la interfaz de andersbrownworth.com

Este proceso de verificación de la data es el que deben completar los mineros de las blockchain y la interpretación del mensaje se da del lado del receptor de los fondos.

Ahora bien, ahora iremos a la pestaña transacción para simular cómo sería una transacción haciendo uso de la clave privada y la clave pública y la firma generada en la transacción.

Supongamos que quiero transferir 2500$ de la dirección "A" a la dirección "B" (puse direcciones más o menos parecidas a la de la vida real en la imagen, pero es solo por ilustrar).

imagen.png
Imagen de la interfaz de andersbrownworth.com

Ello me genera una firma del mensaje o transacción (como pueden notar).

imagen.png
Imagen de la interfaz de andersbrownworth.com

Ahora iremos a la pestaña "Verify" y dando click al botón azul "Verify", veremos una pantalla como la que sigue:

imagen.png
Imagen de la interfaz de andersbrownworth.com

Que el cuadro esté de color azul significa en este caso que se ha verificado la transacción; el proceso de verificación es lo que ayuda a comprobar el minero durante la transacción antes de que lleguen los fondos al receptor a final de cuentas. Recordemos que en cualquier blockchain, cuando hacemos alguna transacción, esta queda como en una cola, pendiente por verificación, hasta que algún minero llega y la confirma dando el visto bueno a la misma; una vez así, los fondos son confirmados y totalmente transferidos al receptor.

Ahora bien, en la opción "Blockchain" llegamos a la sección de cómo se estructuran los bloques de las distintas transacciones dentro de la blockchain. Básicamente, cómo ya dijimos, todas las transacciones que se ejecutan y confirman van a formar parte de un bloque de información. Dichas transacciones se estructuran en la forma de árbol de Merkle.

Dicho de otro modo, a un nivel básico, cada bloque es la composición o estructura de todas las transacciones que le componen, de todas las transacciones realizadas. Y el árbol de Merkle muestra en la forma de un hash raíz todas las transacciones de ese bloque.

Un ejemplo de cómo se conforman los bloques dentro de una blockchain lo tenemos abajo:

Supongamos que el bloque está conformado por un número de transacciones que dan cómo total 10.000$.

imagen.png

Ello nos arroja un hash y un Nonce:

El hash en este caso concreto es:

0000d7229037eee553bf5c3054b29928b948153ad6d5ccd31570afa4c95e337d

Y el Nonce es 75973.

En este caso estamos viendo el bloque 1 o bloque génesis; pero a partir de los bloques posteriores, todos los bloques tomarán como referencia el hash del bloque inmediatamente anterior, lo que a su vez hará que el hash de cada bloque sucesivo también resulte distinto en esencia debido a esto (ya que el cómputo matemático que define cada hash específico va influído o afectado entre otras cosas por el hash anterior, además de referenciado).

Veamos el bloque 2 en la imagen, tan solo por ejemplificar:

imagen.png
Imagen de la interfaz de andersbrownworth.com

Lo he verificado, y por ello, veo el hash actual y el hash de la operación 1; pero si altero cualquiera de los parámetros dentro de las operaciones (por ejemplo, si establezco en el bloque 2 que el hash anterior es otro distinto del que realmente es) no se podrá confirmar la operación por más que se quiera, porque no concuerda.

Y recordemos bien que los bloques no se cierran hasta que no están juntas las firmas y las transacciones verificadas o confirmadas. En el caso de Bitcoin, desde el Segwit Bitcoin Network las firmas y los datos de las transacciones se almacenan en bloques separados (para efectos de agilización de las transacciones), pero antes de ello (cuando solo existía el Legacy Bitcoin Network) tanto las transacciones como las firmas se almacenaban juntos en el mismo bloque de información, lo que hacía las operaciones más lentas e ineficientes.

9 Conclusión. (La comprensión general de CryptoGraphy)

La criptografía en general es fundamental para el manejo de las blockchain y en especial, para el manejo y funcionamiento de las criptomonedas, porque solo a través de ellas las transacciones son seguras, rápidas y confiables.

Básicamente, el hecho de poder codificar mensajes o transacciones de manera tal que ningún tercero o intruso pueda afectarlas, es, a mi modo de ver, el mayor logro que trajo consigo la criptografía aplicada en la blockchain; y esto es sumamente importante en un mundo que se tecnifica y digitaliza cada vez más.

La criptografía, ese acto de poder camuflar un mensaje o transacción de modo tal que aunque otros la vean, no la comprendan ni la puedan alterar, es verdaderamente un gran avance tecnológico por sí mismo, y la fuente de muchos avances posteriores que han venido y vendrán gracias a ello.

Espero mi post les haya parecido útil e interesante.

Agradecimientos de antemano a:
@steemitblog
@steemcurator01
@steemcurator02
@stream4u

Sort:  
Loading...

Coin Marketplace

STEEM 0.39
TRX 0.07
JST 0.050
BTC 42032.85
ETH 3138.19
USDT 1.00
SBD 4.71