Précision des fonctions PCD, PRD et transaction Silent Payment (doc)
This commit is contained in:
parent
ab56b30667
commit
8e96c3a035
@ -2,15 +2,20 @@
|
||||
* 1. [Objectif](#Objectif)
|
||||
* 2. [Portée](#Porte)
|
||||
* 3. [3. Documents de référence](#Documentsderfrence)
|
||||
* 3.1. [Requetes](#Requetes)
|
||||
* 3.2. [Structure et Fonction des PCD](#StructureetFonctiondesPCD)
|
||||
* 3.2.1. [L'attribut des listes PcdItemGenericEnc `item_list`](#LattributdeslistesPcdItemGenericEncitem_list)
|
||||
* 3.3. [Types de PRD et Leur Fonction](#TypesdePRDetLeurFonction)
|
||||
* 3.3.1. [Structure de RequestPrd](#StructuredeRequestPrd)
|
||||
* 4. [Gestion et Échange des Documents](#GestionetchangedesDocuments)
|
||||
* 4.1. [Création et Distribution](#CrationetDistribution)
|
||||
* 4.2. [Validation et Mise à Jour](#ValidationetMiseJour)
|
||||
* 5. [Exemples de Code](#ExemplesdeCode)
|
||||
* 4. [Fonction des PCD](#FonctiondesPCD)
|
||||
* 5. [Fonction des PRD](#FonctiondesPRD)
|
||||
* 5.1. [RequestPrdList - Demande de Listes (PCD)](#RequestPrdList-DemandedeListesPCD)
|
||||
* 5.2. [RequestPrdMessage - Envoi de Messages](#RequestPrdMessage-EnvoideMessages)
|
||||
* 5.3. [RequestPrdUpdate - Mises à Jour de PCD](#RequestPrdUpdate-MisesJourdePCD)
|
||||
* 5.4. [RequestPrdConfirm - Confirmation de Réception](#RequestPrdConfirm-ConfirmationdeRception)
|
||||
* 5.5. [RequestPrdResponse - Répondre à une Demande](#RequestPrdResponse-RpondreuneDemande)
|
||||
* 5.6. [RequestPrdKeyHelloBakcup](#RequestPrdKeyHelloBakcup)
|
||||
* 5.7. [RequestPrdKeyHello - Échange de Clés et d'Identités](#RequestPrdKeyHello-changedeClsetdIdentits)
|
||||
* 6. [Gestion et Échange des Documents](#GestionetchangedesDocuments)
|
||||
* 6.1. [Création et Distribution](#CrationetDistribution)
|
||||
* 6.2. [Validation et Mise à Jour](#ValidationetMiseJour)
|
||||
* 7. [Exemples de Code](#ExemplesdeCode)
|
||||
* 8. [Todo](#Todo)
|
||||
|
||||
<!-- vscode-markdown-toc-config
|
||||
numbering=true
|
||||
@ -30,25 +35,33 @@ La spécification couvre la conception, le développement, et l'application prat
|
||||
|
||||
Voir [Doc_references.md](Doc_references.md).
|
||||
|
||||
### 3.1. <a name='Requetes'></a>Requetes
|
||||
## 4. <a name='FonctiondesPCD'></a>Fonction des PCD
|
||||
|
||||
### 3.2. <a name='StructureetFonctiondesPCD'></a>Structure et Fonction des PCD
|
||||
Les Portable Contract Documents (PCD) sont des documents JSON qui encapsulent les listes versionnées d'`Item` dont les attributs sont chiffrés soit en public, soit en confidentiel par rôles soit en privé (cf. [Specs-Security.md](Specs-Security.md)).
|
||||
|
||||
#### 3.2.1. <a name='LattributdeslistesPcdItemGenericEncitem_list'></a>L'attribut des listes PcdItemGenericEnc `item_list`
|
||||
Les `Item` ainsi échangés via les PCD sont vérifiés par les `PRDResponse` afin de vérifier les validations de ces données et leurs conformités avec les `process` et les `members` concernés.
|
||||
|
||||
### 3.3. <a name='TypesdePRDetLeurFonction'></a>Types de PRD et Leur Fonction
|
||||
## 5. <a name='FonctiondesPRD'></a>Fonction des PRD
|
||||
|
||||
`RequestPrd`: Structure de base pour toutes les demandes, contenant des informations chiffrées essentielles pour l'interaction sécurisée entre les parties.
|
||||
Les Portable Request Documents (PRD) sont des documents JSON qui encapsulent les valeurs de signatures et les clés de déchiffrement nécessaires à l'interprétation des PCD. Ils sont utilisés pour demander des actions spécifiques, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||
|
||||
`RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc.: Variations de `PRD` pour différentes actions, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||
Les clés de chiffrement des attributs confidentiels par rôles des `Item` des PCD sont chiffrées dans les PRD avec le chiffrement du PRD par la clé `KeyConfidential` d'une transaction Silent Payment SP (cf. [Specs-Security.md](Specs-Security.md)). Ces clés ne sont distribués qu'aux `members` concernés par les `Item` des PCD (rôles dans les `process`).
|
||||
|
||||
#### 3.3.1. <a name='StructuredeRequestPrd'></a>Structure de RequestPrd
|
||||
Les PRD sont de plusieurs types tels que `RequestPrdList`, `RequestPrdMessage`, `RequestPrdUpdate`, etc.: Variations de `PRD` pour différentes actions, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
|
||||
|
||||
##### RequestPrdList - Demande de Listes (PCD)
|
||||
## Fonction des transactions silent payment SP associées aux PRD
|
||||
|
||||
La clé `KeyConfidential` d'une transaction Silent Payment SP est utilisée pour chiffrer les PRD. Cette clé est échangée avec le destinataire via un Diffie-Hellman (cf. [Specs-Security.md](Specs-Security.md)) dans la transaction. Cette information est parrallèle aux PRD et permet une meilleur sécurité et confidentialité des échanges.
|
||||
|
||||
La transaction Silent Payment SP a aussi une fonction d'horodate et de preuve de publication des PRD donc de la validation des données des PCD. Les outputs de la transaction Silent Payment SP contiennent les empreintes cryptographiques des `messages` et PRD (sauf `PRDKeyBackup`) et des PCD. Ainsi l'infrastructure blockchain de signet de 4NK permet de vérifier l'intégrité des flux, leur ordre de référence (horodatage) et leur preuve de publication.
|
||||
|
||||
Les `PRDConfirm` qui sont des accusés automatiques de réception des PRD sont aussi associés à une transaction Silent Payment SP, ce qui permet d'ajouter les preuves de réception des demandes et des validations (ou non).
|
||||
|
||||
### 5.1. <a name='RequestPrdList-DemandedeListesPCD'></a>RequestPrdList - Demande de Listes (PCD)
|
||||
|
||||
Utile pour les utilisateurs cherchant à consulter ou à explorer des listes de contrats, de membres, ou d'autres items dans le réseau.
|
||||
|
||||
##### RequestPrdMessage - Envoi de Messages
|
||||
### 5.2. <a name='RequestPrdMessage-EnvoideMessages'></a>RequestPrdMessage - Envoi de Messages
|
||||
|
||||
Le RequestPrdMessage facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats.
|
||||
|
||||
@ -56,7 +69,7 @@ Permet la communication directe et sécurisée au sein du réseau, supportant de
|
||||
|
||||
Les `PRDMessage` répondent aux `PRDMessage`.
|
||||
|
||||
##### RequestPrdUpdate - Mises à Jour de PCD
|
||||
### 5.3. <a name='RequestPrdUpdate-MisesJourdePCD'></a>RequestPrdUpdate - Mises à Jour de PCD
|
||||
|
||||
`RequestPrdUpdate` est conçu pour demander des mises à jour des listes via des nouvelles versions de `PCD`.
|
||||
|
||||
@ -66,7 +79,7 @@ Essentiel pour les utilisateurs ou les processus nécessitant de mettre à jour
|
||||
|
||||
Par exemple, mettre à jour la liste des membres permet d'ajouter de nouveaux utilisateurs sur un `process`, la mise à jour de la liste des `process` permettra de leur affecter un nouveau role.
|
||||
|
||||
##### RequestPrdConfirm - Confirmation de Réception
|
||||
### 5.4. <a name='RequestPrdConfirm-ConfirmationdeRception'></a>RequestPrdConfirm - Confirmation de Réception
|
||||
|
||||
Le RequestPrdConfirm est utilisé pour confirmer la réception et le traitement de demandes ou de transactions, jouant un rôle crucial dans la validation des actions au sein du réseau.
|
||||
|
||||
@ -76,7 +89,7 @@ Les `PRDList`, `PRDUpdate`, `PRDMessage`, `PRDResponse` et `PRDKeyHello` reçoiv
|
||||
|
||||
Crucial pour les processus qui nécessitent une confirmation explicite de réception ou d'acceptation, comme la finalisation d'une transaction ou la validation d'un changement d'état dans un contrat.
|
||||
|
||||
##### RequestPrdResponse - Répondre à une Demande
|
||||
### 5.5. <a name='RequestPrdResponse-RpondreuneDemande'></a>RequestPrdResponse - Répondre à une Demande
|
||||
|
||||
Le RequestPrdResponse permet de répondre spécifiquement à des PRD reçus, facilitant un échange interactif d'informations ou de décisions entre les parties.
|
||||
|
||||
@ -86,29 +99,29 @@ Utilisé pour fournir des feedbacks, des confirmations, ou des instructions supp
|
||||
|
||||
Aussi le moyen de demander des moyens de paiement ou de dépot ou de preuve, puis de partager le payload de ces actions.
|
||||
|
||||
##### RequestPrdKeyHelloBakcup
|
||||
### 5.6. <a name='RequestPrdKeyHelloBakcup'></a>RequestPrdKeyHelloBakcup
|
||||
|
||||
Le RequestPrdKeyHelloBakcup permet de demander la stockage de nouveaux shards associés à une `pre-id` .
|
||||
|
||||
##### RequestPrdKeyHello - Échange de Clés et d'Identités
|
||||
### 5.7. <a name='RequestPrdKeyHello-changedeClsetdIdentits'></a>RequestPrdKeyHello - Échange de Clés et d'Identités
|
||||
|
||||
RequestPrdKeyHello est conçu pour initier ou répondre à des demandes d'échange de clés ou d'informations d'identité, essentiel pour la gestion sécurisée des accès et des identités au sein du réseau.
|
||||
|
||||
Important pour les processus d'onboarding de nouveaux membres, de réinitialisation des accès, ou de renouvellement des clés, facilitant une intégration sécurisée et la mise à jour des identités dans le réseau.
|
||||
|
||||
## 4. <a name='GestionetchangedesDocuments'></a>Gestion et Échange des Documents
|
||||
## 6. <a name='GestionetchangedesDocuments'></a>Gestion et Échange des Documents
|
||||
|
||||
### 4.1. <a name='CrationetDistribution'></a>Création et Distribution
|
||||
### 6.1. <a name='CrationetDistribution'></a>Création et Distribution
|
||||
|
||||
Procédure de création des PCD et PRD, leur chiffrement, et les mécanismes de distribution sécurisée à travers le réseau 4NK.
|
||||
|
||||
### 4.2. <a name='ValidationetMiseJour'></a>Validation et Mise à Jour
|
||||
### 6.2. <a name='ValidationetMiseJour'></a>Validation et Mise à Jour
|
||||
|
||||
Processus de validation des informations contenues dans les PCD et PRD, ainsi que les procédures de mise à jour et de versioning des documents.
|
||||
|
||||
## 12. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
## 7. <a name='ExemplesdeCode'></a>Exemples de Code
|
||||
|
||||
## Todo
|
||||
## 8. <a name='Todo'></a>Todo
|
||||
|
||||
* [ ] Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|
||||
* [ ] Diagrammes de séquences
|
||||
|
Loading…
x
Reference in New Issue
Block a user