Блокчейн может играть не только роль валютных и финансовых транзакций. Одним из таких нефинансовых приложений является то, что блокчейн может значительно улучшить сферы голосования и управления. В этой статье мы исследуем подходы к созданию специальной инфраструктуры блокчейна, предназначенной для облегчения голосования на основе MACI. Эта инфраструктура должна включать в себя легкий блокчейн, который действует как сервер временных меток и содержит логику, а также инструменты, необходимые для снижения пользовательских затрат и максимального повышения удобства работы пользователей. Следовательно, он должен стать новой базовой платформой для нового поколения технологий голосования. Прежде чем мы углубимся в детали, давайте сначала взглянем на историю технологии голосования и на то, как голосование развивалось в сообществе блокчейнов.

Эволюция технологий голосования. Технологии голосования от древнегреческого Клеротериона[1] до современных электронных машин для голосования.

Технология голосования имеет долгую историю[2]. Она чрезвычайно важна для человеческого общества, но развивается очень медленно. В Великобритании на всеобщих выборах 2019 года по-прежнему использовались бюллетени, заполненные вручную[3], а в других государствах используются электронные машины для голосования с закрытым исходным кодом[4], что может легко привести к спорным результатам государственного управления[5].

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

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

Хотя технологии голосования постепенно совершенствуются, прозрачность не повышалась уже давно. От Kleroterion и бумажных бюллетеней до электронных и оптических сканирующих машин для голосования, проверка по-прежнему зависит от доверенных лиц и аудиторских организаций. Подтверждение и проверка результатов голосования могут быть чрезвычайно дорогостоящими[6]. Очевидно, что есть возможности для совершенствования.

Так какая же технология голосования идеальна? Это несложный вопрос. Мы можем легко составить список пожеланий:

(1) Инфраструктура с открытым исходным кодом;

(2) размещение программ с открытым исходным кодом для логики голосования;

(3) вести постоянную запись всех поданных голосов по порядку;

(4) Возможность криптографической проверки результатов;

(5) Борьба с заговорами;

(6) Защитить конфиденциальность;

(7) Стоимость голосования низкая.

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

Голосование и управление в блокчейн-сообществах

Голосование и управление не являются чем-то новым в блокчейн-сообществе, поскольку многие блокчейн-сообщества являются распределенными и им приходится полагаться на управление, чтобы стимулировать развитие событий.

Сам блокчейн может прозрачно регистрировать голоса и проверять результаты голосования. Эти возможности используются блокчейн-сообществами для управления, например, с помощью голосования с помощью токенов Snapshot[7] и голосования по предложениям управления Cosmos[8]. Благодаря этому блокчейн-сообщества могут голосовать по предложениям и принимать важные решения по вопросам управления без участия централизованных агентов или личных встреч.

KlaytnSquare[9] предлагает [10] валидаторам голосовать в блокчейне. Предложение направлено на утверждение ежеквартального плана расходов казначейства[11].

В предыдущих примерах использовалось простое и понятное правило «1 токен — 1 голос»: количество голосов зависит от вашей доли в сети или протоколе. Очевидно, что мы можем создавать другие логики голосования, если это имеет смысл. Программируемость блокчейнов упрощает и делает более практичной реализацию нетрадиционной логики голосования.

Одним из примеров является квадратичное голосование[12] (QV), схема голосования, набирающая популярность в блокчейн-сообществе. В раунде QV пользователь может выразить свои предпочтения, потратив «голосовые кредиты» на определённую тему. Но если избиратель хочет отдать более одного голоса по одной и той же теме, стоимость каждого голоса увеличивается. В результате общая стоимость голосования увеличивается квадратично, что препятствует экстремальным предпочтениям пользователей со слишком большим количеством голосов.

Раунд квадратичного финансирования [13] проходит в блокчейне Aptos. Результаты голосования записываются в блокчейн, а логика голосования поддаётся проверке.

При выборе конкретного метода голосования необходимо учитывать множество параметров. Например, одним из компромиссов является выбор между голосованием в блокчейне и голосованием вне блокчейна. Логика голосования в блокчейне может быть более проверяемой и прозрачной, но комиссии за транзакции могут быть значительным бременем. И наоборот, логика голосования вне блокчейна может быть дешевле, но в то же время менее прозрачной и проверяемой. Однако голосование в блокчейне и вне блокчейна не является выбором между ними. Мы можем легко разработать гибридную систему, в которой часть процесса выполняется в блокчейне, а остальная часть — вне блокчейна.

Помимо стоимости, существует также проблема конфиденциальности. Конфиденциальность важна по двум причинам. Во-первых, во многих случаях, если пользователи могут голосовать анонимно (конфиденциальность между пользователями и организаторами), у них будет меньше опасений по поводу голосования. Кроме того, конфиденциальность между пользователями может помочь предотвратить подкуп избирателей и эффективно бороться с сговорами.

Один из способов минимизировать ончейн-вычисления, обеспечивая при этом целостность вне сети, — это использование доказательств с нулевым разглашением[14]. Простая идея заключается в том, что если оффчейн-вычисления можно проверить с помощью доказательств с нулевым разглашением, мы можем перенести большую часть вычислений за её пределы. Дополнительное шифрование сообщений позволяет повысить конфиденциальность. MACI[15] — это минимальная платформа, позволяющая достичь этой цели.

Раунд голосования MACI переносит подсчёт голосов за пределы блокчейна. Наконец, корректность результата проверяется в блокчейне с помощью доказательства с нулевым разглашением.

В раунде голосования MACI голоса инкапсулируются в сообщение, зашифрованное открытым ключом, сгенерированным администратором раунда (оператором) и отправленным в смарт-контракт. Таким образом, все сообщения снабжаются «метками времени» блокчейна, создавая цепочку сообщений с информацией о голосовании.

По завершении раунда голосования администратор скачивает все сообщения, расшифровывает их и подсчитывает голоса в обратном порядке. Результат публикуется вместе с доказательством с нулевым разглашением, которое может быть проверено смарт-контрактом (или любым другим лицом), подтверждая валидность опубликованного результата и корректность обработки сообщения.

Весь процесс минимизирует объем вычислений в сети, обеспечивая при этом целостность публикуемых результатов. Он также обеспечивает конфиденциальность и предотвращает сговоры между пользователями.

Как работает MACI в реальных продуктах?

В настоящее время MACI используется хакатонными сообществами на DoraHacks[16] для голосования за понравившиеся проекты. Поэтому мы возьмём в качестве примера раунд MACI на DoraHacks.

OpenSea и Replit Hackathon будут использовать MACI для голосования судей в 2022 году

После подачи заявки на проект хакатона (BUIDL) организаторы выбрали 12 команд BUIDL из всех представленных работ. Десяти судьям было предложено проголосовать за эти 12 команд BUIDL и распределить призовой фонд в размере 25 000 долларов США. Десять судей были включены в белый список и зарегистрировались для участия в голосовании. Они отправили в общей сложности 39 сообщений на смарт-контракт MACI, развернутый на Polygon.

После завершения голосования администратор (DoraHacks) подсчитывает голоса и публикует окончательные результаты в таблице лидеров, а затем предоставляет доказательство с нулевым разглашением для проверки таблицы лидеров.

Таблица результатов голосования на хакатоне OpenSea x Replit. Доказательство с нулевым разглашением, подтверждающее результаты, представленные в таблице.

В качестве общей платформы MACI может использоваться не только для голосования в качестве судьи на хакатонах и голосования в сообществе разработчиков ПО с открытым исходным кодом. Однако MACI на удивление редко применяется в других сферах. В более широком смысле, само голосование на блокчейне ещё не получило широкого распространения в реальном мире.

Преимущества использования блокчейна для улучшения технологии голосования очевидны, но почему реальный мир не продвинулся вперёд? Даже в блокчейн-сообществе преимущества MACI очевидны, так почему же MACI не получил широкого распространения в децентрализованном сообществе?

Одна из основных причин медленного внедрения передовых технологий голосования заключается не в низком спросе, а в сложности их использования. Другими словами, нам необходимо совершенствовать технологии, обеспечивать лучший UX/UI для современных продуктов для голосования и снижать стоимость их использования для пользователей.

Пользовательский опыт

Помимо управления сообществом разработчиков ПО с открытым исходным кодом, нам также необходимо создать больше интерфейсов для пользователей, использующих новые технологии голосования. DoraHacks финансирует экосистему Web3 и сообщество хакатонов, предлагая лучшие на данный момент продукты в отрасли. Хотя интерфейсы DoraHacks.io сами по себе имеют определённые сценарии использования, их можно упростить и затем обобщить для создания большего количества интерфейсов для большего числа вариантов использования.

Точная фронтенд-стратегия ещё не определена. Однако для внедрения технологии критически важен хороший пользовательский опыт, даже в блокчейн-сообществе, и это важно для разработчиков Dora Factory.

Расходы на голосование

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

С этой целью компания Dora Factory недавно протестировала новый продукт под названием Vota[17]. Идея Vota заключается в экспериментах со специализированными блокчейнами и их использовании для постоянной оптимизации технологии голосования и пользовательского опыта. В настоящее время Vota всё ещё находится на начальной стадии развития. Однако мы можем представить себе несколько различных форм Vota.

Временный смарт-контракт

Именно так сейчас поддерживаются раунды голосования на DoraHacks.io. Каждый раунд голосования разворачивается как отдельный смарт-контракт на определённом блокчейне. В большинстве случаев Ethereum, как правило, не может напрямую поддерживать большинство сценариев голосования (именно поэтому Snapshot является продуктом по умолчанию, используемым сообществом Ethereum). В настоящее время Polygon и BNBChain являются популярными вариантами для большинства организаторов грантов и хакатонов на DoraHacks.

Временный смарт-контракт на блокчейне L1, все сообщения о голосовании отправляются в L1.

Использование смарт-контрактов ad-hoc — не совсем плохо. Они гибкие и могут быть развернуты где угодно. Сейчас они отлично подходят пользователям DoraHacks, но не удовлетворят все потребности в голосовании в равной степени.

Голосование L2

Если мы создадим инфраструктуру уровня 2 (L2), предназначенную для голосования, мы сможем значительно снизить затраты на газ и, возможно, сможем реализовать недорогое голосование на Ethereum. Контракты L2 не обязательно полностью размещать на Ethereum, они могут быть дешевле и требуют лишь периодической отправки транзакций L1 для проверки всех действий L2.

Мы можем дополнительно оптимизировать эту модель. Общий L2 должен регулярно отправляться в Ethereum. Vota достаточно отправлять в Ethereum только одну транзакцию за раунд, что означает, что каждый раунд оплачивает только комиссию за газ, как минимум, за одну транзакцию. Если несколько раундов завершаются одновременно, они могут поделиться транзакцией, чтобы ещё больше снизить стоимость газа, что делает голосование L2 более реалистичным и осуществимым.

Сообщения отправляются непосредственно в контракт L2. В конце каждого раунда в блокчейн L1 отправляется только одна транзакция. Голосование L3 (применимо к L(n)Vota, где n>=3)

L3 Vota не совсем бессмысленна. Благодаря внедрению L2, L3 Vota может ещё больше снизить комиссии за газ. Хотя транзакции L3 в конечном итоге записываются и верифицируются на Ethereum, компромисс заключается в доверии к выбранному L2.

Конечно, мы можем расширить это до L(n) Vota, поскольку транзакции L(2)…L(n-1) будут отправляться в Ethereum (или другой L1). Но, очевидно, цепочка доверия усложнит ситуацию. В текущей ситуации многие известные L2 всё ещё полагаются на один секвенсор; возможно, сейчас ещё слишком рано говорить о L(4).

Цепочка приложений Vota

Разработчики Dora Factory создали простой «хак», позволяющий контрактам CosmWasm использовать [18] Bellman [19] для проверки доказательств с нулевым разглашением, сгенерированных SnarkJS. Благодаря включению Bellman в контракты CosmWasm любая цепочка приложений Cosmos может быстро поддерживать zk-приложения.

Благодаря возможности запуска zk-приложений независимые блокчейны могут использовать программные архитектуры, такие как Tendermint, для построения цепочки. Консенсус этих блокчейнов аналогичен BFT или даже проще, и они обычно поддерживают до 100 валидаторов. Тщательный выбор валидаторов с несовпадающими интересами позволяет независимым блокчейнам быть достаточно безопасными и нейтральными.

Поскольку DoraHacks приветствует присоединение новых цепочек приложений Cosmos, очевидным вариантом использования Vota на основе цепочки приложений является голосование за результаты хакатонов. Помимо DoraHacks, роль Vota на основе цепочки приложений Cosmos выходит далеко за рамки голосования за судей хакатонов.

Число валидаторов в цепочке приложений Vota невелико, но тщательно отобранные валидаторы могут обеспечить надежную инфраструктуру.

Стоит отметить, что эти решения не являются взаимоисключающими. По мере развития Vota различные решения могут пересекаться. Например, если у нас есть отдельная версия цепочки приложений Vota в качестве основной инфраструктуры, то для сценариев использования, требующих проверки транзакций на определённом уровне L1, цепочка приложений может отправлять дополнительные транзакции на уровень L1.

Лучшая анонимность

Продолжаются исследования, направленные на снижение уровня доверия к MACI. Первоначальный MACI предполагал, что администратор не может быть подкуплен. Это утверждение не всегда верно. Существуют решения, основанные на MPC[20] и не основанные на MPC[21], для улучшения этого. В настоящее время DoraHacks разработала анонимную версию MACI, основанную на повторно рандомизируемой криптографии Эль-Гамаля, первоначально предложенной Коби Гуиканом[22]. Она была протестирована в рамках небольшого исследовательского гранта ETH[23] на DoraHacks.io.

На данном этапе, возможно, несколько преждевременно продвигать внедрение анонимного MACI до того, как сам MACI получит широкое распространение. Тем не менее, важно продолжать исследования, направленные на снижение уровня доверия к механизмам общего голосования.

Добавьте анонимность в MACI, добавив операции, которые позволяют пользователям деактивировать и изменять свои секретные ключи, при этом администратор не сможет узнать, кто добавил какой новый ключ. Оплата GAS

Важно не предполагать, что пользователи владеют криптовалютой. Если бы каждый пользователь платил комиссию за каждую транзакцию, блокчейн был бы ограничен небольшой группой людей. Чтобы решить эту проблему, операторы MACI могли бы предварительно внести возвращаемый токен и выплатить его пользователю. Этот механизм можно было бы реализовать на заправочных станциях.

Сама АЗС представляет собой смарт-контракт, размещенный на Vota. Перед началом каждого раунда операторы могут решить, использовать её или нет. Используя АЗС, операторы предварительно вносят DORA на смарт-контракт и могут оплачивать комиссии за транзакции, связанные с конкретным раундом, через АЗС.

Вероятнее всего, Vota развернет заправочную станцию по умолчанию, а пользователи смогут по требованию разворачивать собственные заправочные станции с различной логикой оплаты.

Договор оплаты газа представляет собой учет баланса газа для каждого тура голосования.

Специализированные блокчейны могут быть пригодны для широкого спектра приложений, особенно нефинансовых. Голосование — одна из важнейших задач, которую блокчейн и криптография с нулевым разглашением могут помочь значительно решить. Повышение прозрачности и эффективности голосования может снизить управленческие противоречия в человеческом обществе и внутри блокчейн-сообществ, что может повысить производительность в долгосрочной перспективе. Такие протоколы, как MACI, создают четкую структуру для приложений голосования на блокчейнах, но технология голосования все еще требует значительной доработки. В частности, нам нужна удобная для пользователя инфраструктура в качестве основы для совершенствования технологии голосования в долгосрочной перспективе, и в этой статье подробно описываются будущие работы.

Ссылка

Клеротерион: https://en.wikipedia.org/wiki/Клеротерион

Долгая история технологий голосования: https://electionlab.mit.edu/research/voting-technology

Всеобщие выборы по Brexit в Великобритании в 2019 году: https://en.wikipedia.org/wiki/2019_United_Kingdom_general_election

Электронные машины для голосования: https://en.wikipedia.org/wiki/Dominion_Voting_Systems

Спор о результатах выборов: https://www.reuters.com/legal/dominions-defamation-case-against-fox-poised-trial-after-delay-2023-04-18

Расходы на подтверждение и проверку результатов голосования могут быть чрезвычайно высокими: https://azsos.gov/elections/voters/voting-elections/ballot-processing/2022-general-elections-recount-information

Голосование с помощью токенов моментальных снимков: https://snapshot.org/

Голосование по предложению по управлению Cosmos: https://www.mintscan.io/cosmos/proposals

KlaytnSquare: https://square.klaytn.foundation/GC

Предложение от KlaytnSquare: https://square.klaytn.foundation/Proposal/Detail?id=4

План фискальных расходов: https://govforum.klaytn.foundation/c/proposal/5

Квадратичное голосование: https://en.wikipedia.org/wiki/Quadratic_voting

Квадратичное финансирование: https://research.dorahacks.io/2022/07/11/quadratic-governance

Доказательство с нулевым разглашением: https://en.wikipedia.org/wiki/Zero-knowledge_proof

MACI: https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413

ДораХакс: https://dorahacks.io/grant/ethdenver22/buidl

Голосование: https://vota.dorafactory.org/

Простой «хак», позволяющий использовать контракты CosmWasm: https://github.com/DoraFactory/snarkjs-bellman-adapter/tree/main/prove

Беллман: https://github.com/zkcrypto/bellman

Решение на основе MPC: https://research.dorahacks.io/2023/03/30/mpc-maci-anonymization

Решения, не основанные на MPC: https://ethresear.ch/t/maci-anonymization-using-rerandomizable-encryption/7054

Анонимная версия MACI, предложенная KobeGuikan: https://github.com/dorahacksglobal/anonymous-maci

Раунд исследовательского гранта ETH: https://dorahacks.io/grant/ethre3/maci