Introduction to Principle

The set of vector data that we want to prove (basically a list of data)

$$ [d_0,d_1,d_2...,d_{n-1}] $$

Let’s set up a function that converts our data to an integer$f(d_i)$

We get a series of points in the Cartesian coordinate system

$$ [(0,f(d_0)),(1,f(d_1)),(2,f(d_2))...(n-1,f(d_{n-1}))] $$

The corresponding polynomial function can be obtained by Lagrangian interpolation

$$ p(X) = \sum_{i=0}^{n} p_i X^i $$

Define elliptic curve pairing

$$ e: G_1 \times G_2 \rightarrow G_T $$

$g_1$ and $g_2$ are the generation points of the group $G_1$ and $G_2$ respectively. We define an identifier (this identifier is very important and will be used frequently, please get familiar with it).

$$ [x]_1=xg_1 \in G_1 , [x]_2=xg_2 \in G_2, x \in F_p $$

Trusted Setup

Generate a key $s$, and then we calculate separately, which involves the MPC scenario

$$ [s^i]_1 \to [s^0]_1, [s^1]_1,[s^2]_1...[s^{n-1}]_1 $$

$$ [s^i]_2 \to [s^0]_2, [s^1]_2,[s^2]_2...[s^{n-1}]_2 $$

An important feature here is that even if all of the above data is exposed, we can't know what the value of $s$ is, but we can do some specific logic based on the exposed data such as

$$ c[s^i]_1=cs^ig_1=[cs^i]_1 $$