Crypto Academy / Temporada 3 / Semana 6 - Tarea para [@stream4u]

in SteemitCryptoAcademy3 years ago

imagen.png
Editada en Canva

La blockchain es una tecnología relativamente nueva, que se ha extendido gracias a la llegada del Bitcoin, pero que existía desde mucho antes, para la preservación de documentos digitales.

imagen.png

¿Qué es Blockchain y cuáles son los tipos de Blockchains / Explica en detalle los tipos de Blockchain?

Una cadena de bloques es una base de datos distribuido, de forma segura ya que su información se encuentra cifrada, y no es posible manipular una bes que el registro ha sido registrada. Esta tecnología fue creada en 1991 por Stuart Haber y W. Scott Stornetta.

Cada bloque contiene una cantidad de transacciones y ellas generan un hash, cada transacción se registra en un orden, por lo que cada hash está vinculado con el hash anterior, los nodos verifican cada hash y si es reconocida como válida por los nodos se crea el bloque, además cada bloque hace referencia al bloque anterior, a excepción del bloque génesis.

La cadena de bloques se actualiza cada diez minutos y esto se hace en todos los nodos conectados al mismo tiempo.

Por lo tanto podemos decir que sus componentes son: Bloques, nodos y Mineros.

Los bloques contienen la información que al ser validada se registra en la cadena de bloques, por lo que el bloque finalmente contiene el registro, el hash y el nonce.

Los nodos son el conjunto de ordenadores que conectados comparten la información de los bloques en toda la red, y la mantienen operando.

Mineros son aquellos que validan las transacciones de la red para crear y añadir un nuevo bloque a la cadena, de acuerdo a los protocolos de consenso de la red.

Existen 4 tipos de cadena de bloques:

Cadena de bloques Pública

Este tipo de cadena de bloques mantiene sus registros, software y desarrollo de manera abierta para que cualquier usuario pueda observar, leer o auditar, además de desarrollar o mejorar, mediante la conexión a internet. Está diseñada además con protocolos de seguridad que impiden un ataque malicioso a la misma.

Ejemplo:

  • Tolerancia a fallas bizantinas
  • Protocolos de consenso
  • Protección contra ataques del 51%
  • Protocolos de protección contra ataques de doble gasto.

Esta red es la que conocemos como descentralizada, cada nodo contiene una copia actualizada de la red.

Posee las siguientes características:

  • Transparencia
  • Accesibles a cualquier persona, como usuario o minero.
  • Privacidad, los usuarios son anónimos.
  • Las transacciones son validadas gracias a los protocolos de consenso
  • La base de datos es distribuida
  • El minado es recompensado

Ejemplo de ellas: Bitcoin, Ethereum, Steem.

Cadena de bloques Privada

Este tipo de cadenas contiene las mismas funciones que una cadena de bloques pública, pero es controlada por una unidad central, y esta unidad la que dictamina los permisos de los usuarios dentro de la red.

La base de datos permanece allí y no es accesible a los usuarios.

Sus características son:

  • El acceso a los elementos de la red están sujetos a la autorización de la unidad central.
  • La base de datos es privada.
  • Existe un único administrador.

Ejemplos de ella: Hyperledger, R3, Ripple, Corda, Quorum, Universa.

Blockchain Híbrida o Federada

Como su nombre lo menciona esta cadena de bloques contiene características de una pública y una privada, y es utilizada generalmente por entes gubernamentales o empresas. El acceso a ella está controlado por una o varias administradores.

Entre sus características están:

  • Acceso restringido y controlado por las unidades de control.
  • Sus registros son públicos
  • No está vinculado con una criptomoneda, no existe la minería. Posee otro mecanismo de consenso para la validación.
  • Utilizan código abierto
  • Ofrecen un poco más de transparencia y seguridad.
    Ejemplo de ellas: Interprise Ethereum Alliance, BigchainDB, Evernym.

Blockchain como Servicio

Esta nos ofrece un servicio en la nube, la posibilidad de almacenar información de forma segura sin invertir en hasrdware y grandes conocimientos en programación.

Ejemplos de ella: IBM (Hyperledger fabric), Amazon (Digital Currency group), Microsoft(R3, Hyperledger, Quorum) que ofrecen servicios en la nube

imagen.png

¿Cuáles son los beneficios de blockchain?

La blockchain trajo consigo grandes beneficios el primero es:

