Skip to content

Commit efa883e

Browse files
fix links (#980)
1 parent e812b78 commit efa883e

File tree

8 files changed

+52
-52
lines changed

8 files changed

+52
-52
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,25 @@ So, we decided to build our library, focusing on performance, with clear documen
4040

4141
## Main crates
4242

43-
- [Math](https://github.com/lambdaclass/lambdaworks/tree/main/math)
44-
- [Crypto primitives](https://github.com/lambdaclass/lambdaworks/tree/main/crypto)
45-
- [STARK Prover](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark)
46-
- [Plonk Prover](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk)
47-
- [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16)
43+
- [Math](./crates/math)
44+
- [Crypto primitives](./crates/crypto/)
45+
- [STARK Prover](./crates/provers/stark/)
46+
- [Plonk Prover](./crates/provers/plonk/)
47+
- [Groth 16](./crates/provers/groth16/)
4848

4949
### Crypto
5050

51-
- [Elliptic curves](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve)
52-
- [Multiscalar multiplication](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/msm)
53-
- [Hashes](https://github.com/lambdaclass/lambdaworks/tree/main/crypto/src/hash)
51+
- [Elliptic curves](./crates/math/src/elliptic_curve/)
52+
- [Multiscalar multiplication](./crates/math/src/msm/)
53+
- [Hashes](./crates/crypto/src/hash/)
5454

5555
Most of math and crypto crates supports no-std without allocation with `no-default-features`. A few functions and modules require the `alloc` feature.
5656

5757
Both Math and Crypto support wasm with target `wasm32-unknown-unknown`. To see an example of how to use this to deploy a verifier in a browser, check the Cairo Prover wasm-pack verifier.
5858

5959
## Exercises and Challenges
6060

61-
- [lambdaworks exercises and challenges](https://github.com/lambdaclass/lambdaworks_exercises/tree/main)
61+
- [lambdaworks exercises and challenges](./exercises/)
6262
- [Roadmap for Sparkling Water Bootcamp](https://github.com/lambdaclass/sparkling_water_bootcamp/blob/main/README.md)
6363

6464
## Citing lambdaworks

crates/crypto/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ lambdaworks-crypto = "0.11.0"
1414
## Structure
1515

1616
This crate contains different cryptographic primitives needed for proof systems. The main elements are:
17-
- [Merkle trees](https://github.com/lambdaclass/lambdaworks/tree/main/crypto/src/merkle_tree)
18-
- [Hash functions](https://github.com/lambdaclass/lambdaworks/tree/main/crypto/src/hash)
19-
- [Fiat Shamir transformation](https://github.com/lambdaclass/lambdaworks/tree/main/crypto/src/fiat_shamir)
20-
- [Polynomial commitment schemes](https://github.com/lambdaclass/lambdaworks/tree/main/crypto/src/commitments)
17+
- [Merkle trees](./src/merkle_tree/)
18+
- [Hash functions](./src/hash/)
19+
- [Fiat Shamir transformation](./src/fiat_shamir/)
20+
- [Polynomial commitment schemes](./src/commitments/)

crates/math/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ This crate contains all the relevant mathematical building blocks needed for pro
1616
- [Finite Fields](./src/field/README.md)
1717
- [Elliptic curves](./src/elliptic_curve/README.md)
1818
- [Polynomials - univariate and multivariate](./src/polynomial/README.md)
19-
- [Large unsigned integers](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/unsigned_integer)
20-
- [Fast Fourier Transform](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/fft)
21-
- [Optimized Multiscalar Multiplication](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/msm)
19+
- [Large unsigned integers](./src/unsigned_integer/)
20+
- [Fast Fourier Transform](./src/fft/README.md)
21+
- [Optimized Multiscalar Multiplication](./src/msm/)

crates/math/src/elliptic_curve/README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Elliptic curves
22

33
This folder contains the different elliptic curve models currently supported by lambdaworks. For an overview of the curve models, their addition formulas and coordinate systems, see [Hyperelliptic](https://hyperelliptic.org/EFD/g1p/index.html). The models currently supported are:
4-
- [Short Weierstrass](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass)
5-
- [Twisted Edwards](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/edwards)
6-
- [Montgomery](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/montgomery)
4+
- [Short Weierstrass](./short_weierstrass/)
5+
- [Twisted Edwards](./edwards/)
6+
- [Montgomery](./montgomery/)
77

88
Each of the curve models can have one or more coordinate systems, such as homogeneous projective, Jacobian, XZ coordinates, etc. These are used for reasons of performance. It is possible to define an operation, $\oplus$, taking two points over an elliptic curve, $E$ and obtain a third one, such that $(E, \oplus)$ is a group.
99

@@ -12,28 +12,28 @@ This part makes use of lambdaworks finite fields. If you are unfamiliar with it
1212
## Short Weierstrass
1313

1414
The following curves are currently supported:
15-
- [BLS12-377](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_377), a pairing-friendly elliptic curve (pairing implementation pending).
16-
- [BLS12-381](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_381), a pairing-friendly elliptic curve.
17-
- [BN-254](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/bn_254), a pairing-friendly elliptic curve. Used on Ethereum.
18-
- [Grumpkin](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/grumpkin), an elliptic curve that forms a two-cycle with BN-254. This means that the base field for Grumpkin (where the coordinates $x,y$ live) is the scalar field of BN-254 (the field with order equal to the order of the group of the elliptic curve), and the scalar field for Grumpkin is the base field of BN-254.
19-
- [Pallas](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/pallas), useful for recursive SNARKs when used with Vesta.
20-
- [Vesta](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/short_weierstrass/curves/vesta), useful for recursive SNARKs when used with Pallas.
21-
- [Starknet's curve](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/stark_curve.rs)
15+
- [BLS12-377](./short_weierstrass/curves/bls12_377/), a pairing-friendly elliptic curve (pairing implementation pending).
16+
- [BLS12-381](./short_weierstrass/curves/bls12_381/), a pairing-friendly elliptic curve.
17+
- [BN-254](./short_weierstrass/curves/bn_254/), a pairing-friendly elliptic curve. Used on Ethereum.
18+
- [Grumpkin](./short_weierstrass/curves/grumpkin/), an elliptic curve that forms a two-cycle with BN-254. This means that the base field for Grumpkin (where the coordinates $x,y$ live) is the scalar field of BN-254 (the field with order equal to the order of the group of the elliptic curve), and the scalar field for Grumpkin is the base field of BN-254.
19+
- [Pallas](./short_weierstrass/curves/pallas/), useful for recursive SNARKs when used with Vesta.
20+
- [Vesta](./short_weierstrass/curves/vesta/), useful for recursive SNARKs when used with Pallas.
21+
- [Starknet's curve](./short_weierstrass/curves/stark_curve.rs)
2222
- [secp256k1](./short_weierstrass/curves/secp256k1/curve.rs): Bitcoin's curve. The implementation is not constant time, so it cannot be used to sign messages!
2323
- [secq256k1](./short_weierstrass/curves/secq256k1/curve.rs): It has the same curve equation as secp256k1, a different generator and their order r and the modulus p are swapped. It uses ```secp256k1_scalarfield``` as a base field, which has modulus r.
2424
- [secp256r1](./short_weierstrass/curves/secp256r1/curve.rs): Used for digital signatures, also known as: P-256 and prime256v1.
2525

2626
## Twisted Edwards
2727

2828
The following curves are currently supported:
29-
- [Ed448Goldilocks](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/edwards/curves/ed448_goldilocks.rs)
30-
- [Bandersnatch](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/elliptic_curve/edwards/curves/bandersnatch)
31-
- [TinyJubJub](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/edwards/curves/tiny_jub_jub.rs), only for learning purposes.
29+
- [Ed448Goldilocks](./edwards/curves/ed448_goldilocks.rs)
30+
- [Bandersnatch](./edwards/curves/bandersnatch/)
31+
- [TinyJubJub](./edwards/curves/tiny_jub_jub.rs), only for learning purposes.
3232

3333
## Montgomery
3434

3535
The following curves are currently supported:
36-
- [TinyJubJub](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/montgomery/curves/tiny_jub_jub.rs), only for learning purposes.
36+
- [TinyJubJub](./montgomery/curves/tiny_jub_jub.rs), only for learning purposes.
3737

3838
## Implementing Elliptic Curves in lambdaworks
3939

crates/math/src/fft/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Since the main applications of the FFT are related to polynomial evaluation and
1212
- `interpolate_fft`
1313
- `interpolate_offset_fft`
1414

15-
These functions can be used with [univariate polynomials](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/polynomial). To use the functions,
15+
These functions can be used with [univariate polynomials](./README.md). To use the functions,
1616
```rust
1717
let p_1 = Polynomial::new(&[FE::new(3), FE::new(4), FE::new(5) FE::new(6)]);
1818
let evaluations = Polynomial::evaluate_offset_fft(p_1, 4, 4, FE::new(3))?;

crates/math/src/field/README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# lambdaworks Fields
22

33
This folder contains the different field backends, including field extensions. To learn how to use our fields, see the [examples](https://github.com/lambdaclass/lambdaworks/blob/main/examples/README.md) under basic use of finite fields. Below we give a list of currently supported fields; if yours is not on the list, you can add it by implementing the traits and providing the constants.
4-
- [Stark-252](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/fft_friendly/stark_252_prime_field.rs): the field currently used by Starknet and STARK Platinum prover. FFT-friendly.
5-
- [Mini-Goldilocks](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/fft_friendly/u64_goldilocks.rs), also known as oxfoi prime ($2^{64} - 2^{32} + 1$). FFT-friendly.
6-
- [Pallas base field](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/pallas_field.rs): this is also the scalar field of the Vesta elliptic curve.
7-
- [Vesta base field](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/vesta_field.rs): this is also the scalar field of the Pallas elliptic curve.
8-
- [Goldilocks-448](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/p448_goldilocks_prime_field.rs)
9-
- [Mersenne-31](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/mersenne31/field.rs): $2^{31} - 1$ and its [quadratic extension](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/mersenne31/extension.rs)
10-
- [Baby Bear](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/fft_friendly/babybear.rs) and its [quadratic extension](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/field/fields/fft_friendly/quadratic_babybear.rs): FFT-friendly, $2^{31} - 2^{27} + 1$.
11-
- [Scalar field of BN-254](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs), and its quadratic extension, quartic, sextic and twelth degree extensions. This coincides with the base field of [Grumpkin](../elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs)
12-
- [Base field of BN-254](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs) and its quadratic extension. The base field coincides with the scalar field of [Grumpkin](../elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs)
13-
- [Scalar field of BLS12-381](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs), and its quadratic, sextic and twelth degree extensions. FFT-friendly.
14-
- [Base field of BLS12-381](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs)
15-
- [Scalar field of BLS12-377](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs)
16-
- [Base field of BLS12-377](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs)
4+
- [Stark-252](./fields/fft_friendly/stark_252_prime_field.rs): the field currently used by Starknet and STARK Platinum prover. FFT-friendly.
5+
- [Mini-Goldilocks](./fields/fft_friendly/u64_goldilocks.rs), also known as oxfoi prime ($2^{64} - 2^{32} + 1$). FFT-friendly.
6+
- [Pallas base field](./fields/pallas_field.rs): this is also the scalar field of the Vesta elliptic curve.
7+
- [Vesta base field](./fields/vesta_field.rs): this is also the scalar field of the Pallas elliptic curve.
8+
- [Goldilocks-448](./fields/p448_goldilocks_prime_field.rs)
9+
- [Mersenne-31](./fields/mersenne31/): $2^{31} - 1$ and its [quadratic extension](./fields/mersenne31/extensions.rs)
10+
- [Baby Bear](./fields/fft_friendly/babybear_u32.rs) and its [quadratic extension](./fields/fft_friendly/quadratic_babybear.rs): FFT-friendly, $2^{31} - 2^{27} + 1$.
11+
- [Scalar field of BN-254](../elliptic_curve/short_weierstrass/curves/bn_254/default_types.rs), and its quadratic extension, quartic, sextic and twelth degree extensions. This coincides with the base field of [Grumpkin](../elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs)
12+
- [Base field of BN-254](../elliptic_curve/short_weierstrass/curves/bn_254/field_extension.rs) and its quadratic extension. The base field coincides with the scalar field of [Grumpkin](../elliptic_curve/short_weierstrass/curves/grumpkin/curve.rs)
13+
- [Scalar field of BLS12-381](../elliptic_curve/short_weierstrass/curves/bls12_381/default_types.rs), and its quadratic, sextic and twelth degree extensions. FFT-friendly.
14+
- [Base field of BLS12-381](../elliptic_curve/short_weierstrass/curves/bls12_381/field_extension.rs)
15+
- [Scalar field of BLS12-377](../elliptic_curve/short_weierstrass/curves/bls12_377/curve.rs)
16+
- [Base field of BLS12-377](../elliptic_curve/short_weierstrass/curves/bls12_377/field_extension.rs)
1717
- [Base field of secp256k1](./fields/secp256k1_field.rs): the base field of Bitcoin's elliptic curve.
1818
- [Scalar field of secp256k1](./fields/secp256k1_scalarfield.rs): the scalar field of Bitcoin's elliptic curve.
1919

crates/math/src/polynomial/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# lambdaworks Polynomials
22

33
Contains all the relevant tools for polynomials. Supports:
4-
- [Univariate polynomials](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/polynomial/mod.rs)
5-
- [Dense Multivariate polynomials](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/polynomial/dense_multilinear_poly.rs) and [Sparse Multilinear polynomials](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/polynomial/sparse_multilinear_poly.rs)
4+
- [Univariate polynomials](./mod.rs)
5+
- [Dense Multivariate polynomials](../polynomial/dense_multilinear_poly.rs) and [Sparse Multilinear polynomials](../polynomial/sparse_multilinear_poly.rs)
66

7-
lambdaworks's polynomials work over [Finite Fields](https://github.com/lambdaclass/lambdaworks/tree/main/math/src/field).
7+
lambdaworks's polynomials work over [Finite Fields](../field/README.md).
88

99
## Univariate polynomials
1010

@@ -65,4 +65,4 @@ Alternatively, polynomials of degree $n$ can be defined by providing exactly $n
6565
let p = Polynomial::interpolate(&[FE::new(0), FE::new(1)], &[FE::new(2), FE::new(1)]).unwrap();
6666
```
6767

68-
Many polynomial operations can go faster by using the [Fast Fourier Transform](https://github.com/lambdaclass/lambdaworks/blob/main/math/src/fft/polynomial.rs).
68+
Many polynomial operations can go faster by using the [Fast Fourier Transform](../fft/polynomial.rs).

crates/provers/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
Provers allow one party, the prover, to show to other parties, the verifiers, that a given computer program has been executed correctly by means of a cryptographic proof. This proof ideally satisfies the following two properties: it is fast to verify and its size is small (smaller than the size of the witness). All provers have a `prove` function, which takes some description of the program and other input and outputs a proof. There is also a `verify` function which takes the proof and other input and accepts or rejects the proof.
44

55
This folder contains the different provers currently supported by lambdaworks:
6-
- [Groth 16](https://github.com/lambdaclass/lambdaworks/tree/main/provers/groth16)
7-
- [Plonk](https://github.com/lambdaclass/lambdaworks/tree/main/provers/plonk)
8-
- [STARKs](https://github.com/lambdaclass/lambdaworks/tree/main/provers/stark)
6+
- [Groth 16](./groth16/)
7+
- [Plonk](./plonk/)
8+
- [STARKs](./stark/)
99
- [Cairo](https://github.com/lambdaclass/lambdaworks/tree/a591186e6c4dd53301b03b4ddd69369abe99f960/provers/cairo) - This is only for learning purposes and no longer supported. The [docs](../docs/src/starks/) still contain information that could be useful to understand and learn how Cairo works.
1010

1111
The reference papers for each of the provers is given below:
@@ -22,4 +22,4 @@ Using one prover or another depends on usecase and other desired properties. We
2222

2323
## Using provers
2424

25-
- [Plonk prover](https://github.com/lambdaclass/lambdaworks/blob/main/provers/plonk/README.md)
25+
- [Plonk prover](./plonk/README.md)

0 commit comments

Comments
 (0)