book: Fix broken links

This commit is contained in:
Jack Grigg 2021-03-04 14:02:12 +00:00
parent a46c4d8a0a
commit 311b087ff1
1 changed files with 8 additions and 6 deletions

View File

@ -2,21 +2,23 @@
The [Pasta curves](https://electriccoin.co/blog/the-pasta-curves-for-halo-2-and-beyond/) The [Pasta curves](https://electriccoin.co/blog/the-pasta-curves-for-halo-2-and-beyond/)
are designed to be highly 2-adic, meaning that a large $2^S$ are designed to be highly 2-adic, meaning that a large $2^S$
[multiplicative subgroup](../../background/fields.md#multiplicative-subgroups) exists in [multiplicative subgroup](https://zcash.github.io/halo2/background/fields.html#multiplicative-subgroups)
each field. That is, we can write $p - 1 \equiv 2^S \cdot T$ with $T$ odd. For both Pallas exists in each field. That is, we can write $p - 1 \equiv 2^S \cdot T$ with $T$ odd. For
and Vesta, $S = 32$; this helps to simplify the field implementations. both Pallas and Vesta, $S = 32$; this helps to simplify the field implementations.
## Sarkar square-root algorithm (table-based variant) ## Sarkar square-root algorithm (table-based variant)
We use a technique from [Sarkar2020](https://eprint.iacr.org/2020/1407.pdf) to compute We use a technique from [Sarkar2020](https://eprint.iacr.org/2020/1407.pdf) to compute
[square roots](../../background/fields.md#square-roots) in `pasta_curves`. The intuition [square roots](https://zcash.github.io/halo2/background/fields.html#square-roots) in
`pasta_curves`. The intuition
behind the algorithm is that we can split the task into computing square roots in each behind the algorithm is that we can split the task into computing square roots in each
multiplicative subgroup. multiplicative subgroup.
Suppose we want to find the square root of $u$ modulo one of the Pasta primes $p$, where Suppose we want to find the square root of $u$ modulo one of the Pasta primes $p$, where
$u$ is a non-zero square in $\mathbb{Z}_p^\times$. We define a $2^S$ $u$ is a non-zero square in $\mathbb{Z}_p^\times$. We define a $2^S$
[root of unity](../../background/fields.md#roots-of-unity) $g = z^T$ where $z$ is a [root of unity](https://zcash.github.io/halo2/background/fields.html#roots-of-unity)
non-square in $\mathbb{Z}_p^\times$, and precompute the following tables: $g = z^T$ where $z$ is a non-square in $\mathbb{Z}_p^\times$, and precompute the following
tables:
$$ $$
gtab = \begin{bmatrix} gtab = \begin{bmatrix}