Add to Home Screen — iOS

1

Tap the Share button at the bottom of Safari (or top on iPad).

2

Scroll through the share sheet and tap "Add to Home Screen".

3

Tap "Add" in the top-right corner. The brief appears as an app icon on your home screen.

Technology Briefing

Two technologies.
Understand them first.
Decide where they fit.

This briefing explains sharding and private blockchain in plain terms — what each does, what problems each solves generically, how they interact, and how to evaluate whether any given project is a good fit. No project has been assumed. That decision is yours.

Sharding Encryption Private Blockchain 2 Technical Questions Answered
HUB NODE A Shard S1 NODE B Shard S2 NODE C Shard S3 NODE D Shard S4 NODE E Shard S5 Private Blockchain — shared ledger # # # # # #

What a centralized server does —
and where it structurally falls short

Before evaluating an alternative, you need a clear picture of what you already have and what its inherent limits are. These are not implementation failures — they are architectural constraints built into centralized design.

Traditional — Centralized Server
CENTRAL SERVER All data here ! Single point of failure Location A Location B Location C Location D Location E Server down = everything down
Sharding + Private Blockchain
Node A — S1 Shard piece 1 Node B — S2 Shard piece 2 Node C — S3 Shard piece 3 Node D — S4 OFFLINE — OK Node E — S5 OFFLINE — OK 3 of 5 active — system running 2 nodes offline — no data lost Shared ledger across all nodes

Attribute-by-attribute comparison

Attribute Centralized Server Sharding + Private Blockchain
Where is the data? One database on one server (or a mirror of the same server) Split across 5 separate physical nodes in different locations
What happens if one location fails? Everything fails — all users lose access until the server is restored System continues — 2 of 5 nodes can be offline and the quorum still works
Can a database administrator alter a record? Yes — anyone with database access can change or delete records, often without a trace No — a record change is a new block. Previous state is permanently preserved and any change is visible
Can a single employee see an entire sensitive file? Yes — server admin sees all data. Access logs can also be deleted by an admin No — each node holds only an encrypted fragment. Seeing the full file requires a quorum of nodes to agree
Is there an audit trail? Only if you build one separately — and the same admin who can edit data can also edit the log Yes — every action is a block on the chain. The log is the data structure itself. It cannot be separated or selectively deleted
How do two organizations verify a shared fact? One organization emails the other. The receiving party trusts the document because there is no alternative The receiving party queries the blockchain. A cryptographic proof answers the question without sharing the raw database
What does a hacker gain from a breach? The entire dataset — every record, every field, every historical version One encrypted shard fragment — unreadable without 2 other fragments from different nodes they would also need to breach
Setup complexity Lower — one server, one team, one database Higher — multiple nodes, distributed infrastructure, chaincode business logic
Operational cost Lower — one server to maintain Higher — 5+ nodes to maintain, but shared across participating organizations
Right choice when… Data is internal to one organization, non-sensitive, and regulatory audit is not required Data crosses organizations, carries legal/financial weight, and tamper-evidence is a requirement
The honest trade-off

A centralized server is not "wrong." It is simpler, cheaper, and perfectly adequate for many use cases. Sharding and blockchain add genuine value only when the problem involves cross-organization trust, tamper-evidence requirements, or sensitivity that prohibits any single administrator having full access. Applying this architecture to a simple internal database is unnecessary complexity. The decision should be driven by the specific problem — not by the technology's sophistication.

Sharding — splitting data
so no single place has everything

Sharding is a technique for distributing a piece of data across multiple physical locations in a deliberate, mathematical way — so that the data is both safe from single-point failure and inaccessible to any one location in isolation.

Plain-language definition

Take any file — a document, a record, a database row. Sharding cuts it into a fixed number of pieces (commonly 5) using a mathematical algorithm. Each piece is sent to a different physical server or location. No individual piece contains enough information to read the original. To reconstruct the file, a minimum number of pieces (the "quorum") must come together — typically 3 of the 5.

The splitting is not random. It uses a method called Reed-Solomon coding — the same algorithm that lets a scratched CD still play, or a corrupt sector on a hard drive still recover data. It is mathematically proven to work.

Analogy: Imagine splitting a house key into 5 parts and giving one part each to five trusted people in different buildings. No individual person can copy your key — they only have a fragment. But if three people stand together, you can reconstruct the full key and open the door. If one building burns down, you still have 4 parts — enough to reconstruct.

How sharding works — step by step

STEP 01
Original file
Any record, document, or database entry that needs to be protected and distributed
STEP 02
Encrypt first
The file is encrypted with a unique key before splitting — so even a recovered piece reveals nothing
STEP 03
Split into 5
Reed-Solomon algorithm cuts the encrypted file into 5 mathematically related pieces
STEP 04
Store at 5 nodes
Each piece is sent to a different physical server or location. Each server knows nothing about the other pieces
STEP 05
3-of-5 quorum
Any 3 of the 5 nodes can reconstruct the original. 2 offline = still works. 1 compromised = nothing exposed

Without sharding — the single point of failure

A record stored in one place fails in every way simultaneously: hacked, server breaks, power lost, flood, or disgruntled employee — and the entire dataset is gone or exposed in one event.

With sharding — resilience by design

Two of five nodes can go completely offline and the system still reads and writes normally. An attacker who compromises one node gets an encrypted fragment — mathematically useless without the others.

Encryption + sharding = two locks, not one

Encryption protects a piece if it is stolen. Sharding ensures a stolen piece is incomplete. Together, an attacker must simultaneously break encryption AND obtain 3 of 5 pieces — two independent barriers.

No single administrator sees the whole file

Because each node only has a fragment, even a person with full access to one node cannot read a complete record. Viewing a full file requires a quorum — meaning multiple authorized parties must agree to the access request.

Private Blockchain —
a log no one can rewrite

A blockchain is a sequence of records where each entry is mathematically linked to the one before it. Altering any past entry breaks every subsequent link — making tampering immediately detectable. A private blockchain restricts who can participate.

Plain-language definition

Imagine a physical logbook where each page has a unique fingerprint printed on the next page. If you tear out page 5 and replace it, page 6's fingerprint no longer matches — and every subsequent page becomes invalid. The blockchain is that logbook, but digital — and enforced by mathematics rather than by physical seals.

A private (or "permissioned") blockchain adds an access layer: only approved participants can join, read, or write. This is different from a public blockchain like Bitcoin, where anyone can participate anonymously. In a private blockchain, every participant is known and authenticated.

What a block looks like

Block #001 — Genesis
hash: a3f9c2e8...
prev: 00000000
data: System init
Block #002
hash: 7b1d4a91...
prev: a3f9c2e8
data: Record created
Block #003
hash: 2c8e5f3d...
prev: 7b1d4a91
data: Record verified
Block #004
hash: f6a3d0b7...
prev: 2c8e5f3d
data: Record updated
Why tampering is impossible: Block #003's hash includes the content of Block #002. If you change anything in Block #002, Block #002's hash changes. This means Block #003's "prev" field no longer matches — and Block #003's own hash changes, which breaks Block #004, which breaks Block #005... Every node on the network immediately sees the chain is broken. You cannot silently edit history.

Private = permissioned participants

Every node on the network is known, authenticated, and authorized. Unlike public blockchains, there is no anonymous participation. Participants can be organizations, offices, or departments — each with a digital identity (certificate) issued by a central authority.

Every event is timestamped permanently

Every write, every read request, every approval, every change — all go into the chain as new blocks with timestamps. No one can remove a log entry. No one can claim an action happened at a different time. The history is the history.

Shared truth across organizations

When two or more organizations need to agree on a shared fact — a payment was made, a record was verified, an approval was given — the blockchain is their single source of truth. Neither party controls it; both can audit it.

No central database to compromise

Traditional systems have one database that, if breached, exposes everything. A blockchain is replicated across all participating nodes. There is no single server whose compromise corrupts the whole record. An attacker must control more than half of all nodes simultaneously.

Six categories of problems
these technologies address

These are technology-neutral. Any domain — public sector, private enterprise, healthcare, logistics, finance — where these conditions exist is a potential fit.

Data that must survive any single failure

If the loss of one server, one building, or one office should not mean the loss of critical data — sharding distributes so that 2 of 5 can fail completely and the system still runs.

Records that must never be secretly altered

Where document integrity is critical — certificates, approvals, financial records, identity documents — a blockchain provides proof that a record has not changed since it was written. Tampering is immediately detectable.

Sensitive files that no individual should see whole

Personnel records, medical files, financial data — where a single administrator having full access is a liability. Sharding enforces that no individual node, and no single employee with access to one node, can read a complete file.

Cross-organization trust without sharing raw data

Two departments or two organizations need to verify facts about a shared subject but cannot legally or practically share their raw databases. Blockchain proofs let one side verify a claim ("this person is eligible") without receiving the underlying data.

Audits that require a verified timeline

Any process requiring a provable, ordered sequence of events — approvals, payments, inspections, access logs — benefits from a blockchain's immutable chronological record. No one can rewrite the timeline after the fact.

Records that must be portable across locations

When a person, asset, or document moves from one location to another and the receiving location must trust the record without calling the sender, sharding enables cryptographic proof that the record is genuine — no phone call, no paper, no delay.

Six technical questions —
two from Mr. Kashif, four more worth asking

Mr. Kashif's two questions are answered first. Four additional questions — the ones any informed Director should raise — follow with the same level of technical honesty.

Q1

If the internet is down in a district but intranet is available — do updates sync when the main hub is back?

