Crypto Academy / Season 3 / Week 8 - Homework Post for @stream4u || Let's Open The CryptoGraphy. || By @nane15

2개월 전

Muy buenas, en esta ocasión como parte de mi tarea para la clase del profesor @stream4u llego con mi post acerca de la criptografía en la blockchain, quiero agradecer al profesor por tan buena clase, sin más preambulo comienzo.

portada.png

Imagen diseñada en PowerPoint Fondo de pixabay.com

separador.png

Explique el Blockchain CryptoGraphy y mencione algunos nombres de Plataformas Blockchain.

separador.png

Para empezar con este interesante tema deberíamos hacerlo entendiendo el concepto de criptografía… ¿Entonces, que es la criptografía? Pues podemos entenderla como una técnica o conjunto de ellas con las que se busca alterar un mensaje codificándolo para que solo pueda ser entendido por quien lo desee quien lo codifico.

Bajo este mismo concepto las blockchain utilizan la criptografía, simplemente como una manera de encriptar mensajes en base a una técnica, por ejemplo la blockchain de bitcoin utiliza la función hash SHA-256 para encriptar los mensajes de su blockchain, generar las claves de las billeteras, firmar transacciones, etc.

Para entender esto más fácilmente podemos decir que la función hash ya nombrada convierte ciertos datos que son inentendibles para un ser humano en algo entendible para una computadora, datos que solo poseerá el ser humano, por ejemplo una clave privada, es algo más que una serie de letras sin sentido para alguien, sin embargo una computadora puede usar la clave privada para desencriptar la clave pública y darle acceso a sus fondos, todo sin la necesidad de tener los datos de la clave almacenados en una web, como en las plataformas de banco convencionales.

Básicamente la criptografía es la base de las blockchains, gracias a esta es posible su estructura y seguridad, dos cosas que hacen a las blockchain tan confiables y demandadas como lo son hoy en día.

Algunas de las blockchain más famosas hoy en día son Bitcoin, Ethereum, Cardano, Binance Smart Chain, Terra y entre muchas otras. (al menos al momento de ejecutar mi tarea)

separador.png

Explique la CryptoGraphy de clave pública.

separador.png

Esta es la clave con la que básicamente recibiremos el dinero, será como nuestra dirección y su criptografía se basa en una función hash que se aplica sobre la clave privada, como con el ejemplo explicado de la función SHA-256 que utiliza bitcoin, simplemente se aplica la función sobre la clave privada y se obtiene la pública, el proceso contrario es imposible (Prácticamente imposible, al menos por ahora y se espera que apse mucho tiempo hasta que deje de ser seguro, al menos en el caso de la función SHA-256)

Básicamente usamos esta clave para encriptar los mensajes que envía alguien y estos solo pueden ser desencriptados por quien posee la clave privada.

separador.png

Explique la CryptoGraphy de clave privada.

separador.png

La clave privada es más de lo mismo, básicamente es como una especie de contraseña con la que podemos descifrar la clave pública, (así funciona la criptografía asimétrica, concepto que ampliare más adelante) en las blockchain tiende a verse como una serie de palabras a las que llamamos semilla, por su extensión de caracteres a la que fue aplicada la función hash, bueno al menos esto es un ejemplo, pues su base es solo la de desencriptar los mensajes encriptados con la clave publica

separador.png

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

separador.png

Firmas digitales

En el proceso que mencione anteriormente acerca de la criptografía asimétrica y que explicare mejor más adelante, donde la clave pública se usa para enviar un mensaje que posteriormente es desencriptado por la clave privada ocurren las firmas digitales, estas firmas se utilizan para dar validez al mensaje del remitente, por ejemplo, digamos que se desea realizar una transacción de tokens en la blockchain de Bitcoin, quien es el remitente debe firmar la transacción con su clave privada para que esta sea válida. Para el proceso de la firma digital se usan los datos del mensaje (transacción) a los cuales se les aplica un hash y la llave privada, combinándolos de cierta manera.

Esta combinación da una serie de datos que se envían junto con la transacción, así el mismo sistema podrá verificar la transacción (por parte de quien recibe) en el momento que quien reciba la misma la desencripte con su llave privada, pero sin la necesidad de conocer la clave privada del remitente.

Singing Of Transaction / Message.

Singing of transaction es basicamente el proceso en el que se firma una transaccion o mensaje para comprar que el remitente es quien dice ser (al menos alguien con acceso a la clave privada), como ya explique esto se logra mediante una serie de datos que se forman en base a los datos de la transacción o mensaje y la clave privada del remitente.