Seguridad

Esta nos proporciona un gran nivel de seguridad debido a la encriptación de los datos. La información contenida en la cadena de bloques es hasta ahora imposible de hackear.

Para acceder y hackear necesitaría realizarlo en el menor tiempo posible y con una gran capacidad de ordenadores para los cálculos, además que alterar la información de un bloque cambiaría el hash lo que sería detectado fácilmente.

La información que allí se encuentra no puede ser falsificada y esta no se perdería. Lo que está en la red no desaparece.

Descentralización

Eliminando la figura central dentro de las operaciones, los intermediarios no son necesarios para la realización de una operación. El usuario posee control total de sus activos.

Contratos Inteligentes

El uso de contratos inteligentes para automatizar las operaciones, además de brindar confiabilidad y seguridad en las transacciones.

Velocidad y Eficiencia

La información se almacena y verifica a medida que se va generando, son rápidas y pueden ser validadas en el momento que se realizan, ya que no existe la figura de un tercero para ello.

Transparencia

Esto es muy importante, los registros pueden ser visibles y auditados por los usuarios.

Transacciones menos costosas

Al no tener intermediarios para las transacciones, existe en un ahorro es los costos de operación.

imagen.png

Explique el libro mayor distribuido de Blockchain. (LEDGER)

Como hemos mencionado cada bloque contiene una serie de datos, muy similar a un libro de contabilidad.

El libro mayor de la blockchain contiene todas las transacciones realizadas, por lo que, es fundamental en la cadena de bloques, es lo que le otorga transparencia y seguridad.

En él se encuentra organizadas y detallada cada una de las operaciones realizadas en cada bloque desde su origen, por lo tanto con esta información es posible llevar el control, supervisión y auditoria de la red.

El Ledger, por lo tanto, es un libro que contiene el registro de todas las transacciones realizadas, y este puede ser distribuido a muchos nodos, cada uno, contendría una copia completa del libro. La blockchain vincula cada bloque, de forma segura por la encriptación de la información, con un bloque anterior, usando un hash, creando así una cadena.

Se caracterizan por:

  • Llevar registro de toda operación o transacción realizada.
  • Son distribuidos
  • Tolerancia a fallas
  • Seguridad
  • Transparencia

Libros distribuidos centralizados y descentralizados

Estos libros puedes usarse de forma centralizada, donde el acceso a los registros son sólo permitidos por el ente a cargo, un ejemplo es el libro de control usado en un banco, o Hyperledger.

Los descentralizados donde su acceso es abierto a todos los usuarios como por ejemplo, Steem, Bitcoin, Ethereum, nadie tiene control sobre el, sino que opera y se mantiene por protocolos de consenso.

imagen.png

¿Qué es el doble gasto en Blockchain y cómo maneja Bitcoin este problema?

Este ataque consiste básicamente en hacer uso de las mismas monedas en dos operaciones o más.

Debido a su carácter descentralizado, y las propias características de las monedas en forma digital, están en riesgo de ser duplicadas o usadas en más de una oportunidad.

Por ejemplo un usuario puede intentar realizar un pago usando las mismas monedas, enviando al mismo tiempo dos pagos, donde uno se validará y confirmará primero que otro, ocasionando este doble gasto, ya que uno quedará inválido.

Este ataque fue descubierto en los años 80 por Chaum, con e-cash la primera moneda digital creada. Utilizó en su mecanismo centralizado un protocolo criptográfico donde el emisor no se le permitía ver el origen del dinero.

Con la llegada del Bitcoin, la primera moneda digital exitosa, reemplaza el sistema centralizado, por uno descentralizado que opera con mecanismos de consenso, que son recompensados, y permite el funcionamiento de la misma de manera honesta. Este mecanismo válida y verifica las transacciones de toda la red, mientras mayor el número de nodos, más difícil de realizar un ataque de doble gasto, ya que necesita mayor velocidad de cómputo para operar con mayor velocidad que todos los nodos conectados en la red.

Sin embargo existe aún la posibilidad de ejecutar en Bitcoin este y otros ataques, debido al tiempo de espera para validación de un bloque es de 10 minutos, dejando un margen de tiempo para que usuarios maliciosos intente operar y gastar las monedas más de una vez, por lo menos en forma teórica.