A district's office loses its internet connection but local devices can still communicate with each other over the internal network. Work continues. When connectivity is restored, what happens to everything that was done during the outage?

Short answer

Yes — but the behaviour during the outage depends on a deliberate design choice made upfront. There are two fundamentally different modes, each with a different trade-off. Neither is universally "correct" — the right choice depends on what the data represents.

State 1 · Connected

Normal operation. The district node reads and writes. Every transaction goes to the orderer, gets sequenced, and is confirmed across all nodes.

State 2 · Offline

Intranet only. District devices still talk to each other. The local node still holds all historical data. Design decision applies here (see below).

State 3 · Reconnected

Automatic sync. The node connects to any peer, requests all blocks produced during the outage, and replays them to reach the current state. This is called ledger catch-up.

The two design modes during an outage

Mode A — Read-only during outage

How it works: The district node can read all historical data from its local copy but cannot write new records until it reconnects to the main orderer. Write requests are queued and submitted when back online.

Trade-off: No work can be recorded during an outage. Staff can view records but cannot make changes. Zero risk of conflicting writes.

Best for: Critical records where a conflict would be very costly — financial approvals, eligibility decisions, legal documents.

Mode B — Write locally, sync later

How it works: The district node writes to a local buffer during the outage. When reconnected, local writes are submitted to the orderer, which sequences them against any changes made elsewhere during the same period.

Trade-off: Work continues during outage. Risk of conflicting writes (see Q2 below).

Best for: Non-critical updates — contact information, attendance logs, notes — where minor conflicts are manageable.

What "ledger catch-up" looks like technically

When a node reconnects, the blockchain's gossip protocol automatically finds the closest peer node with a more recent chain state. It requests all blocks from the point of disconnection onward. These blocks are cryptographically verified (each hash chains to the previous) and applied in order. The process is automatic — no human intervention required. On a typical government network with modest data volumes, a node that was offline for 8 hours would catch up in under a minute.

Recommendation for most use cases

Use Mode A (read-only during outage) for any field that affects entitlements, approvals, or payments. Use Mode B (write locally, sync later) for administrative fields like contact details and notes. This gives you operational continuity without risking conflicting decisions on critical data. The system can enforce different modes per field type in chaincode (the business logic layer of the blockchain).

Q2

If the same record is updated in two different districts while one or both are offline — how is that conflict handled?

District A updates a record while offline. District B, also offline or connected, updates the same record at the same time. When they reconnect, the system has two different versions of the same record. Which one is correct, and what happens?

Short answer

In a properly designed private blockchain, this conflict is either prevented by architecture, or detected and resolved by a defined rule. There is no scenario where the system silently picks a version without a traceable, auditable decision. Both versions are always preserved in the chain history.

The conflict scenario — visualised

District A — offline

Updates Record #1247.
Sets status = "Approved"
At 10:34 AM

District B — also offline

Updates Record #1247.
Sets status = "Rejected"
At 10:41 AM

Both reconnect — orderer sees two conflicting transactions

Record #1247 cannot simultaneously be "Approved" and "Rejected". The orderer must make a deterministic decision.

Three resolution strategies — each with different trade-offs

Strategy 1

Prevention by architecture

Use Mode A (read-only during outage) for critical status fields. Neither district can change the status while offline. No conflict possible — because no writes were permitted.

✓ Zero conflict risk · Zero data loss risk

Trade-off: No offline status changes

Strategy 2

Orderer sequences by arrival time

The orderer accepts both transactions but in the order they arrive. District A's "Approved" arrives first — it is accepted. District B's "Rejected" is compared against the accepted version and rejected (version mismatch detected).

✓ Automatic · Fast · Both versions logged

Trade-off: Network latency determines the winner

Strategy 3

Flag for human resolution

Both conflicting versions are written to the chain as separate entries, both marked "CONFLICT". The record is frozen until a designated supervisor reviews both versions and issues a resolution transaction that becomes the canonical version.

✓ No data is discarded · Full audit trail

Trade-off: Requires human action to resolve

How Hyperledger Fabric (the specific blockchain we use) handles this

Hyperledger Fabric uses a mechanism called MVCC — Multi-Version Concurrency Control, borrowed from traditional databases. Every record has a version number. A transaction records what version it read before making a change. When the orderer sequences two conflicting transactions, it checks: "Both transactions claim to update version 3. But version 3 can only have one successor." The first transaction to arrive becomes version 4. The second transaction is rejected because its "read version" (3) no longer matches the committed state (now 4). The rejected transaction is logged. The submitting node is notified. A retry can be triggered manually or automatically.

This means: no data is silently overwritten, both attempts are on the chain forever, and exactly one version is the accepted state.

Design recommendation — for most government use cases

