32 KiB
PRD PCD - Specifications
1. Table des matières
-
- 8.1. Schéma des flux
- 8.2. Création et envoi
- 8.3. Réception
-
- 9.1. Schéma des flux
- 9.2. Création d'un
Prd
- 9.3. Réception
-
- 10.1. Schéma des flux
-
- 11.1. Schéma des flux
-
- 12.1. Schéma des flux
-
- 13.1. Schéma des flux
-
- 14.1. Schéma des flux
2. Objectif
Le but de cette section est d'introduire les Portable Contract Document (Pcd
) et Portable Request Document (Prd
) comme éléments fondamentaux du système 4NK. Ces documents jouent un rôle crucial dans la sécurisation des échanges de données et la gestion des identités numériques au sein d'un réseau décentralisé. Ils permettent de définir des contrats numériques, de gérer les permissions d'accès, et de faciliter les communications et les opéraations sécurisées entre les différents acteurs du réseau.
3. Portée
La spécification couvre la conception, le développement, et l'application pratique des Pcd
et Prd
.Elle vise à expliquer leur fonctionnement, leur structure, et la manière dont ils contribuent à l'écosystème 4NK en offrant une méthode sécurisée et efficace pour le partage d'informations et la validation des transactions. Les Pcd
et Prd
encapsulent les données contractuelles et les requêtes dans un format standardisé, assurant l'intégrité, la confidentialité, l'authenticité et la validation des informations échangées.
4. Documents de référence
Voir _Doc_references.md.
5. Définitions
-
Portable Contract Document (
Pcd
): Un formatJSON
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 leItemProcess
(item_type
). -
Portable Request Document (
Prd
): FormatJSON
chiffré contenant les valeurs de signatures et les clés de déchiffrement nécessaires à l'exploitation (requêtes et validation) desPcd
. LesPrdResponse
sont collectés pour vérifier le respect des conditions de l'ItemProcess
. D'autres types dePrd
incluent :PrdList
: Demande de listes d'Item
. En réponse, unePcd
est reçue avec lesPrdResponse
correspondants.PrdMessage
: Envoi de messages publics, confidentiels ou privés et/ou de transactions Silent Payments des autresPrd
à diffuser sur le réseau des nœuds de la side chain. LesPrdMessage
peuvent répondre les uns aux autres.PrdUpdate
: Demande de mise à jour d'une liste d'Item
(publiée via unPCD
), qui sera déchiffrée et validée ou non par desPrdResponse
en retour.PrdConfirm
: Confirmation de la réception desPrd
(à l'exception dePrdConfirm
eux-même).PrdResponse
: Réponse aux autres types dePrd
(à l'exception dePrdConfirm
, etPrdMessage
).
-
Message: Enveloppe commune pour les
Prd
etPcd
lors de leur transmission aux relais et de leur réception depuis les relais. Dans cette enveloppe lesPrd
etPcd
sont chiffrés par laProcessKey
de l'ItemProcess
(cf. Specs-Definition) et ajoutés au champsRequestEnc
. -
KeyConfidential: Clé AES-GCM-256 issue du
Diffie-Hellman
de la transaction Silent Payments correspondant à unPrd
. -
ProcessKey: La clé publique de chiffrement d'un
ItemProcess
(trouvée dans unItemProcess
, dans son attributItem
, dans son attributmetadata_contract_public
, dans son attributmeta_data
, dans son attributkey_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
.
6. Principes de messagerie
Les Pcd
sont envoyés à tous les participants connectés sans attente de retour spécifique et ne sont pas associés à une transaction SP
.
Les Prd
sont toujours accompagnés d'une transaction SP
, transmise dans l'attribut raw_transaction_list
d'un PrdMessage
associé (à l'exception des PrdMessage
eux-mêmes).
Les Prd
sont des demandes d'actions ou des réponses à ces demandes, interagissant de la manière suivante :
PrdList
: Constitue généralement la première requête d'un workflow et ne répond pas à un autrePrd
.PrdMessage
, avec 2 cas de figure :- Demande de relais d'une
transaction SP
, dans ce cas, lePrdMessage
ne répond pas à un autrePrd
. - Envoi de message, pouvant initier un échange de messagerie ou répondre à un autre
PrdMessage
.
- Demande de relais d'une
PrdUpdate
: Souvent la première requête d'un workflow, unPrdUpdate
ne répond pas à un autrePrd
.PrdConfirm
: Répond à tous les autres types dePrd
(à l'exception desPrdConfirm
eux-mêmes).PrdResponse
: Répond à tous les autres types dePrd
(à l'exception desPrdConfirm
,PrdResponse
eux-mêmes). Dans le cas d'une réponse à unPrdList
ou d'unPrdUpdate
, lePrdResponse
doit obligatoirement être accompagné d'unPcd
.
Selon le type de Prd
, les demandes peuvent s'adresser à tous les membres de l'ItemProcess
, aux gestionnaires du type d'Item
concerné ou simplement à l'émetteur, selon :
PrdList
: Envoyé aux gestionnaires du type d'Item
concerné.PrdMessage
, avec 2 cas de figure :- Demande de relais d'une
transaction SP
, dans ce cas, destinée au destinataire duPrd
associé. - Envoi de message au destinataire du message.
- Demande de relais d'une
PrdUpdate
: Envoyé aux gestionnaires du type d'Item
concerné.PrdConfirm
: Envoyé à l'émetteur duPrd
associé.PrdResponse
, avec 2 cas de figure :- Réponse à un
PrdList
: envoyée à l'émetteur duPrdList
. - Réponse à un
PrdUpdate
: envoyée à tous les membres et à l'émetteur duPrdUpdate
.
- Réponse à un
Les traitements pour l'envoi des Prd
varient selon leur type, principalement autour des aspects suivants :
request_type
: Est un attribut desPrd
et desPcd
permettant de connaître le type de requête.- Notification user : Nécessité de notifier l'utilisateur courant, ou non.
transaction SP
+PrdMessage
: Envoi d'unetransaction SP
dans unPrdMessage
, ou non.Pcd
to send : Envoi d'unPcd
en complément duPrd
.request_type
send to : Membres qui recevront lestransaction SP
et lesPrdMessage
correspondants, avec les clés de déchiffrement pour les champs confidentiels.Pcd
reply waiting : Attente d'unPcd
en retour, ou non.PrdResponse
reply waiting : Attente d'un ou de plusieursPrdResponse
en retour, ou non.PrdConfirm
reply waiting : Attente d'unPrdConfirm
en retour, ou non.
Ce qui est résumé pour l'envoi :
request_type |
Notification user | transaction SP + PrdMessage |
Pcd to send |
request_type send to |
Pcd reply waiting |
PrdResponse reply waiting |
PrdConfirm reply waiting |
---|---|---|---|---|---|---|---|
PrdList |
No | Yes | No | all the members of the item_name Role into to ItemProcess |
Yes | Yes | Yes |
PrdUpdate |
waiting sig_value |
Yes | Yes | all the members of all Role into to ItemProcess |
No | Yes | Yes |
PrdMessage |
waiting sig_value + message_public , message_confidential , message_private |
if no raw_transaction_list |
No | a member of the ItemProcess |
No | No | if no raw_transaction_list |
PrdResponse |
waiting sig_value |
Yes | No | See Received | No | No | Yes |
PrdConfirm |
(option) Waiting code_confirm_confidential |
Yes | No | See Received | No | No | No |
Les traitements pour la réception des Prd
varient selon leur type, principalement autour des aspects suivants :
- Notification user : Nécessité de notifier l'utilisateur courant, ou non.
PrdConfirm
to send: Envoi d'une confirmation, ou nonPrdResponse
to send: Envoi d'unPrdResponse
ou non.PrdResponse
reply waiting: Attente d'unPrdResponse
en retour ou non.PrdConfirm
reply waiting (fromPrdResponse
send ): Attente d'unPrdConfirm
en retour ou non.
Ce qui est résumé Pour la réception :
request_type |
Notification user | PrdConfirm to send |
Pcd to send |
PrdResponse to send |
PrdResponse reply waiting |
PrdConfirm reply waiting (from PrdResponse send ) |
---|---|---|---|---|---|---|
PrdList |
No | Yes | Yes | all the members of the item_name Role into to ItemProcess |
No | Yes |
PrdUpdate |
Prd | Yes | No | all the members of all Role into to ItemProcess |
Yes (other members) | Yes |
PrdMessage |
Waiting PrdMessage reply |
if no raw_transaction_list |
No | No | No | No |
PrdResponse |
Prd | Yes | No | No | No | No |
PrdConfirm |
Prd | No | No | No | No | No |
7. Encryption
Schema :
Les Metadata
des Item
des Pcd
et les attributs des Pcd
et Prd
sont chiffrés de la sorte :
-
Données publiques : Utilisent un chiffrement symétrique basé sur la
ProcessKey
de l'ItemProcess
(cf. Specs-Definition). Ces données sont ainsi accessibles à tous pour le déchiffrement. -
Données confidentielles destinées aux membres d'un
role
spécifique d'unItemProcess
dans les Pcd : Le chiffrement est réalisé symétriquement à partir d'une clé de chiffrement générée à la volée pour chaque champ et pour chaque item d'une liste d'unPcd
. Ces clés seront ensuite ajoutées auxPrd
dans l'attributPcd_keys_role_confidential_list_confidential
; lui même alors chiffré par laKeyConfidential
. -
Données confidentielles destinées aux membres d'un
role
spécifique d'unItemProcess
dans les Prd : Utilisent un chiffrement symétrique basé sur les clés de chiffrement AES-GCM-256, générées à la volée dans lesPcd
et transmises par lePrd
, chiffrées par laKeyConfidential
du Diffie-Hellman de la transaction Silent Payments associée à cePrd
(cf. Specs-Definition) d'une transactionSP
. -
Données privées : Chiffrées symétriquement en utilisant la clé de dépense de connexion (
recover
) du signet (voir Login - Specs).
Principaux champs des Request
contenus dans les Pcd
et Prd
chiffrés :
request_type
: Type de requête :Pcd
,PrdList
,PrdMessage
,PrdUpdate
,PrdConfirm
,PrdResponse
.item_name
: Noms des items :peer
,member
,process
,Payments
,deposit
,commitment
, et lesartefact
personnalisés.version
: Version de la requête.process_hash
: Hash de l'ItemProcess
concerné.request_pcd_reference_hash
: Hash duPcd
auquel lePrd
fait référence.request_pcd_origin_hash
: Hash duPcd
à l'origine duPrd
.request_prd_reference_hash
: Hash duPrd
auquel lePrd
fait référence.request_prd_origin_hash
: Hash duPrd
à l'origine duPrd
.item_reference_hash
: Hash de l'Item
auquel lePcd
fait référence.
8. Fonction des Pcd
Les Portable Contract Documents (Pcd
) sont des documents au format JSON
encapsulant des listes versionnées d'Item
, dont les attributs sont chiffsrés selon trois niveaux de confidentialité : public, par rôles spécifiques, ou privé. (cf. Specs-Security.md).
Les Item
échangés via les Pcd
sont soumis à une vérification par les PrdResponse
dans le but de contrôler la validité de ces données et leur conformité avec les ItemProcess
et les member
du Role
concerné.
Principaux champs des Pcd
:
request
: cf la descripton de la structureRequest
.item_enc_list
: LesItem
chiffrés sous formePcdItemGenericEnc
par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.pagination
: La pagination de la liste desItem
.
Principaux champs de la structure Pagination
:
start
: Index du premierItem
de la liste.number
: Nombre d'Item
à afficher.page_index
: Index de la page.page_total
: Nombre total de pages.
Principaux champs de la structure PcdItemGenericEnc
:
version
: Version de l'Item
.item_type
: Type de l'Item
.name
: Nom de l'Item
.request_pcd_item_enc_attribute_public_list
: Liste d'objetsPcdItemEncAttributePublic
des attributs publics de l'Item
chiffré.request_pcd_item_enc_attribute_role_confidential_list
: Liste d'objetsPcdItemEncAttributeRoleConfidential
des attributs confidentiels de l'Item
chiffré.request_pcd_item_enc_attribute_private_list
: Liste d'objetsPcdItemEncAttributePrivate
des attributs privés de l'Item
chiffré.
Principaux champs de la structure PcdItemEncAttributePublic
:
attribute_name
: Nom de l'attribut.data_enc
: Données chiffrées par la cléProcessKey
de l'ItemProcess
concerné.key
: [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.data
: [PRIVE] Non partagé dans les messages. Données en clair.
Principaux champs de la structure PcdItemEncAttributeRoleConfidential
:
attribute_name
: Nom de l'attribut.data_enc
: Données chiffrées par une clé symétrique générée à la volée pour chaque champ et pour chaque item d'une liste.key
: [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.data
: [PRIVE] Non partagé dans les messages. Données en clair.
Principaux champs de la structure PcdItemEncAttributePrivate
:
attribute_name
: Nom de l'attribut.data_enc
: Données chiffrées par la clé privéeKeyRecover
.key
: [PRIVE] Clé de chiffrement, non partagée dans les messages. Données en clair.data
: [PRIVE] Non partagé dans les messages. Données en clair.
8.1. Schéma des flux
8.2. Création et envoi
La création d'un Pcd
suit plusieurs étapes :
- Récupération de la dernière version de la liste du type d'
Item
à partir de la source de données, telle qu'une base de données ou un système de stockage. - Ajouts et modifications éventuelles des
Item
. - Chiffrement cf Encryption.
- Envoi du message cf Messages - Specs.
8.3. Réception
La réception d'un Pcd
suit plusieurs étapes :
- Recherche des
Prd
en relation viaPcd_reference_hash
etPcd_origin_hash
de cesPrd
, et attente si nécessaire. - Déchiffrement cf Encryption.
9. Fonction desPrd
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
via l'attribut Pcd_keys_role_confidential_list_confidential
. Ils sont utilisés pour solliciter des actions spécifiques, telles que l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
Les clés permettant le chiffrement des attributs confidentiels par rôles des Item
dans les Pcd
sont elles-mêmes chiffrées dans les Prd
au moyen du chiffrement du Prd
par la clé KeyConfidential
d'une transaction SP
(cf. Specs-Security.md). Ces clés sont uniquement distribuées aux members
concernés par les Item
des Pcd
(rôles dans les ItemProcess
).
Les Prd
se déclinent en plusieurs types, tels que PrdList
, PrdMessage
, PrdUpdate
, etc., correspondant à différentes actions comme l'envoi de messages, la mise à jour des informations contractuelles, ou la confirmation de transactions.
Principaux champs des Prd
:
request
: cf la descripton de la structureRequest
.sig_value
: Valeur de la signature (parmi les valeurs valant pourOK
,KO
ounone
telles que définies dans l'ItemProcess
).request_pcd_reference_keys_role_confidential_list_confidential
: Clés de déchiffrement des attributs confidentiels desItem
desPcd
chiffrées par la cléKeyConfidential
d'unetransaction SP
.request_pcd_origin_hash_keys_role_confidential_list_confidential
: Clés de déchiffrement des attributs confidentiels desItem
desPcd
duPCD
de référence, chiffrées par la cléKeyConfidential
d'unetransaction SP
.message_public
: Message public, chiffré par la cléProcessKey
duItemProcess
concerné.message_confidential
: Message confidentiel, chiffré par la cléProcessKey
duItemProcess
concerné.message_private
: Message privé, chiffré par la clé privéeKeyRecover
.sp_address_to
: Adresse du destinataire.sp_address_from
: Adresse de l'émetteur.sp_address_reply
: Adresse de réponse à l'émetteur.timestamp_declared
: Horodatage déclaré.role_name_from
: Nom du rôle de l'émetteur.role_name_to
: Nom du rôle du destinataire.Payments_request_pcd_hash_list_confidential
: Liste desPcd
d'Item
de nompaiement
chiffrée par la cléKeyConfidential
d'unetransaction SP
.cap_request_pcd_hash_list_confidential
: Liste desPcd
d'Item
de nomdeposit
chiffrée par la cléKeyConfidential
d'unetransaction SP
servant à la validation des paiements temporaires en attente du passage d'un cap.deposit_request_pcd_hash_list_confidential
: Liste desPcd
d'Item
de nomdeposit
chiffrée par la cléKeyConfidential
d'unetransaction SP
.commitment_request_pcd_hash_list_confidential
: Liste desPcd
d'Item
de nomcommitment
chiffrée par la cléKeyConfidential
d'unetransaction SP
.ask_Payments_method_confidential
: Demande de méthode de paiement chiffrée par la cléKeyConfidential
d'unetransaction SP
.ask_deposit_method_confidential
: Demande de méthode de dépôt chiffrée par la cléKeyConfidential
d'unetransaction SP
.ask_commitment_method_confidential
: Demande de méthode d'engagement chiffrée par la cléKeyConfidential
d'unetransaction SP
.Payments_method_confidential
: Méthode de paiement chiffrée par la cléKeyConfidential
d'unetransaction SP
, en réponse à une demande.deposit_method_confidential
: Méthode de dépôt chiffrée par la cléKeyConfidential
d'unetransaction SP
, en réponse à une demande.commitment_method_confidential
: Méthode d'engagement chiffrée par la cléKeyConfidential
d'unetransaction SP
, en réponse à une demande.certif_key_confidential
: Clé de certification chiffrée par la cléKeyConfidential
d'unetransaction SP
.device_footprint_enc_by_sp_shared_secret
: Empreinte du dispositif de l'émetteur, chiffrée par la cléKeyConfidential
d'unetransaction SP
.
9.1. Schéma des flux
Pour simplifier, les PrdConfirm
n'ont pas été inclus dans le schéma.
9.2. Création d'un Prd
- Complétion des attributs
- Création d'une
adresse SP
cf Silent Payments - Specs - Chiffrement cf Encryption.
- Envoi du message cf Messages - Specs.
9.3. Réception
La réception d'un Prd
suit plusieurs étapes :
- Parcours des
ItemProcess
pour trouver leItemProcess
correspondant auprocess_hash
duPrd
- Tentative de déchiffrement du
Prd
avec la cléProcessKey
duItemProcess
correspondant. - Recherche des
Pcd
en relation viaPcd_reference_hash
etPcd_origin_hash
, attente si nécessaire et traitement de ceux-ci. - Vérification de la conformité des
Pcd
en relation. - Recherche des
Prd
en relation viarequest_prd_reference_hash
etrequest_prd_origin_hash
, attente si nécessaire et traitement de ceux-ci. - Vérification de la conformité des
Prd
en relation. - Recherche de l'
Item
associé viaitem_reference_hash
, attente si nécessaire et traitement de celui-ci. - Déchiffrement voir Encryption.
- Validation des conditions définies dans le
ItemProcess
pour cetItem
, avec leRole
correspondant dans leItemProcess
, et dans ces rôles, les conditions pour ce type dePrd
(dans l'attributrequest_prd_type
) - Vérification du role de l'utilisateur courant dans le
ItemProcess
et dans leItem
concerné. - Traitements spécifiques au type de
Prd
.
10. PrdList - Demande de Listes
Utile pour les utilisateurs souhaitant consulter ou explorer des listes de contrats, de membres, ou d'autres items dans le réseau. Chaque Pcd
liste des Item
d'un même type, tels que les ItemProcess
, les ItemMember
, les ItemPeer
, les ItemPayments
, etc.
Workflow:
Principaux champs des PrdList
:
request_prd
: cf la descripton de la structurePrd
.pagination_start
: Première "page" de résultats.pagination_stop
: Dernière "page" de résultats.sub_pagination_start
: Première "page" de résultats dans les items qui contiennent une liste.sub_pagination_stop
: Dernière "page" de résultats dans les items qui contiennent une liste.
Dans le cas d'une création de compte :
item_member_enc_by_sp_shared_secret
: NouvelItemMember
temporaire,chiffrée par la cléKeyConfidential
d'unetransaction SP
.
L'ItemMember
temporaire contient les métadonnées de type Metadata
suivantes :
-
MetadataProcessPublic
de typeItemMemberPublicAttributeGroup
: -
sp_address_public
: Adresse publique de l'utilisateur, chiffré par laProcessKey
de l'ItemProcess
. -
sp_address_revoke_public
: Adresse publique de révocation de l'utilisateur, chiffré par laProcessKey
de l'ItemProcess
. -
third_sp_address_list_public
: Liste des adresses publiques de devices tiers, chiffré par laProcessKey
de l'ItemProcess
. -
data_size_max
: Taille maximale des données acceptée par l'utilisateur (par flux), chiffré par laProcessKey
de l'ItemProcess
. -
Payments_method_list_public
: Liste des méthodes de paiement acceptées par l'utilisateur, chiffré par laProcessKey
de l'ItemProcess
. -
succession_process_hash
: Hash du processus de succession de l'utilisateur (transmission de l'identité numérique et donc de tous les flux associés), chiffré par laProcessKey
de l'ItemProcess
. -
device_footprint
: Empreinte du dispositif de l'utilisateur, chiffré par laProcessKey
de l'ItemProcess
. -
MetadataRoleConfidential
de typeItemMemberRoleConfidentialAttributeGroup
: -
shard_confidential
: Shard de l'utilisateur, chiffré par la cléKeyConfidential
d'unetransaction SP
. -
pre_id_confidential
: Pré empreinte de l'identité numérique de l'utilisateur, chiffrée par la cléKeyConfidential
d'unetransaction SP
. -
MetadataPrivate
de typeItemMemberRolePrivateAttributeGroup
: -
priv_key_mainnet_spend
: Clé de dépense de l'utilisateur, chiffrée par la clé privée du mainnet, chiffrée parKeyRecover
. -
priv_key_mainnet_scan
: Clé de scan de l'utilisateur, chiffrée par la clé privée du mainnet, chiffrée parKeyRecover
. -
priv_key_signet_scan
: Clé de scan du signet derecover
de l'utilisateur, chiffréeKeyRecover
.
10.1. Schéma des flux
Pour simplifier, les PrdConfirm
n'ont pas été inclus dans le schéma.
11. PrdMessage - Envoi de Messages
Le PrdMessage
facilite l'envoi de messages sécurisés entre utilisateurs ou entre utilisateurs et processus/contrats.
Il permet la communication :
- Directe et sécurisée au sein du réseau, supportant des échanges d'informations critiques ou des notifications entre parties.
- Des
transaction SP
au formatraw
dans l'attributraw_transaction_list
pour la publication de la transaction dans la side chain.
Les PrdMessage
peuvent répondre aux autres PrdMessage
, sauf en cas d'envoi de raw_transaction_list
(dans le cas d'utilisation pour transférer la transaction SP
depuis un autre Prd
).
Principaux champs des PrdMessage
:
request_prd
: cf la descripton de la structurePrd
.raw_transaction_list
: Liste destransaction SP
au formatraw
pour la publication de la transaction dans la side chain.
11.1. Schéma des flux
Pour simplifier, les PrdConfirm
n'ont pas été inclus dans le schéma. Exemple d'un PrdMessage
avec raw_transaction_list
vide, et son cas correspondant où le PrdMessage
contient une raw_transaction_list
non vide.
12. PrdUpdate - Mises à Jour de Pcd
PrdUpdate
est conçu pour demander des mises à jour des listes via de nouvelles versions de Pcd
.
Basé sur le Prd
, avec des ajouts pour spécifier les modifications demandées, y compris de nouveaux attributs ou valeurs à mettre à jour :
Essentiel pour les utilisateurs ou les processus nécessitant de mettre à jour des informations contractuelles ou des attributs d'items, assurant la pertinence et l'actualité des données dans le système.
Par exemple, la mise à jour de la liste des membres permet d'ajouter de nouveaux utilisateurs à un ItemProcess
, et la mise à jour de la liste des ItemProcess
permet de leur affecter un nouveau Role
.
Les PrdUpdate
signalent au réseau, via l'attribut Pcd_new_version_hash
, les nouvelles versions des Pcd
.
Workflow:
Principaux champs des PrdUpdate
:
request_prd
: cf la descripton de la structurePrd
.
12.1. Schéma des flux
Pour simplifier, les PrdConfirm
n'ont pas été représentés dans le schéma.
13. PrdConfirm - Confirmation de Réception
Le PrdConfirm
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.
Les PrdList
, PrdUpdate
, PrdMessage
, PrdResponse
et PrdKeyHello
reçoivent systématiquement un PrdConfirm
suite à leur réception par le destinataire.
code_confirm_confidential
: Un code de confirmation chiffré qui valide l'authenticité et l'intégrité de la réponse, assurant que la confirmation est sécurisée et provient de la source attendue. Dans ce cas, un output spécifique chiffré par la clé KeyConfidential
précise ce code, lequel doit être confirmé dans le PrdConfirm
.
Worflow:
Voir les diagrammes PRDUpdateFlows
, PRDUpdateFlows
et PRDMessageFlows
.
Principaux champs des PrdConfirm
:
request_prd
: cf la descripton de la structurePrd
.code_confirm_confidential
: Code de confirmation chiffré par la cléKeyConfidential
d'unetransaction SP
dans le cas d'un 2FA.
13.1. Schéma des flux
14. PrdResponse - Répondre à une Demande
Le PrdResponse
permet de répondre spécifiquement à des Prd
reçus, facilitant un échange interactif d'informations ou de décisions entre les parties.
Les PrdResponse
sont utilisés pour répondre aux PrdList
, PrdUpdate
, facilitant la fourniture de feedbacks, de confirmations, ou d'instructions supplémentaires en réponse aux demandes initiales. Ils supportent une communication bidirectionnelle sécurisée et vérifiable.
C'est également le moyen par lequel demander des moyens de paiement, de dépôt, ou de preuve, puis de partager le payload de ces actions.
Workflow:
Voir les diagrammes PRDUpdateFlows
et PRDUpdateFlows
.
Principaux champs des PrdResponse
:
request_prd
: cf la descripton de la structurePrd
.shared_secret_key_enc_by_sp_shared_secret
: Clé de chiffrement partagée chiffrée par la cléKeyConfidential
d'unetransaction SP
.shard_enc_by_sp_shared_secret
: Shard chiffré par la cléKeyConfidential
d'unetransaction SP
.
14.1. Schéma des flux
Pour simplifier, les PrdConfirm
n'ont pas été représentés dans le schéma.