PEA Process Overview
This page provides a comprehensive outline of the Project Enrollment Authority (PEA) process, detailing each step from receiving chip data to final validation.
The PEA process ensures the proper registration, integration, and validation of projects within the system.
Initial Steps
Receive Chip Data: PEA receives a list of chipIds and an enrollmentId from the manufacturer.
Optional Verification: PEA may consult the ManufacturerRegistry to ensure all chips are correctly enrolled by the manufacturer.
Sign Chip Keys: PEA signs the public key of each chip using their own private key/public key pair (certificate). This key is termed the projectPublicKey, defined per project.
Sign Signature: PEA signs the resulting signature from Step 3 with its matching chip.
Store Certificate: PEA stores the certificate in IPFS.
Project Registrar Deployment
Deploy ProjectRegistrar: PEA deploys ProjectRegistrar, including:
FieldDescriptionPEARegistrar Address
Address of the PEARegistrar.
ChipRegistry Address
Address of the ChipRegistry.
Sign ProjectRegistrar Address: PEA signs the deployed ProjectRegistrar address with the same key used for all chip signings.
Project Registration
Add Project: PEAManager calls
addProject
on its PEARegistrar using the "owner" address and providing:FieldDescriptionEnrollment nameHash
The nameHash for project enrollment.
ProjectRegistrar Address
The address of the ProjectRegistrar.
Project Public Key
The project public key used in Step 3.
merkleRoot
The Merkle root for the project.
Transfer Policy
The policy for transferring ownership.
Signed Message
A message of the ProjectRegistrar address signed using the PEA public key.
URI
URI pointing to the project's claim data location.
PAL and ChipRegistry Integration
Register SubNode: PEARegistrar calls PALRegistry with rootNode, nameHash, and ProjectRegistrar address to create a subNode and set ProjectRegistrar as the owner.
Update ProjectRegistrar: PEARegistrar writes the subNode to its rootNode state and pushes the ProjectRegistrar address into its projects array.
Add Project Enrollment: PEARegistrar calls
addProjectEnrollment
on ChipRegistry, passing:
Registrar Address
Address of the Registrar.
PEA's Public Key
The public key of PEA used for certificate signing.
Signed Registrar Address
Registrar address signed using PEA's public key.
Merkle Root
Merkle root for chip claiming (same as in Step 8).
Transfer Policy
Transfer policy for the chip.
URI
URI pointing to the project's claim data location.
Final Validation
Verify PEARegistrar
ChipRegistry checks that the calling address is a PEARegistrar.
Validate Ownership
ChipRegistry verifies that the signed address resolves to the PEA's public key, ensuring the submitted certificates during the claim process are signed by this address.
Store Merkle Root
Save the merkle root to ChipRegistry in the enrollment mapping under the ProjectRegistrar address.
Last updated