Classify every data field as either critical (status, eligibility, payment, approval) or administrative (address, phone, notes). Apply Strategy 1 (no offline writes) to critical fields. Apply Strategy 2 (orderer sequences) to administrative fields where a later overwrite is acceptable. For any field where both conflicting values need human review, apply Strategy 3 and define the review workflow in the chaincode before deployment. This classification should be done at the project design stage — retrofitting conflict resolution logic is significantly harder.

Q3

If a node is hacked or physically compromised, can the attacker alter past records?

An adversary gains full access to one of the five nodes — they can read everything on that server and write anything they want to its local copy. What damage can they do to the chain's history?

Short answer

No — they cannot alter past records and have them accepted by the network. They can damage their local copy, but every other node immediately detects the inconsistency and isolates the compromised node. History on the blockchain is protected by mathematics, not just by access controls.

Why altering a past record fails

Every block in the chain contains a cryptographic hash of the previous block. A hash is a fixed-length mathematical fingerprint: change a single character in the source data, and the fingerprint changes completely and unpredictably. If an attacker edits Block #47 on their local node, Block #47's hash changes. But every block after it — Block #48, #49, #50 — still contains the old hash of Block #47 in their "previous" field. The chain on the compromised node is now mathematically inconsistent with every other node.

When the network's gossip protocol compares chain states (which it does continuously), every other node sees the mismatch and rejects the compromised node's version. The attacker would need to simultaneously recompute every block from #47 onward — a computationally infeasible task — AND convince the majority of other nodes to accept their version. With a 5-node network, they would need to control 3 nodes simultaneously.

What the attacker does gain

What they get

One encrypted shard fragment — which is one piece of 5. Without the other pieces from other nodes, it decrypts to nothing. Access to the blockchain log on that node — which they can read but cannot alter in a way the network accepts.

What they cannot do

Read any complete record — they only have 1 of 5 fragments. Alter any historical record across the network. Forge a new block that other nodes will accept. Cover their tracks — the intrusion itself becomes a visible chain event.

Important design note

A compromised node should be detected, quarantined, and replaced before it can influence future consensus rounds. This requires monitoring — each node's heartbeat and chain state should be checked continuously. The response playbook (who is notified, how the node is isolated, how it is restored with a verified chain copy) should be defined before deployment, not after an incident.

Q4

How fast is it? If 3 of 5 nodes must agree before anything is confirmed, does that make the system slow?

In a traditional database, writing a record takes milliseconds. If consensus across multiple network nodes is required, does this add a delay that would make the system unusable in practice?

Short answer

No — for the types of records government systems handle, the speed is completely adequate. The key distinction is between reading (fast, local) and writing (slightly slower, requires consensus). In practice, both are fast enough that users do not notice the difference.

Read a record
< 200ms

Local node reads from its copy of the ledger. No network consensus needed. Faster than most web page loads.

Write / update
1 – 3 sec

Transaction submitted to orderer, sequenced, confirmed across quorum nodes. Noticeable but acceptable for record-level operations.

Verify integrity
< 100ms

Checking that a record has not changed is a local hash comparison. Instant. This is the most common operation for audit and verification use cases.

What Hyperledger Fabric is designed for

Hyperledger Fabric (the private blockchain used in this architecture) is benchmarked at roughly 3,500 transactions per second in typical enterprise configurations. A government record system handling thousands of records per day operates far below this ceiling. Slow performance would only become a concern at the scale of a national bank processing millions of transactions per minute — not at government department scale.

The 1–3 second write time is comparable to a user clicking "Submit" on a web form and waiting for a confirmation page. In a well-designed interface, this is invisible — the user sees a loading indicator and the confirmation arrives before they notice a delay.

Q5

Can we store scanned documents, photographs, and PDF files — or only structured data like names and numbers?

Many government records include scanned documents, photographs, certificates as images, and medical reports as PDFs. Can these be stored in the sharded blockchain system, or is it limited to database-style structured records?

Short answer

Large binary files should not go directly on the blockchain or into the shard structure — but they can be securely linked to it. The correct architecture stores the file on regular storage and stores only its cryptographic fingerprint on the chain. The fingerprint is small, fast, and proves the file is genuine and unchanged.

What NOT to do — store files directly

Putting a 5MB scanned PDF directly into a blockchain transaction bloats the chain rapidly. A 1,000-record system with PDF attachments would produce gigabytes of chain data. Every node must store a full copy. Performance degrades. The blockchain becomes unmanageable within months.

What TO do — hash-linked storage

Store the PDF on a regular file server or cloud storage. Store the file's SHA-256 hash (a 64-character fingerprint) on the blockchain. When anyone downloads the file and checks its hash against the chain, they instantly know whether the file is the original or has been modified — without the chain ever holding the file itself.

How hash-linking works in practice

SHA-256 produces a unique fingerprint for any file. Change a single pixel in a photograph or a single character in a PDF and the fingerprint changes completely. It is computationally impossible to produce two different files with the same SHA-256 fingerprint. This means: the hash is the proof of authenticity. Storing it on an immutable blockchain means the proof is permanent, auditable, and independent of the file storage system.

