Data collaboration is a common need in the real world. There are many cryptographic protocols and system solutions that facilitates secure and private data collaborations.
In this tutorial, you will see in practice how decentralized programming in CoLink helps develop and deploy systems for various types of data collaboration. Specifically, you will
Decentralized data collaborations often involve two or multiple participants cooperatively performing certain tasks together for greater data insights.
For concreteness, let us start with three well-known protocol examples.
<aside> đź’ˇ If you are already familiar with the problems or prefer to see the code first, please feel free to jump to next chapter. You can come back for more background knowledge about the problems and protocols if necessary.
</aside>
(From Wiki) The problem discusses two millionaires, Alice and Bob, who are interested in knowing which of them is richer without revealing their actual wealth.
This problem is analogous to a more general problem where there are two numbers $a$ and $b$ and the goal is to determine whether the inequality $a \ge b$ is true or false without revealing the actual values of $a$ and $b$. The Millionaires' problem is an important problem in cryptography, the solution of which is used in e-commerce and data mining.
In the problem setting, both Alice and Bob need to store private values for comparison. To solve the problem, they need to follow specific protocol procedures and communicate each other.
CoLink provides mechanisms for private storage, communication, user identity authentication, and computation procedure management. You will learn how to use CoLink abstractions to easily handle all such system details (Run data collaborations with decentralized programming ).
(From Bonawitz, Keith, et al.) Secure Aggregation protocols allow a collection of mutually distrust parties, each holding a private value, to collaboratively compute the sum of those values without revealing the values themselves.
As one of the most frequently-used secure multi-party computation (MPC) protocol, secure aggregation provides a privacy-preserving way to aggregate data and gather statistics.
Compared with solving millionaires’ problem, secure aggregation protocols often involve more participants and might have a more complicated communication pattern.
CoLink support large-scale data collaboration without introducing significant overhead. In this tutorial, you will learn how to write decentralized protocols, starting from the example of a basic secure aggregation implementation (Write your own decentralized protocols ).