Here we introduce the background for the problem of decentralized data collaboration.

To see the overview of the concept doc, visit Overview.

When centralized solutions are not enough…

Data is the lifeblood of many research and industrial projects. To improve product or service quality, data collaboration has become a common practice. More available data helps gain better data insights. Mature centralized solutions often require all participants to grant data access to a centralized party, usually the solution provider. Data privacy is protected by legal contracts and participants can achieve functionalities predefined by the solution provider.

However, centralized solutions rely on trust in the solution provider and suffer from two major drawbacks:

Recent developments in privacy-enhancing technologies and innovations in applied cryptography provide privacy-enhanced alternatives for many specific applications. They can protect security and privacy even in a decentralized setting with less trust between different participants.

9 challenges to build decentralized solutions

However, the functionality is often more constrained and the performance is often significantly lower than the centralized solutions. There are much less mature decentralized data collaboration solutions than centralized ones, mostly because building a complete decentralized solution poses many challenges:

Facing all these challenges, in CoLink, we ask the following question:

❓ How to accelerate the development and deployment of decentralized data collaboration?

We notice there are many missing abstractions and building blocks, which are repeated efforts in building different decentralized solutions.

Design goals for an ideal programming abstraction

Observing the gap, we analyze existing decentralized solutions, summarize the missing pieces, and design CoLink, which is a new programming abstraction designed for decentralized data collaborations.

Specifically, we come up with the following design goals: