¿Qué es el blockchain?

En los últimos tiempos, la tecnología blockchain se ha hecho cada vez más popular en Internet. Desgraciadamente, no mucha gente entiende qué es.

Blockchain es obra de un genio, conocido bajo el seudónimo de Satoshi Nakamoto. En la publicación de 2008, definió su invento como un “sistema de dinero electrónico entre pares”. Quería que el bitcoin funcionara como el dinero en efectivo, por lo que el sistema debía ser capaz de transferir correctamente las monedas digitales (no enviarlas al monedero equivocado) y evitar el doble gasto. Para encarnar el sueño de Nakamoto del sistema de pago centralizado, estos objetivos debían alcanzarse sin la intervención de terceros como los bancos.

Pero, ¿para qué se utiliza? Originalmente, una cadena de bloques es una base de datos distribuida que se utiliza para mantener una lista de registros en continuo crecimiento, llamados bloques. Cada bloque contiene una marca de tiempo y un enlace a un bloque anterior. Una cadena de bloques suele ser gestionada por una red de pares que se adhiere colectivamente a un protocolo para validar los nuevos bloques. Por su diseño, las cadenas de bloques son inherentemente resistentes a la modificación de los datos. Una vez registrados, los datos de un bloque determinado no pueden ser alterados de forma retroactiva sin la alteración de todos los bloques posteriores y la colusión general de la red. Funcionalmente, una cadena de bloques puede servir como “un libro de contabilidad abierto y distribuido que puede registrar transacciones entre dos partes de forma eficiente, verificable y permanente”. El propio libro de contabilidad también puede programarse para activar las transacciones automáticamente” – Dice Wikipedia.

Además, puede llamarse lista enlazada o rompecabezas. Cada puzzle está unido a otro mediante la validación del hash del bloque anterior.

blockchain

Cadena de bloques simplificada de Bitcoin

Una cadena de bloques puede almacenar datos sobre transacciones bancarias y legales, sobre contratos, votaciones, etc. Su principal diferencia con las bases de datos habituales es la descentralización. La cadena (registro) se almacena en cientos de miles de ordenadores a los que cualquier usuario tiene acceso. Este sistema es más difícil de descifrar, de estropear o de perder los datos en él si se produce algún fallo de hardware o de software con el servidor en el que se almacena la base de datos. Esta tecnología es fundamental para la red de pagos Bitcoin. Garantiza la seguridad de la información sobre las transacciones financieras entre los participantes de la red.

¿Qué tiene de bueno el blockchain?

Un blockchain puede percibirse como una especie de superordenador que combina una serie de nodos en los que se almacenan sus datos de forma segura. Lo más valioso es que es imposible perder esos datos porque se conservan para siempre. Los datos en una cadena de bloques no sólo están en su estado final, sino en todos los anteriores.

Es casi imposible para los hackers descifrar este depósito porque cada bloque posterior está vinculado al anterior. La cadena funciona en numerosos ordenadores. De este modo, hackear una blockchain es casi un intento de engañar a la red informática mundial, lo que es poco probable dado el estado actual de desarrollo de la tecnología.

Para la mayoría de los usuarios de la red, el término “blockchain” se asocia exclusivamente con Bitcoin. Estos dos conceptos no son ni mucho menos lo mismo, aunque están estrechamente relacionados: se desarrolló una tecnología de cadena de bloques para apoyar a Bitcoin. Nadie puede controlar su volumen de negocio, y abrir un monedero bitcoin es mucho más fácil que para cualquier cuenta bancaria. Hoy en día, utilizando este misterioso dinero se puede comprar todo lo que se quiera en Internet. Los usuarios de la red aprecian mucho el anonimato y la transparencia de esta criptodivisa. Además del Bitcoin, existen otros ejemplos de criptodivisas basadas en bloques, por ejemplo, Ethereum, que es apreciada por los propietarios de pequeñas cadenas de bloques privadas.

