Saltar al contenido

¿Qué es la tecnología blockchain?

¿Qué es la tecnología blockchain?

Una guía paso a paso para principiantes

¿Qué es la tecnología blockchain?


Tradicionalmente, había intermediarios que controlaban los datos. Facebook, por ejemplo, es un intermediario entre los usuarios y los anunciantes. Los bancos son intermediarios entre los prestatarios y los prestamistas.

El problema es que los datos están controlados por una autoridad central: Facebook y los bancos. Así que ellos controlan los precios y técnicamente tienen los datos. En este caso, todo el poder está en manos del intermediario, y los consumidores deben confiar en que éste actúa de forma ética y en interés de los consumidores. Blockchain se inventó para descentralizar los datos y minimizar la confianza en la parte centralizada.

Para entenderlo mejor, hablemos de los torrentes. En los torrents, ningún archivo es propiedad de una sola persona. Es un tipo de arquitectura peer-to-peer donde existen múltiples copias de un archivo en múltiples estaciones de trabajo/usuarios. Por lo tanto, nadie comprueba este archivo. Este tipo de arquitectura es altamente escalable y tolerante a los fallos, ya que no hay un único punto de falla.

Blockchain adopta esencialmente la misma idea: ¿Y si las bases de datos pudieran descentralizarse? Esto resuelve muchos problemas:

Puede ponerse en contacto con el prestatario directamente, sin un intermediario como un banco. Obtendrías más beneficios.
Puedes contactar directamente con los anunciantes y decirles qué anuncios te gustan sin tener que pasar por Facebook.
Uno de los casos de uso más conocidos de la cadena de bloques es la criptomoneda, una moneda digital que no está controlada por una autoridad central. Del mismo modo, podemos utilizar blockchain para los contratos inteligentes digitales en los que no hay ninguna autoridad intermediaria para verificar el contrato.

Los fundamentos de la programación de la cadena de bloques

Para entender mejor la cadena de bloques, primero debemos explicar el concepto de firma digital o hash.

Una firma digital es esencialmente una función que toma una cadena como entrada y devuelve una cadena alfanumérica de tamaño fijo. La cadena de salida se denomina firma digital o hash del mensaje de entrada. Es importante señalar que la función que utilizamos para obtener la firma digital es «no reversible», lo que significa que puede calcular un valor hash cuando se le da la cadena de entrada. Sin embargo, en presencia de un hash, es prácticamente imposible calcular la cadena de entrada. Además, es prácticamente imposible encontrar dos valores con el mismo hash.

hash1 = hash (entrada 1)
hash2 = hash (entrada 2)


Básicamente, decimos esto:

  • Es fácil calcular el hash1 a partir de la entrada1 y el hash2 a partir de la entrada2.
  • Es prácticamente imposible calcular la entrada1 con el hash1. Lo mismo ocurre con la entrada2 y el hash2.
  • Es prácticamente imposible encontrar una entrada1 y una entrada2 distintas, por lo que hash1 = hash2.
  • Estas funciones hash han sido cuidadosamente desarrolladas por criptógrafos durante años de investigación. La mayoría de los lenguajes de programación tienen una función de biblioteca incorporada para calcular el valor hash de la cadena de entrada.

¿Por qué hablamos de una función hash?

La cadena de bloques como concepto se basa en gran medida en el hash. En blockchain, se trata de tener una cadena ordenada de bloques, donde cada bloque contiene la siguiente información:

  • El hash del bloque anterior.
  • Una lista de transacciones.
  • El hash de sí mismo.


Pongamos un ejemplo:

Considere el siguiente bloque simple: [0, «X pagó 100 dólares a la empresa Y», 91b452].

Como este es el primer bloque de la cadena de bloques, el hash del bloque anterior es 0. La lista de transacciones contiene sólo una transacción: X pagó a Y 100 dólares. El hash del propio bloque se calcula como sigue:

hash_itself = hash(lista de transacciones, hash del bloque anterior).

Básicamente, combinamos la lista de transacciones y el hash del bloque anterior en una sola cadena de entrada y la pasamos a la función hash para obtener el valor de hash_itself.

Los bloques en los que el valor hash del bloque anterior es 0 se denominan bloques génesis. El bloque génesis suele ser el primer bloque de la cadena de bloques.

Ahora supongamos que queremos añadir más bloques a la cadena de bloques. Supongamos que el bloque 1 = [91b452, «Y paga 20 dólares a Z, X paga 10 dólares a P», 8ab32k].

Aquí 91b452 no es más que el hash del bloque anterior (el bloque Génesis). Hay dos transacciones en marcha:

  • Y pagó 20 dólares a Z.
  • X paga 10 dólares a P


Finalmente, hay un valor hash_itself que es esencialmente un hash («Y pagó 20 dólares a Z, X pagó 10 dólares a P», 91b452). Resulta ser 8ab32k.

¿Qué tiene de especial esta «estructura de datos»?

Es que si alguien desordena la blockchain, por ejemplo cambiando una transacción en el bloque Génesis para cambiar «X pagó 100 dólares a Y» por «Y pagó 100 dólares a X», el valor hash de 91b452 cambia. Como resultado, el valor de este valor hash en el bloque 1 no coincide (recuerde: el primer valor de cada bloque es el valor hash del bloque padre). Por lo tanto, la cadena ya no es válida. Esto es cierto para cada bloque de la cadena de bloques, porque tan pronto como cambiamos un bloque, los hashes de todos los bloques posteriores se vuelven inválidos y la cadena se rompe. Por lo tanto, la cadena de bloques ofrece un alto nivel de seguridad de los datos.

Ejemplo de código de programa de blockchain:


Está claro que podemos programarla en casi cualquier lenguaje de programación. Por ejemplo, el concepto anterior puede implementarse en C++, Python, Java e incluso JavaScript. Veamos un ejemplo de código Python:

Ahora supongamos, si tuviéramos que canbiar el genesis_block

La salida será la siguiente:

Aquí, los valores de genesis_block_hash y block1_parent_hash son significativamente diferentes, mientras que en una cadena de bloques adecuada deberían ser iguales. Como resultado, la cadena de bloques se corrompe.

Resumen


Piensa en una cadena de bloques como una estructura de datos distribuida y segura que puede utilizarse en cualquier lugar donde no haya intermediarios. La naturaleza descentralizada de la cadena de bloques ayuda a eliminar los intermediarios y se basa en la inmutabilidad anterior de la cadena de bloques. Es una estructura de datos interesante, y como todos hemos visto, la criptomoneda es la verdadera implementación.

No te pierdas la proxima publicacion en nuestra web » Aplicaciones y Casos de Uso de Blockchains».

5/5 (1 Review)
error: Content is protected !!