Seguridad

Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 6)

En la última entrada de este artículo terminamos viendo cómo quedaba el pareado y generación de un Latch Web3 haciendo el proceso desde el Backend de la DApp utilizando la función pair del SDK de Latch con los parámetros de una Latch Web3 Application, y haciendo el uso de la Latch App móvil para generar el Token de Pareado y la Latch Web3 Wallet del usuario para firmar la transacción. Ahora vamos a ver el proceso completo funcionando en un par de vídeos, que seguro que será más sencillo.
Figura 42: Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 6)

Como habíamos explicado en la parte anterior, en el Backend de la DApp, que en nuestro ejemplo es el Market de NFTs de Telefónica que utiliza un SmartContract en Polygon para realizar la transacción de los NFTs, hemos habilitado una zona de configuración de Latch Web3, y como podéis ver en este vídeo, el proceso es tan sencillo como hacer estos pasos:
1.- El usuario se loga en el Backend de la Dapp con su Web3 Wallet.
2.- Ir a la zona de Vincular Latch en el Backend de la DApp.
3.- Solicitar el Token de Pareado en la Latch App móvil.
4.- Introducir el Token de Pareado en el Backend de la DApp
5.- Vincular
6.- Firmar la transacción con la Latch User Web3 Wallet. 
Figura 43: Proceso de Pareado y generación de Latch Web3 completo

Y listo. Cada usuario deberá realizar lo mismo para configurar su Latch Web3 y proteger las acciones de su Wallet en ese SmartContract de esa DApp con un Latch. Ahora veremos cómo lo hace.
Paso 4: Abrir y Cerrar el Latch Web3
Una vez que ya está creado el Latch Web3 para el SmartContract de la Dapp – en este caso del Market de NFTs de Telefónica -, el usuario ya podrá cambiar el estado de ese Latch Web3 en todo momento desde su aplicación móvil de Latch. Para ello solo necesitará abrir o cerrar el “pestillo” de Latch.

Figura 44: Latch Web3 en App Móvil de Latch

Cuanto esto se realiza en la app móvil de Latch, esta se conecta al Backend de Latch para cambiar el valor del AccountID (estado del Latch), pero como es una Latch Application Web3, entonces el Backend de Latch generar una llamada al SmartContract de Latch con la función setStatus(), donde le da el nuevo valor del Latch, así como la Public Address de la Wallet del usuario que ha hecho este cambio.

Figura 45: Flujo conceptual de cambio y consulta de estado del Latch Web3

Con estos valores, el SmartContract de Latch generar una nueva entrada en la Blockchain (en este caso de Polygon), con el hash de ese Latch y su valor, lo que le permite al SmartContract de Latch consultar su estado en cualquier momento.
Supongamos ahora que el usuario cierra el Latch Web3 desde su App móvil, y alguien intenta comprar en el Market de NFTs de Telefónica con su cuenta, lo que sucederá es que el SmartContract de la DApp hará una llamada al SmartContract de Latch para conocer el valor del Latch Web3 de esa Public Address Wallet del usuario -.

Figura 47: Latch Cerrado, no se puede ejecutar la transacción

Como en este caso concreto estará cerrado, dará un error y no permitirá que se realice la transacción de compra/venta del NFT, tal y como se puede ver en la imagen anterior, donde el error lo vemos en la User Wallet Web3.

Figura 48: Latch abierto, se puede firmar la transacción en Metamask

Si por el contrario, el Latch Web3 de ese usuario se encontrará abierto, el proceso sería totalmente normal y transparente, pero por detrás se ha comprobado este Second Factor Authoritation (2FA) para ver si era posible realizar la transacción o no, aún teniendo control de la Wallet Web3 del usuario.

Figura 49: Funcionamiento de Latch Web3 para proteger transacciones

En el vídeo podéis ver el proceso completo con las dos posibilidades, es decir, Latch Web3 cerrado, y Latch Web3 abierto, para entender el sencillo funcionamiento de este proceso una vez configurado todo correctamente.
Y aún hay más….
Puede parecer que hemos terminado, pero aún queda más que hablar de esta tecnología, porque por supuesto hay otra opción de configurar Latches en SmartContracts, que es mediante el uso de Oraculos. Esta implementación aún no la hemos hecho pública, pero en la siguiente parte os dejaré la información de cómo hemos solicitado la patente e implementado Latch basada en Oraculos Web3. Pero será en otra entrada.

El mundo Web3 tiene conceptos nuevos, pero al mismo tiempo es apasionante por las arquitecturas que se pueden construir, así que te animo a que innoves en él. Y recuerda que si quieres aprender de estas tecnologías, tienes Bit2Me Academy, que es una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos además del libro dedicado a “Bitcoin: La tecnología Blockchain y su investigación” de Yaiza Rubio y Félix Brezo que seguro que te ayudan a ponerte las pilas.


Más artículos de Web3, Blockchain & SmartContracts

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.