🇫🇷FAQ

FONCTIONNEMENT DU SDK API ET UTILISATION

  • Quelle est la taille maximale d’un document à certifier ? SHA256 permet le hachage de document jusqu’à 258 octets, soit 288 000 téraoctets.

  • Quelle est la fréquence d’ancrage maximale sur le Trust Registry ? Ceci se fait à la demande de nos clients, sur mesure.

  • Comment fonctionne le versioning ? Un id commun à toutes les versions d’un objet permet d’en retrouver chaque exemplaire de preuve.

  • Comment fait Archipels pour vérifier qu’un émetteur est habilité à certifier un document ? Ce sont les rôles des clés APIs, des identités issuer et des couples clé publique/clé privée - Une API_key: cette clé nous vous la fournissons, elle vous permet de faire le lien avec le Trust Registry. L’API_key vous permet de certifier ou vérifier des données selon les accès que l’on vous donne. - Un issuer_id: cet identifiant vous est propre et vous permet d’être reconnu par le TR, vous pouvez avoir plusieurs issuer_id par organisation. Pour chaque issuer_id sont liés une pub_key et une private_key. En cas de compromission de la clé privée, il est possible de générer un nouveau couple clé publique/clé privée tout en gardant le même issuer_id.

  • Quel est le processus d’attribution des identités ? Comment vérifiez-vous qu’une personne peut demander un issuer_id au nom d’une entreprise ? - L'attribution de l'identité est faite après discussion, par conséquent la personne à qui nous l'envoyons est connue et a déjà été dans des rendez-vous avec ses pairs/collègues. Donc impossible de l'envoyer à un inconnu ou un usurpateur d'identité. - Lors de l'envoi de la clé API nous passons par Bitwarden qui permet de ne la lire qu'une fois. Cette clé envoyée, vous pouvez créer votre id ainsi qu'un couple clé publique/privée. Vous nous envoyez alors votre id et votre clé publique, nous confirmons avec vous oralement que ce sont bien les vôtres puis nous vous autorisons l'accès à la création.

  • Est-il possible de générer la clé privée d’initialisation du système coté client (et non Archipel) et simplement fournir la clé publique Archipel ? Quels sont les algorithmes supportés par Archipel pour les clés ? Oui. Les deux algorithmes actuellement compatibles EDDSA et ECDSA peuvent être employé sur d’autres outils (e.g. ssh-keygen, openssl). Le package node-forge est utilisé dans le SDK pour générer la paire de clés.

  • Qu’est-ce que sont les metadata « searchable », « public », « private » ? Lors de la création d’un nouveau schéma de preuve, chaque métadonnée possède un publication_flag pouvant prendre pour valeur searchable, public, private. - Searchable : le champ est une entrée qui sert au vérificateur pour vérifier une preuve. Il peut y a avoir plusieurs champs searchable, le champs matching_conditions permet d’établir les conditions pour qu’une vérification de preuve aboutisse avec des opérateurs or et and. La métadonnée est chiffrée. - Public : une métadonnée public n’est pas chiffrée lorsqu’elle transite, aussi elle apparait toujours en clair à la vérification - Private : une métadonnée private est chiffrée dès la certification et n’apparait pas en clair à la vérification

