Aplicaciones construidas en Lisk : proyecto de transporte inteligente

marzo 04, 2021 VICTOR HUGO LAZARTE 0 Comments


Introducción

Un desafío importante en muchas soluciones de cadena de bloques es conectar de forma segura actores u objetos físicos a su representación digital en la cadena de bloques. Algunos ejemplos obvios son la cadena de suministro y las soluciones contra la falsificación, donde la información digital relacionada con la producción, el origen, la cadena de custodia o las condiciones de envío se asegura de forma inmutable en la cadena de bloques.

En la mayoría de las soluciones, los pares de claves públicas / privadas que representan a actores, máquinas o bienes digitales y físicos se administran de forma remota en servidores remotos o en la nube. A medida que la propiedad, la identificación y la confianza en las soluciones de blockchain se transmiten a través del control de claves privadas, los sistemas de administración de claves remotas plantean un asunto costoso y laborioso en el mejor de los casos y un grave riesgo de seguridad en el peor. Por lo tanto, acercar el proceso de administración de claves a los objetos de interés no solo ahorra recursos valiosos; agrega una capa significativa de confianza a la solución.

En este artículo, describimos cómo los chips NFC de tarjetas inteligentes con capacidades de cadena de bloques se pueden utilizar para una gestión de claves más segura en soluciones de cadena de bloques, y específicamente en soluciones creadas con Lisk SDK y JavaScript. En primer lugar, describimos brevemente la tecnología que Gimly utiliza para este propósito. En segundo lugar, describimos la prueba de concepto de Smart Transport que fue construida por Marc Buma y Caspar Roelofs y que fue financiada a través del programa Lisk Builders. Finalmente, profundizamos cómo interactúan los microchips con la cadena de bloques Lisk en nuestra base de código JavaScript.


Tangem de Gimly: hecho para chips NFC blockchain

Gimly trabaja con Tangem como proveedor y socio de implementación, para proporcionar un nuevo enfoque hacia una gestión más segura de pares de claves públicas / privadas en soluciones blockchain. Los chips de tarjetas inteligentes NFC hechos para blockchain de Tangem cuentan con la certificación EAL6 + y contienen un elemento seguro en el que los pares de claves se generan recientemente y del cual la clave privada no se puede extraer, exponer ni copiar. El firmware del chip permite el uso de estas claves autónomas para firmar transacciones de blockchain directamente desde el chip y para firmar, almacenar y presentar datos cifrados utilizando su almacenamiento seguro. Las operaciones de chip están protegidas por medio de varias opciones de seguridad (incluyendo 2FA, códigos de acceso y múltiples opciones de PIN), y el firmware es auditado de forma independiente por la firma de seguridad Kudelski.

Los chips están disponibles aquí en varios factores de forma, incluido el formato de tarjeta de crédito física duradera, pegatinas adhesivas o etiquetas. El formato de tarjeta física está disponible actualmente como notas criptográficas preprovisionadas para todas las principales criptomonedas, o como tarjetas de desarrollador que se pueden aprovisionar para funcionar con cualquier cadena de bloques que utilice curvas criptográficas secp256 o ed25519, incluido Lisk.

Constructores de Lisk: PoC de transporte inteligente

Smart Transport PoC usa una tarjeta inteligente Tangem para demostrar cómo se puede usar una billetera de hardware para asegurar un paquete usando Lisk SDK. En esta demostración, se ha desarrollado una nueva aplicación cliente para la demostración Lisk Transport que utiliza un lector NFC para comunicarse con una tarjeta inteligente Tangem.

En la demostración, asumimos que la tarjeta inteligente es parte de un contenedor inteligente, es decir, un contenedor asegurado con su propia billetera de hardware que se usa para firmar todas las mediciones de temperatura y condiciones de alarma que reporta el contenedor. Durante el transporte, todas las partes conectadas al transporte (cliente, proveedor y destinatario) pueden determinar la clave pública para el contenedor inteligente y así verificar que los datos recibidos realmente se originen en este transporte.

