Preliminaries
This page is a description of the cryptographic components we use as building blocks to design the protocol.
Polynomial commitment:
A polynomial commitment is a useful cryptographic tool, used to commit to a polynomial. Intuitively, the commitment will bind and hide the content of it, namely, the polynomial. Furthermore, the prover has the ability to give an evaluation point of the polynomial and the proof of its correctness, without leaking other information of the polynomial.
Formally, a polynomial commitment consists of three algorithms:
Commit: the algorithm outputs a commitment of the polynomial .
Prove: given an evaluation point , the algorithm outputs a tuple , where is the proof.
VerifyEval: given the algorithm checks if is the correct evaluation. The algorithm outputs accept or reject.
Linear code:
A linear error-correcting code with message length and codeword length is a linear subspace , such that there exists an injective mapping from message to codeword , which is called the encoder of the code.
Any linear combination of codewords is also a codeword.
The rate of the code is defined as .
The distance between two codewords is the hamming distance denoted as .
The minimum distance is .
Such a code is denoted as linear code, and we also refer to as the relative distance of the code.
Tensor code:
Let be a linear code, the tensor code of dimension 2 is the linear code in with message length , codeword length , and distance . We can view the codeword as a matrix. We define the encoding function below:
A message of length is parsed as a matrix. Each row of the matrix is encoded using , resulting in a codeword of size .
Each column of is then encoded again using . The result of size is the codeword of the tensor code.
Last updated