DAVINCI: ZK Decentralized Voting Protocol for the Real World

EthCC[8] · 1 Jul 2025 · 13:21

Jordi Pinyana and Pau Escrich demonstrate DAVINCI, a zero-knowledge voting protocol on Ethereum. They discuss low-cost, frequent elections designed for scalability and resistance to censorship.

Speakers

Topics

From EthCC[8], hosted by Ethereum France.

Transcript

[Music] This working? Yeah. Cool. Uh hello everyone. Thank you for being here. Uh this is Jordi from Bogdoni and my colleague Paul. Uh we are very happy to have the opportunity to present it here. So today we are going to introduce Dainci uh which is an end tom verifiable anonymous receipt free and decentralized voting protocol uh engineered for mass adoption and everything is fully secured by zk snarks. So before entering in deep into the dai I want to talk about bogdoni where we came from and all the things that we have been doing. So what

is bdoni? Bogdon is an open source digital voting project that leverages distributed technologies and cryptographic to deliver a secure and transparent decision-making processes. So we have the vision to improve democratic and participatory governance using the centralized and open source technology. Uh and we had gathered around values of digital sovereignty, open source, public goods and tech for good. So where we are uh so sorry so who we are and where we came from. So we were born in 2018. Uh we were led by a multi-disiplinary group of prodemocracy activists and we were in a context of state repression against the Catalan civil society uh that was running a referendum about self-determination and

at that point we realized that current uh voting systems are opaced and are super costly. Also uh we have that the voting is an exclusive asset. So uh this uh voting thing is controlled by nation states from the census and all the infrastructure. If you think about organizing a voting process in your country, you didn't even know even where to start because yeah, you don't have the the tools. So the idea for BD from Bdoni is to create an unstoppable voting system and to democratize decision making to any citizen.

Okay. So uh doing a brief on our tech evolution. So we started in 2018. We did a fork of Zcash because Zcash had the properties of privacy and we held a voting process with uh 2,000 people. It was super nice because people didn't even realize that they were using blockchain technology. But yeah, at that point we realized that it Z going with Zikash it was a limited solution because lacks of programmability. So then at in 2018 at the very end of the year we tried to build a custom Ethereum proof authority network but there was an scalability problem and we we were missing the cryptographic primitive that

we were looking for and then finally in 2019 we built a custom term blockchain which is basically an estate machine that counts votes and held all the voting process and so on and nowadays it's still being used uh it's uh using circum and snarkjs on the client side for the voter to encrypt the vote and to provide anonymity and yeah as I said it's been running it's still being used by more than 200 organizations and we are very happy about it because we can provide a really nice UX so is based on using web3 technology to provide solutions to the web two world so people doesn't need to deal with uh sorry with uh with accounts with all the transactions and so on so everything is

transparent to the user even my grandmother can use it and And then uh we were in 2024 uh we revisited the Ethereum ecosystem scalability was not an issue anymore and we had the cryptographic primitives for building uh what we are going to announce today which is the vincipote sorry and yeah uh I think it's also important to highlight some of the use cases uh that we had on 2024 we held the valerian opposition on uh holding their elections in a context of uh high uh censorship and suppression of the voters. We had some uh international um visitors to check that the process was properly done and so on. Uh and also

talking about different verticals, we've been providing solutions to political parties in Spain like Sky Republican which is heling like highest votings for example they decide to invest or not the current president of Spain. Uh so the the member base used uh our our solutions uh for for doing so. Also we also provide some um solutions to Omnium Cultural which is the largest organization cultural organization in Europe with more than 180 uh sorry 180,000 uh members and we also supported football club Barcelona elections and some other sport clubs and it was a there's another um use case that I want to highlight which is this one which is the bell boots. It was the first legal

binding referendum held in Spain with all the democratic guarantees. It was under COVID restrictions and it was super cool to see people to vote without even uh leaving their house and we also provide a QR code so people that is not familiar with electronic devices and so on can go to a polling station and vote using the QR code and well we also we are also providing um the solution to uh unions and professional colleges. For example, in this case, we provide the solution with a two-factor authentification mechanism via SMS and email to the official college of nurses in Barcelona. And yeah, I don't want to extend a lot more on this. So, I will pass the ball to P who will be talking about the intrinsic the technological

intrinsic of Dainci. Thank you. Thank you, Shy. Sorry for going so fast. We only have 12 minutes and we want to communicate a lot of things. So, let's go. Let's talk about uh Dainci which is this next evolution for the our voting protocol. It's fully based on ZKS narc. Uh Dainci is an acronym that means the centralized autonomous vote integrity network with cryptographic inference. So this quite describes what the protocol is. It's the centralized and autonomous as Dow. So it doesn't relay on a central authority or central point. we as Vogdonic can disappear and this should be running. Uh it's a vote integrity

