Curso para principiantes de la temporada 3 de Crypto Academy - Tarea 2: Blockchain, Descentralización, Explorador de bloques por @sputnik1

in SteemitCryptoAcademy3 years ago (edited)

portada tarea 2 (1).jpg

Dos png libres fueron usados para hacer esta portada. Fuente 1, fuente 2

Escriba la definición de blockchain. Y cómo nuestros datos en Blockchain están protegidos de los piratas informáticos. Y escriba detalles sobre la etiqueta Data, Hash y Previous Hash y explique a través de la captura de pantalla.

     ¡Saludos, comunidad de Steemit! Me complace dirigirme a ustedes en esta ocasión para informarles que en está publicación estaré hablando sobre las redes Blockchain, su funcionamiento y utilidad, los bloques y los hashes. Si te interesa este tema, ¡presta mucha atención! He hecho esta publicación enfocándome en dos objetivos:

  1. aprobar la tarea n°2 asignada por el profesor @yousafharoonkhan en la Steemit Crypto Acadamy - nivel de principiantes

  2. intentar aportar conocimiento a la conferencia de la asignación, desarrollando los tópicos que voy a tratar y siendo lo más explicativo posible. Con esto en mente, intentaré que cualquier persona que lea mi publicación pueda comprender lo mejor posible los tópicos que aquí voy a desarrollar, los cuales fueron expuestos en la publicación del profesor @yousafharoonkhan sobre este y otros temas relacionados.

     Le agradezco a usted, profesor, por tan importante conocimiento compartido en su publicación, necesario para entender lo relacionado a la tecnología Blockchain. También agradezco a los lectores que se han decidido tomarse el tiempo para leer esta publicación, eso es valioso para mí, espero les sea de su agrado.

     Apegándome a la asignación colocada al principio de la publicación, haré un esfuerzo por desarrollar esos tópicos, intentado lo mejor que pueda exponer correctamente los conceptos. Muy bien, a continuación comenzaré con el desarrollo de los mismos:

Blockchain

     Como ya algunos sabrán, la tecnología Blockchain se entiende como una red Peer-to-Peer (P2P) utilizado para registrar datos o transacciones. Este registro es único, consensuado y distribuido entre los nodos de la red. Esto quiere decir que la red gestiona sus datos mediante un sistema de distribución descentralizada donde, a diferencia de los registro centralizados donde las cuentas y transacciones está en un nodo central, la tecnología blockchain reparte todos los datos o transacciones existentes en la red entre sus nodos, quienes se encargan de comprobar a través de un consenso que esos datos son correctos y que no hubo ningún error o manipulación.

     Para aclarar al lector cómo funciona, voy a poner un ejemplo: si alguien manda un mensaje de texto a otra persona a través de la red Blockchain, suponiendo un saludo como: "hola, ¿cómo estás?" este mensaje es registrado en la Blockchain e inmediatamente es duplicado en miles de computadoras (es decir, los nodos) para luego ser transmitido. Esto tiene múltiples ventajas, como la imposibilidad de que un hacker pueda modificar esos datos debido a la gran cantidad de copias que existe del mismo, la imparcialidad con la que se ejecutan las transacciones, entre otros. Como los nodos registran todos los datos existentes, también es muy complicado para cualquiera, incluyendo a los usuarios, engañar a la red, colocando datos inválidos o incorrectos (por ejemplo, engañar a la red agregando mayor cantidad de dinero en una cuenta modificando el registro). Los datos son guardados en una especie de dispositivo virtual de almacenamiento llamado bloque; cada bloque nuevo agregado posee información almacenada que se registra en la red. Estos bloques, a su vez, se conectan con el bloque anterior (a través del hash, un código único que identifica cada bloque), y estos con el anterior, en una cadena lineal.

     Esta tecnología es la base del funcionamiento de muchas criptomonedas y se implementó por primera vez para crear la red que utiliza Bitcoin actualmente. Dentro del mundo de las criptomonedas, todas las transacciones son registradas y aprobadas por los nodos de su Blockchain correspondiente: en resumidas cuentas, es una red extensa de nodos encargada de gestionar las transacciones (entendido esto como información que se almacena en la cadena de bloques). Para entender mejor cómo funciona esta tecnología debo explicar algunos de sus elementos:

