From 445928cff7632c70e81bdcb9620bb463e7053635 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Tue, 19 Mar 2024 11:32:35 +0100 Subject: [PATCH] Definitions updated (doc) --- doc/PRD-PCD-Specs.md | 6 ++++-- doc/Specs-Definition.md | 29 +++++++++++++++-------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/doc/PRD-PCD-Specs.md b/doc/PRD-PCD-Specs.md index 5670396..4e5ab74 100644 --- a/doc/PRD-PCD-Specs.md +++ b/doc/PRD-PCD-Specs.md @@ -77,7 +77,7 @@ Les `Metadata` des `Item` des `RequestPcd` et les attributs des `RequestPcd` et * `RequestPrdList`: Demande de listes d'`Item`. En réponse, une `RequestPcd` est reçue avec les `RequestPrdResponse` correspondants. * `RequestPrdMessage`: Envoi de messages publics, confidentiels ou privés et/ou de transactions Silent Payments à diffuser sur le réseau des nœuds de la side chain. Les `RequestPrdMessage` peuvent répondre les uns aux autres. * `RequestPrdUpdate`: Demande de mise à jour d'une liste d'`Item` (publiée via un `RequestPCD`), qui sera déchiffrée et validée ou non par des `RequestPrdResponse` en retour. - * `RequestPrdConfirm`: Confirmation de la réception des `RequestPrd`. + * `RequestPrdConfirm`: Confirmation de la réception des `RequestPrd` (à l'exception de `RequestPrdConfirm` eux-même). * `RequestPrdResponse`: Réponse aux autres types de `RequestPrd` (à l'exception de `RequestPrdConfirm` et `RequestPrdResponse`). * **Message**: Enveloppe commune pour les `RequestPrd` et `RequestPcd` lors de leur transmission aux relais et de leur réception depuis les relais. Dans cette enveloppe les `RequestPrd` et `RequestPcd` sont chiffrés par la `ProcessKey` de l'`ItemProcess` (cf. [Specs-Definition](SpecsDefinition.md)) et ajoutés au champs `RequestEnc`. @@ -90,7 +90,9 @@ Les `Metadata` des `Item` des `RequestPcd` et les attributs des `RequestPcd` et * **pre-id**: Pré-identifiant des utilisateurs, constitué du hash de la partie 1 de la `KeyRecover`. -## 6. Principe de messagerie +## 6. Principes de messagerie + + ### 6.1. Création et envoi diff --git a/doc/Specs-Definition.md b/doc/Specs-Definition.md index 686c572..1d00475 100644 --- a/doc/Specs-Definition.md +++ b/doc/Specs-Definition.md @@ -20,18 +20,25 @@ Voir [_Doc_references.md](_Doc_references.md). ## 2. Spécifique 4NK * **4NK**: Système décentralisé innovant basé sur les principes du web 5, centré sur la sécurité des données et l'identité numérique. -* **Portable Contract Document (`RequestPcd`)**: Format `JSON` chiffré destiné à contenir des listes d'éléments d'un type, attachées à un process (`process_hash`) et soumis aux règles de valiation décrit dans le role correspondant à ce type d'item dans le process (`item_type`). -* **Portable Request Document (`RequestPrd`)**: Format `JSON` chiffré contenant les valeurs de signatures et les clés de déchiffrement nécessaires à l'exploitation (requètes et validation) des `RequestPcd`. Les `RequestPrdResponse` sont collectés afin de vérifier que les conditions de l'`ItemProcess` sont bien respectées. D'autres types de `RequestPcd` permettent : - * `RequestPrdList`: Demande de Listes d'`Item` en retour une `RequestPcd` sera reçu avec les `RequestPrdResponse` correspondant. - * `RequestPrdMessage`: Envoi de messages publics, confidentiels ou privés et/ou des transactions Silent Payments à broacaster sur le réseau de noeuds de la side chain. Les `RequestPrdMessage` peuvent se répondre entre eux. - * `RequestPrdUpdate`: Demande de mise à Jour d'une liste d'`Item` (publiée va un `RequestPCD`) qui sera validé ou non par des `RequestPrdResponse` en retour. - * `RequestPrdConfirm`: Confirmation de Réception des `RequestPrd`. - * `RequestPrdResponse`: Réponse aux autres types de `RequestPrd` (hors `RequestPrdConfirm` et `RequestPrdResponse`). +* **Portable Contract Document (`RequestPcd`)**: Un format `JSON` chiffré conçu pour contenir des listes d'éléments d'un type spécifique, attachées à un processus (`process_hash`) et soumises aux règles de validation décrites dans le rôle correspondant à ce type d'`Item` dans le `ItemProcess` (`item_type`). + +* **Portable Request Document (`RequestPrd`)**: Format `JSON` chiffré contenant les valeurs de signatures et les clés de déchiffrement nécessaires à l'exploitation (requêtes et validation) des `RequestPcd`. Les `RequestPrdResponse` sont collectés pour vérifier le respect des conditions de l'`ItemProcess`. D'autres types de `RequestPrd` incluent : + * `RequestPrdList`: Demande de listes d'`Item`. En réponse, une `RequestPcd` est reçue avec les `RequestPrdResponse` correspondants. + * `RequestPrdMessage`: Envoi de messages publics, confidentiels ou privés et/ou de transactions Silent Payments à diffuser sur le réseau des nœuds de la side chain. Les `RequestPrdMessage` peuvent répondre les uns aux autres. + * `RequestPrdUpdate`: Demande de mise à jour d'une liste d'`Item` (publiée via un `RequestPCD`), qui sera déchiffrée et validée ou non par des `RequestPrdResponse` en retour. + * `RequestPrdConfirm`: Confirmation de la réception des `RequestPrd` (à l'exception de `RequestPrdConfirm` eux-même). + * `RequestPrdResponse`: Réponse aux autres types de `RequestPrd` (à l'exception de `RequestPrdConfirm` et `RequestPrdResponse`). * **Message**: Enveloppe commune pour les `RequestPrd` et `RequestPcd` lors de leur transmission aux relais et de leur réception depuis les relais. Dans cette enveloppe les `RequestPrd` et `RequestPcd` sont chiffrés par la `ProcessKey` de l'`ItemProcess` (cf. [Specs-Definition](SpecsDefinition.md)) et ajoutés au champs `RequestEnc`. -* **KeyConfidential**: Clé AES-GCM-256 du `Diffie-Hellman` de la transaction Silent Payment correspondant à un `RequestPrd`.s à l'interprétation des RequestPcd. +* **KeyConfidential**: Clé AES-GCM-256 issue du `Diffie-Hellman` de la transaction Silent Payment correspondant à un `RequestPrd`. + +* **ProcessKey**: La clé publique de chiffrement d'un `ItemProcess` (trouvée dans un `ItemProcess`, dans son attribut `Item`, dans son attribut `metadata_contract_public`, dans son attribut `meta_data`, dans son attribut `key_list` au premier élément). + +* **KeyRecover**: La clé privée de dépense de `recover` du signet, utilisée comme référence pour l'identité. + +* **pre-id**: Pré-identifiant des utilisateurs, constitué du hash de la partie 1 de la `KeyRecover`. * **Peer**: Terme générique pour représenter un nœud du réseau, pouvant avoir diverses fonctions. @@ -51,12 +58,6 @@ Voir [_Doc_references.md](_Doc_references.md). * **Third parties**:`adresse SP` complétant un `member` pour reconnaître d'autres dispositifs du `member`. -* **ProcessKey**: la clé publique de chiffrement public d'un `ItemProcess` (dans un `ItemProcess`, dans son attribut `Item`, dans son attribut `metadata_contract_public`, dans son attribut `meta_data`, dans son attribut `key_list` au premier élément). - -* **KeyRecover**: la clé prive de spend de `recover` du signet, qui sert de référence pour l'identité. - -* **pre-id**: Pré identifiant des utilisateurs constitué du hash de partie 1 de la `KeyRecover`. - * **Autres termes propres à 4nk**: voir Specs-Datas.md. ## 3. Bitcoin