Categorygithub.com/aadithyanraju/blockchain-based-banking-system
modulepackage
0.0.0-20250115130814-bed2bb137dd6
Repository: https://github.com/aadithyanraju/blockchain-based-banking-system.git
Documentation: pkg.go.dev

# README

Blockchain Based Banking System

Notice

Check the working model on branch v1. This main branch is/going to be redeveloped for a better system.

Introduction

Overview

In today’s rapidly evolving financial landscape, the need for secure, transparent, and efficient banking systems has never been more critical. Traditional banking infrastructures, though widely used, often face challenges such as high operational costs, vulnerability to fraud, and delays due to centralized processing. To address these issues, our blockchain-based banking system leverages Distributed Ledger Technology (DLT), specifically Hyperledger Fabric, to create a decentralized, tamper-resistant, and highly secure banking backend.

This project introduces a blockchain-based solution designed to handle core banking operations like account management, transaction processing, and compliance in an efficient and transparent manner. By using blockchain, we ensure that all transactions are recorded immutably, providing robust security and a clear audit trail, critical for regulatory compliance in the financial sector.

Purpose

The primary purpose of this project is to build a backend infrastructure for a banking system that utilizes blockchain to:

  • Enhance Security: Using cryptographic principles, our blockchain solution will protect sensitive data and transactions from unauthorized access and fraud.
  • Ensure Transparency: All transactions are permanently recorded on the blockchain, making them transparent and auditable for regulators and customers alike.
  • Improve Efficiency: By automating transaction validation through smart contracts, the system reduces reliance on manual processes, speeding up operations and reducing costs.

Project Goals

The main objectives of the blockchain-based banking system are:

  • Decentralized Account and Transaction Management: Enable seamless creation, management, and maintenance of user accounts and transactions in a decentralized ledger environment.
  • Smart Contract Integration: Leverage smart contracts for automating compliance checks, transaction validations, and other repetitive banking operations.
  • Immutable Audit Trails: Provide regulators and auditors with secure, transparent, and immutable access to transaction records.
  • Regulatory Compliance: Adhere to essential banking regulations, including GDPR, AML (Anti-Money Laundering), and KYC (Know Your Customer), through blockchain integration.

Prerequisites

  • Linux Environment
  • Bash
  • Docker and Docker-Compose
  • NodeJS and npm
  • Golang
  • Curl
  • Git

NOTE

Read all the code used in the project, for safety reasons.

Setup

  1. Run bash main.sh
  2. Use the menu and run 2,3, and 4 to Create working directory, start the blockchain network and deploy the chaincode
  3. Run npm install to get all required packages.
  4. Run node enrolladmin.js to enroll the blockchain network admin.
  5. Run node grpc-server.js to start grpc.

# Constants

Prefixes for state keys.
Prefixes for state keys.

# Structs

Account struct for storing user account details.
SmartContract provides functions for managing accounts and transactions.
Transaction struct for storing individual transactions.
Transfer struct for storing transfer transactions.