Practical example: A medical assessment PDF is uploaded. The system computes its SHA-256 hash and records it on the blockchain along with a timestamp and the uploading officer's identity certificate. Three months later, someone queries the file. They download the PDF, recompute its hash, and compare against the chain. If the hashes match, the file is provably the original. If they differ, the file has been altered — and the chain record shows when and by whom the original was certified.

Architecture recommendation

Use the blockchain to store record metadata and hashes (fast, small, permanent). Store the actual binary files (PDFs, images, scans) on a government-approved file server or secure cloud storage. Link the two with the hash. This gives you tamper-evidence for files without making the blockchain unmanageable.

Q6

What happens to the data if we exit this system, switch vendors, or the implementing company shuts down?

Lock-in is a legitimate concern for any director. If the organization decides to stop using this architecture, or if the technology partner is unavailable, what happens to the records that are stored in the shards and blockchain?

Short answer

The data is yours, in open formats, with no dependency on the technology vendor. Hyperledger Fabric is open-source software maintained by the Linux Foundation — not a proprietary product that can be switched off. The ledger data is stored in standard database formats that any system can read.

What you own
  • The blockchain ledger — stored in LevelDB or CouchDB, both open standards any developer can read
  • All shard data — held on servers that your organizations control
  • The private keys for your nodes — which means only you can authorize access to your organization's data
  • The full audit trail — permanently readable even after the system is decommissioned
Exit procedure
  • 1. Reconstruct all sharded records (quorum of 3 of 5 nodes is sufficient) and export to a standard database format
  • 2. Export the full blockchain ledger as a JSON archive — every block, every transaction, permanently readable
  • 3. Migrate the exported data to any replacement system. The chain history serves as a tamper-evident archive of everything that happened while the system was in use

What "open source" means for vendor independence

Hyperledger Fabric is maintained by IBM, Red Hat, Walmart, SAP, and over 200 other organizations under the Linux Foundation. No single company controls it. If any one implementation partner disappears, the software continues to exist, continues to be supported, and any other developer can pick up and operate the existing nodes. Contrast this with a proprietary cloud database service — if that vendor shuts down or stops supporting the product, your data and your system are at risk.

The one area where exit complexity is real: the chaincode (business logic) written specifically for your use case will need to be re-implemented or maintained by whoever takes over. This is the custom code layer — the rules about what quorum thresholds apply, what conflict resolution strategy is used, what fields require validation. This code should be fully documented and owned by your organization from day one.

How QR codes plug into
this system — and what they reveal.

A QR code on a document does not store the document. It stores a pointer — a record ID and a fingerprint — that allows anyone with the right access level to verify authenticity against the blockchain. No personal data ever enters the QR code itself.

The core principle

Think of a QR code in this system the way you think of a passport number. The number on its own tells you nothing about the person — but it lets the right authority look up the verified record in a trusted system. The QR code does the same: it's a verifiable reference, not a data store. What the scanner sees depends entirely on their access level — not on what's in the QR.

The verification flow — step by step

01
Document created
Record is sharded and anchored to the blockchain. A Merkle root is stored on-chain.
02
QR generated
Record ID + document hash + verification URL encoded into a QR. Signed by the issuing node. Printed on or embedded in the document.
03
Scanner reads QR
Any phone camera or purpose-built scanner reads the QR. The device sends a request to the verification endpoint — NOT to the blockchain directly.
04
API checks blockchain
The verification API looks up the record ID on the chain, compares the hash, checks the QR signature, and evaluates the scanner's access tier.
05
Result returned
The scanner receives exactly what their access tier permits — from a simple ✓ Valid to a full claim verification. Nothing more, ever.
LatticeVault · Verify
rec_id + hash only

What is encoded in the QR — and what is not

Field
What it contains
Personal data?
record_idA random UUID (e.g., 3f8a2b1c-…). Cannot be reverse-engineered into personal data.None
doc_hashSHA-256 fingerprint of the document. Proves the document's contents haven't changed. Not reversible to the original.None
versionWhich version of the record this QR was issued for. Lets the verifier confirm this isn't an outdated certificate.None
issued_atTimestamp of QR generation. Used to detect expired or prematurely issued verification codes.None
endpointURL of the verification API: https://verify.example.gov.pk/v1/checkNone
node_sigDigital signature from the issuing node's private key. Proves the QR was generated by a legitimate system node, not forged.None
Name / CNIC / addressNot in the QR. Never encoded. Cannot be extracted by anyone who scans the code.Not present

Who can scan — and what each level sees

Access is tiered. The QR is the same for everyone. What the verification API returns depends entirely on who is asking and what credentials they present.

