# Journeymen certificates on a Chain ## A new solution to the old problem Trades people in the olden days would apprentice with Masters for a number of years and would collect endorsements (in little books), which would be used later for purposes such as references or an application to a guild of professionals. The problem is to build a platform using blockchain for maintaining such a reputation.  The problem can be stated simply, master craftsmen i) want to issue certificates to the journeymen ii) they want to record the issuance of the certificate on the chain iii) professional guilds want to validate a certificate iv) integrity of certificate itself needs to checked at times. We explain the tasks of creation and validation of a certificate. Let us assume that all the participants have identities on the blockchain. Certificates for us are simple text messages. A Master craftsmen who wants to create a certificate, signs the certificate message using their private key. The signature is appended to the certificate itself. The resulting signed certificate is hashed. The Master then creates a record of the hash on the blockchain. A transaction from the Master to the journeymen with the signed certificate completes the act of the issuance of the certificate. Validation of certificates can be done as follows. If a signed certificate if provided to the verifier (a function in your smart contract), the verifier can query the blockchain to check if the hash of the signed certificate is recorded in the blockchain. It is clear that the whole certificate doesn’t need to supplied for verification, only the hash is needed. Imagine that an applicant to the Electricians guild wants their certificate to be validated by the guild they applied to and not the Plumbers guild. Similarly, we want to validate only those certificates for which we have permissions from the journeymen. This permission slip from the journeymen is again a signed certificate from the journeyman (or a hash of the same). HACKATHON CHALLENGE: Your task is to implement the proposed solution in solidity. Note that the protocol for validation of the certificate itself needs to be defined. Feel free to create functions that add value to the system. Finally, argue why a blockchain based solution is better than the tried and tested method of using the book and seals.