Венчурный фонд Andreessen Horowitz, также известный как A16z, выпустил библиотеку Solidity, которая может быть использована для анонимного голосования на Ethereum. Библиотека, получившая название "Cicada", не позволяет узнать о выборе отдельного избирателя до окончания голосования. В сочетании с системами группового членства с нулевым знанием, такими как Semaphore, она также может сделать личность избирателя навсегда неизвестной, говорится в сообщении в блоге инженера A16z Майкла Жу от 24 мая.

Мы рады представить Cicada: новый строительный блок для частных внутрицепочечных голосований. https://t.co/hxE4KL4Se6

- moodle zoup (@moodlezoup) 24 мая 2023 г.

Cicada опирается на тайм-лок головоломки, тип криптографии, который позволяет пользователям шифровать секретные значения, которые могут быть расшифрованы только по истечении определенного периода времени, заявил Чжу.

Эти головоломки существуют с 1996 года. Но до 2019 года они требовали от пользователей раскрывать свои секретные значения по истечении времени. В системах голосования это могло привести к проблемам, когда пользователи подавали голоса, а затем уходили в офлайн, не позволяя подсчитать все голоса.

В 2019 году криптографами Джулио Малаволтой и Аравиндом Тьягараджаном была предложена концепция "гомоморфных" головоломок с временным замком. Это позволило складывать головоломки вместе, чтобы получить конечную головоломку, которую гораздо легче решить, чем сумму отдельных головоломок. Решение конечной загадки раскрывает только сумму отдельных значений без раскрытия отдельных значений, составляющих эту сумму.

Согласно сообщению A16z, Cicada использует эти гомоморфные головоломки, что позволяет подсчитывать голоса, даже если пользователи уходят в офлайн.

При попытке перенести систему Малаволты и Тьягараджана на блокчейн исследователи A16z столкнулись с препятствием на пути создания справедливой системы голосования: Каждый выбор должен быть закодирован как булево значение "1" или "0". Это означало, что злоумышленники могли попытаться увеличить свой голос, неправильно закодировав голосование - например, закодировав в качестве значения "100".

Чтобы решить эту проблему, Cicada требует от избирателей представлять вместе с каждым бюллетенем доказательство достоверности бюллетеня с нулевым знанием, говорится в сообщении. Доказательство показывает, что голос был закодирован правильно, но не раскрывает содержание голоса.

Cicada не позволяет узнать о голосах только во время проведения опроса. Как только "опрос закрыт" или период блокировки времени истек, любой человек может определить содержание голоса путем перебора решения головоломки. Однако A16z предположил, что эта проблема может быть решена путем объединения Cicada с системами группового членства с нулевым знанием, такими как Semaphore, Semacaulk или доказательствами состояния с нулевым знанием. В этом случае перебор головоломок покажет только то, что голос был отдан избирателем, имеющим право голоса, но не раскроет учетные данные, использованные для доказательства права голоса.

В качестве примера Жу предоставил ссылку на образец договора, составленного с помощью Cicada, который также опирается на Semaphore для подтверждения права голоса.

Системы голосования уже давно являются компонентом децентрализованных автономных организаций (DAO) - органов управления, которые часто управляют приложениями блокчейн. Но в большинстве случаев ДАО используют токены для представления голосов, что означает, что отдельные пользователи могут оказывать чрезмерное влияние, если они владеют большим количеством токенов. Например, 22 мая злоумышленник захватил контроль над Tornado Cash, отдав дополнительные голоса за вредоносное предложение и использовав его для слива всех средств контракта управления. Позже злоумышленник предложил вернуть контроль пользователям.

Основатель Waves Саша Иванов утверждает, что DAO должны перейти к более демократичной системе голосования, чтобы избежать подобных атак на управление.

Источник