AlexikM / Condensation

Condensation is a zero-trust distributed database that ensures data ownership and data security

Home Page:https://condensation.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool



Condensation

A general-purpose distributed database
with inherent end-to-end security


About

Condensation enables to build modern applications while ensuring data ownership and security. It's a one stop open source project to match the next decades complex security challenges and to protect digital rights.

What you can build with

  • Build any kind of app secured by design, with real end-to-end encryption.
  • Build collaborative tools such as google doc, but with control on the code and the privacy.
  • Build distributed systems where each user can store data on his sever while synchronizing with others.

Motivation

The structure of today's file and database systems dates back to the 1970s, when storage space was extremely scarce, and computers were few. These systems were therefore designed to run on a single machine, and sometimes on a single disk.

While both database and file systems have greatly evolved over time, their main structure has hardly changed. Database systems are based on tables with mutable records (rows), while file systems use a hierarchy of folders with mutable files inside. In both systems, data can be modified with little effort, and at any time. Data synchronization, however, is notoriously difficult and error-prone.

In todays' connected world, data is used on different devices, or shared with other people. Hence, efficient data synchronization is key.

Aside of file and database systems, revision control systems have been developed and used since the 1980s. Some of them, like git or hq, are fully distributed, and do not require any central server whatsoever. Each user has his/her own version of the data, and can merge changes from other users. Such systems allow for efficient and provably correct data synchronization.

While they are great for source code management, current revision control systems are not suited as general purpose data systems. In order to benefit from such systems, the user needs to have a minimal understanding of branches, merging and conflict resolution, which is far beyond the knowledge of an average computer user. In addition, occasional merge conflicts are inevitable, and prevent such systems from being used in a transparent way.

The Condensation data system has been designed from the ground up to address this. The result is a general-purpose data system with lightweight transactions and efficient data synchronization in a completely distributed setting. Merge conflicts are impossible by design, so that no user intervention is required during the synchronization process. The data itself is end-to-end encrypted, and may be spread across multiple storage systems.

Related article

How it works

Inspired by the blockchain system, the email system, and git versioning, Condensation's architecture is a unique solution to develop scalable and modern applications.

Condensation manages data locally
Compared to commonly centralized databases, Condensation writes and reads data directly on the user's device. No image of the data needs to be created to communicate with a data center.

Then, encrypted objects circulate through the network
Condensation does not need to decrypt data as it is the case for classic SQL and NoSQL databases. This erradicates the danger of data breaches. The data can circulate freely as objects are recognized by their address and not their content. The content stays encrypted until its received on the end user's device.

Finally, data is condensated on the user's device
As objects can circulate and be stored freely, Condensation provides mechanics to reassemble and update the data when it arrives on the user's device. There, Condensation can be used similarly to a document database with attributes but still with the flexibility to attach and manage objects like you want.

Get started

Condensation Java implementation is stable but we are still packaging it, preparing instructions for the installation, and building the first tutorials. The most advanced developers can already get into the code with the following link.

Java implementation repository

If you have a strong desire to contribute, please just get in touch at info@condensationDB.com and we can walk through the installation together.

Project roadmap

  • Research and development of the conflict free merge
  • Develop the messaging system
  • Develop the end-to-end encryption
  • Package and publish Java version (Jan. 2021)
  • Release the white paper (Feb. 2021)
  • Publish first pilot with Microcontroller integration (May. 2021)
  • Port the code to Javascript for web apps development (Jul. 2021)
  • Port to Swift version for iOS (Nov. 2021)

Contribute

Raising awareness and educating about Condensation The first thing we want is to educate on how innovative is Condensation to build solutions. Indeed, this new kind of database bridging the gap between mutable and immutable structures, has many benefits such as end-to-end encryption, multi-device synchronization, collaboration, offline-first, and much more we didn't yet described. To raise awareness about the project, producing educational material is critical. It can be articles, use cases, diagrams, advices and testimonials from your experience. We build this community to support your content, we will always do the best to enhance your positive impact on the project.

Contributing by porting the core The priority is now to port the code to other systems as Condensation is mainly on the client side. For the immutable part of Condensation, specifications are now exhaustively described and we are available to guide you into each step. Are you interested in contributing? We can give you more details on the next priorities and connect you with the community.

You can get in touch at info@condensationDB.com.

Main links

Website
Documentation
Java source code

Thanks to our sponsors

SPEIInnosuisse
We are actively developing Condensation, if you want to invest, to contribute or to develop a pilot please reach out at info@condensationDB.com

About

Condensation is a zero-trust distributed database that ensures data ownership and data security

https://condensation.io

License:Apache License 2.0