T0
Who
Anyone — public, no account required
Device needed
Any smartphone camera
Credential required
None

They see

  • ✓ AUTHENTIC or ✗ INVALID status
  • Document issue date
  • Issuing organisation name only
  • Whether document has been revoked

They cannot see

  • Any personal data whatsoever
  • Who else has scanned this QR
  • Record version history
  • Any claim details about the holder
T1
Who
Registered organisations — employers, universities, hospitals
Device needed
Purpose-built verification app + API key
Credential required
Registered API account + rate-limited key

They see

  • Authenticity confirmation
  • Answers to specific pre-approved claims only (e.g., "Is this certificate valid?" → YES/NO)
  • Certificate expiry date
  • Whether claim is current or historical

They cannot see

  • Personal information (name, ID, address)
  • Claims they haven't been pre-approved to query
  • The underlying record or shard data
  • Other organisations' verification activity
T2
Who
Government departments, courts, licensed auditors
Device needed
Secure terminal with org certificate
Credential required
Organisation certificate (X.509) + role permission in Fabric MSP

They see

  • Full record metadata (version, timestamps)
  • Modification history (what changed, when, by which node)
  • Verification event log (how many times queried, by which tier)
  • Node provenance (which nodes hold which shards)

They cannot see

  • The actual record content (still requires quorum)
  • Identities of Tier 0 or Tier 1 scanners (blinded)
  • Other records they are not authorised to inspect
T3
Who
Quorum holders only (3 of 5 authorised organisations)
Device needed
Secure terminal + HSM key access
Credential required
3 of 5 node operators must each authenticate via their HSM

They see

  • The fully decrypted, reconstructed record
  • All historical versions of the record
  • Complete audit trail of every access
  • Originating data and certifying officer details

Important constraints

  • This access event is itself recorded on the blockchain
  • All 3 authenticating operators are logged
  • Cannot be performed by any single organisation alone
  • The reconstruction event is permanently auditable

Does scanning leak any information?

What a Tier 0 scan cannot reveal

A stranger who scans the QR on a printed certificate using their phone camera learns: this document is authentic (or not). That is all. They learn no name, no identification number, no address, no medical or personal details. The QR is mathematically equivalent to a barcode on a product — it references a record without containing one.

What happens to the scanner's identity

Tier 0 scans are blinded: the verification API records that a record was queried (for rate-limiting) but does not log the scanner's IP address or device identity. Tier 1–3 scans are logged with the querying organisation's certificate, but individual employee identities are not stored.

Can someone bulk-scan QR codes to harvest data?

No. The verification API enforces per-IP and per-API-key rate limits. A Tier 0 scanner can perform a limited number of queries per hour. Tier 1+ scanners are rate-limited by their API agreement. Even at maximum rate, a scan returns only a validity confirmation — no data accumulates. There is nothing to harvest at Tier 0.

Can the QR reveal information if decoded manually?

No. Decoding the QR with any standard QR reader produces only a record UUID, a hash string, a timestamp, and a URL. None of these are reversible into personal data. The UUID is randomly generated. The hash cannot be reversed. The URL simply points to the verification API, which enforces the same tier controls as any other scan.

Why a forged or copied QR code fails

Copying a QR from one document to another: The QR contains a hash of the original document's contents. If a QR from Document A is placed on Document B, the verification API recomputes the hash of Document B and compares it against the hash stored on-chain for that record ID. The hashes won't match — the scan returns ✗ INVALID immediately.

Generating a fake QR with a valid-looking record ID: The QR includes a digital signature from the issuing node's private key. Forging this signature would require breaking the node's cryptographic key — computationally infeasible with standard 256-bit elliptic curve cryptography. The verification API checks the signature on every scan before querying the chain. A QR that fails signature verification is rejected before the blockchain is even consulted.

Replaying an old QR after a record is revoked: The blockchain holds the current version and revocation status. An old QR that points to a revoked or superseded record returns a clear "REVOKED — superseded on [date]" response at all tiers, regardless of when the QR was originally generated.

How to evaluate whether a project
is a good fit for these technologies

These technologies are not the right answer for every problem. This framework gives you the criteria to evaluate a candidate project before committing to the architecture.

Strong fit — consider this architecture when…
  • Multiple separate offices, departments, or organizations need access to the same records — and trust between them is limited
  • The data is sensitive enough that no single person should hold the complete file
  • An immutable audit trail of every action is a legal, regulatory, or governance requirement
  • Records must survive the complete failure of any single node or location
  • Cross-organization verification is needed but raw data sharing is legally or politically prohibited
  • Fraud, forgery, or tampering of records is a documented existing problem
Weak fit — reconsider when…
  • A single organization manages all the data with no cross-organization sharing — a regular database is simpler and cheaper
  • The data changes extremely frequently (thousands of writes per second) — blockchain consensus adds latency
  • The data is non-sensitive and public — sharding adds complexity without adding protection
  • There is no need to prove what happened historically — if audits are not required, the blockchain overhead is unnecessary
  • The team does not have capacity to manage node infrastructure across multiple locations — operational overhead is real

