Documentation
  • đź‘‹Home
  • Overview
    • đź’ˇWhat we do
      • đź“–Archipels backstory
      • đź”—Issues we aim to tackle
  • Integration Guide
    • đź”’Certify
      • How to Certify ?
    • ⚖️Verify
    • đź’ľAppendix
  • Helping tools
    • 🇫🇷FAQ
    • 🇬🇧FAQ
  • Links
    • Website
    • Back office
    • Recruitment
Propulsé par GitBook
Sur cette page
  • FONCTIONNEMENT DU SDK API ET UTILISATION
  • FONCTIONNEMENT DE LA BLOCKCHAIN ARCHIPELS
  • ARCHITECTURE
  • SECURITE
  • RGPD
  • Comparatif aux solutions alternatives

Cet article vous a-t-il été utile ?

  1. Helping tools

FAQ

Dernière mise à jour il y a 2 ans

Cet article vous a-t-il été utile ?

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

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.

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 () 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

🇫🇷

SDK API

Blockchain

Architecture

Sécurité

RGPD

Autres

https://www.openzeppelin.com/
https://www.ssllabs.com/ssltest/analyze.html?d=api.archipels.io