Bloques que componen la cadena

     Un bloque es un concepto acuñado para denominar al conjunto de datos o transacciones que fueron agrupados para asignarles una identificación y ser validados, todos juntos. Esto fue diseñado así porque muchas peticiones para registrar datos en la Blockchain llegan constantemente. Imagina cuantas transacciones en la red de Bitcoin o Ethereum pueden ocurrir en cada segundo: una gran cantidad de peticiones para registrar esas transacciones, llevaría mucho tiempo y esfuerzo tener que validar y asignarle un identificador a cada una individualmente. Es por esto que se implementa el bloque: es como una especie de caja donde se almacenan un conjunto de datos. Otra analogía, válida para el mundo de las criptomonedas, es que la Blockchain sería como un libro de cuentas y cada bloque sería una página de ese libro, en donde cada una de estas página registra cierta cantidad de datos. A cada bloque se le asigna un identificador, único e irrepetible, llamado hash (termino que se explicará a profundidad más adelante), el cual se crea aplicando una serie de complejos procesos matemáticos y lógicos (procesado por los nodos de la red) que toman al conjunto de datos que integran al bloque para procesarlos y crear el hash. Es por esto que el identificador es irrepetible. Una vez realizado esto, los nodos de la red se aseguran de que no hubo ninguna irregularidad en la creación del hash para luego, aplicando el consenso, validar el bloque y agregarlo a la cadena.

Nodos

     Si una Blockchain es una tecnología que usa un conjunto amplio de nodos interconectados en una red Peer-to-Peer, los nodos son cada punto individual de conexión de la red. Ellos crean, almacenan y transmiten los datos, se encargan de hacer el complejo y laborioso labor de crear los hashes de cada bloquea para, luego, validarlos. Estos nodos están constituidos por equipos informáticos con alta capacidad de procesamiento para poder ejecutar las tareas necesarias. Se intercambian la información y se comparten las tareas, sin niveles ni jerarquías, todos los nodos operan de la misma forma. Estos son coordinados por un software que determina cómo funciona la red. Cada nodo posee este software y operan de forma equivalente entre sí, manejando la misma información (los nodos comparten la información de todos los bloques creados en la red); esto hace que la información que allí se maneja sea prácticamente inalterable. Recordemos que los nodos aprueban la información de cada bloque mediante un consensopor lo que si un hacker quisiese alterar los datos de la red, debe modificar la información de gran parte de los nodos en la red, hecho muy laborioso.

Comprendiendo la cadena

     Como ya dije, los bloques son creados, aprobados y almacenados en la red pero esto no ocurre de forma aislada: a cada bloque se le asigna un lugar en la red determinado por el bloque anterior. Estos se agregan de forma lineal, bloque tras bloque, cada bloque nuevo que es agregado contiene información del hash del bloque anterior, y este a su vez del bloque anterior; se hace de este modo con todos los bloques. Por esto se le llamada cadena de bloques: todos ellos están enlazados uno tras otro, del más reciente al más antiguo. La cadena completa es almacenada en cada nodo de la red que conforma la blockchain, lo que quiere decir que existen miles de copias distribuidas por toda la red de dicha cadena actualizándose constantemente. A medida que nuevos registros llegan a la red, estos se depositan en un bloque para luego ser verificados y validados por los nodos y, finalmente, ser enlazados a la cadena.