Cuando el contenedor inteligente está preparado para un nuevo transporte, se crea una nueva cuenta en la tarjeta inteligente que es única para este transporte. Esta cuenta se financia automáticamente con algunos LSK para poder enviar transacciones de forma autónoma.

Mientras el transporte está en curso, todas las transacciones que se originan desde el contenedor inteligente (medidas, alarmas) son firmadas por esta cuenta, acreditando así su origen y autenticidad.

Una vez finalizado el transporte, se devuelve el LSK sobrante de la cuenta y se borra la cuenta. Ahora el contenedor inteligente se puede utilizar para un nuevo transporte.

La demostración agrega los siguientes elementos al ejemplo de Lisk Transport:

  •  Un controlador para lectores de tarjetas inteligentes compatibles con PC / SC. En nuestra demostración, utilizamos un lector ACS ACR1252. Este controlador se utiliza para sondear el lector de tarjetas inteligentes.

  •  Un controlador para el protocolo Tangem que implementa todas las funciones necesarias para hacer posibles los pasos anteriores (crear billetera, purgar billetera, firmar hashes de transacciones con la tarjeta inteligente).

  •  Implementación de la transacción personalizada registro-medición.

  •  Una nueva aplicación cliente que se utiliza para iniciar y finalizar el transporte y que se puede utilizar para simular medidas.

  •  Una nueva aplicación de IoT que utiliza el lector de tarjetas inteligentes para firmar mediciones de temperatura simuladas.

  •  Visualización de datos de temperatura almacenados en la cadena de bloques durante el transporte.

Práctica con la demostración

Dado que esta demostración se basa en el taller Lisk Transport, al menos debe continuar con el paso 0 (Parte del taller 0: Instalación y configuración ) antes de comenzar. En este punto, debe tener una cadena de bloques en ejecución con todos los requisitos previos instalados.

Además, debe asegurarse de que se hayan instalado los controladores de PC / SC adecuados para su lector NFC.

Ahora puede clonar las fuentes de la demostración en una carpeta de su disco duro. El repositorio se puede encontrar aquí .

La raíz del proyecto para los siguientes pasos se encuentra en la carpeta gimly-transport .

La demostración utilizará 3 ventanas de terminal:

Primera ventana ejecutando blockchain

  • Navega a la raíz del proyecto
  • Instale las dependencias de nodo en la carpeta de transacciones
    • transacciones de cd
    • npm install
  • Instale las dependencias de nodo en la carpeta tangem-smart
    • cd ../tangem-smart
    • npm install
  • A continuación, navegue hasta la carpeta del nodo e inicie la cadena de bloques
    • cd ../node
    • npm install
    • nodo index.js | npx bunyan -o corto

Segunda ventana que ejecuta la aplicación cliente

  • navegar a la raíz del proyecto
    • cliente cd
    • npm install
    • nodo app.js

Tercera ventana que ejecuta la aplicación IoT

  • navegar a la raíz del proyecto
    • cd iot / temperatura_y_humedad
    • npm install
    • nodo index.js

Ahora puede conectarse a su computadora portátil para ver la aplicación cliente abriendo  http: // localhost: 3000  en su navegador web.

Paso 1: coloque la tarjeta inteligente en el lector NFC

Seleccione una de las tarjetas inteligentes y colóquela en el lector. Ahora presione actualizar. La aplicación reconocerá la tarjeta y le permitirá crear un nuevo envío. Si la tarjeta inteligente ya está en uso, mostrará el estado del transporte actual (paso 3, 4 o 5, según el estado del transporte).

Paso 2: crear el envío

