Eric Zhang

Gobernanza cuadrática: ¿qué funciona y qué no?

11 de julio de 2022

Eric Zhang

– Una exploración aproximada de las limitaciones del mundo real de la votación cuadrática y sus posibles soluciones.

Para TL;DR, vaya a Conclusión.

La gobernanza cuadrática ha demostrado ser útil en la gobernanza de DAO, la financiación de código abierto y más. Mientras tanto, también muestra un gran potencial para ser utilizado en sistemas de gobernanza no criptográficos, como el gobierno corporativo e incluso las elecciones políticas.

La forma primitiva de gobernanza cuadrática es la votación cuadrática (QV) (https://en.wikipedia.org/wiki/Quadratic_voting). La idea detrás de QV es permitir que los participantes en un sistema de gobernanza expresen su grado de preferencias limitando al mismo tiempo las preferencias extremas (especialmente de las ballenas). Para lograr este objetivo, Glen Weyl et al(https://www.aeaweb.org/articles?id=10.1257/pandp.20181002). propuso que se asigne un crédito de votación (originalmente llamado “crédito de voz”) a los votantes que participan en la gobernanza, y que el proceso de votación consuma créditos de voz. El costo de los créditos de voz por voto aumenta si uno sigue votando por una propuesta, por lo tanto limita el nivel de influencia que las ballenas pueden imponer sobre los resultados de la votación. Se ha experimentado con la votación cuadrática en mundos criptográficos y no criptográficos. Recientemente, la ronda de votación de la comunidad de ETHDenver (https://dorahacks.io/grant/ethdenver22) utilizó la votación cuadrática para igualar la distribución de fondos. En el mundo real, el Caucus Demócrata de Colorado (https://en.wikipedia.org/wiki/Quadratic_voting#Applications) utilizó la votación cuadrática para decidir las prioridades legislativas.

La financiación cuadrática (QF) (https://vitalik.ca/general/2019/12/07/quadratic.html) combina la votación con la donación y crea un algoritmo para calcular la distribución de fondos equivalentes a través de donaciones individuales. La financiación cuadrática ha sido adoptada por DoraHacks, Gitcoin y algunos otros protocolos de financiación nativos de criptomonedas. Se han alojado más de 30 rondas de subvenciones de financiación cuadrática en DoraHacks.io (https://dorahacks.io/grant). La financiación cuadrática permite a los miembros de la comunidad de cualquier ecosistema interactuar con propuestas en etapa inicial y BUIDLers. Sin embargo, sufre de varios problemas al mismo tiempo, incluida una mayor desigualdad en la distribución, falsificación de identidad, ataques de sibila y colusión.

En definitiva, todo depende de la escala de los sistemas de gobernanza. Piense en los sistemas de gobernanza como máquinas de distribución. Si un sistema solo distribuye 100 dólares, probablemente no habrá muchas cuentas falsas. Cuando distribuya 100.000 dólares, probablemente habrá bots y ataques Sybil. Cuando distribuya 10.000.000 dólares, es muy probable que surjan colusiones sofisticadas, ataques Sybil y otros problemas.

En este artículo, exploraremos las limitaciones de los sistemas de gobernanza cuadrática basados ​​en prácticas del mundo real y analizaremos posibles soluciones a estos problemas. Al final, cuantos más problemas resolvamos, más podremos ampliar la gobernanza cuadrática.

Desafíos de los sistemas de gobernanza cuadrática

En la práctica, un sistema de gobernanza cuadrático se puede construir con un modelo de tres fases: registrarse, votar y coincidir.

Una ronda QV/QF en tres fases

Aunque parezca sencillo y directo, si se construye un sistema de este tipo y se lo utiliza en la gobernanza real, se enfrentarán problemas en casi cada paso. Ahora, analicemos el sistema y describamos algunos de los obstáculos que ya hemos encontrado nosotros y otros.

  1. Inscripción: ¿si el sistema incluye a los votantes en la lista blanca? Si es así, ¿cómo se incluye a los votantes en la lista blanca? Si no, ¿cómo evitar los abusos de usuarios malintencionados?

  2. Votar: los votantes votan por un determinado conjunto de objetivos (BUIDL, proyectos, propuestas, bienes públicos o cualquier cosa que necesite ser seleccionada/financiada).

  3. Igualar/Distribuir: si hay un fondo común de financiación para distribuir, se igualará a los objetivos en función de los resultados de la votación. Es posible que se apliquen análisis y ajustes posteriores a la votación.

Además de las preguntas anteriores, hay muchos más problemas en los que pensar. Cuando el sistema se amplíe, ¿los participantes trabajarán entre sí para coludirse? ¿Y cómo podemos evitar la colusión?

También podría haber algunos problemas más sutiles y específicos del caso de uso, solo por nombrar algunos:

  1. ¿Cómo verificar continuamente la legitimidad de un objetivo para obtener financiación en una ronda QF?

  2. ¿Cómo verificar la identidad de los votantes preservando su privacidad?

  3. ¿Cómo descubrir los votos de Sybil y lidiar con estos votos si ya ocurren ataques de Sybil?

  4. ¿Cómo abordar la desigualdad si existen enormes brechas de financiación entre los objetivos?

  5. ¿Cuáles son las complejidades de las soluciones a estos problemas?

En este artículo, nos centramos en tres categorías de problemas que son más relevantes para escalar la gobernanza cuadrática: Verificación de identidad/ataque Sybil, colusión y desigualdad de distribución.

La resistencia de Sybil y la identidad de los votantes

La resistencia de Sybil ha sido uno de los temas más discutidos en la votación cuadrática y la financiación cuadrática hasta ahora. En comparación con los sistemas 1p1v o 1stake1vote, la división de cuentas puede generar más votos en la votación cuadrática y un área de apoyo más grande en la financiación cuadrática, por lo tanto, más fondos de contrapartida.

En teoría, los ataques sybil se pueden prevenir totalmente si el sistema está cerrado y la población de votantes es pequeña, porque se puede incluir a todos en la lista blanca y conocer a todos antes de que empiecen a votar. Un ejemplo real es la votación en el Congreso. Se conoce a cada representante y solo hay un pequeño grupo de ellos, normalmente no más de unos pocos cientos de personas. No es costoso en absoluto incluir a todos en la lista blanca cuando todos se conocen. Por lo tanto, cuando el Caucus Demócrata de Colorado utilizó la votación cuadrática, no debería haber habido preocupaciones por ataques sybil o falsificación de identidad.

Sin embargo, es diferente cuando un grupo más grande de personas utiliza la votación cuadrática, o en el caso de la financiación cuadrática, donde los contribuyentes de la comunidad pueden provenir de cualquier parte. En particular, los métodos de autenticación Web2 como GitHub / registro de correo electrónico NO son una forma de prevenir los ataques sybil en absoluto, porque se pueden crear fácilmente e incluso se puede falsificar el historial de cuentas. Con una gran población de votantes, los sistemas de gobernanza cuadrática son particularmente vulnerables a los ataques sybil, ¡porque falsificar identidades y cuentas para votar sí hace una gran diferencia!

Para abordar los ataques Sybil, se han desarrollado sistemas de análisis Sybil posteriores a la ronda (https://medium.com/block-science/operationalizing-the-gitcoindao-anti-sybil-process-7f2595544f44). Estos sistemas analizan principalmente los datos de votación e identifican posibles cuentas Sybil y comportamientos Sybil, para luego eliminarlos. Aunque el análisis posterior a la ronda es útil, existen algunos problemas con el análisis posterior a la ronda.

  1. El análisis sólo puede realizarse después de que finalice la votación y lleva tiempo. La comunidad debe esperar durante un período de gracia y podría surgir resentimiento.

  2. El dilema del código abierto. Un sistema de detección de sybil de código abierto estará sujeto a más ataques y, a menudo, el desarrollo de nuevos ataques sybil es más fácil que el desarrollo de herramientas anti-sybil. Por otro lado, un sistema de detección de sybil de código cerrado no será totalmente confiable.

  3. Los atacantes siempre pueden encontrar formas de jugar con el sistema, aunque el sistema de análisis de Sybil no se puede mejorar ni cambiar rápidamente, pero el atacante sí puede.

  4. Cambiar o ajustar los resultados podría generar disputas y desconfianza.

    Por lo tanto, es importante abordar los ataques de Sybil antes y durante la votación. La pregunta es: ¿cómo podemos verificar la identidad del votante? (https://0xparc.org/blog/zk-id-1)

    Ahora veamos algunos enfoques existentes y futuros: KYC, listas blancas, verificación de cuentas sociales, NFT/tokens vinculados al alma (SBT) y zk-identity. (https://0xparc.org/blog/zk-id-2)

    Al mismo tiempo, debido a que cada método de verificación de identidad tiene sus propias desventajas, utilizamos además las siguientes métricas para evaluarlas: resistencia a la sibila, falta de permisos, privacidad y complejidad.

    • La resistencia de Sybil es un objetivo importante aquí, al menos para la gobernanza de blockchain.

    • La falta de permisos es importante porque muchas comunidades quieren permanecer abiertas a un público amplio y la inclusión de personas en listas blancas o en KYC puede limitar su potencial de crecimiento. Actualmente, el costo de incluir en listas blancas o en métodos KYC es muy alto.

    • La privacidad es fundamental para facilitar que las personas expresen sus opiniones reales.

    • La complejidad es lo difícil (en términos de costos de ingeniería y operación) que es construir y utilizar estos métodos en la práctica.

    Analizamos estas compensaciones en diferentes dimensiones: apertura versus resistencia a la sibila, privacidad versus complejidad.

    Disyuntivas entre la resistencia de Sybil y la falta de permisos

Compensación entre privacidad y complejidad del sistema (nótese que las identidades zk tienen muchas propiedades preferidas pero requieren la construcción de infraestructuras mucho más complejas)

Además, existen distintos tipos de comunidades. Cada comunidad debe seleccionar la mejor compensación para sí misma al seleccionar los métodos de verificación de votantes. Un club cerrado puede simplemente usar listas blancas, una comunidad DAO concedida puede usar varios métodos juntos para maximizar su confiabilidad y credibilidad, si su capacidad de ingeniería lo permite.

También podemos analizar diferentes comunidades en función de la población de votantes frente a la apertura.

Para comunidades pequeñas y cerradas, casi todos los métodos de verificación son válidos, pero, por simplicidad, las listas blancas, el staking y las autenticaciones Web2 son probablemente las más sencillas.

Para comunidades grandes y cerradas, NFT/SBT (con certificación privada si la privacidad es una gran preocupación) y el staking son probablemente buenas opciones, o se pueden combinar con otras.

Para comunidades grandes y abiertas, los enfoques como zk-identity son la solución a largo plazo. Por ejemplo, en las elecciones presidenciales de Estados Unidos de 2020 hubo muchas disputas de ambos lados sobre las papeletas de votación por correo y las máquinas de votación. Para una comunidad tan cerrada (solo los ciudadanos pueden votar) pero tan grande (hay unos 300 millones de ciudadanos estadounidenses que pueden votar), probablemente valga la pena desarrollar infraestructuras de identidad zk a largo plazo.

Tenga en cuenta que se pueden combinar varios sistemas. Agregar participación a un sistema de lista blanca puede agregar responsabilidad; combinar SBT con atestación zk puede agregar privacidad, etc. Sin embargo, agregar nuevos métodos o combinar diferentes métodos aumentará el costo del producto, la ingeniería, la operación y la administración. Por lo tanto, una comunidad necesita evaluar las compensaciones antes de tomar decisiones.

Resistencia a la colusión

Aunque los ataques de sibila ocurren todo el tiempo en los sistemas de gobierno cuadrático, la colusión es el verdadero problema. La colusión es un problema más fundamental porque convierte un sistema de gobierno en un juego cooperativo, lo cual es inevitable y mucho más complicado la mayor parte del tiempo.

En definitiva, los sistemas de gobernanza son máquinas de distribución: la gente expresa su opinión mediante votos y el sistema distribuye una cantidad finita de recursos entre distintos grupos. Existen distintos niveles de colusión en función de la escala de un sistema de gobernanza. Probablemente haya muchos menos incentivos para la colusión en un sistema que distribuye 1.000 dólares que en otro que distribuye 1.000.000.

Existen costos asociados con diferentes formas de colusión, incluidos los costos financieros, los costos de reputación, etc. En las subvenciones de DoraHacks, la guía de la comunidad BUIDL (https://dorahacks.io/blog/buidl-community-guidelines/) prohíbe explícitamente el soborno de votos. A los miembros de la comunidad que violen la regla se les puede prohibir recibir fondos equivalentes de una subvención. Sin embargo, si los incentivos de la colusión son lo suficientemente grandes, siempre hay formas de sobornar.

Sin embargo, a diferencia de los ataques sibilantes, no tenemos formas obvias de eliminar la colusión. La colusión puede ser mucho más oscura que los ataques sibilantes, y es difícil detenerla mediante la “aplicación de la ley”. En el mundo real, la colusión está en todas partes y la mayoría de las formas de colusión ni siquiera son observables: tráfico de información privilegiada, soborno y cabildeo. Prevenir o regular la colusión a veces puede llevar décadas (por ejemplo, leyes de seguridad).

En el mundo blockchain, a menudo no es factible hacer cumplir las reglas de la comunidad para detener la colusión (¡porque casi no hay “aplicación de la ley” en la cadena!). Por lo tanto, las soluciones criptográficas anticolusión son más favorables. La Infraestructura Anticolusión Mínima (MACI) (https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413) es un sistema que logra este objetivo al dificultar criptográficamente que los votantes prueben sus resultados de votación reales. Una ronda de votación MACI básica tiene cuatro pasos.

  • En primer lugar, los votantes deben registrarse para participar en la votación.

  • Luego comienza la votación. Todos los votos se cifrarán con la clave privada del operador y se emitirán en un contrato inteligente. Los votantes pueden votar varias veces.

  • Cuando finaliza el período de votación, el operador recoge todos los mensajes y cuenta los votos en orden inverso, luego publica los resultados finales sin revelar los votos de ningún individuo.

  • Por último, el operador publica los resultados con una prueba de conocimiento cero (ZKP) que demuestra que los resultados son correctos.

Cuatro pasos de un sistema de votación utilizando MACI

Actualmente, MACI se utiliza principalmente en votaciones de blockchain y gobernanza comunitaria para la distribución de fondos. DoraHacks Light-weight MACI (https://github.com/dorahacksglobal/qf-maci) (basado en MACI 1.0) (https://medium.com/privacy-scaling-explorations/release-announcement-maci-1-0-c032bddd2157) ha sido utilizado por varias rondas de votación cuadrática en DoraHacks.io, incluidas las rondas de votación de la comunidad ETHDenver 22 (https://dorahacks.io/grant/ethdenver22) y la votación de los jueces del Hackathon Opensea (https://dorahacks.io/grant/opensea). Además, Clr.fund es una plataforma de financiación de bienes públicos de Ethereum que utiliza MACI y financiación cuadrática.

MACI mejora la resistencia a la colusión al aumentar el costo de la misma. Sin un sistema de este tipo, los votantes y los sobornadores comparten información y el costo del soborno será bajo. Con MACI, el costo del soborno aumentará significativamente. En un sistema con información eficiente, las características anticolusión aumentarán el costo del soborno hasta un punto en que el sobornador no pueda permitírselo. A menos que el sobornador pueda crear asimetría de información y reducir las expectativas de los votantes, no puede obtener ganancias del soborno.

Una conversación en un foro público sobre cuánto aumenta MACI el costo de la colusión

Sin embargo, MACI no es una solución “de una vez por todas” para todos los problemas de colusión. La única propiedad incondicional es la exactitud del resultado, que está garantizada por pruebas de conocimiento cero. Aparte de eso, MACI tiene sus propios supuestos de seguridad y privacidad, principalmente relacionados con el operador:

  1. El operador no actúa en connivencia con los votantes filtrando información a determinados grupos de votantes de forma directa o indirecta.

  2. No existe ningún mecanismo “loco” entre los votantes para romper la resistencia a la colusión de MACI (por ejemplo, los votantes son monitoreados físicamente las 24 horas del día, los 7 días de la semana o son obligados a votar en computadoras que no están controladas por ellos mismos).

Supuesto 1: el MACI original exige que el operador sea bueno, es decir, que preserve la privacidad de la información de los votantes, así como los detalles de la votación, y que no esté coludiendo intencionalmente con los votantes filtrando información. Supuesto 2: los incentivos no son lo suficientemente grandes como para que los votantes inventen formas costosas de romper la resistencia a la colusión del MACI.

¿Son importantes estas suposiciones? En un sistema de gobernanza a pequeña escala, puede que no lo sean, porque siempre podemos confiar en el operador. Pero puede que no sea así si el sistema de gobernanza se escala. El operador puede ser sobornado si hay incentivos suficientes.

Una forma de agregar privacidad entre los votantes y el operador es permitir que los votantes cambien sus claves y voten usando claves diferentes sin proporcionar al operador ninguna información sobre sus nuevas claves.

La idea es añadir la desactivación de claves al sistema y utilizar ZKP del lado del cliente para evitar que el operador sepa quién posee qué clave, evitando así que sepa quién votó qué. Hay varias formas de lograr este objetivo. La contrapartida es que, con más privacidad, aumentará la complejidad de la ingeniería.

Privacidad y complejidad, diferentes propuestas de anonimización de MACI

Enlace de referencia para diferentes anonimizaciones MACI:

  • MACI ligero (https://github.com/dorahacksglobal/qf-maci)

  • MACI original (https://ethresear.ch/t/minimal-anti-collusion-infrastructure/5413)

  • MACI anónimo ligero (https://doraresear.ch/2022/04/30/anonimato-maci-ligero/)

  • Anonimización MACI (con MPC) (https://ethresear.ch/t/adding-anonymization-to-maci/6329)

  • Anonimización MACI (con cifrado de reasignación aleatoria) (https://ethresear.ch/t/maci-anonymization-using-rerandomizable-encryption/7054)

La financiación cuadrática es particularmente vulnerable a la colusión, porque si algún partido puede simplemente sobornar a más votantes para que voten por sí mismo, su ganancia crecerá cuadráticamente.

Actualmente, MACI es más que suficiente para mejorar la resistencia a la colusión en la mayoría de los sistemas de gobernanza de blockchain. Supongamos que se añade anonimización a los productos existentes con el mismo nivel de experiencia de usuario. En ese caso, los sistemas de votación resistentes a la colusión impulsados ​​por blockchain pueden resolver potencialmente problemas de gobernanza reales, desde las elecciones generales hasta la futura gobernanza espacial.

Tanto los adversarios como las soluciones evolucionan a medida que un sistema de gobernanza escala

Desigualdad e impuestos

Una gran parte de la gobernanza es la distribución de recursos. La mayoría de las veces, la desigualdad es más bien una característica, no un error, porque siempre existe mientras se distribuyan recursos finitos. La única diferencia es si es grande o pequeña, pero nunca podemos eliminarla al 100% (¡de todos modos, la utopía no existe!). Si un sistema de gobernanza sufre grandes brechas de riqueza/distribución, la gente perderá confianza en el sistema con el tiempo, lo que eventualmente conducirá al colapso del sistema. Cabe destacar que esto es cierto tanto en el mundo real (levantamientos sociales, revoluciones y guerras civiles) como en la gobernanza del protocolo blockchain. (https://cryptoslate.com/defi-crowd-mocks-harvard-law-student-group-for-voting-20-million-out-of-uniswap-treasury)

La idea de la votación cuadrática es limitar las preferencias extremas, especialmente de las ballenas. Funciona la mayor parte del tiempo en la práctica. Sin embargo, la financiación cuadrática a menudo aumenta la desigualdad. Si un proyecto tiene un área de apoyo más grande (ya sea porque recibió una gran cantidad de donaciones o porque recibió donaciones de muchos contribuyentes diferentes), esta es una de las razones por las que la mayoría de las subvenciones de financiación cuadrática están sujetas a importantes ajustes posteriores a la ronda.

Una idea para limitar la desigualdad en el sistema de gobernanza cuadrático es gravar a los principales beneficiarios. Los proyectos que han recibido más fondos de contrapartida pueden subsidiar a los proyectos que no han recibido los fondos suficientes, de manera similar a lo que hacen muchos países para reducir la brecha de riqueza, excepto con dos diferencias: (1) toda la financiación “fiscal” se utilizará para redistribuir dentro del mismo sistema, (2) los impuestos pueden programarse en el protocolo.

Además, hay una suposición al utilizar los impuestos. Debemos suponer que todos los proyectos o propuestas son legítimos y precalificados. Esto es para asegurarnos de que todos los candidatos que reciben subsidios sean legítimos a los ojos de la comunidad. Si un sistema no incluye un proceso de selección de solicitudes, no funcionará.

El primer diseño del impuesto progresivo de financiación cuadrática se describió aquí (https://doraresear.ch/2021/06/16/reduce-quadratic-funding-inequality-with-a-progressive-tax-system/). Grava los mejores proyectos cada vez que se llama a vote() y distribuye el impuesto a todos los proyectos según un algoritmo fijo. Esta versión del impuesto progresivo se experimentó en varias subvenciones en DoraHacks en 2021. El problema de este sistema es que la distribución del impuesto todavía sigue proporciones de financiación de todos los proyectos. Por lo tanto, si la brecha de financiación es normal, los últimos proyectos financiados pueden beneficiarse del sistema. Si la brecha de financiación es enorme, los proyectos menos financiados pueden recibir poco de la financiación fiscal. En realidad, la financiación cuadrática a menudo da como resultado grandes brechas de riqueza, y este algoritmo se abandonó después de algunos experimentos.

Recientemente, se propuso un nuevo algoritmo de impuesto de financiación cuadrática (https://github.com/dorahacksglobal/qf-grant-contract/blob/bsc-long-term/grant-distribution-algorithm.zh.md) basado en la reducción de la brecha entre el proyecto más coincidente y el proyecto menos coincidente, preservando al mismo tiempo la estructura de los resultados de la votación cuadrática. Para simplificar el problema, el algoritmo define el grado de desigualdad como la diferencia entre el partido que recibe la mayor cantidad de financiación y el partido que recibe la menor cantidad de financiación. En este algoritmo, se establece como parámetro una proporción máxima de los más y los menos financiados, y el algoritmo ajusta dinámicamente los resultados de la financiación durante el proceso de votación siempre que la brecha supere la proporción máxima. El nuevo sistema impositivo probablemente se experimentará en las próximas subvenciones.

Conclusión (TL;DR)

  • La gobernanza tiene que ver con la distribución de recursos y valores finitos.

  • La gobernanza por sí sola no crea valor. Sin embargo, una gobernanza eficiente y justa puede aumentar los incentivos, lo que a su vez aumenta la productividad.

  • La gobernanza del mundo real comparte problemas similares con la gobernanza blockchain.

  • La gobernanza cuadrática hereda la mayoría de los problemas de otros sistemas de gobernanza y añade algunos de sus propios desafíos debido a su naturaleza “cuadrática”.

  • La gobernanza cuadrática enfrenta tres desafíos principales: verificación de identidad y ataques sibilantes, colusión y desigualdad.

  • Las soluciones anti-sybil y de verificación de identidad tienen desventajas, principalmente en términos de falta de permisos, resistencia a sybil, privacidad y complejidad del sistema.

  • La colusión puede resolverse parcialmente mediante protocolos criptográficos como MACI, bajo ciertas premisas. Más privacidad significa más complejidad.

  • La desigualdad puede ser perjudicial y destructiva. Al igual que las soluciones en el mundo real, los impuestos podrían ayudar a mejorar la calidad de la distribución.

Por último, la gobernanza es un juego sin fin. Cuando un sistema de gobernanza se escala, el problema se escala, por lo que las soluciones también deben escalar. Existe un amplio espacio de diseño para que los desarrolladores y diseñadores de mecanismos trabajen en nuevas soluciones y mejoren las existentes.