Descentralidad de la red

     En nuestro día a día vemos ejemplos de sistemas centralizados: en el Gobierno, los Bancos, páginas web que usamos, etc.; estos sistemas están hechos sobre la base de un tercero o nodo central que funciona de intermediario entre nosotros y el sistema. Sírvase de ejemplo una transacción monetaria en un banco tradicional: en este caso el banco funciona de intermediario para garantizar la confianza en el sistema financiero. Dicho banco posee los registros de las cuentas del emisor y el receptor, sus movimientos, saldos actuales e historial de la cantidad de dinero emitida y recibida. Cuando el emisor ejecuta la transacción para realizar una transferencia de dinero a otra cuenta, es el banco quien comprueba la cantidad a transferir y si posee la cantidad de dinero que el emisor solicitó transferir. Una vez que el banco comprueba todo ello, la transacción es ejecutada (o rechazada si no posee el monto que solicitó transferir) y registrada, modificando los valores de la cuenta del emisor (quien ahora tendría menos dinero) y del receptor (quien recibió más dinero). Este proceso es automático y prácticamente instantáneo, por lo que cuando nosotros hacemos una transacción de este tipo, no nos damos cuenta de los procesos que el banco realiza para hacer posible la transacción. Ahora bien, existen problemas importantes en sistemas centralizado como el del ejemplo: todos los registros están en el nodo central (en caso del ejemplo, en el banco) lo que quiere decir que un hacker podría atacar al centro y tumbar el sistema o acceder a los registros si consigue los medios para hacerlo. Por supuesto, sistemas como el bancario poseen mecanismos de seguridad bastante confiables para proteger al sistema de posibles ataques, sin embargo los hackers no son el único problema. La problemática mayor de estos sistemas es que el usuario depende totalmente de la autoridad del intermediario. Un banco podría retener el dinero de un usuario si lo cree necesario por alguna razón. Los bancos también refuerzan su autoridad mediante los créditos y préstamos. Cobran tarifas por usar sus servicios (mantenimiento de cajeros automáticos, del banco, etc.) Además, ellos tienen el control total de los registros, por lo que ellos pueden ocultar esta información si así lo desean, algo que hace a estos sistemas menos transparentes, esto no ocurre en sistemas descentralizados como Blockchain.

     Cuando decimos que un sistema es descentralizado afirmamos que no existe un tercero o intermediario (nodo central) que se encargue de gestionar los datos, transacciones, registros y demás información del sistema, si no que funciona distribuyendo los datos entre los distintos nodos, como ya se explicó. Cada dato agregado, cada cambio en los registros, cada transacción es aprobada y registrada por la red blockchain, dentro de miles de nodos. Aquí no existe un intermediario (nodo central) si no que la red sustituye la función de los intermediario en los sistemas centralizados, por eso se le denomina descentralizada, porque las transacciones se realizan directamente entre los usuarios a través de esta red. No hay terceros porque todo ello es gestionado por los nodos, los cuales fueron programados para realizar esto de forma automática, comprobando los datos y registrándolos. Como todas las transacciones son comprobadas por los nodos, el fraude no se puede realizar. Para que una persona pueda hacer trampa en la red (cobrar recompensas fraudulentas, hacer doble gasto) debe atacar, al menos, al 51% de los nodos y conseguir controlarlos al mismo tiempo, algo que es teórica mente posible pero muy costoso y difícil de realizar. Otro factor positivo es que el sistema puede funcionar aunque alguno de los nodos falle, ya que cada uno maneja la misma información. Si un hacker quisiese tumbar el sistema, necesitaría realizar un ataque del 51% y desde allí ejecutar un ataque DoS, algo que es, como ya se dijo, muy costoso y complicado.

Seguridad en la Blockchain

     La seguridad de la blockchain reside en su propio sistema descentralizado. La red Blockchain ofrece múltiples ventajas que nos mantienen más seguros, nombraré algunos de ellos:

  1. La blockchain sigue funcionando aunque uno o varios nodos fallen. En sistemas centralizados, como Facebook o Twitter, si el servidor central falla, el sistema se cae parcial o totalmente. Las blockchains, al ser descentralizados, ningún nodo es más importante que otro, si un fallo surge en uno o varios nodos, el sistema se mantiene funcionando con normalidad porque otros nodos estarán haciendo su trabajo, debido a esto podemos estar seguros de que la red no se verá afectada por fallas de este tipo y que nuestros datos estarán a salvo.

  2. La blockchain es resistente a los ataques. Lo sistemas descentralizados son más caros de atacar, destruir o manipular debido a que los datos no están en un punto central. Si un hacker desea atacar, debe hacerlo organizado en proporción de la capacidad del sistema, es decir, tomando en consideración un gran número de nodos (51%). Esto hace que el sistema sea bastante más seguro y a salvo de posibles ataques.

  3. Los datos no pueden ser manipulados. Como ya se explicó, los nodos de la red manejan los mismos datos, o sea que si alguien quiere modificar la información, debe hacerlo en cada nodo, algo sumamente difícil de realizar. Esto es así porque los nodos que la de la red hacen todos el mismo trabajo. Los datos y la información que entra a la red son depositados en cada cada nodo y, a través del consenso, estos deciden si la información es correcta o no. Si los nodos acuerda que la información es correcta, esta es aceptada y agregada a la cadena de bloques. Por el contrario, si los nodos deciden que es incorrecta, la información es rechazada y no se agrega a la red. Este sistema de verificación asegura que los datos no se puedan modificar y que nuestro dinero no pueda ser controlado. De esta forma nuestros datos estarán más seguros y libres de manipulación alguna.

  4. Hashes únicos. El software de la red posee programas informáticos destinados crear los hashes a partir de los datos del bloque y otros elementos. Dichos programas se encargan de que cada transacción u operación en la blockchain sea única e irrepetible por medio del hash. Estos también se encargan de crear medios de verificación y consulta de datos almacenado en la blockchain, haciendo que el registro y almacenamiento de datos sea seguro y transparente. Por medio del hash también se pueden consultar los datos: la mayoría de redes blockchain muestran los datos al público, cualquier puede consultar la información que existe dentro de la red.

  5. Claves privadas y públicas para mayor seguridad. Las claves privadas están destinadas a que el usuario tenga acceso a opciones netamente privadas de su cuenta como manejar el el dinero, transferirlo, etc, estás son de alta seguridad. Las claves públicas derivan de las privadas y están hechas para permitir acciones que incluyen a otros usuarios. Si alguien quiere transferirnos dinero a nuestra cuenta, necesitará la clave publica que le permita al remitente hacer la transacción.

Data, Hash y Previous Hash

Datos

Imagen editada a partir de dos png libres. Fuente 1, fuente 2

     Como ya dije, la blockchain están conformado por bloques que contienen datos. ¿A qué nos referimos con datos? Es simple de entender: cualquier transacción que se haga en la red, transferencias de dinero, depósitos o retiros de una cuenta, la cantidad de usuarios existentes en la red, cuanto dinero posee cada uno en su cuenta, etc., son los datos. Pondré un ejemplo: si yo hago una transferencia (llámenme usuario A) a otro usuario (llámenlo usuario B), esa transacción se guarda en un bloque (llámenlo bloque 1),supóngase que fueron 5 monedas, esa petición de "enviar 5 monedas" es el dato. Ahora las cinco monedas están en el otro usuario (B). Pero este usuario decide enviar 2 monedas a otro usuario (llámenlo usuario C) y los datos de esta transacción se guardan en un bloque (bloque 2). Ahora, ¿cómo sabe la red cuanto dinero posee actualmente el usuario B? Con los datos de los bloques. Solo debe consultar los datos de los bloques 1+ 2 y sabrá que el usuario B posee 3 monedas. Es por esto que los bloques de la cadena se mantienen en la red desde su inicio, estos le dan a la red todos los datos sobre las transacciones a lo largo del tiempo, lo que le permite a la red conocer cómo está el sistema en la actualidad, los estados de cuenta, etc.

Hash

     Ya hablé del hash con anterioridad: es ese código único que identifica cada bloque. El software de la cadena de bloques crea este código a manera de que se pueda consultar fácilmente cada uno de ellos, y también para evitar que alguno sea duplicado o alterado. Este código funciona a manera de huella dactilar, es creado a partir de los datos que posee el bloque.

hash.jpg

     Una mínima modificación de estos datos generaría un código totalmente distinto. El hash también cumple una función importantísima en la minería en blockchains con protocolo Proof-o-Work (elemento de la cadena de bloques cuya definición no es propósito de esta publicación): una parte del código de lo hashes se crea resolviendo un complejo problema matemático. Cuando un bloque nuevo es creado, cada nodo compite por resolver el problema matemático del hash (es por eso que los mineros buscan equipos informáticos de muy alta capacidad de procesamiento), aquel que lo consiga es premiado con cierta cantidad de monedas (minado). Una vez creado el hash, los otros nodos confirman que el problema matemático del hash haya sido resuelto correctamente y si los nodos no consiguen problemas es aprobado y el bloque se agrega a la cadena.

     Existen diferentes exploradores de bloques que permiten ver información de un bloque en específico con el hash, entre otra información relevante. El profesor nos explicó sobre el explorador blockchain.com, me parece relevante utilizar esta misma plataforma para que los lectores puedan visualizar qué es un hash y qué aspecto tiene. Voy a mostrar con capturas de pantalla cómo ver el hash de un bloque, el lector si lo desea puede entrar al explorador de la plataforma Blockchain y seguir mis pasos:

