Decentralized Cloud Storage Using Blockchain
ABSTRACT: –
Cloud storage is one of the leading options where you can keep big data, however, a way to keep a single cloud space using a computer is not secure. On the other hand, Blockchain is a cloud-based storage system that ensures data security. Any computer node connected to the Internet can join and build peer networks thus increasing utilization of resources. Blockchain is a peer-to-peer system distributed per node on the network that keeps a copy of the blockchain thus making it invariant. In the proposed system, the user file is encrypted and stored on multiple peers in the network using IPFS (Inter Planetary File System) protocol. IPFS creates hash values. The hash value indicates the path of the file and is stored in the blockchain. In this project we use the blockchain and ipfs cloud platform for storing the file of n users. Once the user uploads any file it will get encrypted and that file stored on ipfs and file metadata will be stored on blockchain. And at the time of downloading the particular file, the metadata of that file will be retrieved from the blockchain and the file will be decrypted and displayed to you. Smart contracts are used to store file details in the blockchain and also transfer the cryptocurrency (ETH) from the user’s wallet to the peer’s wallet. AES encryption algorithm for enhancing the security of user’s data stored in cloud storage. This paper focuses on secure data shared across the country storage, high availability of data, and efficient use of storage facilities.
SYSTEM:-
- Storage nodes : are the nodes responsible for storing the actual information . They could be any computer with enough storage capacity and bandwidth to support the network. Storage nodes can join the network and start providing storage space to users.
- smart contracts: Smart contracts are used to enforce the rules of the network, such as payment for storage and retrieval. Smart contracts are programmed to execute automatically when certain conditions are met.
- user interface :The user interface provides a way for users to interact with the network, allowing them to upload, download, and manage their data stored on the network.
PROPOSED SYSTEM:-
The user first creates an account on the metamask. The user’s account address and wallet balance are fetched in the app through web3.js from the metamask. Users select the file to upload through file picker. System checks for the number of available peers. Further, the AES algorithm uses the user’s wallet address as a key and encrypts the uploaded file. A payment dialogue seeks for the user’s confirmation. On confirming the payment, the user’s file is stored across available peers using IPFS protocol. IPFS then returns a hash value consisting of the path of the file. This path is then mapped with the user’s address using a smart contract and gets stored securely in the blockchain. To achieve high availability and reliability of data, the uploaded data is replicated on three peers. For better performance the system blacklists peers every time they are unavailable for data retrieval. The terminology is briefly discussed below.
Metamask : Browser extension which acts as a bridge to connect with the ethereum network.
Ethereum network : It is an open-source, public blockchain- based distributed computing platform. Ethereum uses smart contracts where one can add business logic to make decentralized applications as per the business requirements. Peers: These are the users of the system who have pledged to rent their free storage for an other user’s to store files.
AES: Advanced Encryption Standard (AES) is a symmetric- key algorithm that supports block length of 128 bit and can have a key size of 128, 192, and 256 bits.
IPFS protocol: IPFS is an open-source peer to peer file transfer protocol.
- Uploading of file User uploads file using the file picker. The system checks the file size and ensures storage availability in the network. The file is uploaded when enough storage is available.
B.Users are notified to try again when enough storage is unavailable. B. Encryption of file The uploaded file is encrypted using AES 256 bit algorithm. The encryption key is generated using the user’s wallet address and randomly generated salt value. This encryption key along with an IV is used to encrypt the user’s data. This maintains the confidentiality of the user’s data.
- Storing a file across multiple peers The encrypted file is then divided into blocks of 64KB and sent to different peers across the network with the help of the IPFS protocol. The proposed system uses a private IPFS network to allow registered peers to store the file in the network. The file block is replicated on multiple peer’s storages for high availability using the IPFS cluster.
- Storing a file across multiple peers IPFS returns a hash value which indicates the path of the file. The hash value along with metadata is mapped with the user’s wallet address and is stored in the blockchain using a smart contract. Smart contracts are like agreements and are used to eradicate the need for a third party. They control the transaction between nodes or assets between parties under certain conditions. This is lines of code stored on a blockchain network and are automatically executed when predetermined terms and conditions are met.
MODULES:-
- Blockchain module: this module is responsible for connecting to the blockchain network and recording all transactions related to data storage and retrieval. It includes functionalities for creating and verifying transactions, querying the blockchain for data, and monitoring the state of the network
- storage module: This module provides an interface to the decentralized storage protocol used in the system, such as IPFS or STORJ. It includes functionalities for uploading and downloading files, managing storage nodes, and ensuring data integrity and security.
- smart contract module: This module contains the smart contracts that define the rules and operations of the decentralized cloud storage system. It includes functionalities for deploying, managing, and executing smart contracts, as well as handling payment transactions and enforcing storage policies.
- user interface module: This module provides a user-friendly interface for users to interact with the decentralized cloud storage system. It includes functionalities for creating and managing user accounts, uploading and downloading files, monitoring storage usage and payment history, and accessing support services.
- security module :This module is responsible for ensuring the security of the decentralized cloud storage system. It includes functionalities for encrypting and decrypting data, authenticating users and storage nodes, detecting and preventing attacks and fraud, and managing access control policies.
- Monitoring and Analytics Module: This module provides tools for monitoring the performance and usage of the decentralized cloud storage system as well as analyzing user behavior and trends. It includes functionalities for collecting and analyzing data from various sources, generating reports and visualizations, and providing insights for system optimization and decision-making.
These modules can be implemented using various programming languages and frameworks depending on the chosen blockchain platform and storage protocol. They should be designed to be modular, scalable, and flexible to allow for easy customization and integration with other systems and services.
APPLICATION:-
Description: This application allows users to securely store and share files using a decentralized cloud storage system based on blockchain technology. Users can upload, download, and manage their files, as well as monitor storage usage and payment history. The app offers a user-friendly interface and robust security features to ensure user privacy and data integrity.
Features:
- User Registration and Authentication: Users can create an account and authenticate with email address and password or a social media account.
- file upload and download: Users can upload files of different types and sizes to the decentralized storage network and download them at any time.The application ensures data integrity and security by encrypting and fragmenting files before sending them over the network.
- Storage Management: Users can monitor storage usage, check available capacity, and manage files and folders through a simple, intuitive interface.
- Payments & Billing: Users can pay for storage with cryptocurrency or fiat currency and track payment history and bank statements.
- Sharing and Collaboration: Users can share their files with others by generating a unique link or share the file directly via email or social media. Users can also collaborate on files by granting access and setting permissions to selected users.
- Security & Privacy: The app uses state-of-the-art security features such as end-to-end encryption, multi-factor authentication, and biometric login. The app also ensures user privacy by not collecting or sharing user data without the user’s explicit consent.
- Help and Feedback: Users can access support services and provide feedback to improve the app’s functionality and usability.
Technology Stack:
- Blockchain Platform: Ethereum
- Decentralized Storage Protocol: IPFS
- Front-End Framework: React.js
- Back-End Framework: Node.js
- Smart Contract Language: Solidity
- Payment Processing: Stripe
HARDWARE AND SOFTWARE REQUIREMENTS:-
HARDWARE:-
- Processor: i3 ,i5 or more
- RAM: 4GB or more
- Hard disk: 16 GB or more
SOFTWARE:-
- Operating System : Windows 10, 7, 8.
- Python
- anaconda
- Spyder, Jupyter notebook, Flask.
- MYSQL
- Ganache