Volxtz - A Tool For Informal Polling To Assist With Consensus Formation Prior To Proposal Injection

Volxtz description

Voltxtz is a tool for gathering and verifying informal opinions, polls or votes.

It will allow groups and service providers to form questionnaires or polls that users can vote on with a vote weight commensurate with their coin balance.

Volxtz use case

The initial use case of Volxtz will be for informal, off-chain polling regarding the popularity of various parts of various governance proposals within the Tezos blockchain.

Volxtz execution

When a particular measure or measures are proposed to the community, an announcement is sent out publicly and or based on registration with the group or service provider.

At the appropriate place and time, for the appropriate period the poll will be open. Participants will connect their crypto wallet. Select the chosen active measure and their ballot ( yay, nay, abstain ).

Volxtz will use the signing mechanism we are familiar with in crypto wallet functions to prove ownership of a certain balance.

That balance will be for a ‘yay’ ‘nay’ or ‘abstain’ vote. All other active balances on the chain will have an implicit ‘non-participation’ vote.

Specifications / UX

An issue would have been created on the hosting website front end. The vote could be spontaneous or scheduled.

At the appropriate time, on the appropriate site; the user will connect and sync their wallet with the website. ( No registry / information gathering should be required )

They will click on the issue of interest and either ‘yay’ ‘nay’ or ‘abstain.’

The user would sign a message sent by the website. This would verify their ownership of the address and their XTZ balance would be tallied for the vote.

This will be recorded in the dapp back end and tallied with the overall votes.

This is just a rough initial draft. There is lots of opportunity here to add features and functions over time. There could perhaps be a feature to lock ones vote in before the polling is open.

One issue that needs to be addressed is trustlessness. Since everything happens offchain, people need be able to verify that the vote tallying was honest and accurate.

A potential solution to this, having important votes require a very small fee and issuing them a receipt for their vote in the form of an NFT. Since the NFT exists on-chain, all of the receipts could be tallied independent of any organization to verify the reported results. This methodology could be flawed, please look for errors.

From the Author:

Thank you all for taking the time to read this. I am interested in making this happen and will put my money where my mouth is and pay to have this developed. Please ask questions and point out flaws if you want to see this happen. Pointing out errors now, brings the overall cost of development and maintenance down. Thank you again!

3 Likes

You could just publish the signatures.
The message to be signed would have to include something like “I vote for <> and current time/blocklevel is <>”

1 Like

Would this be off chain, and prove that X account voted X way on X issue etc…?

Jarrod, after reading this, I’m wondering if this couldn’t work with YayNay. It’s a polling solution that integrates with TezID proofs. You can make the requirements easier/harder to vote based on the TezID proofs needed. You can also set an arbitrary amount of tez needed to place a vote. It’s probably not EXACTLY what you’re looking for here, but it feels like it’s in the ballpark anyway. It’s been around for months, it might be worth looking at.

I haven’t seen much chatter about it, but I created a test poll some months back and it was a pretty easy experience.

1 Like

Thank you very much for the headsup on that, I will give it a look!

1 Like

It is an idea in the ballpark but I don’t think it satisfies what I want in Volxtz. I can’t be certain, no docs, lol. GitHub - YayNayApp/docs: YayNay Docs

With Volxtz there is no need to register with anyone or anything, just connect the wallet and sign a message. Looks like YayNay may require a previous setup with TezID.

1 Like

Wow, thank you so much for the support and interest everyone, full speed ahead!

A suggestion for another way to poll people far before protocol injection would be to look ahead to the milestones page of the following proposal (Protocol J+ · Milestones · Tezos / tezos · GitLab)

Could do a vote down the major headers to get a sense of the opinion of it all. In a similar vein to @klick’s suggestion maybe some sort of tzprofile integration with Agora that would have the bakers signing a one-time message from their baker to their agora account. Then it could just pull their projected votes from a block explorer?

1 Like

I think this is an interesting idea. If you are going to support the use case of polling bakers for their sentiment, you should also consider the use case of polling delegates for their sentiment and current baker.

As a delegate I would love the ability to tell a polling platform how I feel about a potential proposal (or features within a proposal) and also tell that platform my baker. Doing this would allow bakers to judge the sentiment of their delegates easily, and let them know how much delegated Tez they could lose if they vote against the wishes of their delegates.

1 Like

I personally like Volxtz to another method and it could certainly be integrated with Agora.

Other methods seem to require a registration or sign up / setup. Volxtz should be pretty seamless. Just connect with a wallet, pick your options and sign the message. :slight_smile:

Great ideas, thank you very much for the suggestions!

With the current plan for Volxtz, both bakers and those that delegate their xtz to them will be able to use the tool just fine. If anything, it is easier for delegates to vote rather than bakers.

It should be noted that, when a baker submits their ballot, it is only the balance of xtz ( and xtz locked up in bonds ) of that address that count toward it. Not the total xtz delegated to them.

1 Like

In order to support the use case of bakers responding to a poll, you may want to consider allowing users (bakers in this case) to upload a presigned message/voting decision that they sign with their private keys, without requiring them to integrate that private key with a web wallet and link that wallet via the browser.

The use case here is that a lot of bakers probably use the wallet which comes with the Tezos Client (Tezos Client Installation and Setup · Digital Assets on Tezos), or use a hardware wallet (majority are probably Ledger).

For your initial MVP, if you just allow users to upload a presigned message/vote, then you are able to support all bakers, regardless of what wallet or baking setup they are using, because all private keys can be used to sign a message, while not all wallets can be linked/connected via the browser.

While not all bakers are technical experts, most are probably technical enough to sign a message using their private key, if you give them instructions.

Allowing any user (baker or delegate) to upload a presigned message also gives them greater security, because they could sign it on an air-gapped computer. Although this may matter less to bakers because they are running the baking software on a device that is connected to the internet.

1 Like

Currently the plan is to use the baking registry contract to allow bakers to declare an address that votes on their behalf. What are your thoughts on that approach?

Is that how bakers register with Baking Bad? If so I think it’s a great plan. :+1:

1 Like

Thank you!

It is a general contract available to anyone. Tezos Commons controls it and Baking Bad uses it and helps out. :slight_smile:

1 Like