Primero, ingresa a la plataforma y selecciona la pestaña "explorer".

1.png

Se te dirigirá hacia el panel del explorador. Estando aquí, lo segundo que tienes que hacer es bajar y buscar el visualizador de bloques.

2.png

3.png

A continuación, se abre la lista de bloques con información relevante sobre cada uno (por defecto, de BTC. Puedes elegir otras monedas). La altura es el número del bloque, siguiendo el orden desde el primero hasta el correspondiente al creado. "Picadillo" es otro nombre para decir hash; como vemos, es un conjunto amplio de caracteres que forman el código. Otra información relevante: Minado, que describe el tiempo que ha pasado desde que se minó. En Minero se nos informa sobre el responsable de su minado. La talla es la cantidad de datos que posee el bloque. Bien, una vez chequeado eso, hablemos de lo cuarto que hay que hacer, lo cual es seleccionar un bloque dándole click al hash.

4.png

Una vez seleccionado el Hash, se nos muestra la información del bloque. La que nos interesa para esta publicación es el código hash (rectángulo rojo) y la cantidad de transacciones (datos) que se encuentra en el bloque (rectángulo azul)

5.png

Previous Hash

     Los hashes previos son los que hacen que los bloques puedan enlazarse entre sí, creando la cadena. Cuando un bloque ya no puede almacenar más datos, se crea otro bloque encargado de almacenar los nuevos datos que llegan a la red pero para mantener un orden y una continuidad en el guardado de los datos estos bloques se ordenan uno tras otro, así que el nuevo bloque que se agrega se coloca justo por delante del anterior bloque, pero a su vez el nuevo bloque agrega el hash anterior el cual lo usa como enlace para que la red sepa de cual bloque viene y, por lo tanto, su posición dentro de la cadena de bloques.

bloque.jpg

Conclusión

     Para concluir me gustaría decir que la tecnología blockchain es todavía muy nueva, aún existe un debate abierto sobre su utilizad, su alcance, sus beneficio y también sobre aspectos negativos. Lo que si es cierto es que muy probablemente está tecnología se mantenga (quizá con cierto control) y se amplifique el abanico de posibles usos: salud, política, documentación, etc. Por ahora es conocido generalmente por su implementación en el mundo de las criptomodenas, sin embargo se sabe que puede aplicar en muchos otros ámbitos. Espero haber sido explicativo sobre su funcionamiento, gracias de nuevo al profesor @yousafharoonkhan por tan relevante conferencia. Por favor si tuve errores en la exposición de los conceptos hágamelo saber para conocer en qué puntos debo trabajar para conocer correctamente lo explicado en su conferencia. ¡Espero sus correcciones, muchas gracias!

Sort:  

Hello @sputnik1 , I’m glad you participated in the 2nd Task of the Beginner’s class at the Steemit Crypto Academy. Your grades in this task are as follows:

CriteriaRatings
Presentation / Use of Markdowns1.5/2
Compliance with topic2/2
Spelling and Grammar2/2
Quality of Analysis2/2
Originality1.8/2
Total9.3



Observations:

The blockchain continues to function even if one or more nodes fail.

That's correct.

Recommendation / Feedback:

  • I'm impressed by your work. You really took your time to perform this assignment.
  • You answered every questions in details and in a simple term.
  • Your presentation is good and your use of markdown is great.

Thank you for submitting your homework task 2. We hope to see the rest of your submissions.

 3 years ago (edited)

Thanks for your valuable feedback @reminiscence01, I appreciate it!

Coin Marketplace

STEEM 0.20
TRX 0.15
JST 0.029
BTC 65292.16
ETH 2651.21
USDT 1.00
SBD 2.85