Decred Ticket Splitting Overview

Did you know you can still participate in Decred’s unique PoS voting process without purchasing a full PoS ticket? I have previously made announcements on Reddit, but with this post, I hope to outline the ticket splitting process a bit more than in previous posts. Ideally, this will help newcomers break the ice and enhance their understanding of the process.

This is not a technical breakdown and I am not the developer of the ticket splitting software — however, I operate a Voting Service Provider called Decred Voting and I’ve been helping users get setup with ticket splitting for several months now, as well as coordinating and contributing to split ticket sessions. A simple definition of ticket splitting:

Ticket splitting allows multiple DCR holders to join together and contribute their DCR in a trustless manner towards the purchase of a single full proof-of-stake ticket.

Sessions

When DCR holders join together to purchase a ticket, it is called a “session”. Sessions are currently required to have a name. Therefore, those who wish to participate in ticket splitting must have a way of coordinating the session name — this is currently done on Decred’s Slack group in the #ticket_splitting channel, or in the Telegram group located here. You can coordinate a session anywhere you like, but you may have better luck finding other participants in the aforementioned platforms. Anyone can create a session at any time*, and it will exist until all participants leave the session, or until it has enough DCR to execute the purchase of a ticket. Participants cannot see any information about other participants — only the amount the other participants have pledged. During this phase of the session, users are required to keep both their wallet and the split ticket buyer program online.

*Note = Session creation is restricted when the ticket price is +/- 5 blocks away from changing.

Voting Service Providers (VSP) — formerly referred to as Stake Pools — assume the responsibility for ensuring all participants in a session submit valid addresses, and the VSP will vote for the ticket when it is randomly chosen by the DCR network.

Process Overview

In the early phases of a session, when there is not enough total DCR to purchase a ticket, participants are simply “pledging” that they are available to contribute X amount of DCR towards this split. Participants can join and leave the session as they please, but the instant that the total session contributions are equal to (or exceed) the cost of the ticket, the session will mature into the final stage and the ticket will be purchased. It is at this instant that participants’ pledges turn into actual commitments, and each users’ committed DCR is now locked in exchange for a portion of the ticket — just as it is with full ticket purchasing. All participants are now subject to the Proof-of-Stake ticket lifecycle, which you can read more about here.

How Voting Works with Split Tickets

The main idea surrounding PoS tickets is to voice your opinion on Decred Change Proposals (DCPs), Politeia proposals, and the security of Decred’s blockchain. With full tickets, the voting mechanism is simple: 1 ticket = 1 vote for each of the aforementioned items. With split tickets, a bit of complexity is added. The ticket still only counts for 1 vote, so which participant gets it?

Voting for DCPs and block validity (on-chain voting)

When it comes to selecting the voter for DCPs and previous block validity, the equivalent of a raffle is held while the split ticket transaction is being created. Participants in a ticket splitting session who contribute more DCR have a higher chance to win the voting rights towards DCPs. As is the case with any probabilistic system, the participant who contributes the most DCR is the most likely to win the voting rights for the ticket, but it’s not always the case. I have personally seen numerous times where a user who contributed 5 DCR won the voting rights over the only other participant in a session who contributed 95+ DCR.

Using session names to separate participants that disagree on DCPs is one way to keep interests aligned. There aren’t currently any active or upcoming DCPs, so this is not a concern. However, when the time comes for a new DCP, you may want to be strategic with whom you share your session name to.

Voting for Politeia Proposals (off-chain voting)

At the time of this writing, the participant who contributes the most DCR in a split session will automatically win the Politeia voting rights.

Proof-of-Stake Participation Compensation

Just as owners of full tickets get rewarded for casting their vote, split ticket participants are also rewarded for their participation when their split ticket votes. A PoS vote reward for a single ticket is currently 0.9053 DCR (May 2020). As a participant in a split ticket, you will receive a piece of that reward that is proportional to the amount you contributed towards the purchase of the split ticket. If you contributed 20 DCR towards the purchase of a 100 DCR ticket, you will receive 20% of the reward, which is approximately 0.181 DCR at the time of writing.

Miscellaneous (but Important) Information

Ticket splitting is currently in beta form. This essentially means there are still some minor issues that need to be worked out. I have personally contributed to over 50 split ticket sessions on mainnet without any issues (and many, many more split ticket sessions on testnet). The biggest problem that currently exists is the way Decrediton interprets your DCR balances and active tickets when you participate in split tickets. For this reason, it is suggested that you create a separate wallet to use exclusively for split ticket sessions.

The ticket splitting utility is an open source program that connects to your DCR wallet. It is extremely important that you only download the executable files from the developer’s (Matheus Degiovani) Github. Do not accept executable files from anyone you don’t know or trust.

that you only download the executable files from the developer’s (Matheus Degiovani) Github. Do not accept executable files from anyone you don’t know or trust. VSP List & Risk Acknowledgement

Technical Documentation (Voter Selection)

Technical Documentation (General Overview)

Setup Instructions

As previously mentioned, I operate the Decred Voting VSP. My voting infrastructure currently has several nodes throughout USA and one in central Europe. My service will automatically notify you about your ticket activity, including purchases and votes, for both full and split tickets. I have also developed a custom ticket dashboard to provide my users with some analytics information about their unique ticket activities. If you appreciated this post and are interested in participating in ticket splitting, I’d love to have you on board (setup instructions here). If you need any help, join the ticket splitting channels on Slack or Telegram.