A partir de una discusión en Twitter se me ocurrió un sistema de votación que usa blockchain. Obvimanete fue una idea rápida y por tanto tendra mil problemas y objeciones, pero la dejaré plasmada aquí.
El sistema funcionaría en una blockchain que te permita generar tokens propios, por ejemplo Ethereum.
Primero de todo necesitamos crear packs de claves. Estos packs consistiran en una una par de claves de voto, una par de repudio y otro par de respaldo. En Blockchain un par de claves es lo que se llama una cartera, en estas carteras se cargaran 1 token. La votación consistirá en hacer una transacción entre la cartera del votante y la del partido escogido. Una vez realizado el voto se activa una ventana de tiempo durante la cual se puede usar la clave de repudio para invalidar el voto. Esto serviria para en caso de compromiso del sistema usado para votar y que se haya modificado el voto, usando un canal alternativo se permita invalidarlo. En ese momento la clave de respaldo pasaria a estar activa y se podria volver a votar. Se podrian añadir mas claves de repudio y respaldo para incrementar la fiabilidad.
Para garantizar la confidencialidad y un voto una persona, se deberia proveer estas claves previa identificación y selladas. Si se quisiera incrementar la confidencialidad podrías intercanviar tu pack de claves con la persona que se desee ya no modificaría nada.