Skip to content

πŸ” Blockchain-based document verification system with tamper-proof security and decentralized storage

License

Notifications You must be signed in to change notification settings

UdehMercylina/VERIMASK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VeriMask πŸ”

Blockchain-Based Document Verification System

🌟 Overview

VeriMask is a cutting-edge, decentralized document verification system that leverages blockchain technology to ensure document authenticity, prevent fraud, and provide tamper-proof verification. Built with security, transparency, and user privacy at its core, VeriMask eliminates the need for centralized authorities while maintaining the highest standards of document integrity.

πŸš€ Key Features

πŸ”’ Blockchain Security

  • Immutable Records: Document hashes stored permanently on the blockchain
  • Tamper-Proof: Cryptographic security prevents unauthorized modifications
  • Decentralized: No single point of failure or control

πŸ“„ Document Verification

  • Instant Verification: Real-time document authenticity checks
  • Hash-Based Validation: SHA-256 cryptographic hashing for security
  • Privacy-Preserving: Only document hashes stored, not actual content

🌐 IPFS Integration

  • Distributed Storage: Documents stored across IPFS network
  • High Availability: Redundant storage ensures access
  • Cost-Effective: Reduced storage costs compared to on-chain storage

πŸ‘€ User Experience

  • Intuitive Interface: Clean, user-friendly web application
  • Mobile Responsive: Accessible across all devices
  • Multi-Format Support: PDF, images, and various document types

πŸ› οΈ Technology Stack

Frontend

  • React.js - Modern UI framework
  • Web3.js - Blockchain interaction
  • Tailwind CSS - Responsive styling
  • MetaMask - Wallet integration

Backend

  • Solidity - Smart contract development
  • Node.js - Server-side operations
  • IPFS - Distributed file storage
  • Express.js - API framework

Blockchain

  • Ethereum - Primary blockchain network
  • Hardhat - Development environment
  • OpenZeppelin - Security standards
  • Truffle - Testing framework

πŸ“‹ Prerequisites

Before running VeriMask, ensure you have:

  • Node.js (v16 or higher)
  • npm or yarn
  • MetaMask browser extension
  • Git version control
  • Ethereum testnet account with test ETH

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/yourusername/VeriMask.git
cd VeriMask

2. Install Dependencies

# Install frontend dependencies
npm install

# Install smart contract dependencies
cd contracts
npm install
cd ..

3. Environment Setup

# Copy environment template
cp .env.example .env

# Configure your environment variables
# Add your private keys, RPC URLs, and IPFS settings

4. Deploy Smart Contracts

# Compile contracts
npx hardhat compile

# Deploy to testnet
npx hardhat run scripts/deploy.js --network goerli

5. Start the Application

# Start frontend development server
npm start

# Access application at http://localhost:3000

πŸ“– Usage Guide

Document Upload & Verification

πŸ“€ Uploading Documents

  1. Connect your MetaMask wallet
  2. Select document file (PDF, JPG, PNG)
  3. Add document metadata (title, description)
  4. Pay gas fees for blockchain transaction
  5. Receive unique document ID and hash

βœ… Verifying Documents

  1. Enter document ID or upload file
  2. System generates hash and compares with blockchain
  3. Instant verification result displayed
  4. View document metadata and timestamp

Smart Contract Interaction

// Example contract interaction
contract DocumentVerification {
    function verifyDocument(string memory documentHash) 
        public view returns (bool isValid, uint256 timestamp)
    
    function uploadDocument(string memory documentHash, string memory metadata) 
        public payable returns (uint256 documentId)
}

πŸ”§ Configuration

Network Configuration

// hardhat.config.js
module.exports = {
  networks: {
    mainnet: {
      url: process.env.MAINNET_RPC_URL,
      accounts: [process.env.PRIVATE_KEY]
    },
    goerli: {
      url: process.env.GOERLI_RPC_URL,
      accounts: [process.env.PRIVATE_KEY]
    }
  }
};

IPFS Configuration

// ipfs.config.js
const ipfsConfig = {
  host: 'ipfs.infura.io',
  port: 5001,
  protocol: 'https',
  apiKey: process.env.IPFS_API_KEY
};

πŸ§ͺ Testing

Smart Contract Tests

# Run all tests
npx hardhat test

# Run specific test file
npx hardhat test test/DocumentVerification.test.js

# Generate coverage report
npx hardhat coverage

Frontend Tests

# Run React tests
npm test

# Run end-to-end tests
npm run test:e2e

πŸ”’ Security Features

Cryptographic Security

  • SHA-256 Hashing: Industry-standard cryptographic hashing
  • Digital Signatures: Ethereum-based signature verification
  • Access Control: Role-based permissions

Privacy Protection

  • Hash-Only Storage: Original documents never stored on-chain
  • Zero-Knowledge Proofs: Verify without revealing content
  • Encryption: AES-256 encryption for sensitive data

Audit & Compliance

  • OpenZeppelin: Security-audited contract libraries
  • Gas Optimization: Efficient contract execution
  • Reentrancy Protection: Prevents common attacks

🌍 Deployment

Testnet Deployment

# Deploy to Goerli testnet
npx hardhat run scripts/deploy.js --network goerli

# Verify contract on Etherscan
npx hardhat verify --network goerli CONTRACT_ADDRESS

Mainnet Deployment

# Deploy to Ethereum mainnet
npx hardhat run scripts/deploy.js --network mainnet

# Set production environment
NODE_ENV=production npm run build

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Workflow

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

Code Standards

  • Follow Solidity style guide
  • Write comprehensive tests
  • Document all functions
  • Use meaningful commit messages

πŸ“Š Roadmap

Phase 1: Core Development βœ…

  • Smart contract development
  • Frontend application
  • IPFS integration
  • Basic verification system

Phase 2: Enhancement πŸ”„

  • Multi-chain support
  • Advanced verification features
  • Mobile application
  • API development

Phase 3: Scale πŸ“ˆ

  • Enterprise features
  • Bulk verification
  • Analytics dashboard
  • Third-party integrations

πŸ™ Acknowledgments

  • OpenZeppelin for security standards
  • Ethereum Foundation for blockchain infrastructure
  • IPFS for distributed storage
  • MetaMask for wallet integration

Securing documents, one hash at a time πŸ”

About

πŸ” Blockchain-based document verification system with tamper-proof security and decentralized storage

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •