Skip to content
OnlyProjects
MCA · BlockchainFor educational purposes only
Code included

Permissioned Blockchain Ledger for Vehicle Ownership Transfer and Hypothecation at RTO Offices

Four nodes — two RTOs, a transport-department auditor and a financier — agree on signed ownership, loan and NOC events for every vehicle

Mapped to your syllabusVTU MCA 2022 Scheme · 22MCA44 Project Phase-2 · Semester 4

Overview

1 min read

When a vehicle changes hands in India, the paperwork is fragile. The buyer and seller sign the transfer forms, the financier releases or records a hypothecation, an NOC travels between RTOs — and the RC's true history exists as scattered entries that a forger can misrepresent: a vehicle sold with an unpaid loan, a car hypothecated to two banks, an edited certified copy.

RC-Chain is a lab-scale permissioned blockchain modelling exactly this workflow for a fictional Karnataka transport-office network. Four peer nodes — RTO-East, RTO-West, a Transport Department auditor and a financier (Sahakara Bank) — run the same Node.js service sharing one append-only log. Every lifecycle event — registration, transfer of ownership, hypothecation added, hypothecation terminated, NOC issued, scrapped — is signed with Ed25519 by the party that owns the action (seller and buyer sign transfers; the bank signs loan events; the clerk countersigns), validated by the leader against a vehicle state machine (no transfer while a hypothecation is active without the bank's consent; no second loan on a financed vehicle), replicated under a Raft-style leader with a 3-of-4 quorum, and committed as a hash-chained block whose batch Merkle root is anchored at the auditor.

The consensus layer is genuinely exercised, not decorative: the project measures throughput and latency across 1-, 3- and 5-node lab configurations, kills followers and leaders mid-run, and proves a tampered store is caught by cross-node comparison — an advanced VTU MCA project where hash chains, signatures, Merkle trees and quorum consensus all do visible work.

Relevant for
Karnataka
Level
Advanced · 16 weeks · team of 3
Common at
Visvesvaraya Technological University, IGNOU, Anna University, Chennai
Updated
Nov 2026

Syllabus alignment

VTU · MCA 2022 Scheme

22MCA44 · Project Phase-2 · Semester 4 · 16 credits · CIE 100 + SEE 100

Subjects this project applies
  • 22MCA21 DBMS (per-node store design, transactions)
  • 22MCA24 Web Technologies (REST API and console)
  • 22MCA335 NoSQL (append-only log modelling ideas)
  • 22MCAL36 Data Analytics with Python (throughput/latency plots)
How it is evaluated

50 : 25 : 25 (report : presentation : Q&A); plagiarism check mandatory

Also fits: IGNOU MCA_NEW — MCSP-232 guidelines (2025), Anna University MCA Regulation 2021, Osmania University 2-year MCA 2022-23.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

Vehicle lifecycle events in India are created by parties who do not share a system: buyers and sellers sign transfers, financiers record hypothecation, and RTOs register, issue NOCs and scrap entries. Because each office keeps its own reconcilable-or-not copy, the record can be misrepresented: a vehicle is sold while its loan is still open, hypothecated to two financiers at once, or a certified copy is edited after issuance. There is a need for a shared, append-only ledger in which every lifecycle event is signed by the party responsible, ordered through quorum consensus among mutually independent offices, anchored so that any later alteration of any single copy is detectable, and guarded by a state machine that refuses the illegal transitions the paperwork currently allows. The project delivers exactly this as a four-node permissioned network with a measurable consensus layer, not a mock-up.

Synopsis

Abstract

This project builds RC-Chain, a permissioned blockchain application for vehicle registration-office workflow. Four peer nodes (two RTOs, a department auditor, a financier) replicate an append-only, hash-chained log of signed lifecycle events — registration, transfer, hypothecation, its termination, NOC and scrap — using a Raft-style leader election and a three-of-four commit quorum. A per-vehicle state machine enforces the Act's workflow (no transfer under an active loan without bank consent; no double hypothecation), Merkle roots are anchored at the auditor, and a cross-node verifier detects tampering. Experiments measure throughput and latency across cluster sizes and under leader failure.

Introduction

The registration certificate (RC) is the legal identity of a vehicle. Its events — transfer, hypothecation and its termination, NOC — are created by different offices and banks, precisely the situation where shared, tamper-evident records matter. A permissioned network models this honestly: known nodes, signed actions, quorum agreement, no tokens or mining.

Existing System and Its Limitations

  • Centralised registries hold the record, but office-level copies — registers, certified extracts, bank files — are mutable and unreconciled.
  • A sale against an outstanding loan surfaces only when a clerk notices the missing bank termination.
  • The same vehicle has been hypothecated twice by submitting paperwork to different offices; detection is manual, after the fact.
  • Limitations: no shared append-only history, no party-signed actions, no automatic cross-check, no proof that a record copy is unaltered.

Proposed System

  • Signed events: every action carries Ed25519 signatures — seller plus buyer for transfers, financier for loan events, clerk countersigning — verified before acceptance.
  • State machine: per-vehicle status with legal-transition rules; illegal proposals are rejected before consensus.
  • Quorum replication: a Raft-style leader orders events into hash-chained blocks; a block commits when three of four nodes acknowledge; heartbeats and timeouts drive leader re-election.
  • Anchoring and audit: each block's Merkle root is anchored at the auditor with the leader's signature; inclusion proofs show single events against it.
  • Tamper evidence: the verifier compares all nodes' chains and reports the first divergent block; a modified store cannot survive.
  • Experiments: throughput and latency for 1-, 3- and 5-node configurations, follower-kill and leader-kill scenarios, plotted with Python.

Feasibility Study

  • Technical: all pieces are standard — node:crypto for SHA-256 and Ed25519, SQLite (WAL) per node, Docker Compose boots the four-node lab on a 16 GB laptop, matplotlib plots the runs.
  • Economic: zero licence cost; everything is open-source.
  • Operational: the console mirrors clerk and auditor desks; seed data covers 40 vehicles across all states, including a double-hypothecation attempt rejected live.
  • Legal fit: the workflow mirrors Forms 29/30 and 34/35 practice under the Motor Vehicles Act, 1988; the project is a teaching replica, not a national-registry replacement, and stores no Aadhaar or PAN data.

Objectives

  1. 01Design a hash-chained, append-only block log for vehicle lifecycle events (registration, transfer, hypothecation, termination, NOC, scrap) replicated identically across four peer nodes.
  2. 02Implement Ed25519 party signatures (seller, buyer, financier, clerk) with node-side verification before any event enters consensus.
  3. 03Implement a Raft-style leader election with heartbeats and timeouts and commit events only on a three-of-four quorum of acknowledgements.
  4. 04Model the per-vehicle state machine and reject illegal transitions: transfer under active hypothecation without bank consent, double hypothecation, transfer of a scrapped vehicle.
  5. 05Anchor each committed block's Merkle root at the auditor node with the leader's signature and produce inclusion proofs for individual events.
  6. 06Build a cross-node chain verifier that compares node stores and reports the first divergent block, demonstrating tamper detection.
  7. 07Measure and plot throughput and latency for 1-, 3- and 5-node configurations and under follower-kill and leader-kill fault injection.
  8. 08Provide a React console with clerk, financier and auditor roles, and seed 40 vehicles across all lifecycle states including rejected illegal attempts.

Scope

In scope

  • One fictional Karnataka transport-department network: two RTO nodes, one auditor node, one financier node; three human roles (clerk, bank officer, auditor) on a React console.
  • Full event lifecycle with party signatures, quorum replication, leader election, Merkle anchoring, cross-node verification, fault-injection experiments and CSV/JSON exports of the audit trail.

Out of scope (v1)

  • Integration with the national Vahan registry or real RTO software — the project is a teaching-scale replica with fictional offices and vehicles.
  • Public-chain deployment, tokens or proof-of-work; membership is fixed and permissioned.
  • Biometric or Aadhaar-based identity of owners — parties are referenced by licence-style internal codes only; no government ID numbers are stored.
  • Mobile apps; the console is responsive web. Smart-contract platforms (Fabric/Ethereum private networks) are future work — the consensus layer is purpose-built so the class can measure it.

Methodology

The project spans 16 weeks across the VTU MCA Phase-2 semester and follows an incremental SDLC with risk-first ordering — the quorum replication and election logic are the hardest parts, so they are built and fault-tested before any console polish. The three-member split: Member A owns the node core (log, quorum, election), Member B owns signing, intake validation and the console, Member C owns the state machine, anchoring, verifier and experiments; all three write tests for their own modules.

PhaseWeeksActivitiesDeliverable
Phase-1 bridging1–2Carry forward the Phase-1 report (22MCAL35): literature, SRS, protocol design of the quorum and state machineApproved Phase-1 design
Design freeze3Event/block formats, signature scheme, transition rules, REST contract, experiment planDesign document
Increment 14–6Node service, SQLite store, hash-chained blocks, single-node modeVerifiable single node
Increment 27–9Quorum replication, heartbeats, leader election, commit protocol under DockerFour-node consensus lab
Increment 310–11Party signatures, intake validation, vehicle state machine and rejection rulesSigned, rule-checked ledger
Increment 412Merkle anchoring, inclusion proofs, cross-node verifier, tamper drillAudit toolchain
Experiments131/3/5-node throughput and latency runs, follower-kill, leader-kill; Python plotsExperiment report
Testing & docs14Vitest/Supertest suites, UAT, screenshotsTest report
Report & viva15–16Phase-2 report (50%), presentation (25%), Q&A rehearsal (25%)Final submission

Testing approach: unit tests for hash chaining, signature verification and every state-machine transition including all illegal ones; Supertest integration tests for the commit path (quorum reached, quorum blocked with a node down); fault-injection scripts that stop containers mid-run and assert recovery without committed-data loss; golden-vector tests with pre-computed signatures; and a tamper drill that edits one node's store and asserts the verifier names the divergent block.

Architecture & tech stack

4 diagrams · 8 technologies · 3 min read

  • Node.js 20 + Express (peer nodes)
  • JavaScript (ES modules)
  • node:crypto — SHA-256 + Ed25519 (RFC 8032)
  • SQLite (per-node append-only store)
  • React (clerk and auditor console)
  • Python + matplotlib (consensus experiments)
  • Vitest + Supertest
  • Docker Compose (multi-node lab)

RC-Chain is a replicated service with a thin console. Each peer node is an Express application holding an append-only SQLite store of blocks; nodes know each other from a membership file with Ed25519 public keys. A client request never writes directly — it goes to the current leader, which validates signatures and state rules, appends the event as a new block (hash-chained to the previous), replicates it to followers, and commits on three acknowledgements out of four. Followers acknowledge by verifying the block's hash and the embedded signatures; a node never accepts a block whose entries it cannot verify. Heartbeats maintain leadership; on timeout, term numbers increase and an election picks a new leader with the longest committed chain.

flowchart TD
  K(["Clerk / bank officer"]) -->|"event proposal (signed)"| LDR["Leader node"]
  LDR --> V["Verify party signatures + state rules"]
  V -->|"valid"| AP["Append block: events + prevHash + term + Merkle root"]
  AP --> R1["Replicate to followers"]
  AP --> F2["RTO-West node"]
  AP --> F3["Auditor node (anchors roots)"]
  AP --> F4["Financier node"]
  F2 -->|"ack after verification"| CM["Commit when quorum = 3 of 4"]
  F3 -->|"ack after verification"| CM
  F4 -->|"ack after verification"| CM
  R1 --> CM
  CM --> ACK["Commit receipt to proposer"]
  ST[("Per-node SQLite: append-only blocks")] --> VF["Cross-node verifier: compare hashes, report first divergence"]
  ST --> MK["Inclusion proof: event → Merkle root → anchor"]
  HB["Heartbeat timeout → election with term numbers"] --> LDR

Event and vehicle state model

erDiagram
  NODE ||--o{ BLOCK : appends
  BLOCK ||--o{ EVENT : contains
  EVENT }o--|| VEHICLE : about
  EVENT }o--o| PARTY_SIGNATURE : "carries"
  BLOCK ||--|| MERKLE_ROOT : "anchors"

  NODE {
    string node_id PK
    string role
    string public_key
    int term
  }
  BLOCK {
    int height PK
    string prev_hash
    string root_hash
    int term
    datetime committed_at
  }
  EVENT {
    string event_id PK
    int height FK
    string vehicle_id FK
    string type
    string payload_json
    datetime proposed_at
  }
  PARTY_SIGNATURE {
    string event_id FK
    string signer_role
    string signature
  }
  VEHICLE {
    string vehicle_id PK
    string reg_no UK
    string owner_code
    string state
    boolean financed
  }

Vehicle state machine

flowchart TD
  R["REGISTERED"] -->|"transfer signed by seller + buyer, no active loan"| T["TRANSFERRED"]
  T -->|"hypothecation signed by financier"| H["HYPOTHECATED"]
  R -->|"hypothecation signed by financier"| H
  H -->|"termination signed by financier"| LC["LOAN CLOSED"]
  LC -->|"transfer"| T
  H -->|"transfer attempt"| X1["REJECTED: bank consent required"]
  H -->|"second hypothecation attempt"| X2["REJECTED: already financed"]
  T -->|"NOC issued; entry at other RTO"| NOC["NOC ISSUED"]
  NOC -->|"scrap certified"| S["SCRAPPED"]
  LC -->|"scrap certified"| S
  S -->|"any further event"| X3["REJECTED: vehicle scrapped"]

DFD level 1

flowchart TD
  K(["Clerk / bank officer"]) --> P1["1.0 Validate proposal and signatures"]
  P1 <--> D1[("D1 Membership keys")]
  P1 --> P2["2.0 Order via leader and commit on quorum"]
  P2 <--> D2[("D2 Block log per node")]
  D2 --> P3["3.0 Derive vehicle state and enforce rules"]
  P3 <--> D3[("D3 Vehicle registry view")]
  D2 --> P4["4.0 Anchor Merkle roots at auditor"]
  P4 <--> D4[("D4 Anchor log")]
  A(["Auditor"]) --> P5["5.0 Verify chain across nodes"]
  D2 --> P5
  D4 --> P5
  P5 --> A
  K --> P6["6.0 Issue inclusion proofs"]
  D4 --> P6

The design deliberately separates integrity (hash chain and Merkle roots), authenticity (party signatures) and agreement (quorum commit) — three words examiners often blur, each mapped here to a distinct, testable mechanism.

Modules

8 modules

  1. Module 01

    Node Core & Membership (Member A)

    Each peer is an Express service with its own SQLite store and an Ed25519 identity loaded at boot. A membership file lists the four nodes with roles and public keys; nodes refuse to talk to unlisted peers, and every RPC carries the sender's node id so misbehaviour is attributable — the permissioned assumption made explicit.

  2. Module 02

    Hash-Chained Block Log (Member A)

    Blocks are append-only rows: height, previous hash, batch of events, term number, Merkle root and commit timestamp. Appends go through a single SQLite transaction that also reads the current tip, so two simultaneous leaders cannot both claim the same height. The chain is verifiable independently on every node with one recompute pass.

  3. Module 03

    Quorum Replication & Leader Election (Member A)

    The leader validates, appends and fans out blocks; followers verify hashes and signatures before acknowledging. Commit happens at three acknowledgements of four, and the receipt names the block height. Heartbeat timeouts trigger elections with increasing term numbers; a killed leader's uncommitted block is discarded and re-proposed, which the fault-injection tests demonstrate live.

  4. Module 04

    Event Intake & Party Signatures (Member B)

    The intake API validates the event payload with Zod, checks that every required signature is present and cryptographically valid — seller plus buyer for transfers, financier for loan events, clerk countersignature — and timestamps the proposal. Unsigned or wrongly signed events never reach the leader; the rejection names the missing signer.

  5. Module 05

    Vehicle State Machine & Rule Engine (Member C)

    A pure module derives each vehicle's state from its committed events and evaluates the proposal against legal transitions: transfer requires no active hypothecation or an attached financier termination; a financed vehicle cannot take a second loan; a scrapped vehicle accepts nothing. Rejections are returned with the specific rule and the conflicting event's height.

  6. Module 06

    Merkle Anchoring & Cross-Node Audit (Member C)

    Each committed block's Merkle root is written to the auditor node's anchor log with the leader's signature. The audit service produces inclusion proofs (event → root → anchor) and a cross-node verifier that walks all four stores and reports the first height where hashes diverge — the mechanism behind the tamper drill, where an edited store is caught in seconds.

  7. Module 07

    Clerk & Auditor Console (Member B)

    A React console with three views: the clerk/bank desk drafts and signs events and tracks commit receipts; the auditor's desk runs verification, shows anchor status and block explorer views; and a public-style tracking page lets anyone check a registration number's lifecycle history against the anchored chain.

  8. Module 08

    Experiment Harness (Member C)

    Python scripts drive batches of 500–2,000 events at 1-, 3- and 5-node configurations (the 5-node config scales the quorum to 4), recording throughput and commit latency, plus follower-kill and leader-kill fault scenarios. Matplotlib charts the results into the report, connecting the syllabus's analytics lab to the consensus design.

Slides

13 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    RC-Chain — A Permissioned Ledger for Vehicle Ownership and Hypothecation

  2. Slide 2

    The Vehicle Lifecycle Problem

  3. Slide 3

    Problem Statement

  4. Slide 4

    Proposed System

  5. Slide 5

    Objectives

  6. Slide 6

    Why Permissioned, Why Consensus

  7. Slide 7

    System Architecture

  8. Slide 8

    Vehicle State Machine (Deep Dive)

  9. Slide 9

    Consensus: Raft-Style Leader and Quorum

  10. Slide 10

    Tamper Evidence & Audit

  11. Slide 11

    Experiments & Results

  12. Slide 12

    Individual Contribution

  13. Slide 13

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 18 answered free · 15 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    Why did you build a permissioned network instead of using a public blockchain?

    The participants are known, legally accountable offices and a bank, so membership does not need mining or tokens; what they need is agreement among mutually independent systems plus tamper evidence. A permissioned design gives fixed membership with Ed25519 identities, quorum consensus tuned for four nodes, and none of the public chain's cost or latency — the honest engineering choice, which I can defend rather than dress up.

  2. 02Concept

    What exactly does the quorum of three out of four buy you?

    Two properties. Availability: any one node can crash and commits continue, because three acknowledgements are still reachable. Consistency: any two quorums overlap in at least one node, so two different histories claiming the same block height cannot both have been committed — which is why the ledger cannot fork silently even when the leader misbehaves or a node dies mid-run.

  3. 03Concept

    Distinguish what the hash chain, the signatures and the quorum each provide.

    The hash chain gives integrity: any edit to a stored block breaks every later hash, so post-hoc alteration is detectable. Ed25519 signatures give authenticity and non-repudiation: a transfer cannot enter the log without the seller's and buyer's signatures, so a party cannot disown an action. The quorum gives agreement: independent offices accept identical block sequences. Neither mechanism substitutes for another, and my tests exercise each one separately.

+15 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

7 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

7 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

318 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

318 words · ~2 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

404 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

404 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

8 sources

  1. Parivahan Sewa — Ministry of Road Transport and Highways (Vahan vehicle registration services, domain reference)
  2. The Motor Vehicles Act, 1988 — India Code (full text)
  3. Raft — In Search of an Understandable Consensus Algorithm (Ongaro & Ousterhout), official site with paper and visualisation
  4. RFC 8032 — Edwards-Curve Digital Signature Algorithm (EdDSA), RFC Editor
  5. Node.js v20 Documentation — Crypto module (createHash, generateKeyPair, sign/verify)
  6. SQLite Documentation — WAL mode and atomic commit
  7. Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller and Steven Goldfeder, Bitcoin and Cryptocurrency Technologies, Princeton University Press
  8. George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair, Distributed Systems: Concepts and Design, 5th ed., Addison-Wesley

Cite this bundle

OnlyProjects. (2026). Permissioned Blockchain Ledger for Vehicle Ownership Transfer and Hypothecation at RTO Offices: MCA Blockchain project bundle [Educational resource]. https://onlyprojects.online/projects/mca-blockchain-rto-vehicle-ownership-hypothecation-ledger

Future scope

1 min read

  • BFT consensus option: swap the crash-fault-tolerant quorum for a PBFT-style protocol and compare message complexity and latency — a natural extension for the advanced experiment chapter.
  • Smart-contract port: re-implement the state machine as chaincode on a private Hyperledger Fabric channel and compare developer effort and throughput.
  • Financier-to-RTO direct events: bank systems push termination events without a clerk intermediary, with webhook acknowledgement and the same signature guarantees.
  • RC QR verification: a citizen-facing page that verifies an anchored extract against the Merkle root with a signed offline snapshot.
  • Inter-state NOC federation: a second network peering across 'state' boundaries, exchanging anchored roots — the realistic shape of inter-RTO workflows.
  • Anomaly analytics: owner-velocity and churn features over the event log to flag suspicious transfer patterns for the auditor.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.