Sin embargo Bitcoin opera con un esquema de confirmaciones, gracias al protocolo de consenso Proof of Work, que determina la irreversibilidad de una transacción, por lo que se recomienda esperar que tenga 6 confirmaciones de la red antes de aceptar y considerar como realizada, y que la misma no será revertida.

imagen.png

Captura de Pantalla Monedero Electrum

Bitcoin está compuesto por una serie de entradas y salidas, que junto a las monedas y firmas criptográficas, originan un hash, cuando estas son entradas en nuestras cartera se clasifican como UTXO, es decir transacciones no gastadas, que pueden ser enviadas a otro monedero, que posteriormente será clasificada como UTXO y posible de usar en una transacción.

Por lo tanto para hacer una transacción, se necesita hacer uso de estas entradas recibidas (UTXO) y que no han sido gastadas, es decir que sólo un usuario puede usar un UTXO una sola vez. Evitando así el problema de doble gasto.

De esta manera la red contabiliza la cantidad de monedas sin gastar que posee la red, sumando todas las monedas existentes en las UTXO. Estas la pueden conformar varias direcciones (varias entradas) que al ser usadas y generar un cambio, este se regresa al monedero en una dirección de cambio, que se registra como transacción no gastada.

Su uso es importante ya que para poder utilizar fondos en Bitcoin estos deben estar clasificados como UTXO en el monedero.

imagen.png

¿Cómo funcionan los hash de los bloques en Blockchain, qué sucederá cuando se cambie cualquier mitad del bloque?

imagen.png
Captura de Pantalla Convertstring

En primer lugar vamos a definir lo que es un Hash:

Un hash es una función algorítmica que convierte un texto plano en una serie de caracteres alfanuméricos de longitud fija. Es decir que sin importar la cantidad de información de entrada, la salida tendrá la misma longitud.

El hash criptográfico utiliza funciones unidireccionales, es decir, que de una entrada se genera una salida, pero no es posible encontrar una entrada a partir de la salida.

Esto requeriría de muchos cálculos computacionales, consistiría en adivinar entradas que generen la salida requerida.

Propiedades que hacen un Hash Criptográfico sea seguro:

  • Resistencia a la colisión
  • Resistencia a preimagen
  • Resistencia a segunda preimagen

Las probabilidades de: encontrar dos salidas iguales, encontrar una entrada a partir de una salida, encontrar una colisión deben ser muy pequeñas o nulas.

Exploremos su uso en la Blockchain

imagen.png

Captura de Pantalla Blockchain Demo

Ingresando en la página Blockchain Demo de Anders Brown, podremos visualizar cómo funcionan estos hashes dentro de la blockchain. A continuación notarán una serie de bloques que deberemos validar, para que un bloque sea válido se cumple que el hash debe iniciar con ceros.
Está estrechamente relacionado el hash y el Nonce. Veamos

imagen.png

Captura de Pantalla Blockchain Demo

Intentaré validar el bloque con la información Descubriendo la Blockchain, como pueden ver el bloque no es válido, debo intentar encontrar un número único que me proporcione un hash valido para el bloque.

Esto lo podría hacer intentando cambiar y cambiar el NONCE hasta encontrarlo, probemos:

imagen.png

Captura de Pantalla Blockchain Demo

Intento fallido aún no encuentro un NONCE valido para el bloque.

Manualmente me tomaría mucho tiempo encontrarlo, pero si uso las funciones de cálculo del computador este proceso tomará menos tiempo.

Los mineros utilizan el poder de cálculo de sus ordenadores para validar y verificar.

imagen.png

Captura de Pantalla Blockchain Demo

Hice clic en Minar y mi ordenador se ha encargado de encontrar el NONCE que hará un hash valido para mi bloque.

También quiero que noten que el primer bloque no hace referencia a ningún otro hash, ya que es el primer bloque de la cadena.

Y el segundo bloque contiene el hash anterior, es decir el hash del primer bloque “00002766bbc00d1f54c56d2abd1d828755215992a0fed3ad14cac91114dafef1”.

El siguiente bloque vamos a encontrar un has válido de la misma manera y:

imagen.png

Captura de Pantalla Blockchain Demo

Tenemos otro hash valido para el bloque, que luego podrá ser añadido a la cadena. Cada bloque contiene como se mencionó, los datos, el hash anterior y el hash del bloque.

Hash: 0000d5aec04486fb45e76931be3a23d2a7583988e86cc1fc5881b82e6440eb8e

