Blockchain: ¿qué es y cómo funciona?

06 de February de 2018

En Enxendra Technologies llevamos varios años siguiendo de cerca la evolución de las tecnologías basadas en la cadena de bloques o blockchain. Para 2018 estamos desarrollando una línea de Investigación y Desarrollo orientada a este tipo de tecnologías y su aplicación dentro de nuestros productos.

bitcoinenxendra.jpeg

Nuestra idea inicial es llevar a cabo la implementación de soluciones de negocio distribuidas y hacerlo en ámbitos que conocemos bien, como la firma o el voto electrónico. El objetivo es poder ofrecer a nuestros clientes las ventajas de la cadena de bloques de forma sencilla.

Dentro del marco de la firma y el voto electrónico, el uso de tecnologías basadas en el blockchain nos permitirá combinar sus mecanismos de transparencia con una característica fundamental: la descentralización.

El elemento clave que se esconde detrás del éxito de la cadena de bloques no es otro que su capacidad para garantizar la persistencia de transacciones en un sistema distribuido y auditable. Su uso permite contar con el correcto funcionamiento de un protocolo mediante el que distintos participantes pueden leer y escribir en un ledger (que significa libro de registros) común y distribuido. Este mecanismo, completamente descentralizado, permite que los nodos puedan confiar los unos en los otros sin intermediarios, participando conjuntamente en el registro y la validación de las operaciones que tienen lugar en la red.

¿Qué es?

Cuando hablamos de tecnologías blockchain, nos referimos a un conjunto de soluciones software (y a las redes asociadas a las mismas) desarrolladas a partir de la idea original publicada por Satoshi Nakamoto en el artículo “Bitcoin: A Peer-to-Peer Electronic Cash System” (2008).

bitcoin-enxendra.jpegEl término se ha convertido en una especie de panacea, dado que representa uno de los avances tecnológicos más revolucionarios desde los años sesenta, cuando Paul Baran propuso la arquitectura distribuida para la implementación de algo parecido a lo que hoy denominamos Internet. Al igual que la propuesta de Baran, el blockchain también nos ofrece una red distribuida, una red en la que los nodos que la componen pueden intercambiar información sin control central.

La aparición del Bitcoin y su tecnología de la cadena de bloques como alternativa peer-to-peer a la centralización de las transferencias de valor fue sin duda subestimada por muchos, lo que hace que una década más tarde todavía sigamos viendo esta tecnología como una idea con un enorme potencial para la innovación.

El gran aporte de Bitcoin fue la combinación de la criptografía de clave pública, los hashes criptográficos y los árboles de Merkle con un mecanismo de consenso denominado Proof-of-Work (prueba de trabajo).

¿Cómo funciona?

En lo que respecta al uso de criptografía de clave pública, nos referimos al uso de una pareja de claves (pública y privada) para cifrar nuestras operaciones. Una clave puede ser una secuencia numérica de 256 bits generada de forma aleatoria que identifica a un usuario que opera en la red.

El wallet o monedero de una criptodivisa, por ejemplo, no es otra cosa que una pareja de claves. La clave pública es la dirección donde se pueden recibir transferencias de valor. La clave privada, sin embargo, se utiliza para firmar operaciones de salida, de un modo similar a cuando firmamos un documento con un certificado o un correo electrónico con PGP.

En el caso de las criptodivisas, la clave privada se utiliza para gastar los tokens acumulados en nuestro wallet, pero su uso puede extenderse a todo tipo de operación que requiriera garantizar la identidad de un firmante. De mismo modo, aunque la clave pública se utiliza en el contexto de las criptodivisas para identificar al receptor del valor transferido, en realidad esto puede generalizarse para la recepción de otro tipo de mensajes, transacciones o envíos.

Con la criptografía de clave pública tenemos garantizada la integridad y autenticidad de los mensajes que un nodo envía a otro. Por ejemplo, podemos verificar la identidad de quien realizó el envío de 1 bitcoin y modificar la base de datos distribuida (el ledger) actualizando los balances de los dos usuarios, emisor y receptor.

