Друзья - запустился новый конкурс для разработчиков у блокчейна Free TON. В данном конкурсе должна быть задействованна целая команда программистов, так как задача весьма сложная и многогранная. Требуется разработать протокол голосования с нулевым разглашением информации поверх недавно представленной инструкции проверки TVM Groth16
Дата проведения
August 9 - November 8, 2021, 23:59 UTC
Мотивация
В январе 2021 года был проведен конкурс под названием “Challenge MIT/Harvard paper on Blockchain Faults in Election Systems”, в котором собраны аргументы в защиту позиции, согласно которой безопасные выборы на основе блокчейна возможны. В результате аргументы сообщества были собраны в совместном документе сообщества Free TON, который был использован GBA для обсуждения с представителями избирательных комиссий США
=nil; Foundation, будучи первоначальным членом сообщества Free TON, разработал обновленную версию виртуальной машины TON, которая включает криптографические примитивы, необходимые для использования проверки доказательства с нулевым разглашением в виртуализированных приложениях. =nil;
Foundation также подготовил расширенную имплементацию протокола TON на C++
и на Rust
Теперь Free TON имеет все необходимые технологии для проведения конкурса по
внедрению массового голосования на блокчейне
Протоколы голосования по своей сути подразумевают анонимность избирателя, но
они также должны поддерживать регистрацию избирателей властями, поэтому они
обычно разрабатываются как протоколы с нулевым разглашением (например,
https://eprint.iacr.org/2017/585.pdf или https://eprint.iacr.org/2019/1270.pdf)
Цель
Создать протокол голосования с использованием недавно представленной инструкции VERGRTH16 и сделать ее пригодной для использования с протоколом FreeTON
Требования
Решение должно:
Быть корректно функционирующим виртуализированным приложением FreeTON, развернутым либо на https://main.ton.dev (https://ton.live), либо на https://net.freeton.nil.foundation 1 (https://nil.ton.live или https://live.freeton.nil.foundation)
Включать использование инструкции VERGRTH16 TVM
Обеспечивать валидность бюллетеня
Обеспечивать целостность урны для голосования
Гарантировать конфиденциальность голоса в бюллетене, а также гарантировать, что избиратель не сможет дублировать свой голос
Позволить избирателю проверить включение своего голоса, а также гарантировать, что другие не могут заставить избирателя создать фальшивый бюллетень
Бюллетень должен быть создан только для избирателей, имеющих право голоса
Гарантировать, что результаты голосования взаимно-однозначно соответствуют бюллетеням на общественной доске
Обеспечить, чтобы бюллетени не раскрывали личность избирателя никаким организациям, даже властям
Гарантировать, что бюллетени являются подходящими только для индивидуального голосования и нет возможности для голосования по доверенности
Содержать следующие роли: ○ Избиратель ○ Верификатор ○ Эмитент бюллетеней
Содержать определения для следующих элементов: ○ Бюллетень. Требуется не разглашать решение избирателя до тех пор, пока об этом не примет решение эмитент бюллетеней ○ Реестр избирателей. Доказывает, что конкретный избиратель имеет право голоса
Содержать порядок регистрации избирателя, выдавшего бюллетень: ○ Избиратель генерирует некий публичный идентификатор ○ Избиратель отправляет публичный идентификатор эмитенту бюллетеней ○ Эмитент бюллетеней вносит идентификатор избирателя в Реестр избирателей
Дополнительные требования
Сложность создания поддельного бюллетеня должна быть не меньше, чем сложность перебора подписи EdDSA на Ed25519 (не очень формальное требование, но это нормально, поскольку публичный идентификатор избирателя может быть, например, открытым ключом EdDSA)
Раскрытие результатов голосования не должно быть возможным до окончания голосования
Помимо загрузки заявки, код должен быть отправлен в соответствии с GitHub freeton-org/readme и развернут либо на https://main.ton.dev (https://ton.live), либо на https://net.freeton.nil.foundation 1 (https://nil.ton.live или https://live.freeton.nil.foundation)
Каждый участник должен представить свое решение участникам Sub GOV DevEx до окончания конкурса, заранее согласовав время с членами Sub GOV DevEx
Решение должно включать тесты с четкими инструкциями
Решение должно иметь лицензию с открытым исходным кодом
Решение должно содержать как минимум черновик описания архитектуры, которое, как предполагается, должно содержать следующие части: ○ Часть In-TVM. Часть проверки доказательства. Эта часть должна выполняться с использованием инструкции VERGRTH16 и выполняться внутри TVM ○ Нативная часть. Определение схемы. Генератор доказательств
Награды
1st prize - 600,000 TONs
2nd prize - 300,000 TONs
3rd prize - 100,000 TONs
4th prize - 20,000 TONs
5th prize - 18,000 TONs
6th prize - 16,000 TONs
7th prize - 14,000 TONs
8th prize - 12,000 TONs
9th prize - 10,000 TONs
10th prize - 8,000 TONs
Landing page — https://zero.freeton.today/
Официальная новость — https://devex.gov.freeton.org/proposal?proposalAddress=0%3A22564170cd6e54121e89ff1338dd5ceca174530be2bd318c4521fefeebf8bb52
Чаты разработчиков — https://t.me/freeton_dev_exp / https://t.me/FT_cryptography_SG
FREE TON wiki — https://ru.freeton.wiki/Free_TON_Wiki
Введение во FREE TON (краткий курс) — https://freeton.academy/courses/introduction-to-free-ton-ru/
Coingecko - https://www.coingecko.com/ru/Криптовалюты/ton-crystal