La blockchain aún es joven, pero ya hay algunas aplicaciones operativas: trazabilidad de los alimentos, seguridad de las transacciones comerciales, desintermediación en la publicidad, indemnización por parte de una aseguradora, digitalización de títulos financieros, posesión de objetos en un videojuego… Pero ¿cuáles son los principios fundamentales de la blockchain? Un asunto de actualidad, el de las criptomonedas —ámbito fundacional del concepto—, brinda la ocasión de una interesante exploración matemática.
Bitcoin, cuya capitalización asciende a 120 000 millones de dólares, es la criptomoneda más conocida. Algunas empresas de comercio electrónico ya aceptan pagos en bitcoins. Facebook, a través de su proyecto de criptomoneda Libra (finalmente frenado por las autoridades públicas), pretende agilizar los intercambios comerciales B2B («business to business»: actividades de una empresa dirigidas a una clientela empresarial) o B2C («business to customer»: actividades de una empresa dirigidas directamente al consumidor) a escala mundial, aumentar el número de participantes en estos ámbitos y, con ello, generar nuevas necesidades publicitarias que incrementarán sus ingresos. Por ello, las criptomonedas suscitan la oposición de los reguladores, los bancos centrales o los Estados.
Algunos principios de criptografía -----------------------------------
La blockchain no existiría sin la criptografía, el arte de mantener confidenciales unos datos y, sobre todo, de autenticarlos. Dos primitivas, algoritmos de bajo nivel, son esenciales: el cálculo de hash (hashing) y la firma.
El hashing calcula, a partir de un dato de entrada, una huella digital que permite identificar rápidamente el dato inicial, del mismo modo que una firma permite identificar a una persona. El estándar ISO SHA (por Secure Hash Algorithm) transforma un bloque de unos pocos kilobytes en un hash de 256 bits de manera imprevisible y no reversible. Es imposible recuperar el mensaje inicial a partir del hash. Se trata de una imposibilidad práctica, pues bastaría realmente con probar todas las combinaciones para recuperarlo, pero ello exigiría un tiempo de cálculo descomunal. El hashing puede aplicarse a un gran volumen de datos descomponiéndolos en bloques y encadenando los cálculos (el cálculo del hash del bloque i + 1 incorpora el resultado del cálculo sobre el bloque i).