Почему голосованию на блокчейне нельзя доверять?

401
Просмотры

Исследователи Корнельского университета представили статью, где рассказали об уязвимости концепции голосования в DAO.

Блокчейн с его независимой природой хорошо подходит для голосования. Мы уже писали про применение технологии распределенного реестра в выборах. Блокчейн выступает в качестве независимой площадки, на которой подсчет ведется через запрограммированные смарт-контракты.

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

Авторы статьи предлагают проверить процесс покупки голосов на примере CarbonVote. Они вводят новую форму атаки, которую называют Dark DAO. Темное DAO — это децентрализованное объединение, которое покупает голоса в цепочке непрозрачным образом («по-темному»).

В такой атаке никто, даже создатель DAO, не может определить количество участников DAO, общую сумму денег, участвующую в атаке, или точную логику атаки. Например, Dark DAO может атаковать валюту типа Tezos, тайно собирать монеты, пока не достигнет некоторого порога, а затем продвигать неугодные сообществу решения.

Из-за того, что в основе голосования лежат токены, Dark DAO делает сеть уязвимой для путаницы, манипулирования и контроля со стороны богатой верхушки сообщества. Это не демократия. Такая ситуация была в EOS, когда контроль над сетью обрели кошельки китов. Обзор пулократии и криптовалют делал Виталик Бутерин (текст на английском).

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

  • это наказуемо,
  • нельзя проверить, выполнено ли задание на 100% (даже фото из кабинки можно подделать),
  • нет гарантии, что заказчик заплатит.

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

Пример атаки

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

Существует несколько способов атаковать такую схему.

Например, использование смарт-контрактов, которые платят за «правильный» вариант или за воздержание от голосования. Также смарт-контракт может возвращать токены за определенные варианты после завершения голосования.

Еще голосование можно подстроить через кошельки. Они могут отображать только нужные варианты или каким-то образом автоматически предлагать проголосовать.

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

Классическая схема — CarbonVote и голосование за EIP999

Возможно, самым важным таким голосованием был DAO CarbonVote. Проведение этого голосования была простым: владельцы счетов отправляли деньги на адрес, чтобы проголосовать «да», и на другой адрес, чтобы проголосовать «нет». Каждый адрес — это контракт. Затем голоса были подсчитаны и показаны чистые остатки всех счетов, на которые голосовали «да» или «нет». По окончанию голосования был сделан снимок сети для оценки настроений сообщества. Этот стиль голосования повторно использовался для других спорных проблем экосистемы, включая EIP-186.

Один из возможных вариантов минимизации прав голоса заключается в использовании условного депонирования. Пользователи отправляют Ether на контракт ERC20, который держит Ether до окончания голосования. За каждый эфир, который они депонируют, пользователи получают 1 VOTECOIN.

Контракт предварительно запрограммирован на то, чтобы голосовать «да» в конце голосования на все 100% принадлежащего пользователю ETH. После окончания голосования каждый токен VOTECOIN обменивается обратно. Пользователи возвращают свой оригинальный Ether, плюс какие-нибудь бонусы.

Пример такого контракта уже есть.

VOTECOIN в этом примере является токенированной покупкой голоса.

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

Выводы

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