0% found this document useful (0 votes)
21 views13 pages

Project

The document outlines a blockchain-based land registry system designed to address inefficiencies, corruption, and security risks associated with traditional land registration methods. It includes modules for identity and access management, land title registration, blockchain-based record management, ownership transfer, and dispute resolution. The proposed solution aims to enhance transparency, reduce fraudulent activities, and streamline property transactions through decentralized technology.

Uploaded by

MOHIT BHATI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views13 pages

Project

The document outlines a blockchain-based land registry system designed to address inefficiencies, corruption, and security risks associated with traditional land registration methods. It includes modules for identity and access management, land title registration, blockchain-based record management, ownership transfer, and dispute resolution. The proposed solution aims to enhance transparency, reduce fraudulent activities, and streamline property transactions through decentralized technology.

Uploaded by

MOHIT BHATI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CONTENTS

PROBLEM STATEMENT................................................................................................................................2
Description..............................................................................................................................................2
Need to Resolve......................................................................................................................................2
Solution Derived for that Problem..........................................................................................................2
MODULE 1 (Identity & Access Management).............................................................................................5
1.1 User authentication (citizen, government, agents) using blockchain.............................................5
1.2 Role-based access control..............................................................................................................5
1.3 KYC verification for ownership validation......................................................................................5
MODULE 2 (Land Title Registration)...........................................................................................................6
2.1 Submission of land/property details..............................................................................................6
2.2 Government verification & approval process.................................................................................6
2.3 Smart contract creation for ownership proof................................................................................7
MODULE 3 (Blockchain-Based Record Management)................................................................................7
3.1 Immutable property record storage...............................................................................................7
3.2 Secure document hashing on blockchain.......................................................................................8
3.3 Interacts with Ownership Transfer & Transactions Module for future sales..................................8
PROBLEM STATEMENT
Description
Traditional land registry systems, heavily reliant on paper-based documentation and centralized databases,
are burdened by numerous critical issues. These systems suffer from operational inefficiencies, leading to
prolonged property transfer times and increased costs. Furthermore, their lack of transparency fosters
corruption and facilitates fraudulent transactions, such as forged records and illegal land seizures. The
absence of accessible and accurate data results in frequent disputes and legal complications, while the
vulnerability of physical records compromises data integrity. Additionally, these systems often exclude
marginalized groups, hindering their access to secure land rights, and ultimately impede economic
development by discouraging investment and limiting access to credit.

Need to Resolve
 Lack of Transparency: Traditional systems are prone to manipulation, unauthorized
modifications, and corruption.
 Fraudulent Activities: Cases of forgery, double selling, and illegal land grabbing are common
due to insecure record-keeping.
 Time-Consuming and Costly: The bureaucratic process involves multiple intermediaries,
increasing the time and cost of property transactions.
 Inefficient Dispute Resolution: Ownership disputes take years to resolve due to missing or
forged documents.
 Security Risks: Centralized databases are vulnerable to cyberattacks and unauthorized access.

Solution Derived for that Problem


A blockchain-based land registry system leverages decentralized, immutable, and transparent technology
to address the issues in the traditional system.

1. Land & Property Registration Module (Siddharth Singh- 22CS002527)


Purpose: Registers land/property and ensures secure identity verification.
Sub-Modules:
I. Identity & Access Management
- User authentication (citizen, government, agents) using blockchain
- Role-based access control
- KYC verification for ownership validation
II. Land Title Registration
- Submission of land/property details
- Government verification & approval process
- Smart contract creation for ownership proof

III. Blockchain-Based Record Management


- Immutable property record storage
- Secure document hashing on blockchain
- Interacts with Ownership Transfer & Transactions Module for future sales

2. Ownership Transfer & Transactions Module (Uma Suthar-22CS002532)


Purpose: Manages ownership transfers, property sales, and transactions.

Sub-Modules:
I. Smart Contract-Based Sale Agreement
- Buyer-seller agreement using blockchain
- Automated verification of ownership from Land & Property Registration Module
- Digital signatures for legal approval