separador.png

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

separador.png

Criptografía simétrica.

Es uno de los tipos de criptografía más antiguos y usados, básicamente se basa en utilizar una clave para el cifrados y descifrado, por eso su nombre de criptografía simétrica, es un modelo usado hasta día de hoy por modelos como bancos por ejemplo, quienes guardan una contraseña en una base de datos con la que el usuario accede y compara la introducida y la que esta en la base, en caso de coincidir se da el acceso.

Ciertamente hay un algoritmo de cifrado de por medio, hoy en día en los medios digitales al menos y son bastante seguros, igual han sido históricamente usados, uno de los ejemplos más conocidos es el de la maquina Enigma usada por Alemania en la segunda guerra mundial para transmitir mensajes.

Criptografía asimétrica.

Este es uno de los conceptos más importantes de las blockchian, la criptografía asimétrica, también llamada criptografía de clave pública es un método que consiste en codificar un mensaje con una contraseña que se llama ¨publica¨ la cual se genera en base a una contraseña privada, al contrario es imposible, entonces quien conoce la contraseña privada es el único que puede descifrar la contraseña pública.

Claro en este proceso intervienen las firmas digitales quienes son las que hacen posible el envió de mensajes a través de este método y su posterior validación por quien conoce la clave privada.

Este método es altamente seguro y tiene como base la resistencia de los algoritmos con los que trabajan, sin embargo la seguridad misma recae en la contraseña, lo cual es un principio básico en la seguridad, por eso los caracteres con los que están compuestos estas claves son tan largos, pero no podemos demeritar los algoritmos o funciones hash con los que se producen estas claves y quienes hacen posible el proceso y su resistencia a ataques de fuerza bruta, claramente de esto último también se lleva parte la extrema longitud de las claves.

separador.png

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

separador.png

Primero que nada me gustaría aclara que es una Wallet en una blockchain, podemos definirla como un sofware que trabaja en base a los datos manejados en la misma red, por lo general son llamadas Dapps, y muchas veces tienden a constar de ciertas funciones que las hacen multifuncionales, sin embargo me centrare en la pregunta y diremos que funcionan para lo principal, recibir y enviar los tokens que trabajen en la cadena de bloques.

Funcionan de una manera bastante interesante, puesto que no es exactamente como se pinta, como tal estas solo almacenan las claves públicas y privadas que poseemos.

Básicamente los tokens son información irrepetible en una red, entonces las claves lo único que hacen es servir como direcciones para enviar esta información (básicamente con un valor debido a la demanda), esto como parte de una transacción que se realiza en la cadena de bloques (clave pública) y la contraseña para acceder al valor desencriptando la dirección o clave pública para acceder al mensaje o transacción una vez que firma el mismo (clave privada) las wallets nos facilitan este proceso de enviar y recibir.

Algunos de los tipos de blockchain son los siguientes:

  • Hardware wallet: Este tipo de billetera se caracteriza por ser un dispositivo el cual no está conectado a internet con el cual claramente se guardan las claves públicas y privadas, dicho dispositivo es quien se encarga de generar las claves y las mismas no pueden salir de el, en caso de que se intentara un acceso forzado o físico el dispositivo se autodestruiría.

  • Paper Wallets: Este tipo de billetera se caracteriza por consistir en guardar las claves públicas y privadas en papel, claramente es un proceso muy sencillo, fue bastante usado en su momento y hasta día de hoy existe quien usa este método, aunque no es muy común por la llegada de otros métodos más fáciles de usar y útiles.

  • Lightweight Wallets: este tipo de billeteras consisten en un software de escritorio ligero el cual solo descarga una parte de la blockchain, un ejemplo muy común es Electrum, son bastante utilies y muy usadas debido a esto, simplemente programas rapidos y eficientes con los que como se pueden guardar nuestras claves públicas y privadas, permitiendo mover nuestros activos desde nuestro dispositivo de manera muy fácil y rápida.

  • Wallet Móvil: Estas son las wallets que funcionan en los dispositivos móviles, con las cuales podemos hacer pagos o simplemente mover tokens de manera muy rápida, son muy parecidas a las Lightweight Wallets debido a que trabajan con partes pequeñas de la blockchain, de igual manera muy sencillas de operar y bastante seguras.

  • Wallet de escritorio: Estas son las más seguras y se caracterizan por instalarse de manera completa en el disco duro y guardar las contraseñas públicas y privadas ahí mismo. Claramente al no precisar estar conectada a la red, es totalmente independiente de ella y lleva la seguridad de nuestros activos a un nivel muy alto, también sirven para mover las cantidades que deseemos haciéndolas altamente útiles para cualquier tipo de persona.

  • Wallet Online: Este tipo de wallets por lo general se tratan de aplicaciones web que se instalan en el navegador, como BSC o TronLink, aunque existen algunas que se instalan en el escritorio, sin embargo todas se caracterizan por ser wallets que siempre están conectadas a la red y por ende trabajan en un servidor que puede ser controlado por una empresa o persona, sin embargo estos por lo general ofrecen la seguridad al poseedor de sus fondos.