FONCTIONNEMENT DE LA BLOCKCHAIN ARCHIPELS

  • Qu’est-ce qu’une blockchain permissionée ?

    Dans une blockchain permissionnée seuls certains acteurs peuvent valider les transactions. Chez Archipels, ces acteurs sont EDF, Engie, La Poste, La Caisse des Dépôts et Archipels. Le droit de connaissance des transactions peut être public ou limité aux participants. Le système partiellement décentralisé.

  • Quelle est la différence avec une blockchain publique ?

    À la différence de la blockchain Archipels, une blockchain publique est accessible à tout le monde en lecture ou écriture. Tous les utilisateurs participent à la validation des blocks.

  • À quoi servent les nœuds de transaction et de validation ?

    Dans une blockchain permissionée, un nœud de validation et un nœud de transaction ont des rôles différents dans le réseau.

    Un nœud de validation est responsable de la validation et de la vérification des transactions soumises au réseau par les nœuds de transaction. Il agit comme une sorte de gardien pour le réseau blockchain, en veillant à ce que toutes les transactions respectent les règles et les critères du réseau avant d'être ajoutées à la blockchain. Les nœuds de validation sont gérés par des parties de confiance, et leur travail est de maintenir l'intégrité et la sécurité du réseau.

    D'autre part, un nœud de transaction est responsable de la création, de la signature et de la soumission de transactions au réseau blockchain. Les nœuds de transaction peuvent être gérés par n'importe qui ayant l'autorisation d'accéder au réseau et de participer à ses activités. Ils sont des utilisateurs du réseau qui souhaitent participer à des transactions et leur rôle est d'initier les transactions qui seront finalement validées par les nœuds de validation.

    En résumé, les nœuds de validation sont responsables de s'assurer que seules les transactions valides sont ajoutées à la blockchain, tandis que les nœuds de transaction sont responsables d'initier ces transactions. Les deux types de nœuds jouent des rôles importants dans un réseau blockchain permissionné et travaillent ensemble pour maintenir la sécurité, l'intégrité et la fonctionnalité du réseau.

  • Archipels donne-t-elle la possibilité de faire du on premise ?

    Dans quelles localisations les nœuds d’Archipels sont-ils hébergés ?

    100% des nœuds sont stockés en France et en Europe.

  • Comment est construit le Layer 1 d’Archipels ?

    Il y a 20 nœuds Blockchain participant au consensus : - 100% sont hébergés en France - 80% sont hébergés par des opérateurs Cloud - Configurations des nœuds: 4 vCPU RAM:16Go SSD: 512Go - Consommation électrique annuelle: 5920 kWh - Empreinte carbone: 2767 éq. kgCO2/an

  • Comment sont répartis les nœuds de validation ? - Caisse des Dépôts et Consignations : 2 - EDF : 2 - Engie : 2 - La Poste :2 - Archipels : 2

  • Comment sont répartis les nœuds de transaction ? - Caisse des Dépôts et Consignations : 0 - EDF : 1 - Engie : 1 - La Poste : 0 - Archipels : 1

  • Comment est construit le Layer 2 d’Archipels ? 6 serveurs : - 100% sont hébergés en France - 100% sont hébergés par des opérateurs Cloud - Configurations des nœuds: 4 vCPU RAM:16Go SSD: 512Go - Consommation électrique annuelle : 919 kWh - Empreinte carbone : 512 éq. kgCO2/an

  • Quelle est la consommation d’énergie de la blockchain Archipels ? La consommation électrique annuelle totale est 3279 éq. kgCO2/an.

  • Quelle est la consommation d’une transaction sur le layer 1 ? 0,3 mgCO2 eq

  • Pourquoi avoir créé un layer 2 ? Le layer 1 ne permet pas de passer à échelle l’utilisation de la blockchain d’où l’utilisation d’un layer 2. Ce layer 2 est composé d’arbre de Merkle

  • Quelle scalabilité permet le layer 2 d’Archipels ? Le layer 2 permet de certifier une preuve en 300 ms

  • Est-ce que le layer 2 peut-être saturé ? La vitesse d’ancrage va-t-elle diminuer avec les ancrages qui s’accumulent ? Pour chaque nouvelle Trusted Source (émetteur), un arbre de Merkle est mis à disposition. De sorte que la saturation soit inatteignable et que la vitesse d'ancrage ne diminue jamais.

ARCHITECTURE

  • Pourquoi a-t-on mis en place un système de Docker pour toucher les API de certification d’Archipels ? - Il est plus facile à transmettre car la technologie conteneur permet de créer un environnement prêt à l’usage - Cela évite de traiter les données en clair, la data est hashée côté client - Le SDK est en Typescript et certains clients n’ont pas forcément les compétences pour développer dans ce langage, l’usage d’une API est plus courant et plus simple que le CLI

  • Quelle est l’orchestration des conteneurs ? Kubernetes, qui abstrait l’usage d’instance cloud

  • Quel port est utilisé ? Principalement le port par défaut HTTPS – 443

  • L'utilisation d’un docker est-elle nécessaire pour faire tourner le SDK ? Avez vous un sdk sous forme de librairie Java ? Non pas nécessaire, il est possible le faire tourner avec une bibli typescript package ou via CLI.

  • Le SDK Docker peut il être utilisé dans une architecture active-active pour fournir une haute disponibilité ? Oui, l’image Docker fournie peut être utilisée dans tout type d’architecture employant la conteneurisation. L’image est stateless, elle ne stocke aucune donnée. Les données qui lui sont transmises sont chiffrées et transmises à l’API Trust Registry. Le déploiement de nombreuses instances conteneurs est recommandé.

  • Quelles sont les préconisations CPU & RAM pour faire tourner le docker ? Minimum Specs: CPU 200m, RAM 256 Mo

  • Quelles sont les packages et les dépendances installés dans le conteneur Docker et quelle est la liste des softs embarqués ? NodeJS avec Express Les package.json associés

package.json

