Blockchain y SPEI, explicados

Antes de iniciar este post me gustaría explicar la razón que me tomó tanto escribirlo. En caso de que únicamente esté aquí para aprender sobre Blockchain y lo que a mí consideración sucedió con el sistema SPEI y los bancos de México lo invito a saltarse hasta el número 1.


0

¿Por qué me fue tan difícil hacer este post antes?

Durante mi último año en la Universidad de las Américas Puebla tuve la oportunidad de hacer mi tesis titulada “Notaria Digital”, en esta proponía un sistema no centralizado de firmado de documentos utilizando la firma electrónica proveída por la Secretaría de Administración Tributaria en México. Este sistema permitía el firmado y validación de actos entre terceros sin necesidad de un sistema central y en caso de requerir la validación del documento por un notario público únicamente se almacenaba la información pública del notario en un sistema central contra el que se comparaba.

Todo esto me permitió comprender y entender rápidamente el Blockchain cuando este comenzó a tomar fuerza. Lamentablemente sin un ejemplo claro para mostrar los beneficios y el verdadero poder de esta tecnología únicamente podría darles una visión muy corta de la misma. Es por ello que me tomó tanto tiempo decidir comenzar este post.

Lo sucedido con el sistema SPEI y los diferentes ataques al sistema bancario nacional me dan el ejemplo perfecto para poder mostrar el poder de esta tecnología, sus usos y su funcionamiento.

1

¿Qué es Blockchain?

Esta es una pregunta demasiado amplia pero para los desesperados haré una pequeña metáfora:

Digamos que quieres probar que descubriste un nuevo color. Se te ocurren miles de opciones como firmas, fotografías, entre muchas otras. Después piensas que si lo metes en agua debido a que el color es único te dará un tono específico el cuál puedes medir para comprobar que únicamente el color que tú emites es el original. Después tienes mucha suerte y descubres otro y te gustaría comprobar que esa nuevo color es tuyo pero además quieres en lugar de tener un nuevo color, comprobar que el anterior y este son tuyos, piensas de nuevo y ves que si combinas ambas colores en la misma agua y en el mismo orden obtienes un color que te permite demostrar que ambos son tuyos debido a que no hay forma de que alguien más obtenga ese color. Sigues descubriendo muchos colores y los sigues combinando.

Esto es un blockchain una serie de bloques o eslabones que se van combinando para hacer una cadena y del cuál podemos seguir la cadena debido a que no es posible romperla sin obtener el nuevo resultado.

Quiero que quede claro que blockchain no es aún una criptomoneda como Bitcoin pero es parte de varias tecnologías que nos permiten llegar a estas. Si quieres conocer un poco más de las otras tecnologías hablaremos de estas al final del post.

Es entonces este color una “digestión”, es decir, un algoritmo por el que podemos pasar cualquier dato y obtener una serie de dígitos y letras únicos para es información. Si por este algoritmo “digerimos” la siguiente palabra: “$20” jamás será igual a pasar “$21” o pasar “$20.000001” siempre, repito, siempre serán distintos. Y si por ejemplo combinamos ese dato con otros datos por ejemplo:

De: Beto
Para: Arturo
$20

Entonces tenemos un bloque que muestra una transacción. Y como ya lo mencionamos antes si dentro de este bloque antes de volverlo un nuevo color ponemos por ejemplo el color anterior:

De: Beto
Para: Arturo
$20
Color anterior: Blanco
Nuevo color: Azul

y luego en el nuevo bloque o eslabón de la cadena el color anterior

De: Arturo
Para: Alicia
$19
Color anterior: Azul
Nuevo color: Morado

y en el siguiente:

De: Alicia
Para: Amy
$19
Color anterior: Morado

Entonces podemos seguir y comprobar todas las transacciones anteriores ocurridas en nuestra cadena.

Es así que si hacemos nuestros bloques más complejos podemos llegar a registrar transacciones complejas y hasta “contratos inteligentes”.

2

¿Qué pasó con SPEI?

Basado en la información disponible hasta el momento parece ser un ataque de denegación de servicio, es decir, se generaron de alguna forma una cantidad muy elevada de solicitudes al sistema. que provocó la caída o la perdida de calidad en el servicio (lentitud) del sistema. Este ataque de denegación de servicio provocó que el sistema, al parecer, aceptara solicitudes falsas, transfiriendo a cuentas de nueva creación dinero inexistente o perteneciente las instituciones financieras.

Es entonces que Banco de México optó por migrar el sistema a un sistema alterno que podía llegar a procesar transacciones de manera manual.

Aún no se reporta específicamente la vulnerabilidad utilizada ni las medidas tecnológicas que se tomarán para prevenir esta situación en el futuro.

3

¿Cómo ayuda blockchain?

Como lo mencionamos anteriormente la función de blockchain es ligar una transacción aceptada como valida con las anteriores. Esto permitirá en primera instancia validar cualquier transacción previa. Pero entonces no atendemos de raíz el problema que surgió la aceptación de transacciones ficticias.

4

Proof of work (Prueba de trabajo)

Tim Grantt de r3, empresa especializada en la implementación de ledgers distribuidos mencionaba que no era necesario en su red la utilización de una prueba de trabajo debido a que los contratos llevaban la relación de confianza entre las instituciones incluidas en la red que pueden agregar transacciones valida y aceptadas.

Lo sucedido con el sistema SPEI en los recientes días nos demuestra que esto no es absolutamente verdad y que una prueba de trabajo sería conveniente para disminuir la velocidad de aceptación de nuevas transacciones y obligar a únicamente permitir transacciones verdaderas. Esta prueba de trabajo permitirá prevenir ataques de denegación de servicio como ya ha demostrado previamente Bitcoin y daría certeza a la validación de la transacción pues demostraría que se ha realizado una inversión suficiente de trabajo para aceptar la transacción en la cadena.

¿Qué es prueba de trabajo?

Utilizando nuestra metáfora inicial la prueba de trabajo es una prueba seleccionada de manera arbitraria de que se ha invertido suficiente trabajo para realizar algo. Por ejemplo, si tomamos nuestra transacción inicial cuyo nuevo color era azul, y decidimos no aceptar esta transacción hasta que logren obtener el color verde agregando otros colores. Es con esta simple prueba la que demuestra que se ha invertido un trabajo suficiente como para que la persona que intenta agregar su transacción a la cadena se le sea permitido.

En las cadenas Bitcoin por ejemplo en el algoritmo de digestión se ocupa como prueba un número arbitrario de dígitos idénticos (en la mayoría ceros) al inicio de la digestión que demuestran un trabajo.

5

Es así que finalmente podemos observar los beneficios que la utilización de blockchain daría a las instituciones financieras mexicanas tras este ataque a SPEI y a la infraestructura bancaria: validación de transacciones a través de prueba de trabajo, transacciones que no se pueden modificar y distribución de la cadena de manera no centralizada debido a que cada actor cuenta con su propia copia de la cadena.

En este post no tocamos las limitaciones a las que la prueba de trabajo puede llevar ni hablamos sobre tamaño de bloque pero estos son temas qué van más allá de una introducción extremadamente básica a blockchain.