Las ventajas de la tecnología blockchain hacen que sea demandada en ámbitos de la vida como las operaciones bancarias, la medicina, la logística, el derecho o la música. Veamos a los músicos como ejemplo. Por desgracia, con el esquema tradicional de la edición musical, el grueso de los ingresos va a parar a las discográficas, y los compositores sólo reciben algunas migajas. El uso de blockchains en el negocio de la música podría permitir al autor de la canción publicarla para que se escuche libremente, al tiempo que se establecen contratos de personas que la utilizan con fines privados, por ejemplo, en una serie de televisión.

La tecnología blockchain permite deshacerse de los intermediarios en muchos ámbitos y realizar diversas operaciones P2P directamente entre las dos partes. Por ejemplo, esto es beneficioso para aquellos que quieren contratar a un especialista como, por ejemplo, una niñera, un conductor o un abogado, sin la ayuda de las agencias de contratación. En este caso, ¡no tendrá que pagar de más!

Pero es poco probable que el rápido desarrollo de esta tecnología pueda atraer a las grandes empresas que han hecho su fortuna con la mediación. ¿Quiénes son estos intermediarios? Hay miles de ellos, algunos de los más famosos son Uber y Airbnb.

Los tipos de blockchain

Hay dos tipos principales de organización de la cadena de bloques: la privada y la pública.

En una blockchain privada, la creación de bloques se produce de forma centralizada. Sólo los nodos de confianza pueden añadir bloques. Cualquier persona externa que desee comprobarlo, puede auditar y ver el historial de cambios de la cadena. Las blockchains privadas pueden actualizar fácilmente la funcionalidad, es decir, controlar el sistema desde el lado de la empresa.

En una blockchain pública, todos los usuarios, que tienen la capacidad de realizar transacciones, pueden leer todo sobre ella. En este caso, las transacciones estarán protegidas por un mecanismo de verificación. Todos los miembros de la red, como los usuarios normales, los desarrolladores, etc., pueden controlar las blockchains públicas. Se evitan los cambios perjudiciales mediante la actualización de los protocolos. En consecuencia, el sistema crea aplicaciones descentralizadas.

Experiencia de trabajo con una blockchain

Para nuestro equipo ha sido interesante probar esta innovadora tecnología en los negocios. El principal reto era implementar la tecnología de la forma más sencilla y rápida posible.

Tarea: Crear una encuesta en los dispositivos móviles utilizando la tecnología blockchain.

Para esta tarea, hemos decidido utilizar una blockchain privada. El centro de control se implementó como backend en Node.js.
El primer paso lógico es establecer una estructura de bloques.

Lo que necesitamos: el hash actual, un hash del bloque anterior, el índice del bloque (número), los datos que contienen las opciones de pregunta y respuesta, la respuesta del usuario, el tiempo, los datos del usuario.

blockchain

Estructura de bloques

El hash está destinado a preservar la integridad de la cadena, por lo que cada bloque debe tener un hash.

Para la codificación, se utiliza SHA256. Un servidor almacena la cadena, que en cualquier momento debe ser validada en cuanto a su integridad. Esto es necesario cuando se añade un bloque. Comprobamos la integridad del hash anterior, como se muestra en el esquema. Hay que seleccionar siempre la cadena más larga para evitar cualquier conflicto. Si un bloque pasa la validación, se añade a la cadena. En caso contrario, se produce un error.

Lo segundo importante es organizar la sincronización y la difusión entre todos los participantes en la votación.

  • Cuando un usuario se conecta a la red mediante un socket web, se basa en el último bloque
  • Cuando se crea un nuevo bloque, se difunde a la red
  • Cuando un nodo ve un bloque, añade un bloque a su cadena. O apoya la cadena para llenar el bloque, siempre que su índice sea mayor que el del bloque actual

blockchain

Algunos escenarios típicos de comunicación que se dan cuando los nodos obedecen el protocolo descrito

El servidor puede ver la cadena, crear un nuevo bloque con una respuesta personalizada, ver el resto de los usuarios.

blockchain

Los principales componentes de NativeChain

De forma tan sencilla y rápida implementamos la votación dentro de la empresa, pero surgió la cuestión de que cada usuario podía votar el número ilimitado de veces. La solución a este problema fue asignar un ID único a cada usuario. La ayuda vino de Google Firebase, que permite facilitar la autorización de su aplicación. Esta plataforma soporta la autorización de las redes sociales. En el resultado, la cadena almacena los ID de los usuarios que han votado, lo que elimina la repetición de votos.

