Skip to content

This repository contains the code and configuration for deploying and running the Blockchain Crypto Messanger project, which is a node of the blockchain network.

License

Notifications You must be signed in to change notification settings

SergeyIvanovDevelop/Blockchain-Crypto-Messanger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robot-Rolly

Blockchain Crypto Messanger "Geekon"

Blockchain Crypto Messanger · GitHub license Java Android Studio Python C C++ SQLite Address Sanitizer I2Pd Yggdrasil LinkedIn Telegram

This repository contains the code and configuration for deploying and running the Blockchain Crypto Messanger project, which is a node of the blockchain network.

The project is composite and includes the following components:

  • BCM-Linux-Console (C, C++, Python, I2Pd, Yggdrasil)
  • Android-Client (Android Studio, Java)

The main features of this messenger are:

  • There is no need for miners to make a decision in the consensus process
  • Solved the problem* of the ever-growing size of the blockchain (* - it periodically resets when a certain number of transactions is reached)
  • Encryption using one-time pads is used (i.e. even quantum computers will not be able to decrypt messages ever entered the blockchain)
  • Solved the need for a constant key exchange-one-time pads (only a one-time key exchange is needed) thanks to a distributed data storage system (more details will be described in a future article or read the source code)
  • Added implementation of distributed data storage running on top of Yggdrasil mesh network (SSL + ipv6)
  • Added the ability to put large files in a distributed storage, create small link files on them and send them on the blockchain, and the recipient, if necessary, will be able to request them from the distributed storage
  • Added the ability to remotely control the node without losing the level of security (encryption using one-time pads)
  • Anonymity in the project is provided by the blockchain network, as well as the i2p network.
  • All information about the node is concentrated in the SQLite database encrypted with AES-256 and, if necessary, transferring the messenger to another device will not be difficult.
  • Added basic protection against keylogger when entering a password from the database.

General functional model

Architecture

Network architecture

Architecture


At the moment, a decision has been made to abolish the central server, and users who want to communicate must exchange address and key information in person or through a trusted communication channel.

Sending message

Architecture

Functioning of distributed storage

Architecture

Reference file structure

Architecture

Checking messages addressed to a user

Architecture

Key features of BCM

Architecture

Security level

Architecture

🖥️ BCM-Linux-Console part of the project

This part of the project is its core and is designed to deploy a node in the blockchain network and communicate with other network participants.

Full list of provided functionality:

  • Deployment of a blockchain network node participating in the consensus process, in which there is no need for miners and complex calculations
  • Providing the console interface of the messenger
  • Ability to add users to the messenger, change user keys
  • Ability to change node management to a remote (Android device)
  • Encryption of information using one-time pads (protection against quantum cryptanalysis)
  • The ability to use a distributed data storage in the Yggdrasil mesh network, as well as act as a member of this storage
  • Periodic blockchain update
  • DB encryption AES-256
  • Using the anonymous network i2p
  • Additional protection against timing attacks

📱 Android-Client part of the project

This part of the project is its core and is designed to deploy a node in the blockchain network and communicate with other network participants.

Full list of provided functionality:

  • Possibility of remote control of a blockchain network node via WiFi while maintaining the level of security of transmitted information (encryption using one-time pads)

🎬 Example using (GIF):

This animation demonstrates scenarios for using the BCM-Linux-Console.

animated

This animation demonstrates scenarios for using the Android-Client.

animated

📑 Licence

Blockchain Crypto Messanger "Geekon" is CC BY-NC-SA 3.0 licensed.