network. So that's the main objective for everything. We are processing vote, verifying, aggregating in batches and then uploading them uh on chain. And it uses cryptographic inference meaning that we derive conclusions exclusively from cryptographic primitives. So from the beginning to the end everything is cryptography and everything is GKE. Let's deep into the architecture um it's complex. I mean we have a white paper of uh 30 pages I think at white paper.bdoni.io if you want to want to know the details.

I'm going to try to make a brief uh too long don't read. So we have three main actors which are voters, sequencers and ethereum blockchain and then we have the state. The state is a Merkel tree and uh the state root which is the Merkel root of this Merkel tree lives on Ethereum. So the only information that we store on Ethereum is this state route and then some other minor parameters. This allows us to uh cast votes and to process voting with a very low gas cost.

Then sequencers, there is a network of sequencers that are constantly batching and processing and verifying votes and making this state to transition to the next state. So they generate a zk proof proving that the state transition from the current route to the next one is correct. And then the new state contains the new votes from the batch and also the results which use omorphic encryption and so on. So um to create a voting the user or the creator of the voting needs to send a transaction to Ethereum to start to bootstrap everything. Uh this transaction contains

the the census which is a list of addresses and and weights. Uh so this this adds a lot of flexibility to this solution because anyone can build a census and it doesn't matter what kind of information you are using or even with what kind of source of this information are you using. So only the census route of this census is going to Ethereum as part of the initial state. Then the sequencers will strap an MPC to um create the threshold encryption key and this key will be used for encrypting the votes and at the end the sequencers will run another MPC coordinated always through Ethereum and ZK proofs in order

to decrypt the results. Right? So the voter wants to send a vote. A vote is mainly the vote itself which is encrypted using this encryption key and then a ZK proof that proves the integrity of the vote. So it's has been correctly encrypted uh following the rules of the protocol. For instance, I if I have three options to choose, I cannot choose the fourth option. Right? So this is proven inside the ZKS. And finally an Ethereum signature that can be performed with with any uh compatible signer including treasure ledgers and so on. And so this process is happening all the time. Sequencers are accumulating votes, putting them in batches,

modifying the state, updating the state and so on. And many sequencers can work in parallel. So this is this allows us to decentralize the the whole system and to scale horizontally. And talking a bit more about um the specific implementation that we have done this is already working. So today we are announcing that we are publishing the first testn net and MVP for all this protocol. We have been working the last eight months on this. It's currently using uh circum in the browser for the first circuit and then we have three more circuits. All of them are chained. So one uh the first one is verified by the second and so on until

it it reached to Ethereum and for the sequencer back end we use Garch because uh it's low level so we can have um we can apply uh optimizations to the to the code and it's not like a ZKVM where it's hard to access to the low-level operations and because Garch supports many curve and there are two special curves elective curve that are cyclic. So they allow to to have native um aggregation or recursion. So this is how we aggregate many many votes in a single batch and then the batch is sent to Ethereum and so on. This process is repeated all the time. These are the

numbers of the current implementation. I'm pretty sure we will improve them. It's the first uh implementation and there is still room for optimization but right now it's usable. the numbers are quite good and especially they can be it they can be um executed using um a CPU only device. So we don't need GPUs and this is also a very important property for us because we want to allow anyone to participate on this sequencer network. So the more sequencers the more resilient and and the centralized it is the network and that's that's that's the point.

Perfect. Thank you so much po. So yeah we wanted to do a live demo but we are running short of time. So we have set up a voting for choosing the FCC best pizza. Uh you can go to sec.davinci.vote and you can to vote with your wallet if you had a wallet with activity that with activity in the past 90 days. So you can vote and hopefully your vote will be anonymous and it won't be coerced and yeah with all these nice properties that we that we achieved. Uh and another thing I forgot to mention it uh it's a quadratic voting. So we have something called the val protocol that allows to create any kind of voting process you imagine any kind of uh algorithmic you want on top of it. So

yeah this was all if you have any question uh feels feel free to reach us uh email telegram we will be around FCC if you want to talk a bit more on the intrinsics of the of the protocol please uh contact us and we can cross path I don't know if you have any question and thank you so much for being here please Ah, okay. Now we can take the question side. Thank you so much.

[Music] But hopefully you can catch up afterwards. That was great. [Music]