Hemos creado un prototipo con fines informativos. Una de las supuestas ventajas de la cadena de bloques es la descentralización, pero no parecía una solución definitiva, así que decidimos probarla. Es cierto que la ventaja de que cada participante conserve (o pueda almacenar) una cadena de cambios es innegable, pero aún así puede ser superada, y hablaremos de ello más adelante.

Descentralización

Para que el nuevo bloque se añada a la cadena, tiene que ser validado mediante la comprobación del hash anterior. La validación se realiza según el protocolo. El protocolo es creado por el autor del contrato (el inicio de la cadena / primer bloque).

Imaginemos que hay 21 escolares en la clase (10 chicas y 11 chicos), y que el 1 de septiembre deciden elegir al presidente de la escuela utilizando una cadena de bloques. Un profesor de la clase crea un contrato, en nuestro caso, inicia una votación para los candidatos, y según el protocolo, el nuevo bloque se considera válido si el 51% de los votantes dan una respuesta positiva. Los alumnos comienzan a votar y, en algún momento, los chicos deciden falsificar los resultados de la votación a favor de su candidato. En el momento de esta decisión, han votado 8 chicos, 6 chicas y el profesor de la clase. Los chicos comprenden que o bien pierden en la votación o bien salen con un 50%, como máximo, por las buenas. Deciden alterar la cadena a partir del segundo bloque para que 15 bloques sean sustituidos por valores completamente diferentes (ventajosos para ellos). La 7ª chica, al dar su voz, pasará la validación de la cadena, y en respuesta 8 chicos no validarán su bloque. Y ella tendrá que usar una nueva cadena, y la característica de la cadena de bloques es que en una situación de conflicto, una cadena válida es la más larga. Así, los chicos ganarán con su candidato.

blockchain

Ejemplo de elección de una cadena que tenga el mayor número de bloques

Pero es el plus de la cadena de bloques, que para alterar la cadena, se necesitaría que la mayoría de los usuarios cambiaran (o la cuota que se especifica en el protocolo) de opinión.

Por ejemplo, Joe desea convertirse en el presidente de la escuela, y la votación se realiza de la forma habitual, toda la base de datos se almacena en un servidor separado. Joe pide a su hermano, el programador, que le ayude con eso. Así que su hermano hackea el servidor y cambia el resultado. Joe se convierte en el Presidente de la Escuela.

Si se utilizara una cadena de bloques, Joe tendría que pedir a los otros chicos que le ayudaran a conseguirlo. Y si se negaran, Joe nunca se convertiría en el Presidente de la Escuela.

Conclusión

Después de utilizar esta tecnología, hemos llegado a la conclusión de que la cadena de bloques tiene muchas trampas. Como para cualquier sistema, las reglas deben establecerse para todos los participantes. La introducción de la tecnología requiere una reestructuración a gran escala de un gran sistema con muchos participantes, y cada uno de ellos debe estar dispuesto a asumir riesgos y soportar gastos.

La falta de un marco legislativo provoca incertidumbre en diversas cuestiones. Para que la tecnología se gane la confianza, tiene que cumplir las normas (públicas, por ejemplo). Sin normas, no hay correspondencia. A pesar de la descentralización y de la ausencia de “terceros” atribuida a la cadena de bloques, el funcionamiento del sistema requiere el consenso de sus participantes en muchas cuestiones. Desde el principio, cada proyecto de blockchain debería desarrollar un sistema de toma de decisiones que requiera el consentimiento de la mayoría.

Acerca de Redwerk

Redwerk es un equipo de expertos certificados que pone a disposición de las empresas un servicio de externalización de TI de alta calidad que busca un producto robusto, estable e impresionante. Redwerk es una empresa de desarrollo de software a medida, que contrata a maestros de su oficio con un enfoque proactivo para ofrecer exactamente lo que el cliente requiere. Apreciamos a los que confían en nosotros, ¡así que sea usted quien lo haga!

Referencias