Home / Case studies / A provincial work safety assessment platform
Solving 'transcripts can be changed' once and for all with on-chain attestation.
Provincial work safety training and assessment covers a large number of enterprises and workers, and results directly affect eligibility to work.
Traditionally each training institution issues its own certificates, backed by stamps and paper files. Three problems: certificates can be altered; results are not recognised across institutions, so switching schools means retaking the exam; and regulators face high verification costs, so they can only spot-check.
For this kind of system the core requirement is not many features but trustworthy results.
Delivered the AI Integrated Assessment System, covering 7 assessment systems and 9 software modules, split by assessment type.
A SHA-256 fingerprint is computed when each transcript is generated; the fingerprint goes on-chain and the original stays in the business database.
Verification compares fingerprints only and needs no original data, so it is trustworthy without exposing privacy.
The consortium chain runs on 3 nodes covering the training provider, the regulator and a third-party attestation provider; no single node can alter records unilaterally.
The table below lists this project's technical elements so clients can verify them independently.
Project stories without constraints are fiction. This section sets out four constraints: time, site, staffing and compliance.
These constraints directly shape the solution; every problem under 'Key challenges' below is forced out by one of them.
It is not “we worked hard”; it is “what the problem looked like, how we solved it, and what it cost”.
This section is for peers. If you are doing something similar, these points will save you a few detours.
Banning score edits outright is unrealistic — wrong scores have to be fixable. The method: every edit creates a new version, and old versions remain permanently visible.
Chain write speed is unsuited to high-concurrency scenarios. Asynchronous processing plus status flags is the standard answer.
Assume the network will go down in any assessment system aimed at the grassroots.
Talking only about successes is unconvincing. This section covers what we got wrong or did too late.
Doing it again, we would align the data dictionary in version one. Field definitions differ between cities, so aggregated reporting needed extensive mapping — work a unified dictionary could have eliminated at the requirements stage.
We were overly optimistic about on-chain write volume. Tens of thousands of records looked trivial, but queueing under concurrent writes on a consortium chain is very noticeable. Had we known, we would have gone asynchronous from the start.
Mobile adaptation was insufficient. Some cities invigilate on tablets, where the interface was too dense on small screens, so a dedicated invigilation client was built later.