Giter Club home page Giter Club logo

aleo-setup-ua-'s Introduction

Aleo налаштування І

Огляд

Для застосування SNARKs необхідно згенерувати певні параметри, щоб досягти високої ефективності (малі розміри доказу, швидкий час доказу та перевірки). Ці параметри генеруються за допомогою іншого набору параметрів, які повинні залишатися секретними. Ми називаємо ці секретні параметри "токсичним відходом". Якщо доказувач знає ці секрети, то він може генерувати достовірні докази для невірних тверджень, порушуючи справедливість. Це небажано!

Для того, щоб гарантувати, що ніхто ніколи не дізнається про ці секрети, ми можемо генерувати їх розподіленим способом. Кожен учасник цієї так званої "церемонії" зробить свій внесок у генерацію параметрів зі своїм власним секретом. Якщо хоча б 1 учасник буде чесним і знищить свій секрет, то у зловмисника не буде можливості створити фальшиві докази.

Цей репозиторій містить впровадження для багатопартійних обчислень. BGM17 Церемонія поділяється на дві фази: одна генерує Powers of Tau, а інша "спеціалізує" їх на надану арифметичну схему для Groth16 SNARK.

Зауважте, що згенеровані Powers of Tau можуть бути повторно використані для будь-якої іншої фази 2 або для реалізації інших механізмів, таких як схема комітування поліномів KZG10.

Щоб дізнатися, як забезпечити правильне виконання церемонії, дивіться файл RECOMMENDATIONS.md.

Налаштування I

Фаза 1 (Powers of Tau)

  1. Координатор генерує накопичувач
  2. Учасник завантажує останній накопичувач
  3. Учасник вносить свою випадковість до накопичувача (випадковість знищується після цього кроку)
  4. Учасник завантажує накопичувач назад до координатора
  5. Координатор перевіряє, чи був накопичувач перетворений правильно та генерує нове викликання.

Важливим аспектом цієї процедури є те, що вона може ніколи не закінчуватися. Це дозволяє SNARKs, які використовують KZG10, мати "неперервне" налаштування. Якщо учасник не довіряє налаштуванню, він може внести свій вклад у Powers of Tau та створити KZG10 з новими параметрами.

Налаштування II

Фаза 2 (Параметризація до Groth16)

  1. Координатор "підготовлює" параметри з Фази 1 та перетворює їх на коефіцієнти Лагранжа.
  2. Учасник завантажує останній стан параметрів.
  3. Учасник вносить свій випадковий внесок до параметрів (випадковість назавжди видаляється після цього кроку).
  4. Учасник завантажує параметри назад до координатора.
  5. Координатор перевіряє, чи було правильно перетворено аккумулятор.
  6. Повторює крок 2 для всіх учасників.

Це дає параметри, які можна використовувати для побудови SNARKs Groth16 для даної схеми. Установка є коректною, якщо принаймні 1 учасник був чесним і знищив свій "токсичний залишок" на кроці 3.

Посібник з будівництва

Побудуйте за допомогою команди cargo build (--release). Ви отримаєте дві виконувані програми phase1 та prepare_phase2 у директорії target/ directory.

Протестуйте за допомогою команди cargo test --all.

Виконайте бенчмарки з допомогою команди cargo bench --all (використовує criterion)

Якщо ви внесете зміни, не забудьте виконати cargo fmt та cargo clippy --all-targets --all-features -- -D warnings

Усі крейти вимагають Rust 2018 року і протестовані на наступних каналах:

  • 1.39.0
  • stable

Якщо у вас немає встановленого Rust, виконайте команду: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Структура каталогу

Цей репозиторій містить декілька сховищ Rust, які реалізують різні будівельні блоки MPC. Високорівнева структура репозиторію виглядає наступним чином:

  • phase1:Rust скринька, яке забезпечує накопичувач для Powers of Tau. Він працює у багатопоточному режимі та працює "пакетами", що дозволяє обчислювати великі степені у середовищах з обмеженими ресурсами.
  • phase2:Rust-утиліта, яка надає обгортку над параметрами Groth16, яка також містить перевірену стенограму дотеперішніх внесків до фази спеціалізації
  • setup1-contributor: Rust скринька для учасника Aleo Setup I
  • setup1-verifier: для верифікатора Aleo Setup I
  • setup2: Rust скринька для запуску Aleo Setup II
  • setup-utils: Утиліти для спільного використання у різних пакунках, що стосуються вводу/виводу, математичних операцій та помилок.

Ліцензія

Ця бібліотека є збіркою репозиторіїв, які ліцензовані за різними стандартними ліцензіями. Будь ласка, зверніться до кожного окремого репозиторію для отримання інформації про його ліцензію.

aleo-setup-ua-'s People

Contributors

howardwu avatar ebfull avatar jules avatar raychu86 avatar ibaryshnikov avatar shamatar avatar kellpossible avatar kobigurk avatar apruden2008 avatar bmerge avatar gakonst avatar poma avatar niklaslong avatar dependabot-preview[bot] avatar str4d avatar ssdbkey avatar emmorais avatar mmaker avatar jasondavies avatar zosorock avatar weijiekoh avatar skywinder avatar brechtpd avatar mistmorn0 avatar gluk64 avatar garethtdavies avatar petertodd avatar drpetervannostrand avatar weikengchen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.