Nir-vana+: plataforma de innovación abierta

En este presente documento se recoge el resultado del desarrollo de la Tarea 4.1. Tecnologías Distributed Ledger DLT. Se dedica una sección a presentar los resultados, explicitando la información proporcionada en la memoria aprobada y posteriormente los resultados obtenidos.

El desarrollo de la tarea T4.1 contribuye en parte al cumplimiento del hito H3a, alcanzando la versión de beta 0.1 de Nir-vana C+D. El resultado de este entregable se encuentra en http://redes.nirvana.eu.

Tarea 4.1. Tecnologías Distributed Ledger DLT

Descripción de la tarea

Tarea 4.1. Tecnologías Distributed Ledger DLT. Vamos a incorporar tecnología blockchain o Distributed Ledger Technologies para hacer el timestamping de las conversaciones desarrolladas dentro de los espacios de colaboración. De esta manera se obtiene una prueba de colaboración y se pude demostrar que alguien ha compartido cierta información con un colaborador.

En esta tarea, queremos ir más allá y determinar cómo podemos incorporar a Nir-vana C+D dos innovaciones basadas en blockchain y smart contracts: la notaría virtual y la protección de activos de IP que sean revelados totalmente o que sea suficiente revelarlos parcialmente. Se usará el framework más adecuado (Ethereum y su combinación con Alastria, siendo Rinkeby en el testnet de Ethereum) y se plantearán posibles soluciones ZKP – Zero Knowledge Proof para abordar el reto de demostrar capacidad de IP sin revelarla, es decir sin revelar de forma comprometedora el knowhow de la Pyme.

Descripción del Trabajo Realizado

Para establecer colaboraciones entre participantes de una espació sin miedo a no poder demostrar la divulgación de una propiedad intelectual se realiza un proceso de “proof of existance”. Toda información (pre-image) puede ser representada mediante una llave de “hash” (image), las funciones de hash están diseñas para comportarse de forma inyectiva con probabilidades de colisión extremadamente bajas.

Si registramos esta clave de hash en el blockchain podemos demostrar que poseíamos la información o pre-image en el momento que se registra la información. Para optimizar el número de transacciones podemos registrar todas las nuevas conversaciones en un lote de llaves de hash.

Al generarse un post o comentario aparece una etiqueta conforme el mensaje aún está pendiente de ser registrado.

Al pulsar en la etiqueta de “pending”, aparece la explicación del funcionamiento de la notaría virtual.

Un proceso diario genera un hash de conjunto de todos los post y comentarios diarios y los envía al Blockchain. En ese momento el estado del post aparece como “securing”.

Una vez ha concluido el proceso de notaria virtual y ha registrado el hash de todas las propiedades intelectuales generadas en aquel día el post cambia a “secured”.

Al pulsar sobre la etiqueta de “pending” aparece la información del proceso de notaria virtual.

Cada contenido creado en Nir-vana tiene un hash privado asociado. Este hash es generado con la siguiente información:

  • Hash del Identificador del usuario de la plataforma.
  • Hash de la fecha del contenido.
  • Hash del identificador del contenido de la plataforma.
  • Hash del contenido
  • Hash de los ficheros adjuntados.

Del hash privado se genera un nuevo hash, SHA256(hash privado) que es público.

El hash publico sirve para demostrar que un contenido ha sido creado en un momento determinado y el hash privado sirve para demostrar que el usuario original conoce la información de un post sin tener que enseñar el contenido del post.

Para demostrar que se ha generado una propiedad intelectual en un determinado momento hay que seguir las instrucciones detallas que aporta la plataforma.

  1. Hay que descargar el fichero con todos los hashes públicos generados. En el listado podemos comprobar que nuestro hash aparece en el listado.
  2. Podemos comprobar que el hash que genera este fichero es el que indica la plataforma
  3. Podemos comprobar que la transacción echa en el blockchain contiene el hash y verificar la fecha de creación de la prueba de existencia.

En este ejemplo podemos ver la transacción del blockchain del registro de un hash por parte de la notaría virtual.

También se puede utilizar la función específicamente creada en el contrato inteligente de la notaría virtual para verificar si un hash ha sido registrado.

El sistema de notaria virtual requiere exponer el contenido de la propiedad intelectual para poder verificar que ese contendido es el que ha generado el hash. Esto puede ser poco conveniente ya que estaríamos exponiendo la PI a un tercero.

Para proporcionar más privacidad a la hora de mostrar un IP se ha utilizado una prueba de conocimiento nulo. Las pruebas de conocimiento nulo permiten demostrar la posesión de un conocimiento sin tener que divulgarlo.

Para la prueba de conocimiento nulo se ha utilizado el algoritmo de zk-SNARK

ZK: Hace referencia a la confidencialidad y privacidad de la información entre los usuarios sin comprometer su seguridad.

S: Sucinto: hace referencia a la brevedad y rapidez con la que se puede verificar y comprobar que la prueba es verdadera o legítima. Cómo las pruebas son una demostración de la posesión de información o datos, su tamaño es pequeño, por lo que se pueden verificar y validar en cuestión de milisegundos.

N: No interactivo: significa que no hay una interacción, comunicación o relación de intercambio constante entre el demostrador y el verificador. Es decir, en las pruebas de conocimiento cero sólo hace falta enviar un mensaje con la prueba para demostrar la posesión sobre la información, sin necesidad de una comunicación constante o frecuente entre las partes.

ARK: Argumento de conocimiento: hace referencia a la prueba o conocimiento que tiene un probador y que puede demostrar ante un verificador, para convencerlo de que posee una información que conoce y que es correcta, pero sin revelar cuál es esa información.

Para la generación del circuito encargado de general la curva elíptica concreta suada para el generador de puntos válidos, se ha usado el proyecto ZoKrates. ZoKrates es un lenguaje de programación para generar los circuitos empleados en Zk-Snarks. También se ha creado y almacenado en el blockchain el Smart Contract encargado de validar la prueba de conocimiento nulo para quien quiera verificar el conocimiento de una propiedad intelectual.

Para demostrar el conocimiento de un post o comentario sin revelarlo hay que entregar el hash público del contendido y el testo para la prueba.

Estos parámetros son codificados para ser usados por el Smart contract verificador. Este contrato inteligente es el que verifica que los parámetros de entrada cumplen con las condiciones y que solo el conocedor del contenido pudo haber generado el texto de la prueba.

Si la prueba es positiva el contrato inteligente devuelve un valor verdadero, en caso contrario devuelve falso

Con la implementación en blockchain de la notaría virtual y la protección de propiedad intelectual mediate algoritmos de prueba de conocimiento nulo se dota a la plataforma de las herramientas necesarias para favorecer las colaboraciones y desarrollos de proyectos con total seguridad.

 

Actividad financiada bajo el Programa Torres Quevedo 2018. PTQ-2018-009753

¡Encuéntranos!

Cristòfol Grober 4, local 35

17001 - Girona 

info@blueroominnovation.com

Gran Via Carles III, 98 planta 10

08028 - Barcelona

info@blueroominnovation.com

Copyright © 2023 Blue Room Innovation    Política de Privacidad - Aviso LegalPolítica de Cookies

Spanish