separador.png

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

separador.png

El árbol de Merkle es un modelo de estructuración de datos con el que se relacionan los mismos de una manera en la que se puede lograr convertirlos en un solo mensaje. En las blockchain esta estructura se utiliza para agrupar las transacciones que van en un bloque, dado que enviar todas una a una tardaría mucho más y consumiría muchos más recursos, los arboles de Merkle sirven para estructurar todos estos datos relacionándolos de arriba hacia abajo, de modo que se llega desde las hojas que serían los hash de las transacciones a una raíz única que contendrá todos los hash en uno solo. Este árbol debe contener un numero par de transacciones y en caso de no hacerlo la última se duplicara.

Importante es una palabra que se queda corta a la hora de ver lo que mejoro la implementación de esta estructura en las blockchain, sin esto el proceso de validación de transferencias seria simplemente demasiado lento, la potencia de cálculo necesitada para validar las transacciones de una red caería significativamente y la escalabilidad de una blockchain que no lo implementara tendría un potencial muy bajo, esto debido a que con este modelo de estructuración se puede lograr agrupar todas las transacciones que van en un bloque en un solo hash que puede ser posteriormente verificado por los nodos de la red, como si de una sola transacción se tratase. Esto se logra porque como ya mencione los hash de las transacciones en un bloque se agrupan, estos en pares, de arriba hacia abajo (imagínelo como una lista, desglosándose en pares hacia abajo (Pirámide invertida)) hasta llegar a un hash único.

separador.png

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.

separador.png

Finalmente paso a explicar con ejemplos de la página web de Blockchain Demo lo que son las claves públicas, privadas, las firmas digitales, transacciones y blockchain.

Claves públicas y privadas.

Como podemos ver en la siguiente imagen, se encuentran dos recuadros, en el primero la clave privada de la cual se obtiene la pública, junto con un botón “Random” que generara una nueva clave, aunque también se puede introducir manualmente o cambiar alguna parte de ella.


1.png

Captura tomada de andersbrownworth.com

Las claves son las siguientes:

Privada: 50052937252282103855050136635271582613066118153759130651890710238097532575584
Publica:
04975443f95a16c7e9beabac27fd6d5e9876d5dc888c60c43f864943611eb2011655073278e8e917dff6ebcc8e13562d96e4e775442e27aedabbbf06000244a9bb

Si pulsara el botón de “Random” cambiaría por completo la clave privada y por ende la pública, esto claro está, pueden observarlo en la siguiente imagen.


2.png

Captura tomada de andersbrownworth.com

Ahora las claves son las siguientes:

Privada: 42379844622597258976427290031479288252598655224014920176211128177280797015731

Publica:
0498abf6c641a8abb1af7e23f5523a25875a1801f884cdcd62d5c52e2477893eddad5dd7fde68dc28f262d5aed6ff6582c944715970d8ecda965e2caee660ca3ec

De igual manera con solo cambiar un solo digito de la clave privada, cambiaría por completo la pública, fíjese en la siguiente imagen como solo cambio el digito final de 1 y toda la clave publica cambia.


3.png

Captura tomada de andersbrownworth.com

Ahora podemos ver que con solo cambiar el 1 final de la clave privada por un 2 cambio toda la pública, pudiendo comprobar de manera práctica como funciona un par de claves gracias a la criptografía asimétrica, que cifra la clave privada, y nos da una clave pública que se calcula en base a una función hash. Esto es útil en las blockchain, debido a que la funcionabilidad actual se basa en la criptografía asimétrica, por lo general creamos una billetera en base a una clave privada, que luego genera una pública, está la compartimos para recibir fondos y luego podemos acceder a ellos gracias a la clave privada, debido a que conseguir la clave privada en base a la pública es algo imposible, se brinda un nivel de seguridad altísimo, actualmente por ejemplo la funciona hash usada en la blockchain de bitcoin es la SHA-256, para conseguir descifrar una contraseña en base a un ataque de fuerza bruta (siendo lo único posible por ahora)se estima que tardaría miles de años lograrse.

Las claves pasaron a ser las siguientes:

Privada: 42379844622597258976427290031479288252598655224014920176211128177280797015732

Publica:
04bd5784e1c1cbfe7cede89659a72bc23659bb974db727f93dd70bf47e32c81de5b7f408f4e4f1b5393471db11c3408c38af8fab512c59c0f7d079a308fcf56004

Firmas digitales.

Como ya he explicado las firmas digitales son el proceso por el cual se confirma una transacción en una blockchain, para ello hacen falta los datos de la transacción y la clave privada, esto para corroborar que quien hace la transacción es el propietario de la clave privada claramente. En la página web de demostración basta con ir al apartado de “Signature” y rellenar los datos de la clave privada, luego introducir los datos de la transacción. En este caso mis datos serán los siguientes:

Clave privada:
42379844622597258976427290031479288252598655224014920176211128177280797015732

Message:
nane15task

Ahora bastaría con simplemente hacer click en “Sign” para firmar la transacción y obtener los datos de la firma digital.


4.png

Captura tomada de andersbrownworth.com

Ya con eso tendríamos el nuevo dato.


5.png

Captura tomada de andersbrownworth.com

Sería el siguiente.

Message Signature:
304502210096d511b1066be66ec5a049e0919ae4d055719a1c4885d533eefb4260f4a1e0d702202f62416658a92405f01e7309bc457d148b785dcb0434b5589b661cf76cf23a3f

El siguiente proceso es el de verifica la firma, para ello basta con ir a la pestaña de “Verify” corroborar los datos y hacer click en el botón de “Verify”, como podemos apreciar en la siguiente imagen al hacerlo estando todo bien se ve en verde el recuadro de la transacción.


6.png

Captura tomada de andersbrownworth.com

Esto porque en esta ventana tenemos los datos de nuestra clave pública que es la dirección de donde se enviaron los activos (por así decirlo) y el Message Signature, el cual es la combinación de nuestra clave privada con los datos de la transacción, con estos datos quien recibir puede corroborar que yo envié la transacción sin poseer mi clave privada, si cambiara alguno de los datos del recuadro, por ejemplo el primer número del Message Signature, la transacción seria invalida.


7.png

Captura tomada de andersbrownworth.com

Transacción.

En esta ventana podemos probar como se ejecuta una transacción en un blockchain, para empezar supongamos que deseamos realizar una transacción de 50$ todo lo que deberemos hacer es introducir la clave privada y firmar la transacción haciendo click en “Sign” los datos de mi transacción serían los siguientes:

Private Key:
42379844622597258976427290031479288252598655224014920176211128177280797015732

Dirección remitente:
04bd5784e1c1cbfe7cede89659a72bc23659bb974db727f93dd70bf47e32c81de5b7f408f4e4f1b5393471db11c3408c38af8fab512c59c0f7d079a308fcf56004

Dirección destinataria:
04cc955bf8e359cc7ebbb66f4c2dc616a93e8ba08e93d27996e20299ba92cba9cbd73c2ff46ed27a3727ba09486ba32b5ac35dd20c0adec020536996ca4d9f3d74


8.png

Captura tomada de andersbrownworth.com

Ahora haremos click en Sign y obtendremos el Message Signature.


9.png

Captura tomada de andersbrownworth.com

El Message Signature sería el siguiente:
3045022100b9e0a8a18846de24236c0fb809d8877fb85928ce086bd9c885145ffc1b6a096802200f2757f357bbf73be90b35450a4f18f3bb03458731f8c86fbf359d7816df4cbd

Para verificarla basta con ir a la pestaña de “Verify” aquí deben estar los datos de la clave pública del remitente la dirección destinataria y el Message Signature, por medio del proceso ya explicado de la firma digital se logra verificar la transacción, esto gracias al Message Signature que es la combinación de la clave privada con los datos de la transacción, y permite verificar la misma gracias al código único que produce, sin necesidad de revelar nuestra clave privada.


10.png

Captura tomada de andersbrownworth.com

En caso de que algún dato cambiase, como por ejemplo el Message Signature, la transacción se invalidaría.


11.png

Captura tomada de andersbrownworth.com

Blockchain.

Ahora por ultimo explicare el apartado de Blockchain, aquí podemos visualizar a detalle cómo se procesan las transacciones en los bloques, podemos observar en la siguiente imagen una serie de bloques con las transacciones correspondientes en cada uno, con sus direcciones, firmas digitales y la cantidad de $ enviada. Además el Hash final del bloque calculado por el árbol Merkle y la cantidad total de $ en el bloque.


12.png

Captura tomada de andersbrownworth.com

Como punto interesante aquí y para entender fácilmente cómo funcionan las transacciones en los bloques podemos cambiar alguno de los datos en la transacción, realmente cualquiera funciona, y podremos observar como al cambiar cualquier dato de cualquier transacción en el bloque cambiaria totalmente el hash final.


13.png

Captura tomada de andersbrownworth.com

Por ejemplo en la anterior imagen cambie los dos primeros dígitos del Message Signature de la primera transacción, al hacer esto toda la secuencia de los bloques consiguientes queda invalidada igual al mismo bloque, para poder arreglar esto deberemos introducir los valores validos o volver a minear el bloque (igual los siguientes); esto pasa porque el modelo de estructuración del árbol Merkle que se usó para dar el hash final una vez que se cambió algún dato en el bloque cambia totalmente el Hash final y por ende debemos volver a calcularlo para poder proceder. En este caso basta con hacer click en “Mine” en el bloque al que se cambió el dato.


14.png

Captura tomada de andersbrownworth.com

Como podemos ver se calculó un nuevo Nonce en el bloque y ahora se puede proceder, debido a que el hash final del bloque también es diferente, los demás bloques quedan invalidados debido al cambio de los hash y debemos volver a minarlos para que puedan ser válidos.


15.png

Captura tomada de andersbrownworth.com

Como pudimos ver gracias al modelo de el árbol Merkle cada dato en un bloque se relaciona con los otros datos, hasta el punto en el que se obtiene un hash final el cual es el hash del bloque con el que se relacionaran los siguiente bloques, todo esto lleva a un nivel de exactitud perfecto en el que si algún dato es cambiado altera todo el orden de la ecuación.

separador.png

Conclusión.

separador.png

La criptografía en las blockchain es un tema extenso, básicamente es el modelo adaptado por estas redes para su seguridad y funcionamiento, una serie de cálculos matemáticos y operaciones que ponen en marcha toda una red relacionada entre sí, funcionando por pura potencia de cálculo de sus nodos y una serie de parámetros preestablecidos que dictaminan las reglas de la red, de igual manera la participación en ella.

Para poder entrar a este mundo es de gran importancia conocer el funcionamiento de todo esto en general, claves privadas, publicas, billeteras transacciones, etc… Esto debido a que el funcionamiento de estas redes, que hoy en día se usan muy comúnmente como canales de pago entre personas es muy diferente al modelo bancario al que se está acostumbrado.

Entenderlo nos llevara a reducir el peligro de estafa y a una mejor movilización de nuestros fondos, entenderemos el cuidado que se debe tener a la hora de manejar nuestras contraseñas y aplicaremos los pasos correctos para crear cualquier billetera, o decidir qué tipo de ella deseamos usar dependiendo de nuestras necesidades.

Un tema base en las blockchain y que al entenderlo podemos entender de mejor manera como operan estas redes y en que basan gran parte de su funcionamiento en general.

separador.png





separador.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

Hi @nane15

Thank you for joining The Steemit Crypto Academy Courses and participated in the Homework Task.

Review Visit Level
Task Remark
First
Completed
Your Overall Performance In this Task
Criteria
Strongly Agree
Agree
Disagree
Task Meet Expectations
✔️
Task Lenght Sufficient
✔️
Task Presentation
✔️
Plagiarized Content
✔️
Content was Clear & Understandable.
✔️
The Quality & Material Of Task Helpfull (Content, Images).
✔️
Extra Efforts On Task.
✔️
Comments, Guidance, Feedback, Suggestions
Overall you did well, In Merkel Tree, the given information was good, but if you could also show the Graph module, then explain that each block and their hash, then how they get clubbed, where it can found in Blockchain explorer, then it will look more informative. The rest of the task is good.
Grade Achived
Verification (Done, Hold)
8
Done

Total / 8/10

Your Homework Task verification has been done by @Stream4u, hope you have enjoyed and learned something new.

Thank You.
@stream4u
Crypto Professors : Steemit Crypto Academy

#affable

·

Gracias por la corrección profesor, intentare ser aun más explicativo en la próxima!