II. Payment & Taxation Processing


- Payment processing via fiat/crypto escrow smart contracts
- Auto tax calculation based on government rules
- Tax verification from *Land Mortgage & Compliance Module*

III. Ownership Record Update


- Smart contract execution upon successful payment
- Blockchain updates new ownership details
- Syncs with Land & Property Registration Module for future verifications
3. Land Mortgage & Compliance Module (Mohit Teli- 22CS0025)
Purpose: Manages property mortgages, leases, tax compliance, and auditing.

Sub-Modules:
I. Mortgage & Lease Management
- Property mortgage requests & loan approvals
- Smart contract-based lease agreements
- Verification from Ownership Transfer & Transactions Module

II. Taxation & Legal Compliance


- Auto tax collection & government revenue tracking
- Compliance monitoring using blockchain audits
- Syncs with Ownership Transfer & Transactions Module for sales tax

III. Fraud Detection & Audit Trail


- Immutable blockchain-based audit records
- Fraudulent transaction alerts
- Verifies historical ownership from Land & Property Registration Module

Here’s an Interdependency Module Table showing how each module interacts with others:

Module Interacts With Purpose of Interaction

Land & Property Ownership Transfer & Provides verified land titles &
Registration Module Transactions Module ownership data for property
sales.
Land Mortgage & Compliance Supplies ownership details for
Module mortgage verification & tax
compliance.
Ownership Transfer & Land & Property Registration Fetches ownership data before
Transactions Module Module executing sales transactions.
Land Mortgage & Compliance Ensures tax & compliance
Module verification before ownership
transfer.
Land Mortgage & Land & Property Registration Validates ownership details
Compliance Module Module before approving mortgages or
leases.
Ownership Transfer & Ensures all property taxes are
Transactions Module paid before ownership transfer.

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract LandPropertyRegistry {

MODULE 1 (Identity & Access


Management)
1.1 User authentication (citizen, government, agents) using blockchain
struct User {

address userAddress;

string name;

string role; // Citizen, Government, Agent

bool isVerified;

mapping(address => User) public users;


1.2 Role-based access control
modifier onlyVerified() {

require(users[msg.sender].isVerified, "User not verified");

_;

1.3 KYC verification for ownership validation


event UserVerified(address user, string role);

function registerUser(address _userAddress, string memory _name, string memory _role) public {

users[_userAddress] = User(_userAddress, _name, _role, false);

function verifyUser(address _userAddress) public {

require(keccak256(abi.encodePacked(users[msg.sender].role)) == keccak256("Government"), "Only


government can verify");

users[_userAddress].isVerified = true;

emit UserVerified(_userAddress, users[_userAddress].role);

}
MODULE 2 (Land Title Registration)
2.1 Submission of land/property details
struct Property {

uint256 id;

string description;

address owner;

uint256 registeredDate;

bool isRegistered;

mapping(uint256 => Property) public properties;

2.2 Government verification & approval process


modifier isNotRegistered(uint256 propertyId) {

require(!properties[propertyId].isRegistered, "Property already registered");


_;

event PropertyRegistered(uint256 propertyId, address owner);

function registerProperty(uint256 propertyId, string memory description) public onlyVerified


isNotRegistered(propertyId) {

properties[propertyId] = Property({

id: propertyId,

description: description,

owner: msg.sender,

registeredDate: block.timestamp,

isRegistered: true

});

emit PropertyRegistered(propertyId, msg.sender);

2.3 Smart contract creation for ownership proof


function getPropertyOwnershipProof(uint256 propertyId) public view returns (address) {

require(properties[propertyId].isRegistered, "Property not registered");

return properties[propertyId].owner;

}
MODULE 3 (Blockchain-Based Record
Management)
3.1 Immutable property record storage
function getPropertyDetails(uint256 propertyId) public view returns (uint256, string memory, address,
uint256, bool) {

Property memory property = properties[propertyId];

return (property.id, property.description, property.owner, property.registeredDate,


property.isRegistered);

}
3.2 Secure document hashing on blockchain
event DocumentHashStored(uint256 propertyId, bytes32 documentHash);

modifier onlyOwner(uint256 propertyId) {

require(properties[propertyId].owner == msg.sender, "Caller is not the owner");

_;

function hashAndStoreDocument(uint256 propertyId, bytes32 documentHash) public


onlyOwner(propertyId) {

emit DocumentHashStored(propertyId, documentHash);

3.3 Interacts with Ownership Transfer & Transactions Module for future sales
event OwnershipTransferred(uint256 propertyId, address newOwner);

function transferOwnership(uint256 propertyId, address newOwner) public onlyOwner(propertyId) {

properties[propertyId].owner = newOwner;

emit OwnershipTransferred(propertyId, newOwner);

}
MODULE 4 (Dispute Resolution & Fraud
Prevention)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract LandPropertyRegistry {
/**
* MODULE 4: Dispute Resolution & Fraud Prevention
*/
// Enum to define possible dispute statuses
enum DisputeStatus { Pending, Resolved, Rejected }

// Structure to store dispute details


struct Dispute {
uint256 disputeId; // Unique ID for the dispute
uint256 propertyId; // ID of the disputed property
address complainant; // Address of the user filing the dispute
string reason; // Reason for the dispute
DisputeStatus status; // Current status of the dispute
}
// Mapping of dispute ID to Dispute struct
mapping(uint256 => Dispute) public disputes;
// Counter to generate unique dispute IDs
uint256 public disputeCounter;

// Event emitted when a dispute is filed


event DisputeFiled(uint256 disputeId, uint256 propertyId, address complainant, string reason);

// Event emitted when a dispute is resolved


event DisputeResolved(uint256 disputeId, uint256 propertyId, string resolution);

// Modifier to allow only government officials to resolve disputes


modifier onlyGovernment() {
require(keccak256(abi.encodePacked(users[msg.sender].role)) == keccak256("Government"), "Only
government can manage disputes");
_;
}

4.1 Dispute Filing & Registration


/**
* Sub-Module 4.1: Dispute Filing & Registration
* Allows verified users to submit disputes against a property.
*/
function fileDispute(uint256 propertyId, string memory reason) public onlyVerified {
require(properties[propertyId].isRegistered, "Property not registered"); // Ensure property exists

disputeCounter++; // Increment dispute counter to generate a unique ID

// Create a new dispute entry


disputes[disputeCounter] = Dispute(disputeCounter, propertyId, msg.sender, reason,
DisputeStatus.Pending);

emit DisputeFiled(disputeCounter, propertyId, msg.sender, reason); // Emit event for dispute filing
}

4.2 Government Review & Resolution


/**
* Sub-Module 4.2: Government Review & Resolution
* Allows government officials to review and resolve disputes.
*/
function resolveDispute(uint256 disputeId, bool decision) public onlyGovernment {
require(disputes[disputeId].status == DisputeStatus.Pending, "Dispute already resolved"); // Ensure
dispute is still pending

disputes[disputeId].status = decision ? DisputeStatus.Resolved : DisputeStatus.Rejected; // Update


status based on decision

emit DisputeResolved(disputeId, disputes[disputeId].propertyId, decision ? "Resolved" : "Rejected");


// Emit event for resolution
}

4.3 Fraud Prevention & Transparency


/**
* Sub-Module 4.3: Fraud Prevention & Transparency
* Allows public to view dispute details for transparency.
*/
function getDisputeDetails(uint256 disputeId) public view returns (uint256, uint256, address, string
memory, DisputeStatus) {
Dispute memory dispute = disputes[disputeId]; // Fetch dispute details

return (dispute.disputeId, dispute.propertyId, dispute.complainant, dispute.reason,


dispute.status); // Return dispute data
}
}

You might also like