Quick evaluation table — match problem type to technology

Problem type Sharding Private Blockchain Verdict
Single server holds critical records — one failure loses everything Solves this Complements Sharding is the primary fix
Documents or records are being forged or tampered with Partial Solves this Blockchain is the primary fix
No single person should see a complete sensitive file Solves this Not relevant Sharding only
Two organizations must verify shared facts without sharing databases Partial Solves this Blockchain proof layer
An immutable, auditable log of every action is required by law or policy Not relevant Solves this Blockchain only
Records must be verifiable across multiple physical locations without phone calls Enables this Proves authenticity Both together
Records must survive the failure of up to 2 locations simultaneously Solves this Partial Sharding is primary
Offline district needs to continue working and sync when reconnected Local copy helps Gossip sync Both — with design choice on write mode

What a node hosts.
What a shard holds.

Understanding what physically sits on each server — and what each encrypted fragment actually contains — is the foundation for sizing, costing, and designing a large-scale deployment.

Node — internal layer view
PEER NODE
L1
Blockchain Ledger
Full copy of all blocks committed to the network · ~500 bytes / tx
L2
World State Database
CouchDB · Current value of every record, derived from the ledger
L3
Shard Fragment Storage
MinIO · AES-256-GCM encrypted blobs, indexed by record UUID
L4
MSP Identity Certificate
X.509 · Cryptographic identity, signs every transaction and peer message
L5
Chaincode Runtime
Go · Isolated Docker container · Executes quorum rules and business logic
L6
Gossip Service
P2P sync · Block propagation · Ledger catch-up on reconnect
HSM · Encryption Keys — NOT stored on this node · Held in each org's Hardware Security Module
Shard — how a record is distributed
ORIGINAL RECORD
Any document, database row, or certificate
Encrypt + Split
AES-256-GCM encryption → Reed-Solomon 3-of-5 splitting
S1
Node A
~⅓ size
S2
Node B
~⅓ size
S3
Node C
~⅓ size
S4
Node D
OFFLINE
S5
Node E
OFFLINE
3 of 5 nodes active — system fully operational
Private Blockchain — Merkle root of each shard anchored on-chain
#a3f9c2
#7b1d4a
#2c8e5f
#f6a3d0 ←
#d1b49e
#9e2741
···
Any 3 of 5 shards → reconstruct the original record
What a Node Contains
L1

Blockchain Ledger (full copy)

A complete, chronological record of every transaction ever committed to the network — from the genesis block to now. Every peer holds the same ledger. No single node's copy is more authoritative than any other's.

Storage: ~500 bytes/tx · Grows ~5GB/month at 300K txs/day
L2

World State Database

A fast-access index of the current value of every record — the "latest version" derived by replaying all ledger transactions. Enables instant queries without re-reading the entire chain history.

Engine: CouchDB 3.x (supports rich JSON queries) or LevelDB
L3

Shard Fragment Storage

The encrypted data pieces for records assigned to this node. Each node holds exactly one fragment per record (e.g., Shard S2 of every record in its scope). The fragment is an encrypted binary blob — unreadable without the key and the other pieces.

Format: AES-256-GCM encrypted blobs · Indexed by record UUID
L4

Digital Identity Certificate (MSP)

A cryptographic certificate issued by the network's Certificate Authority. It proves which organization this node belongs to. Used to sign every transaction and authenticate every peer-to-peer message. Cannot be forged without the CA's private key.

Standard: X.509 TLS certificate · Managed by Fabric MSP
L5

Chaincode Runtime (Business Logic)

The executable code that defines business rules — quorum thresholds, eligibility checks, conflict resolution policies. Runs in an isolated Docker container. When a transaction arrives, the chaincode validates it against the rules and produces an endorsement response.

Language: Go · Container: Docker Engine 24+ · Isolated sandbox
L6

Gossip Service

The peer-to-peer communication layer. Continuously shares new blocks with all known peers, detects nodes that go offline, and orchestrates ledger catch-up when a node reconnects. No central coordinator — nodes find each other and self-organize.

Protocol: Hyperledger Fabric Gossip (TCP over TLS)
What a Single Shard Contains
record_id
UUID v4 uniquely identifying which record this shard belongs to. Used to index and retrieve the shard during quorum assembly.
shard_index
Integer 1–5 indicating which piece this is (S1, S2, S3, S4, or S5). Required by Reed-Solomon to reconstruct the original — pieces must be combined in correct indexed order.
data_fragment
The encrypted binary data — one Reed-Solomon piece of the original record, encrypted with AES-256-GCM. Unreadable alone. Approximately 1/3 the size of the original (3-of-5 scheme), so 5 shards total ≈ 1.67× original size.
fragment_hash
SHA-256 hash of this specific data_fragment. Recomputed on every read to detect silent corruption (bitrot, storage errors). Mismatch triggers an alert and fallback to a healthy copy.
record_version
Monotonically increasing integer. When a record is updated, new shards with version N+1 are created. Previous shards (version N) remain on the chain — immutable history. The world state DB tracks the current version.
created_at / node_id
Timestamp of shard creation and the identity of the issuing node. Both are signed into the accompanying blockchain transaction, creating a verifiable provenance chain for every shard.
encryption_key
NOT stored on the node. The encryption key is split via Shamir's Secret Sharing across each organization's Hardware Security Module (HSM). This means the node operator cannot decrypt the shard even with full server access.
Reed-Solomon 3-of-5 at a glance
5
shards created per record
3
minimum needed to reconstruct
2
nodes can fail — zero data loss
Hardware & Software Specification — Large-Scale Production Deployment

Sized for 10M – 100M records across 5+ organisations

These specifications are based on Hyperledger Fabric production deployments and scaled for government-grade reliability. All figures assume 3-of-5 shard architecture with Raft consensus ordering.

Peer Node (per participating organisation)
CPUIntel Xeon Gold 6338 · 32 cores
RAM128 GB DDR4 ECC Registered
NVMe (hot)4 × 2TB NVMe SSD · RAID-10
SAS (archive)2 × 8TB SAS · RAID-1
NetworkDual 25 Gbps bonded fiber NIC
SecurityTPM 2.0 · HSM (PKCS#11)
PowerDual 1600W PSU · Online UPS
OSRHEL 9 / Ubuntu 22.04 LTS Server
Est. cost~Rs. 35 – 55L per node
Orderer Node (minimum 3, Raft consensus)
CPUIntel Xeon Silver 4316 · 20 cores
RAM64 GB DDR4 ECC
NVMe2 × 1TB NVMe SSD · RAID-1
NetworkSingle 25 Gbps fiber NIC
SecurityTPM 2.0 · Secure Boot
PowerDual 800W PSU · Online UPS
OSRHEL 9 / Ubuntu 22.04 LTS
Note3 orderers = 1 fault tolerant · 5 orderers = 2 fault tolerant
Est. cost~Rs. 18 – 28L per orderer
Layer Technology Role
BlockchainHyperledger Fabric 2.5 LTSPermissioned distributed ledger. Peer nodes, orderers, chaincode, MSP. Maintained by Linux Foundation — 200+ enterprise contributors.
World State DBApache CouchDB 3.xFast JSON document store for current record state. Enables complex queries (range, index) without replaying the full chain. One CouchDB instance per peer.
Ledger StorageRocksDB (embedded)High-performance key-value store embedded in Fabric peer for raw block and private data storage. No separate installation required.
Shard StorageMinIO (S3-compatible)Object storage for encrypted shard fragments. Content-addressable by record UUID + shard index. Each node runs its own MinIO instance, air-gapped from others.
ChaincodeGo 1.21+ · Docker 24+Business logic (rules, quorums, conflict resolution) written in Go and deployed as isolated Docker containers. Each chaincode version is immutable once deployed to the channel.
Key ManagementHashiCorp Vault + PKCS#11HSM-backed secrets management. Shamir key shares stored in Vault instances on each organisation's HSM. Vault handles certificate rotation and key ceremonies.
OrchestrationKubernetes 1.29 + BevelHyperledger Bevel automates Fabric node provisioning on Kubernetes clusters. Declarative YAML configs for multi-cloud, multi-organisation deployment. Helm charts for all components.
API GatewayNGINX + Fabric Gateway SDKREST/JSON interface exposed to consuming applications (portals, dashboards, verification APIs). NGINX handles TLS termination, rate limiting, and load balancing across peer endpoints.
MonitoringPrometheus + GrafanaReal-time metrics from all nodes — block height, transaction latency, peer connectivity, shard storage usage, chaincode execution time. Alerting via PagerDuty or similar.
CI/CDGitLab CI / TektonAutomated chaincode testing, staging deployment, and production release pipeline. Chaincode changes require multi-organisation sign-off before deployment to the live channel.
Storage and throughput — at scale
10M records · Per node
~150 GB
Shard fragments (~100GB) + Ledger (~25GB) + World state (~20GB) + Overhead (~5GB)
100M records · Per node
~1.4 TB
Shard fragments (~900GB) + Ledger (~250GB) + World state (~200GB) + Overhead
Transaction throughput
3,500 TPS
Fabric peak (optimised config). Government workloads typically 50–200 TPS sustained, well within limits.
< 200ms
Read latency (local)
1 – 3s
Write confirmation (consensus)
< 100ms
Integrity verification
99.95%
Availability target (5-node cluster)