TL;DR:

Garble Circuit (GC) is a powerful technique for privacy-preserving computation (secure multi-party computation).

There are two types of GC: Boolean GC and arithmetic GC. Recent paper demonstrates efficient transformations between them (BC: bit composition, BD: bit decomposition).

Mul
Mul
A
A
B
B
Sqrt
Sqrt
C
C
D
D
Boolean
Boolean
Boolean
Boolean
Mul
Mul
E
E
F
F
Sqrt
Sqrt
C
C
D
D
Arithmetic
Arithmetic
Boolean
Boolean
BD
BD

We implement these transformations in the library, and profile the scenario to choose the optimal GC realization - given a user computation, either Boolean GC or mixed GC will be the most suitable choice.


[Github]