inmutabilis-contracts

Inmutabilis project

Usage no npm install needed!

<script type="module">
  import inmutabilisContracts from 'https://cdn.skypack.dev/inmutabilis-contracts';
</script>

README

Especificación

Actores

Admin plataforma

  • Puede:
    • Generar claves (cualquier tipo)
    • Desactivar claves (cualquier tipo)
    • Desactivar Organización

Máxima Autoridad

  • Puede:
    • Generar claves de mínima autoridad
    • Desactivar claves de mínima autoridad
    • Crear categoría / subcategoría
    • Desactivar categoría / subcategoría
    • Crear documento
    • Proponer el sellado de una versión
    • Confirmar el sellado de una versión
    • Desactivar documento / versión

 Mínima Autoridad

  • Puede:
    • Crear documento
    • Proponer el sellado de una versión

Estructuras de datos

Organización

  • Tiene:
    • Dirección (address)
    • Nombre
    • Admins Plataforma
    • Máximas Autoridades
    • Mínimas Autoridades
    • Número de firmas necesarias para la validación
    • Categorías
  • Permite: (a los usuarios autorizados)
    • Crear Categoría
    • Desactivar Ayuntamiento

Categoría

  • Tiene:
    • Dirección (address)
    • Nombre
    • Dirección Ayuntamiento
    • Subcategorías
  • Permite: (a los usuarios autorizados)
    • Crear Subcategoría
    • Desactivar Categoría

Subcategoría

  • Tiene:
    • Dirección (address)
    • Nombre
    • Dirección Categoría
  • Permite: (a los usuarios autorizados)
    • Crear Documento
    • Desactivar Subcategoría

 Documento

  • Tiene:
    • Dirección (address)
    • Nombre
    • Subcategorías a las que pertenece (etiquetas)
    • Fecha de entrada en vigéncia
    • Fecha de fin de vigéncia
    • Documentos relacionados
    • Versiones
  • Permite:
    • Proponer el sellado de una versión
    • Confirmar el sellado de una versión
    • Desactivar Documento

 Versión

  • Tiene:
    • Dirección Documento
    • Nombre
    • Link al PDF (IPFS, SWARM, S3...)
    • Hash del PDF
    • Versión anterior
    • Fecha de entrada en vigéncia
    • Fecha de fin de vigéncia
    • Sellado de tiempo de subida de PDF
  • Permite:
    • Desactivar Versión

Proceso de implantación

Definición de tiempos

Primero de todo hay que definir con el cliente:

  • Cuando se quiere poner en fase de pruebas el portal de transparéncia.
  • Durante cuanto tiempo se quiere mantener el sistema actual corriendo en paralelo con Inmutabilis (si es que tienen alguno).
  • Cuando se quiere poner en producción el portal de transparéncia.

Desplegamiento de la solución y entrega de materiales

  • Recepción de imagen corporativa:
    • Información básica de la organización
    • Logos
    • Colores
    • Fuentes
  • Recepción de configuración inicial:
    • Identidades de las máximas autoridades
    • Identidades de las mínimas autoridades
    • Categorías, subcategorías y documentos iniciales:
      • Se enviarán a SB en un CD (no regrabable) vía correo certificado:
        • El CD tendrá la siguiente estructura de árbol de carpetas y archivos:
          • Categoría (carpeta nivel 1)
            • Datos de categoría (fichero txt)
            • Subcategoría (carpeta nivel 2)
              • Datos de subcategoría (fichero txt)
              • Documento (carpeta nivel 3)
                • Datos de documento (fichero txt)
                • Versión (carpeta nivel 4)
                  • Datos de versión (fichero txt)
                  • Fichero de versión (cualquier formato de impresión)
        • Los datos de cada uno de los niveles serán envíados préviamente a la organización en función de los requerimientos concretos del sistema en ese momento a modo de plantilla.
        • Los datos se subirán a la plataforma mediante un script de importación própio de SB.
  • Adaptación de la solución:
    • Cambiar imagen por la de la organización
  • Desplegamiento de contratos inteligentes:
    • Organización
    • Categorías
    • Subcategorías
  • Desplegamiento de plataforma de visualización y edición
  • Creación de cuentas:
    • Máximas autoridades
    • Mínimas autoridades

Protocolos

Autorización de claves

  • La organización envía a SB los datos de el autorizado vía correo certificado / burofax.
  • SB crea la clave privada para el autorizado y define una transacción de prueba de recepción.
  • Cada clave privada se envía en un CD (no regrabable) vía correo certificado a cada uno de sus usuarios, incluyendo tutoriales en vídeo de cómo instalarla en su ordenador.
  • En otra entrega certificada, se adjuntan las intrucciones para realizar la transacción de prueba de recepción:
    • El usuario deberá mandar una cantidad específica de Criptomoneda (previamente cargada en su cuenta) a una cuenta propiedad de SB.
  • SB recibe la transacción y autoriza la clave.

Subida de documentos

  • Se contempla la posibilidad de pedir una clave pública emitida por una entidad certificadora oficial en el proceso de autorización de claves.
  • En dicho caso, cualquier documento sebe ser firmado digitalmente con esa clave para poder ser subido a la plataforma y después ser sellado.
  • Se contempla también la firma de la cuenta de autoridad máxima mediante este certificado.

Desactivación del portal

  • Las autoridades máximas de la organización necesarias para ejecutar funciones de sellado y cambio de número de firmas necesario para ello (el número es un parámetro de la organización) deben mandar una petición de desactivación vía correo certificado / burofax a SB para que se desactive el portal.
  • Se contempla que las autoridades tengan que enviar transacciones simbólicas de confirmación de voluntad (definidas por SB) para reafirmar su petición. Proceso discutible ya que uno de los motivos de desactivación puede ser la compromisión de las claves de las autoridades.
  • SB desactivará el portal.

Protocolo de gestión de claves de SB

A definir por Jordi Baylina.