Sin embargo, si sólo utilizamos criptografía de clave pública, no hay nada que nos impida enviar ese mismo mensaje múltiples veces y a múltiples usuarios. Ahí es donde entra en juego el uso de un hash criptográfico, una secuencia alfanumérica que se genera con los datos de la transacción.

¿Por qué es tan seguro el funcionamiento?

Sin entrar en muchos más detalles, diremos que la combinación de conceptos como los hashes criptográficos y los arboles de Merkle permitió a las mentes que idearon Bitcoin dar con una solución elegante. Esta solución permite agrupar la información cifrada de las transacciones en unidades denominadas bloques (blocks) que se van encadenando (chain) a medida que los nodos van verificando las transacciones.

Mediante mecanismos que podríamos denominar de notarización digital (en lo sucesivo utilizaremos el término notarizar y sus derivados como préstamo del inglés) el sistema evita la aparición de problemas como el doble gasto. En otras palabras, el sistema impide que la misma transacción sea enviada dos veces. Esto permite tener una base de datos distribuida y consistente, actualizada sólo si hay consenso.

security-enxendra.jpeg

Existen distintos mecanismos de consenso para llevar a cabo esta notarización digital. Uno de ellos es el Proof-of-Work (prueba de trabajo), que consiste en una serie de operaciones criptográficas sobre un bloque. Estas operaciones tienen un alto coste computacional, lo que garantiza que el nodo ha invertido fuerza de cómputo y tiempo (en otras palabras, energía y dinero) en validar el bloque.

Los bloques que han sido validados por varios nodos de la red (consenso) acaban integrándose en la cadena de bloques. Si consideramos además que las transacciones del bloque tienen sentido a nivel contable sólo de acuerdo a transacciones anteriores y que cada bloque tiene una referencia al bloque anterior, la cadena de bloques se convierte en un libro de cuentas distribuido, en un distributed ledger. Para generalizar la importancia del invento, podemos decir que este ledger es una base de datos completamente descentralizada que ningún nodo de la red podría manipular sin el consenso de la mayoría de los nodos.

Para que los nodos quieran participar en este proceso, a las reglas de la computación hay que sumarle las reglas del mercado. Necesitas un incentivo para que los distintos nodos participen, y es ahí donde surge el concepto de minero. El algoritmo se encarga de que los nodos o mineros “acuñen” o “encuentren” nuevas monedas o tokens durante su proceso de cooperación. Esto funciona como un incentivo para que la red sea sostenible por sí misma.

Nuestras conclusiones

Existen ventajas e inconvenientes asociados a este tipo de funcionamiento, lo que ha llevado al desarrollo de múltiples tecnologías, cada una con su particularidad. En cualquier caso, todas ellas beben de una u otra forma de esta primera aproximación y se caracterizan por garantizar la desintermediación de operaciones que tradicionalmente han dependido de nodos centrales.

El blockchain se ha convertido en un sinónimo de facto de descentralización, despertando el interés de la industria y las comunidades de software libre por las tecnologías distribuidas. El potencial y los beneficios de la desintermediación son evidentes para el usuario medio, pero también para los inversores. En los últimos años se ha disparado el desarrollo de proyectos asociados a sistemas peer-to-peer, con una creciente inversión por parte de empresas de diversos sectores tanto en el uso de las redes  ya existentes como del desarrollo de redes propias.

Enxendra quiere ser parte de este proceso de adopción de estándares distribuidos y ofrecer a nuestros clientes las ventajas del sistema de cadena de bloques sin que esto suponga una ruptura con nuestras líneas de negocio. En otras palabras, queremos incorporarlo a nuestros productos, utilizando el potencial de redes existentes para la notarización de operaciones de firma, pero también incorporar el desarrollo de smart contracts sobre Ethereum.