imagen.png

¿Qué es el ataque Finney en blockchain?

Es un tipo de ataque contra la irreversibilidad de las transacciones, el informático Hal Finney, descubrió este tipo de ataque de doble gasto, este debe ser llevado a cabo por un minero, cuando se genere un nuevo bloque, ya que debe agregar al bloque transacciones repetidas de forma continua.

Y ocurre cuando una persona acepta una transacción aún sin confirmar en la red.

Este ataque es difícil de realizar pero probable y sin necesidad de tener control del 51% de la red, en teoría se necesita un minero capaz de extraer un bloque y un comerciante que acepte la transacción sin confirmaciones de la red.

Esquema del ataque:

  • El minero realiza una transacción a una dirección propia, seguidamente comienza a minar el bloque válido que incluya la transacción
  • Extrae el bloque con la transacción y no la transmite a la red, sino que realiza otra transacción por la misma cantidad que la anterior
  • Luego que el usuario acepte la transacción sin confirmar, el minero transmite a la red el bloque minado, por lo que al aceptar el bloque, validara la primera transacción y este invalidará la segunda transacción realizada por el minero y ya aceptada por el usuario.

Por lo que se recomienda no aceptar transacciones sin confirmar, para que sea irreversible debe tener 6 confirmaciones

imagen.png

Limitaciones/desventajas de Blockchain.

Esta tecnología por ser relativamente nueva trae consigo una gran cantidad de información que se debe conocer o manejar para poder operar con ella y comprender su funcionamiento, sobre todo porque está en constante actualización.

También podemos decir que para considerarse una red resistente esta debe ser robusta, es decir, contar con una gran cantidad de usuarios y ordenadores distribuidos, que la hagan robusta. De esta manera se protege contra ataques.

Sensibilidad al Ataque del 51%, cuando se toma control del 51% del minado de la red, donde se creara de manera más rápida bloques que invalidarían los anteriores, ocasionando grandes pérdidas.

Desacuerdos entre los usuarios de la red, y se expresan en las conocidas bifurcaciones, que pueden llegar a un consenso, u ocurre un hard fork (origen a una nueva cadena de bloques).

Los costos de operaciones especialmente con el protocolo Proof of Work pueden resultar un poco más costosos, y no sólo esto, consumen gran cantidad de energía con un impacto ambiental significativo al medio ambiente, lo que es una gran desventaja.

La anonimidad que nos ofrece la blockchain puede ser beneficiosa pero a la vez una desventaja, ya que la hace susceptible al uso para operaciones de carácter ilegal.

Corre el riego de centralizarse, si una organización toma el control de la mayoría de los nodos de la red.

imagen.png

Conclusión

La blockchain en un sistema de registro distribuido a todos los nodos, cada uno contiene el ledger completo de la red, todas las transacciones son registradas y no se pueden modificar o falsificar, lo que la hace segura y transparente.

Cada bloque contiene un hash que lo relaciona con el anterior, y que lo hace valido para ser incluida en la cadena de bloques. Cada hash se relaciona con un NONCE, dando como resultado un hash valido, este inicia con ceros.

Existen ataques que pueden realizarse en la cadena de bloques, ataques donde un usuario malicioso, intente usar las mismas monedas más de una vez, conocidos como de doble gasto, ataque Finney, vector76 y del 51%, entre otros.

Se han implementado protocolos para preservar la integridad de la red, como lo son los protocolos de consenso donde se recompensan a los mineros por la validación de los bloques, lo que los incentivan a un trabajo honesto.

Sort:  


Logo-Preliminar-topfivefamilyCarlos.png
Con el apoyo de la familia.

Trail de TopFiveFamily

Hi @isgledysduarte

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

Review Visit Level
Task Remark
Comment
Guidance, Feedback, Suggestions
Verification (Done, Hold)
Total Grade
First
Completed
The Presentation of the Task is Good. Mentioned information has good Content. All topics were explained well but more details require in Blockchain Practical + Theory.
All information was explained well. In Blockchain Practical + Theory you explain Blockchain well and screenshots are provided also good. However, the information is not cleared for what if any middle of the block gets changed? Practically you did well but what did we understand from this Practical, that theory information need to be more clear with the correct explanation. The rest of the task is good.
Done
7/10

Total | 7/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

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 62300.84
ETH 2421.47
USDT 1.00
SBD 2.56