| Algorithm 1. Authentication process in joining private blockchain |
| Require:Utype |
| Ensure:pk, sk, Uid, permit |
| 1: permit = false; |
| 2: {pk, sk} ←KeyGenerator (); |
| 3: IDu ←pk; |
| 4: Utype ∈ {Requester, agent}; |
| 5: if IDu been cleared three times or Blockchain is full then |
| 6: return permit |
| 7: else if IDu ∈ Poolu then |
| 8: permit = true; |
| 9: else if Poolu ←Poolu ∪ {IDu} then |
| permit = true; |
| 10: end if |
| 11: return permit |