Roadmap Spotlight #3: Arithmetic MPC (REAL) Protocol
Currently our MPC protocol (called REAL) computes binary protocols, but we are going to add an arithmetic protocol in the not too distant future. The “binary” or “arithmetic” property of a protocol is not an indication of what is possible, but rather what is efficient.
Every MPC protocol operates on units of some type, and all applications using MPC are built using a very very small set of operations on this type. Some types are better at some applications than others, which motivates supporting protocols that operate on different unit types.
In binary REAL, the “unit type” is a bit; that is, a number that is either 0 or 1. The only operations we can perform on these bits are exclusive or and conjunction (or XOR and AND). All other protocols have to be built using one or more bits, and a combination of XOR and AND operations.
This naturally means that protocols that can be efficiently expressed as a combination of XOR and AND operations, would be efficient in binary REAL. Such operations include comparisons, any kind of bit manipulation, rotations, shifts, and so on.
On the other hand, operations that require a lot of XOR and AND operations, would be in-efficient. For example, additions, subtractions, multiplications and essentially any operation that is “arithmetic” in nature.
In Arithmetic REAL, on the other hand, the “unit type” is a number between 0 and n (for some n) — and the only operations we can perform are addition and multiplication.
Arithmetic REAL therefore performs very well in applications with a lot of arithmetic. That is, a lot of additions, subtractions, multiplications and so on. On the other hand, applications with a lot of non-arithmetic operations are expensive. For example, it is not very easy to compare two numbers, if all you’re allowed to do is add and multiply the two numbers being compared with each other.
Which for What
Binary REAL, being binary (or boolean) in nature, performs well on applications that are, well, binary in nature. This includes applications such as
- Auctions (because an auction is just a lot of comparisons)
- Encryption and hashing with certain ciphers, e.g., AES and SHA (because these ciphers involve almost exclusively bit operations)
- String operations (most string operations are also just bit manipulations of some sort)
Arithmetic REAL, being arithmetic, performs well on arithmetic applications:
- Machine learning (all ML requires a large degree of linear algebra, which is just a lot of additions and multiplications)
- Statistics (for the same reason as above)
- Voting (because voting can be expressed as simply tallying votes, which is just additions)
By enabling arithmetic computations in Partisia Blockchain, we aim to open up new solutions as well as allow for cheaper and easier implementation of existing ones. From health record analysis to private voting in a massive scale, we hope to achieve a much wider acceptance of MPC as a perfect solution to enabling computation while protecting individual users’ privacy.
Be on the lookout for this sometime in the 3rd or 4th quarter of 2023.