"dependencies": {
    "@nuintun/qrcode": "^3.1.1",
    "@types/tunnel": "^0.0.3",
    "axios": "^0.21.4",
    "commander": "^8.2.0",
    "crypto-js": "^4.1.1",
    "dotenv": "^10.0.0",
    "elliptic": "^6.5.4",
    "express": "^4.17.2",
    "http": "^0.0.1-security",
    "https-proxy-agent": "^5.0.0",
    "js-base64": "^3.7.2",
    "jsonabc": "^2.3.1",
    "merkletreejs": "^0.2.24",
    "node-forge": "^0.10.0",
    "purify-ts": "1.0.0",
    "swagger-ui-express": "^4.3.0",
    "uuid": "^8.3.2",
    "winston": "^3.7.2"
  },
  "devDependencies": {
    "@tsconfig/recommended": "^1.0.1",
    "@types/crypto-js": "^4.0.2",
    "@types/elliptic": "^6.4.14",
    "@types/express": "^4.17.13",
    "@types/jest": "^27.0.1",
    "@types/jsonabc": "^2.3.1",
    "@types/node": "^17.0.19",
    "@types/node-forge": "^0.10.5",
    "@types/supertest": "^2.0.11",
    "@types/swagger-ui-express": "^4.1.3",
    "@types/uuid": "^8.3.1",
    "jest": "^27.0.6",
    "jest-express": "^1.12.0",
    "json-server": "^0.17.0",
    "license-checker": "^25.0.1",
    "nodemon": "^2.0.15",
    "pkg": "^5.4.1",
    "prettier": "2.3.2",
    "supertest": "^6.2.2",
    "ts-jest": "^27.0.4",
    "ts-node": "^10.3.0",
    "typescript": "4.3.5"
  }

SECURITE

  • Le code du ou des smart contracts développés par Archipels a-t-il été audité ? Nos smart contracts ont été développés avec la librairie d'OpenZeppelin (https://www.openzeppelin.com/) et produits selon leurs smart-contracts de référence, lesquels ont été audités. Les instances que nous avons déployées ont fait l'objet d'une revue de sécurité interne.

  • Quel niveau de sécurité duTLS (Transport Layer Security) d’Archipels ? Voici une analyse indépendante https://www.ssllabs.com/ssltest/analyze.html?d=api.archipels.io

RGPD

  • Qui peut voir les données certifiées sur Archipels ? Personne, les données ne transitent pas en clair sur Archipels. Seuls les hashs transitent. En revanche, les métadonnées dites « publiques » sont ancrées off-chain, ce qui permet au vérificateur de les voir dans le cas d’une vérification OK.

  • Que se passe-t-il si l’utilisateur demande la suppression de ses données personnelles ? Concernant la suppression des données, et plus spécifiquement l'exercice du droit à l’effacement ou droit à l’oubli (Article 17 du RGPD) : les personnes concernées peuvent en effet demander l’effacement de leurs données personnelles sous-traitées par Archipels si les conditions légales sont remplies. Si ces conditions sont atteintes, l’exercice de ce droit ne posera pas de problème au client (le responsable de traitement) qui pourra demander à Archipels (le sous-traitant) l’effacement des données “off-chain” (Trust Registry) pertinentes, à l’exception de la proofId et du commitment qui sont nécessaires à l’intégrité de l’accumulateur cryptographique (ces données sont considérées comme anonymes et donc non soumises aux champs d'application du RGDP). La preuve enregistrée “on-chain” pourra être révoquée mais pas supprimée, elle ne contient d’ailleurs que des hash anonymes (racine de Merkle Tree).

  • Où sont stockés les données personnelles ? - Trust Registry API : stockage des données envoyées via les schémas - s’il y a des données personnelles ancrées, elles seront dedans. - Accumulateur : stockage des données hachées (preuves cryptographiques) - Blockchain : enregistrement de la racine du Merkle tree, c’est-à-dire d’un hash créé à partir d’une accumulation de hash. Il n’y a pas de données en dur ni les hash des preuves. L’anonymisation de la blockchain Archipels a été confirmée par une analyse de l’EFREI Paris.

Comparatif aux solutions alternatives

  • Quelle sont les différences entre Archipels et les DAG (Directed Acyclic Graphs) ? Les deux technologies sont des registres décentralisés. Les bénéfices d’une DAG et d’Archipels sont quasi-similaires, grâce au layer 2 d’Archipels, à savoir : - Scalabilité - Rapidité - Décentralisation maîtrisée - Peu coûteux en énergie

  • Quelle sont les différences entre Archipels et les CEV (Cachets Électroniques Visible)? La technologie de CEV est intéressante quand l’objet manipulé (facture, bulletin de paie, etc…) est papier. Or, nombre de procédures méritent d’être dématérialisées et la vérification par CEV en devient plus pénible par le temps de vérification et l’impossibilité d’automatiser le procédé de vérification du CEV. Archipels permet, en comparaison, d’automatiser les vérifications documentaires, voire de se passer de documents (dans le cas de certification/vérification de données) et donc de permettre la vérification sans faille d’un nombre important de documents.

Dernière mise à jour