Bitcoin’s ongoing scaling debate continues to highlight that protocol governance is one of the biggest challenges for this technology.



One of the many solutions that have been proposed to break through the scaling impasse is coin-voting schemes, where Bitcoin users get to “vote” on potential protocol changes with their bitcoins. One implementation of such a solution, Bitcoinocracy, already exists, while several Bitcoin Core developers have been working on alternative schemes.

And recently, Bitrated CEO Nadav Ivgi developed an early implementation of HODL.voting, a coin-voting solution with an interesting twist. To vote, users need to lock up their bitcoins, losing access to them for some time.

“The theory is that by attaching a real cost to voting — loss of liquidity and ability to sell — we can get more reliable signaling,” the Israeli developer thinks.

Sacrifice

The concept behind existing coin-voting schemes like Bitcoinocracy is simple. Anyone who holds bitcoins can use the associated private keys to sign a message. This message acts as a vote, and all votes are added up. This definitively proves that all votes correspond to the ownership of bitcoins, allowing for a one-coin-one-vote type of system.

But this straightforward setup also has its weaknesses, Ivgi argues. Most important, while this type of voting requires access to bitcoins, it still doesn’t actually cost anything to vote.

“This means that custodians — exchanges, hosted wallets, etcetera — get to have disproportional voting power with their customers’ funds. And I don’t think that people currently holding funds at an exchange meant to consent to the exchange voting on their behalf on matters such as this,” Ivgi explained. “And two: cost-free signaling is not very reliable. Someone who’s not informed on a debate has no incentive not to vote however he feels like, even if he knows that the vote is completely uneducated. Alternatively, it would be very cheap to bribe him to vote a certain way, especially if he’s not planning to vote otherwise.”

The solution to this problem, Ivgi thinks, is to add a cost to voting. Referring to the handicap principle, he suggests that whenever there’s an incentive to cheat, requiring a sort of “sacrifice” can make signaling more reliable. Anyone who wants to vote would have to incur a real cost to prove that he really means it.

The cost that HODL.voting imposes on voters is a lack of access to their actual bitcoins, temporarily. And the longer someone is willing to lose this access, the more weight is attributed to the vote.

“HODL.voting uses time locks as a sacrifice to assign votes with weight,” Ivgi explained. “You send bitcoins to a special Bitcoin address that locks your bitcoins up and encodes your vote. The vote is weighted according to the amount of bitcoins locked, multiplied by the lock duration.”

And this also has the benefit, Ivgi pointed out, that custodians can’t vote for their customers; not without effectively running a fractional reserve. Users may want to withdraw their bitcoins at any time, so making them inaccessible shouldn’t be an option for exchanges and wallet providers.

HODL.voting

Ivgi developed an early implementation of HODL.voting at the Tel Aviv Bitcoin Embassy Hackathon last March — and won first prize with it.

The implementation uses CheckSequenceVerify (CSV), a feature that was added to the Bitcoin protocol about a year ago. CSV allows users to essentially “lock” bitcoins into the Bitcoin blockchain itself. A transaction that spends these bitcoins would be considered valid only at some point in the future, relative to when the bitcoins were “locked up.”

Using the HODL.voting website, voters can create a transaction that locks up their bitcoins with CSV. The website also generates a refund transaction, which will only be valid at some point in the future. HODL.voting users can broadcast this transaction when the time lock has passed — or have it broadcast for them. Consequently, the voter will have lost access to his coins for some time, enforced by the Bitcoin protocol itself.

And the transaction that locks up the bitcoins also contains some extra data: the “vote.” The HODL.voting website recognizes the data as a vote, to record it and add it to all other votes to calculate the overall score. That score is then visible on the HODL.voting website itself.

The only real weakness left is that whoever controls the website could fuzz the visible score. While the actual vote cannot be faked — it’s embedded and enforced by the Bitcoin protocol — what visitors see on the website as the result can be. That said, it should be possible for individual voters to verify whether their vote was included in the overall results. And, any interested party can verify that all the votes as displayed on the website are legitimate. This should keep the platform honest, Ivgi thinks.

Lastly, it should be noted that HODL.voting is, of course, not in any way binding for anything — it’s actually more of a polling mechanism. But as a poll that cannot be faked, it could provide useful information that is otherwise hard to come by.

Ivgi:

“I think that as a voting system it’s mostly interesting for gauging community sentiment regarding Bitcoin protocol development issues. It gives the voting power to long-term holders who’re willing to prove that they’re confident in Bitcoin’s long-term value proposition and that they have a stake in Bitcoin. Not just today, but also in the future value of Bitcoin as affected by the protocol development decisions they’re voting on.”

An alpha version of HODL.voting is currently running on Bitcoin’s testnet. Ivgi says there’s still quite a bit of work to be done before the project will be ready for the mainnet. He will complete HODL.voting if he believes there is enough interest for it.