Primero, seleccione una de las cuentas de demostración como remitente de este paquete. Asegúrese de que el remitente tenga fondos suficientes, de lo contrario, la creación del envío fallará (puede usar el botón de fondos para adquirir algo de LSK del faucet). A continuación, seleccione el destinatario y establezca las condiciones de transporte (franqueo y seguridad). Mantenga el nivel de confianza en 0 para su primer transporte. A medida que simule más transporte, aumentará el nivel de confianza del transportista empleado. Finalmente, presione crear para crear el envío. Esté atento a la ventana de la terminal para que el cliente vea lo que está sucediendo:

  • Primero, se crea una nueva cuenta de billetera en la tarjeta inteligente. A continuación, la billetera recibe algunos fondos del grifo con una transacción de transferencia. Finalmente, el nuevo envío se registra en la cadena de bloques con una transacción de paquete de registro.

Cuando se completen estas acciones, el navegador le notificará:

Paso 3: iniciar el transporte

Primero, asegúrese de que el operador tenga fondos suficientes para pagar la garantía (puede usar el botón de fondos para adquirir algo de LSK del grifo). A continuación, presione "iniciar transporte". Ahora se envía una transacción de inicio de transporte a la cadena de bloques. Cuando se haya enviado la transacción, el navegador se lo notificará. Presione atrás para regresar a la página principal.

Paso 4: rastrear el transporte y agregar medidas

Mientras el transporte está en curso, el proceso de IoT en la ventana separada comenzará a agregar mediciones de temperatura simuladas al envío cada 15 segundos. Mire la salida en la ventana de la terminal de IoT y en la ventana de la cadena de bloques para verificar.

Antes de enviar una medición a la cadena de bloques, se calcula un hash del registro de datos de medición y se envía a la tarjeta inteligente. La tarjeta inteligente utiliza su clave privada para firmar la transacción. A continuación, la firma se agrega a la transacción y la transacción se compromete con la cadena de bloques. Cuando presiona el botón de actualización amarillo en la ventana del navegador, puede ver que las medidas aparecen en el gráfico.

Paso 5: finalizar el transporte

Finalmente, el destinatario puede seleccionar un estado final para el envío y finalizar el transporte.

Paso 6: restablecer el contenedor inteligente

Una vez finalizado el envío, puede restablecer el paquete inteligente. Ahora los fondos que quedan en la cuenta de la billetera inteligente se envían de vuelta al grifo y la cuenta se borra de la tarjeta. Ahora puede reutilizar la tarjeta para el próximo envío.

Conéctese con Caspar:

Marc Buma se unió al proyecto como desarrollador líder, con su experiencia en IoT, blockchain y desarrollo de JavaScript. Marc comenzó su carrera como ingeniero de I + D en Noldus Information Technology y trabajó en el desarrollo de sistemas automatizados de medición del comportamiento, y ha trabajado por cuenta propia (nombre de la empresa Bumos) desde 2004. Ha trabajado en proyectos de innovación de transmisión con Jetix, Disney, MTV, KPN y el Instituto Holandés de Sonido y Visión, y tiene una sólida experiencia en el desarrollo de sistemas de resistencia industrial. Actualmente, está desarrollando y manteniendo productos a medida para la hostelería a bordo de yates de lujo, sistemas de seguimiento logístico descentralizados basados ​​en blockchain en la industria de la moda y visitas guiadas de realidad virtual. Marc es activo como mentor / asesor técnico para varias startups y proyectos en la esfera de blockchain y logística.

Conéctate con Marc:

Trabajar con Tangem de Gimly

Si está interesado en utilizar la tecnología en sus propios proyectos, visite gimly.io para averiguar cómo obtener un kit de prueba, o pregunte sobre las opciones de empresa a empresa si está buscando mayores volúmenes de tarjetas, pegatinas o etiquetas personalizadas con diseño personalizado y billetera para su criptomoneda.

Fuente: blog de Lisk


 

Introducción Un desafío importante en muchas soluciones de cadena de bloques es conectar de forma segura actores u objetos físicos a su repr...