sneurlax / mobileliblelantus

Mobile Lelantus library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lelantus

Lelantus is Firo’s next generation privacy protocol which improves on Sigma by removing the requirement of fixed denominations allowing people to burn arbitrary amounts and redeem partial amounts without revealing values or the source. Lelantus doesn’t require any trusted setup and uses only DDH assumptions. It also supports untraceable direct anonymous payments by allowing people to pass the right to redeem to someone else. Lelantus is Firo’s own innovation described in [https://lelantus.io/].

Directory layout

   .
   ├── src              # Source code for the protocol & schema
   ├── bitcoin          # Slightly modified source code from bitcoin
   ├── secp256k1        # Slightly modified source code from secp256k1
   ├── tests            # Test executables
   ├── build            # Script to build executables in tests (Linux & MacOS)
   ├── run_all_tests    # Script to run all tests together
   └── README.mdℤ

The code can be compiled using the following command from the root directory of the repository.

./build <directory>

For example, build ~/macos will put the executables protocol_tests, challenge_generator_tests, coin_tests, inner_product_test, joinsplit_tests, lelantus_primitives_tests, range_proof_test, serialize_test, sigma_extended_test and schnorr_test in the directory ~/macos.

Group

The elliptic curve group secp256k1 used in Bitcoin.

Executables

protocol_tests

The executable protocol_tests runs Lelantus proof generation and verification tests. It creates random anonymity sets, puts there there coins, generates proofs and tries to verify

challenge_generator_tests

The executable challenge_generator_tests creates various types of challenges, used in Lelantus protocol, and checks correctness of challenges

coin_tests

The executable coin_tests creates coins and runes several checks on them

inner_product_test

The executable inner_product_test creates inner profuct proofs and tries to verify running InnerProductProofVerifier

joinsplit_tests

The executable joinsplit_tests runs tests for whole schema.

lelantus_primitives_tests

The executable lelantus_primitives_tests runs tests for primitives used in Lelantus protocol

schnorr_test

The executable schnorr_test creates Schnorr proofs and tires to verify them for checking the correctness of creation and verification of the proof.

range_proof_test

The executable range_proof_test creates Bulletproofs Range proofs and tires to verify them for checking the correctness of creation and verification of the proof.

sigma_extended_test

The executable sigma_extended_test creates Sigma proofs and tires to verify them for checking the correctness of creation and verification of the proof.

serialize_test

The executable serialization_test runs tests for EC Group element, Scalar, InnerProduct proof, Range proof, Schnorr proof, Sigma and Sigma proofs. It serializes the object, deserializes it to another object and compares them.

About

Mobile Lelantus library

License:MIT License


Languages

Language:C 54.5%Language:C++ 34.5%Language:M4 3.4%Language:Java 2.3%Language:Sage 2.3%Language:Assembly 2.2%Language:Makefile 0.5%Language:Shell 0.3%