Comunicación presentada al IV Congreso Ciudades Inteligentes:
Autores
- Javier Peña Martínez, Analista de Innovación Tecnológica, Ayuntamiento de Alcobendas
- Francisco Arechaga Alonso, CEO, MarketPay.io
- Javier Arteaga Moralejo, Subdirector Participación Ciudadana, Ayuntamiento de Alcobendas
- Marcos Herrero Verdugo, Técnico Participación Ciudadana, Ayuntamiento de Alcobendas
Resumen
El Ayuntamiento de Alcobendas, en aras de la Innovación, la transparencia y la participación ciudadana está desarrollando un proyecto piloto de votación en los procesos de participación basado en tecnología Blockchain. Esta tecnología innovadora permite descentralizar el gobierno de las operaciones, en concreto de las votaciones de los ciudadanos en un registro distribuido inmutable, auditable, seguro y confiable. A lo largo de esta publicación veremos los problemas detectados durante su fase de pruebas, las soluciones adoptadas y las conclusiones para su uso en otras instituciones. El resultado final se realizará con la puesta en marcha de un proceso de presupuestos participativos para la ciudad.
Palabras clave
Descentralización, Participación Ciudadana, Transparencia, Blockchain, Procesos Participativos, Votación, Innovación Disruptiva, Confianza
Introducción
Actualmente las Administraciones están atravesando una época de crisis de credibilidad en parte por la carencia de procesos innovadores y la forma de hacer participar a los ciudadanos en sus tomas de decisiones. Inicialmente, el Ayuntamiento de Alcobendas a través de los departamentos de Innovación Tecnológica y Participación Ciudadana, comprobó que una nueva tecnología llamada Blockchain está llevando a cabo un profundo cambio en Internet. Aplicado al ámbito municipal, podría llevarse a una nueva forma de gestionar relaciones mantenidas con el ciudadano.
Innovación tecnológica disruptiva
El departamento de Innovación se ha propuesto abordar Blockchain como innovación disruptiva (siguiendo The innovator’s dilemma de Chistensen 2006). Al contrario que la innovación incremental cuyo propósito es la mejora en más o menos grado de uno o varios atributos respecto al estado de arte actual, en la innovación disruptiva se propone la existencia de una nueva característica que aporta ventajas únicas. La descentralización es dicha característica a explorar, que conlleva de manera inherente ventajas como la transparencia y la inmutabilidad del resultado. Se presupone que el Smart Citizen es ese “mercado” dispuesto a abrazar dicho nuevo atributo aun a costa de perder rendimiento en el resto de atributos existentes.
Por descentralización entendemos que el sistema de votación y su gobierno pasa a recaer en la tecnología donde la propia Administración la adopta y redefine su rol para aportar la confianza y valor deseado que se exige a un gobierno abierto.
Participación Ciudadana
Como no podría ser de otro modo, se persigue también la innovación social incrementando la participación del vecino digital (“Smart Citizen”) en la toma de decisiones, elemento éste con un alto grado de rentabilidad social al aplicar un potente elemento tecnológico. Por tanto, el Ayuntamiento persigue una gestión municipal abierta a la transparencia, participación y colaboración, elementos básicos de este proyecto.
Antecedentes
Blockchain
La tecnología Blockchain nace como elemento nuclear de la primera criptomoneda, el Bitcoin (Nakamoto, 2009) donde se publica como esta tecnología puede resolver el problema de doble gasto. Esto significa que se pueda trasmitir digitalmente valor (un token o moneda) entre dos entidades consiguiendo que desaparezca cualquier intermediario. Por tanto, esa moneda la puede gastar solo uno en cualquier momento del tiempo. Para ello se desarrolla Blockchain –cadena de bloques– como un libro de registro -ledger- distribuido entre todos los participantes de una red donde llevar la contabilidad de todas las entidades conjuntamente. Es pública y se pueden ver las transacciones, pero de manera anónima. Esta no puede ser alterada a voluntad por algún miembro. Son los mismos participantes quienes garantizan la confianza entre los diferentes miembros que transaccionan.
Rápidamente se vio que esa misma tecnología no sólo valdría para contabilizar de manera descentralizada los Bitcoins, pero también cualquier otro activo digital. Nace en ese momento la segunda generación de Internet, la llamada Internet del Valor donde entidades digitales (wallets por su herencia original del mundo bitcoin) intercambian con plena confianza Tokens y Assets gracias a Blockchain. Entre 2013 y 2015 se desarrolla la plataforma Ethereum que permite construir eficientemente aplicaciones descentralizada – DApps- para el intercambio de dichos Tokens y Assets mediante Contratos Inteligentes -Smart Contracts. Estos no son más que la programación de las reglas de juego comunes a las dos partes que acceden a ese intercambio sin que ninguna de las dos pueda cambiarlas.
Ayuntamiento de Alcobendas
A finales del 2016, con la ayuda de ElevenPaths y junto con el departamento de Innovación Tecnológica se estuvieron realizando estudios con varios departamentos municipales para ver casos de uso de esta tecnología. Principalmente, estos casos de uso generaban valor sobre los principios de “Gobierno abierto” que el Ayuntamiento apoya firmemente. Tras un estudio de necesidad, ventajas e inconvenientes se decidió iniciar un proyecto para el desarrollo de los procesos participativos que el área de Participación Ciudadana desarrolla con los vecinos y cuyo fin más ambicioso son los futuros presupuestos participativos municipales.
El proyecto
Requisitos
El proceso participativo está basado en varios tipos de preguntas: selección simple, múltiple o de valoración con el fin de distribuir votos entre distintas opciones. Las preguntas pueden tener fichas descriptivas y por supuesto, el proceso participativo debe tener un inicio, un fin y seguir las guías de estilo institucionales.
La aplicación podrá ser utilizada en cualquier dispositivo web.
Hay un censo de votantes dinámicos que son los ciudadanos de Alcobendas.
Debido a la importancia del proceso participativo se deben seguir requisitos de seguridad que se han establecido en:
- Autenticación fuerte a través de los mecanismos que ofrece el ayuntamiento.
- Votos únicos e inmutables.
- Proceso fácilmente auditable.
- Anonimato.
Arquitectura de la solución
En términos generales se ha buscado que ingeniería y procesos fuera de la mano. Tras el análisis inicial de los sistemas de votación electrónico actuales, hay una tendencia a la “sobreingeniería” forzando la tecnología a resolver problemas que no son estrictos de la descentralización o que se superan con ajustes del propio proceso. El diseño de este sistema ha tendido a una solución comprensible, sencilla y sólida y fácil de evolucionar según avance la propia Blockchain.
Aplicación de Votación y Oráculo de Identidad
- Esta aplicación es la encargada de que el proceso de votación esté completamente descentralizado. Contiene el frontend que permite al usuario votante visualizar la votación concreta a llevar a cabo, e incorpora el wallet de identidad en Ethereum desde donde emite su voto. Desde la DApp de da acceso al nodo de la red Ethereum en el que reside el Smart Contract.
- El Oráculo de Identidad se encarga de autorizar a los wallets como votantes en el Smart Contract. Por tanto, la DApp se presenta al oráculo para que éste le conecte con los Servicios del Ayuntamiento de Autenticación y Autorización y active o deniegue el derecho al voto. Dichos servicios municipales incluyen la identificación con certificados, tarjeta de Alcobendas, Cl@ve y Consulta al padrón municipal para comprobar si un usuario es vecino de Alcobendas y a qué distrito pertenece.
- Faucet de Fondos para la votación. La DApp debe disponer de fondos (una pequeña fracción de Ethers) para poder pagar la minería de la red pública de Ethereum que conlleva la emisión del voto. Para ello se ha programado un servicio independiente (API) que puede ser invocado por la DApp para aprovisionarse de dichos fondos justo antes de llevar cabo el gasto, o sea, cualquier acción que implica minado. La aplicación evita así al usuario la compra de Ethers, cosa innecesaria cuando se trata de un proceso de participación ciudadana.
Aplicación de Recuento
Esta aplicación es la encargada de que el proceso de recuento de votos esté completamente descentralizado. Esta DApp sigue la misma arquitectura que la anterior. En este caso el frontend permite identificar a aquellos usuarios que hayan sido definidos con dicho rol de recontador de votos e invocar el Smart Contract para descargar las votaciones y descifrar las papeletas (si está así configurado) y realizar el recuento.
Smart Contract
- Contrato Inteligente en Ethereum encargado de la lógica y registro de los votos y votantes. El Smart Contract es capaz de registrar cada una de las tipologías de preguntas de los requerimientos, pero es agnóstico a las preguntas concretas de una votación específica. El contrato ofrece funcionalidades de cara al Votante, al Organizador y a los Recontadores. Cada funcionalidad es un endpoint que va identificado en Ethereum con un hash único.
- Estas son: «VotingClosedByOracle(), «amIACitizen() «canIVote() «closeVoting()», «deadline()», «getVoter(uint256)», «grantVoter(address)», «numVoters()», «numVotes()», «pollStatus()», «readVote(address)», «sendVote(string)», «timestamp()», «whoAmI()».
Proceso
En el diseño del proceso participativo se contempla la utilización de estas herramientas tecnológicas, definiendo el momento adecuado de su uso e integrándola en el cronograma. Llegado el momento, se definen las preguntas que serán objeto de votación. Esto conlleva de momento la creación de dicha consulta (batería de preguntas) en el frontend de la DApp.
Votar
Una vez que el usuario ha accedido a la aplicación desde su móvil o navegador, se inician los siguientes pasos:
- Autenticación del usuario y Autorización a votar. Las autorizaciones serán encargadas al pool de oráculos trabajando en round-robin que acceden al Smart Contract para validar los wallets de identidad como votantes.
- Contestación a las preguntas por parte del usuario. El usuario contestará cada una de las preguntas y cada contestación será guardada localmente en una estructura de datos (JSON) conformada para la votación.
- Votación. Finalmente, el usuario consentirá la votación pulsando el botón para ello. Esto conlleva la ejecución del Contrato Inteligente enviándole las contestaciones a las preguntas (voto). La estructura de la votación puede estar cifrada o no según esté determinada en la configuración de la votación. El votante dispone de un comprobante del voto, del identificador de la transacción y el enlace para la visualización directa en el Blockchain.
Recontar
El proceso de recuento es más sencillo. Una vez terminado el plazo de la votación, unos usuarios determinados por la organización para ser recontadores podrán cerrar la votación y solicitar el recuento. El recuento consiste en la llamada al Contrato Inteligente para ir contabilizando los votos que se han realizado. Finalmente se obtendrá el resultado de cada una de las opciones de votación.
Es importante indicar que la votación puede ser configurada para ser completamente anónima al Organizador de la votación, es decir, el Ayuntamiento. Esto conlleva que la DApp de Votación cifre asimétricamente cada voto con las claves públicas del o los recontadores. La DApp de Recontadores deberá descifrar cada uno de los votos con la clave privada del recontador. Se podrán contrastar los resultados de cada recontador para evitar la manipulación por alguno de ellos.
Metodología
El desarrollo del proyecto ha seguido una metodología ágil consistente en Iteraciones cortas con requisitos funcionales y trabajo rápido con maquetas y primeras versiones. El análisis de requisitos y estudio de diseño de la solución en Blockchain fue el primer paso para poder presentar una solución técnica viable. Una vez realizado, el proyecto se trazó con 3 fases con el objetivo de minimizar riesgos ante una tecnología tan nueva:
- 1ª Fase de pruebas internas: objetivo tener un producto mínimo viable (MVP).
- 2º Fase productiva interna: la realización de un proceso de votación para los trabajadores municipales donde el número de votantes ya es significativo (1.500) y el caso muy próximo al real.
- 3º Fase de producción externa: la realización de una votación para los presupuestos participativos de la ciudad de Alcobendas donde el censo de votantes para mayores de 18 años es cerca de 90.000.
Resultados y datos obtenidos
Sólo se han podido obtener resultados de las fases iniciales del proyecto donde se han llevado a cabo votaciones internas con el producto funcional ya disponible. Se analizan dichos resultados bajo el enfoque señalado de innovación disruptiva cuyo eje principal es la aportación neta positiva de la descentralización aun degradándose el rendimiento de otras variables.
Durante la primera fase de estudio y análisis de requisitos se vieron dos cuestiones interesantes a tratar: (1) la relación entre la auditabilidad y el anonimato, (2) el coste económico de cada una de las votaciones.
Auditabilidad y anonimato
Durante la parte de requisitos se analizó la capacidad del sistema descentralizado de votación para cumplir ambas características que están en cierta medida relacionadas: ser fácilmente auditable tendente incluso de manera pública y por otro lado un anonimato completo del votante.
El organizador de la votación simplemente debe identificar al votante para su participación, pero debe desconocer el voto emitido. Mientras la identidad digital de usuario votante no resida en un sistema descentralizado (por ejemplo, la propia Blockchain) donde él mismo es soberano de dicha identidad, se deberá operar mediante un oráculo de identidad como el descrito anteriormente. Este no guarda en ningún momento la relación entre votante y su voto, pero aun así puede generar desconfianza al votante, que puede desconocer este punto clave.
¿Cómo se resolvió este problema? La manera fue encriptando cada uno de los votos por medio de claves que solo pudieran descifrar los recontadores logrando así que el proceso de votación fuera secreto. Estos recontadores son usuarios conocidos cuyas cuentas de Ethereum son publicadas oficialmente. Ellos no saben qué persona hay detrás del vecino que emite su voto, pero si pueden saber qué ha votado y hacer el recuento total. En resumidas cuentas, el Organizador conoce al votante, pero no lo puede cruzar con los votos, y el Recontador conoce el voto, pero no lo puede cruzar con los votantes.
Hay que indicar que se realizaron varios estudios al respecto estudiando los casos de un agente proxy, o con sistemas de criptografía homomórficas Zero-Proof-Knowledge (ZPK). Se rechazaron por atentar contra la descentralización o en el caso de ZPK por ser complejo, para votaciones binarias y con pocos votantes.
Coste económico del sistema
Los costes de un sistema tradicional de voto están asociados a la disposición física de los lugares de votación, así como el tiempo empleado por los votantes para votar y las personas en recontar. Los actuales sistemas profesionales de software para la votación electrónica son centralizados y por tanto adolecen de las garantías de no inmutabilidad. Por el contrario, en la red pública Ethereum descentralizada por la que hemos optado para garantizar dicha inmutabilidad, se han de pagar los costes de minería que conlleva la emisión del voto. Estos costes están desafortunadamente afectados por la volatilidad de la moneda de pago Ether (ETH) con respecto al Euro (EUR).
Dichos costes son función de las siguientes variables: (1) gasprice ofrecido a la red de minería (2) tamaño del bloque a minar. Para poder optimizar dichos costes se hizo un estudio de la relación entre las variables gasprice y tiempo de respuesta de minado. Según la gráfica adjunta, su punto óptimo es alrededor de los 40.000 mWei (1x1018Wei=1Ether). Vemos que, al reducir los costes de minado, degradamos exponencialmente el tiempo de respuesta de minado. Y curiosamente también se aprecia que pagar más no implica un mejor servicio. Con repecto al tamaño del bloque a minar, se cuidó el diseño técnico para que el tamaño del voto (fichero JSON) fuera el mínimo.
Al cambio EUR/ETH=387 (a fecha 18/3/2018) y fijado el gasPrice=20.000 mWei, el coste unitario de un voto sin cifrar es de 2,18€ (ejecución de funciones TxSignUp+TxSendVotePlain+TxSignCSV). El voto cifrado rondaría los 2,81€.
Tiempos de votación
La percepción de espera por parte del usuario para su alta como votante ha sido minimizada gracias a un cuidado refinamiento de la Usabilidad durante los test. Las llamadas de la DApp (frontend) al Smart Contract (backend Ethereum) son por defecto asíncronas para que el usuario pueda seguir interactuando. Por ejemplo, el proceso de Faucet de carga de fondos se realiza de manera transparente al usuario.
Después de las primeras pruebas se comprobó que el wallet del oráculo de identidad se convertía en un importante cuello de botella dado que Ethereum no admite más de una transacción en curso por wallet. Se definió una arquitectura de múltiples oráculos en round-robin que registran simultáneamente a los votantes en el Smart Contract.
Conclusiones
La Innovación disruptiva se debe llevar a cabo siempre conjuntamente entre Tecnología y Proceso/Producto
Actualmente es mucho el interés por Blockchain que se ha despertado en el mundo de la tecnología, pero aún no es común su aplicación. Con esta iniciativa se demuestra la viabilidad del uso de tecnología basada en Blockchain en procesos reales de participación ciudadana que incorporan requisitos y necesidades para recabar la opinión vecinal en el desarrollo de políticas municipales.
El coste de transacciones puede hacer poco sostenible la solución
El coste en Ether para una votación puede, ante una nueva escalada del precio, llevar esta solución a un escenario poco sostenible económicamente. Afortunadamente hay soluciones para este problema como puede ser un Blockchain permisionado o semi público con bajo coste de transacciones, Alastria es una iniciativa referente a nivel nacional de un Blockchain permisionado. Otra solución es la selección de otros tipos de Blockchain que están apareciendo pero que tienen que demostrar la madurez que Ethereum tiene actualmente.
Generación de confianza y transparencia
Al realizarse la votación en un Blockchain público el proceso es completamente auditable. El proceso se basa en un sistema totalmente descentralizado y confiable. Es una solución propicia para todos los organismos que deseen apostar por los valores del gobierno abierto y la transparencia.
Referencias
- Christensen, C. (2006). The Innovator’s Dilemma.
- Nakamoto, S. (2009). Bitcoin: A Peer-to-Peer Electronic Cash System