Квадратичное финансирование

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


    Квадратичное финансирование (или CLR-финансирование) было предложено в 2018 году в работе Liberal Radicalism: A Flexible Design For Philanthropic Matching Funds как возможное решение перечисленных проблем финансирования общественных благ. Этот подход сочетает в себе преимущества рыночных механизмов и демократического управления, но при этом в меньшей степени подвержен их недостаткам. В его основе лежит идея встречного финансирования (софинансирования), при котором люди делают прямые пожертвования различным проектам, которые они считают общественно полезными, а некий крупный спонсор (например, благотворительный фонд) берёт на себя обязательство добавить пропорциональную сумму к каждому пожертвованию (например, удвоить его). Это создаёт дополнительный стимул для участия и позволяет спонсору эффективно распределить денежные средства, не имея экспертных знаний в той области, которая финансируется.


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



    Это позволяет участникам выразить силу своих предпочтений, что невозможно при голосовании по принципу «один человек — один голос». И в то же время, такой подход не наделяет чрезмерным влиянием участников, располагающих значительными ресурсами, как это происходит при голосовании по принципу пропорциональности (который часто применяется при голосовании акционеров).


    При квадратичном финансировании каждое индивидуальное пожертвование участника какому-либо проекту считается покупкой голосов за распределение средств в пользу этого проекта из общего фонда встречного финансирования. Предположим, что участник $i$ сделал пожертвование проекту $p$ в размере ${(c _ p)} _ i$. Тогда вес его голоса ${(w _ p)} _ i$ будет равен квадратному корню из размера его индивидуального вклада:


    $ {(w _ p)} _ i = \sqrt{ {(c _ p)} _ i } $


    Сумма встречного финансирования $F _ p$, которую получит проект $p$, затем подсчитывается исходя из суммы голосов за этот проект среди всех участников:


    $ F _ p = \left( \sum _ {i} {(w _ p)} _ i \right) ^ 2 = \left( \sum _ {i} \sqrt{ {(c _ p)} _ i } \right) ^ 2 $


    Если в результате подсчёта голосов общий объём финансирования превышает фиксированный бюджет $B$, то сумма встречного финансирования для каждого проекта корректируется в соответствии с его долей среди всех проектов:


    $ {F _ p} ^ {\prime} = B \left( \frac{F _ p}{\sum _ {p} F _ p } \right) $


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



    Для ознакомления с работой механизма можно воспользоваться калькулятором: https://qf.gitcoin.co/.


    Gitcoin


    Впервые механизм квадратичного финансирования был испытан в начале 2019 года в рамках программы Gitcoin Grants на платформе Gitcoin, которая специализируется на поддержке проектов с открытым исходным кодом. В первом раунде финансирования 132 донора сделали пожертвования в криптовалюте на развитие 26 инфраструктурных проектов экосистемы Ethereum. Общая сумма пожертвований составила 13242 доллара США, в дополнение к которым из фонда встречного финансирования, созданного несколькими крупными спонсорами, было выделено 25000 долларов. В дальнейшем участие в программе было открыто для всех желающих, а критерии проектов, попадающих под определение общественных благ экосистемы Ethereum, были расширены, появилось разделение по категориям, таким как «технологии» и «медиа». По состоянию на июль 2020 года было проведено уже 6 раундов, в ходе которых более 700 проектов получили в общей сумме более 2 млн долларов финансирования, а медианное значение суммы пожертвования составило 4.7 долларов.


    Программа Gitcoin Grants показала, что механизм квадратичного финансирования работает в соответствии с теоретическими построениями и обеспечивает финансирование общественных благ согласно предпочтениям участников сообщества. Однако этот механизм, как и многие системы электронного голосования, уязвим для некоторых атак, с которыми разработчикам платформы пришлось столкнуться в ходе экспериментов:


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

    Для предотвращения атаки Сивиллы при регистрации пользователя требуется учётная запись GitHub, также рассматривалось введение верификации номера телефона с помощью SMS. Попытки подкупа отслеживались по объявлениям о покупке голосов в социальных сетях и по транзакциям в блокчейне (выявлялись группы доноров, получавших оплату из одного источника). Однако эти меры не гарантируют полной защиты, и при наличии достаточных экономических стимулов злоумышленники могут их обойти, поэтому разработчиками ведётся поиск других возможных решений.


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


    clr.fund


    Задачей проекта clr.fund, находящегося на стадии разработки, является создание защищённого и масштабируемого фонда квадратичного финансирования c учётом опыта программы Gitcoin Grants. Фонд будет работать в условиях минимального доверия к его администраторам и управляться децентрализованно. Для этого учёт пожертвований, расчёт сумм встречного финансирования и распределение средств должны выполняться с помощью смарт-контрактов. Покупка голосов будет затруднена благодаря использованию тайного голосования с возможностью подмены голоса, регистрация пользователей будет проводиться через систему социальной верификации, а реестр получателей финансирования будет управляться сообществом и иметь встроенный механизм разрешения споров.


    Тайное голосование


    Тайна голоса при голосовании с использованием публичного блокчейна может быть сохранена с помощью протоколов нулевого разглашения, позволяющим проверять корректность математических операций над зашифрованными данными без раскрытия этих данных. В clr.fund размеры индивидуальных пожертвований будут скрыты и для расчёта сумм встречного финансирования будет применяться система zk-SNARK под названием MACI (Minimum Anti-Collusion Infrastructure, минимальная инфраструктура для противодействия сговору). Она позволяет проводить тайное квадратичное голосование и защищает голосующих от подкупа и принуждения при условии, что обработка голосов и подсчёт результатов выполняются доверенным лицом, называемым координатором. Система устроена так, что координатор может способствовать подкупу, поскольку он имеет возможность расшифровывать голоса, но при этом он не может исключать или подменять голоса, и не может подделывать результаты подсчёта голосов.


    Процесс начинается с того, что пользователи генерируют пару EdDSA ключей и регистрируются в смарт-контракте MACI, записывая свой публичный ключ. Затем начинается голосование, в ходе которого пользователи могут записывать в смарт-контракт два вида зашифрованных сообщений: сообщения, содержащие голос, и сообщения, меняющие ключ. Сообщения подписываются ключом пользователя и затем шифруются c использованием другого ключа, генерируемого по протоколу ECDH из специального одноразового ключа пользователя и публичного ключа координатора таким образом, что расшифровать их может только координатор или сам пользователь. Если злоумышленник пытается подкупить пользователя, то он может попросить его отправить сообщение с голосом и предоставить содержимое сообщения вместе с одноразовым ключом, с помощью которых злоумышленник восстановит зашифрованное сообщение и убедится, проверив транзакции в блокчейне, что оно действительно было отправлено. Однако перед отправкой голоса пользователь может тайно отправить сообщение, меняющее EdDSA ключ, и затем подписать сообщение с голосом старым ключом, сделав его недействительным. Поскольку доказать отсутствие замены ключа пользователь не может, у злоумышленника не будет уверенности в том, что голос в его пользу будет засчитан, и это делает подкуп бессмысленным.


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


    Социальная верификация


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


    Разрешение споров


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


    Для разрешения споров будет использована система Kleros, построенная с использованием смарт-контрактов. В ней любой желающий может стать арбитром, а справедливость выносимых решений достигается с помощью экономических стимулов. При инициации спора система автоматически выбирает нескольких арбитров методом жеребьёвки. Арбитры рассматривают предоставленные доказательства и голосуют в пользу одной из сторон с использованием схемы обязательства: голоса подаются в зашифрованном виде и раскрываются только после окончания голосования. Арбитры, оказавшиеся в большинстве, получают награду, а оказавшиеся в меньшинстве — платят штраф. Благодаря непредсказуемости состава жюри и сокрытию голосов координация между арбитрами затруднена и они вынуждены предугадывать действия друг друга и выбирать тот вариант, который вероятнее всего выберут другие, иначе они рискуют потерять деньги. Предполагается, что таким вариантом (фокальной точкой) станет наиболее справедливое решение, поскольку в условиях недостатка информации рациональным выбором будет принятие решения исходя из общеизвестных представлений о справедливости. Если одна из сторон спора не согласна с вынесенным решением, то назначаются апелляции, в ходе которых последовательно выбирается всё большее и большее число арбитров.


    Автономные экосистемы


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


    В существующих реализациях, таких как Gitcoin Grants, производство общественных благ субсидируется крупными спонсорами, однако вместо этого средства могут поступать из других источников. В некоторых криптовалютах, например Zcash и Decred, используется инфляционное финансирование: часть награды за создание блоков направляется команде разработчиков для поддержания дальнейшей их работы по улучшению инфраструктуры. Если будет создан механизм квадратичного финансирования, работающий надёжно и не требующий централизованного администрирования, то часть награды за блоки может направляться в него для последующего распределения с участием сообщества. Таким образом сформируется автономная экосистема, где производство общественных благ будет полностью самоподдерживающимся процессом и не будет зависеть от воли спонсоров и управляющих организаций.

    Комментарии 12

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

      Просто в меньшей степени или в достаточно меньшей степени чтобы это перестало быть проблемой?

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

      И на мой взгляд при такой системe условные «диснейлэнды» будут финанироваться на порядок лучше чем условные «центры по поиску лекарства от рака». Плюс например в «богатых районах» будет строится больше инфраструктуры чем в «бедных».
        +1
        И на мой взгляд при такой системe условные «диснейлэнды» будут финанироваться на порядок лучше чем условные «центры по поиску лекарства от рака». Плюс например в «богатых районах» будет строится больше инфраструктуры чем в «бедных».

        Сейчас примерно так и есть, только "диснейленды" не для нас. Например, сравните инфраструктуру Москвы и Подмосковья (не говоря уж про другие города). А ещё медицина и образование финансируются на порядок хуже, чем силовые ведомства. Лично я как налогоплательщик хотел бы указывать, на что я хочу отправить хотя бы часть налогов.

          0

          Очередной бред про регионы кормят Москву. У Москвы свой бюджет наполняющийся с работников и компаний непосредственно работающих (не путать с зарегистрированными) в Москве. И не путайте этот бюджет с федеральным, это разные бюджеты, наполняющиеся с разных налогов на разные цели.
          https://zen.yandex.ru/media/id/5e178221b477bf00ae04b2df/regiony-kormiat-moskvu-5e202e97028d6800b114318f

            +1
            Очередной бред про регионы кормят Москву.

            Где Вы это увидели? Я всего лишь утверждаю, что качество инфраструктуры в Москве и в подмосковных городах заметно отличается, хотя чисто физически они находятся рядом и в схожих условиях. Для конкретики — я сравниваю Долгопрудный, Мытищи, Королёв и север Москвы.
            Это аргумент к тому, что разница в качестве инфраструктуры между "богатыми" и "бедными" районами сейчас и так есть.


            P.S. И, кстати, много людей из области ездят работать в Москву, включая меня.

              +1
              Последнее предложение меня ввело в заблуждение. Тогда прошу прощения.
        0
        Не очень понимаю, что мешает большому проекту 0 разбить себя на два (или больше) подпроекта 0_1 и 0_2 и разделить голоса/пожертвования между ними, чтобы в итоге получить линейное распределение.
          0
          Походу, ничего не мешает, как и найти 1000 школьников, и дать им бабла, чтобы от своего имени задонатили (пусть даже, они себе оставят половину от суммы), или через сайт СМС регистраций сделать себе 1000 аккаунтов.

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

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

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

              И вот простая идея превращается в нереально сложную, т.к. появляется необходимость описать какие проекты можно разбивать, а какие нет.
              Не могли бы вы объяснить подробнее?

              Пусть вначале есть два проекта 0 и 1, и за каждый отдано по 4 голоса. Согласно квадратичному правилу каждый получает по 2/4 всех вложений. Теперь проект 0 разбивается на 0_1 и 0_2. Теперь голоса распределены как 2 за 0_1, 2 за 0_2 и 4 за 1. По правилам получаем пропорции финансирования sqrt(2)=1.414, sqrt(2) и sqrt(4). То есть теперь в сумме проект 0 получает 2*1.414/(2*1.414 + 2), а проект 1 просто 2/(2*1.414 + 2). Т.е. проект 0 разбившись на 2 получает финансирование в 1.414 раза больше.
                0
                По правилам получаем пропорции финансирования sqrt(2)=1.414, sqrt(2) и sqrt(4).

                Сумма встречного финансирования равна квадрату суммы весов голосов. Поэтому если у нас всего один голосующий, то мы получим sqrt(2)^2, sqrt(2)^2 и sqrt(4)^2, то есть 2, 2 и 4 — столько же, сколько без разбиения. Если же голосующих несколько, то после разбиения результат может даже стать хуже. Например, до разбиения:


                F(0) = F(1) = (sqrt(1) + sqrt(1) + sqrt(1) + sqrt(1)) ^ 2 = 16


                После разбиения:


                F(0_1) = F(0_2) = (sqrt(1) + sqrt(1)) ^ 2 = 4
                F(0_1) + F(0_2) = 8 < F(0)

                  0
                  Я упустил возведение в квадрат в конце видимо. Но тогда получается, во-первых, крайне не выгодно никуда отдавать больше 1 голоса, т.к. голос другого человека будет весить заметно больше, чем ваш второй голос. А во-вторых, между проектом с 10 голосами по 1 и проектом со 100 голосами по одному будет стократная разница в финансировании, что звучит как-то совсем плохо.
                    0
                    Но тогда получается, во-первых, крайне не выгодно никуда отдавать больше 1 голоса, т.к. голос другого человека будет весить заметно больше, чем ваш второй голос.

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


                    А во-вторых, между проектом с 10 голосами по 1 и проектом со 100 голосами по одному будет стократная разница в финансировании, что звучит как-то совсем плохо.

                    Для общественных благ — не плохо. Финансируется то, в чём нуждаются многие.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое