🛠️ Создание приватного голосования — задача не из легких, но она стоит усилий!
Мы понимаем, что это может быть технически сложно, поэтому постараемся изложить все максимально ясно и по существу. Мы разберем требования и расскажем, как мы проектируем систему для безопасного, приватного и проверяемого голосования.
Готовы?
🧩 Основные требования:
› Шифровать голоса на стороне клиента и хранить их в зашифрованном виде в блокчейне
› Скрывать значения голосов, пока рынки активны
› Расшифровывать голоса только после закрытия рынка
› Привязывать каждый голос к пользователю для точного обновления репутации
Вот как мы это осуществляем. 👇
🔐 Сначала — шифрование:
→ Мы используем TLE (Time-Lock Encryption), предоставляемое сетью Drand (@drand_loe), которое позволяет использовать открытый ключ для шифрования голосов, которые можно будет расшифровать только с помощью закрытого ключа, который будет выпущен сетью Drand в будущем.
→ Пользователи шифруют свои голоса вне сети, используя открытый ключ Drand + значение соли. Это обеспечивает приватность голосов и делает их трудными для угадывания. После шифрования голоса отправляются в контракт в виде шифротекста.
Что происходит, когда голосование заканчивается? 🤔
📊 После закрытия рынка:
› Координатор Olas расшифровывает отдельные голоса, используя закрытый ключ, выпущенный Drand
› Координатор Olas агрегирует голоса, создает дерево Меркла и вычисляет окончательный итог.
› Результаты агрегации (т.е. корень Меркла, окончательный итог) отправляются обратно в контракт в блокчейн
› Контракт Olas использует оракул случайности (в настоящее время мы экспериментируем с @pragmaoracle, @cartridge_gg VRF и @chainlink VRF для наших нужд в случайности), чтобы случайным образом выбрать голоса, которые расшифровываются и проверяются по сравнению с деревом Меркла, чтобы достичь статистической уверенности в том, что голоса были правильно агрегированы.
Тем не менее, есть еще моменты, которые нужно доработать.
Пока что зашифрованные голоса становятся публичными после завершения рынка.
Полная приватность? Это в планах! Мы исследуем продвинутые криптографические методы, такие как гомоморфное шифрование, чтобы сохранить голоса приватными навсегда. Подробности об этом будут в будущих обновлениях. 💭