One of the discussions that keeps coming up is the topic of ‘Vote Buying,’ or ‘Witness/Block Producer Dividends.’ I’ve been thinking about how these topics relate to Delegated Proof of Stake for quite some time now, and I've finally gained the impetus to formalize what I had been working on previously.
If you know a bit about my efforts leading @steemcleaners and @cheetah here, you know I’m a big fighter of things that are fraudulent. So something that might be considered ‘electoral fraud’ is incredibly important for me to understand, especially given that I am currently a top elected block producer here on this DPoS network, Steem.
As a primary disclaimer: Vote Buying and Vote Incentivizing are definitely two different things. Vote Buying would be a transactional approach, an express guarantee of a vote in exchange for money or barter for value (including perhaps a return vote). While most would agree that this behaviour is (or can become) dangerous or corrupt, the latter is a bit harder to explain.
Vote Incentivizing is something different. Instead of being an explicit transaction, it’s a financial incentive to act in ways that will benefit you, rather than the community as a whole. As I plan to prove in this post, vote incentivization ends up boiling down into the ‘Tragedy of the Commons,’ where this selfish interest ends up undermining the whole purpose of a Delegated Proof of Stake System. Thus, because of its consequences, it is important to understand and discuss the implications of vote incentivization.
Note: This post assumes you have prior knowledge on how Delegated Proof of State (DPoS) functions -- while some might be explained, it will be written from the assumption of basic prior knowledge. If you feel shaky on the basics of DPoS, I would encourage you to look at the following resources:
- https://hackernoon.com/explain-delegated-proof-of-stake-like-im-5-888b2a74897d
- https://bitshares.org/technology/delegated-proof-of-stake-consensus/
- @dantheman/dpos-consensus-algorithm-this-missing-white-paper
In this post, I am going to prove the following theorem:
Theorem: In a DPoS system where voters maximize their interest in elected Block Producers based on the dividends of their DPoS block rewards, the system will become equivalent to a system that doesn’t have a DPoS block reward at all.
A Primer & Explanation of the Proof
First, what does the theorem actually mean?
The theorem is trying to say this: when Block Producers start offering a kickback to their voters in the form of payments to whoever votes for them, whether through directly Vote Buying or indirectly Vote Incentivizing, and voters primarily care about increasing their own reward, eventually this system -- through competition and people acting in self interest -- will degrade. As it degrades, it eventually reaches a point where there isn’t even a point in rewarding Block Producers at all, and then the Block Producers themselves are completely arbitrary.
The proof begins with the idea that, if voters seek to maximize their own reward, they will vote for the Block Producers that offers them the highest dividend -- the ‘biggest kickback’ out of their block reward. So, if you vote for Alice, and she gives her voters back half the reward she gets from producing blocks, you get a piece of that pie. Sounds awesome right? Free money just for voting for her?
Then, in the next step, you see Bob offering up 75% of the reward he gets. If your primary driver is profit, and because that’s more free money than Alice, you definitely prefer Bob. So you change your vote.
But Alice wants to compete, and she offers 90%. Bob won’t have it, and offers 99%. Charlie jumps in offering 99.9%... and so on. Eventually, so long as there is someone willing to run their Block Producer for free or basically free (maybe they run ads to pay for their server? Maybe they are a special interest group?), then you and everyone else seeking to maximize profits have now have elected group of Block Producers giving ALL their rewards back to their voters. At this point, Block Producers are making nothing -- they don’t have a ‘block reward,’ it’s all given away.
But it all goes to you, the voter, right?
Wrong. It went to everyone, because you all equally dug yourself into this hole. In fact, none of you voters got anything relatively more any other voter -- it was all fair. Effectively, you all end up with nothing of value for your efforts; if you had $100 before, you have $100 after. Nothing changed.
But there is one more scenario that we haven’t considered. What if the Block Producer offers you a token, and tells you they will share their block reward with their token holders -- is that any different? As it turns out, if voters want to maximize their reward in this case, it becomes exactly the same as a direct dividend. This is a bit harder to explain in plain English, but it goes something like this:
If you have the Block Producer Token, and you find it favourable because you see they will share some amount of their reward with you, then you’d like to vote for that Block Producer to ensure you will get your reward. Then, when everyone else also tries to seek that fair solution (and no one likes a solution where they get paid less than fair), the only fair solution that arises is exactly the same as everyone getting proportionally equal rewards -- just like regular dividends!
The Proof
For the sake of simplicity, we will discount token inflation from other sources, as they are irrelevant to the proof. We will only prove the effect on the inflation of block production in DPoS itself.
Suppose we have an arbitrary set of voters V, with a distributed stake for a total sum stake in the system T. Suppose we have a defined (but arbitrary size) set of Block Producers W ⊂ X that may be elected by the voters. We will prove by induction that if the evaluation metric of voters, ∀v ∈ V, is strictly weighted by the size of the dividend percentage of a given Block Producer, D(Xi), i.e., max(D(x) ∀x ∈ X), then the system will iteratively degrade to become equivalent to not having a block reward at all.
Theorem: There is a functional equivalence of all Block Producers (BPs) giving out all their rewards to voters, to block production not generating any reward at all.
We will tackle this proof with two separate lemmas: the effect on the BP, and the effect on the voter.
Lemma 1: Given the continued ability to offer more dividends, and if voters prioritize dividends for their voting decision, eventually the group of elected BPs will give out all their rewards. (BPs receive no reward.)
First, suppose in an initial state, we have the vector D(X) all zero. A specific voter will arbitrarily vote, as the evaluation D(Xi) is equivalent ∀x ∈ X. Any x ∈ X at this point can become elected into W purely by increasing D(x), their dividend percentage. This is the zeroth step.
In the inductive step, any BP can then become elected by choosing a value of D greater than min(D(w) ∀w ∈ W)), as the evaluation metric for voters will place this new BP above the BP with minimum D in the elected set.
Iterating the inductive step, we will arrive at a set of W with maximum possible value D: 100%. This is to say that ALL BPs return 100% of the funds to their voters.
It can also be proven by contradiction that there is no BP in W with less than 100%.
Proof: Suppose there is a BP k ∈ W with D(k) < 100%. However, as long as there is some BP u ∉ W, u ∈ X, willing to return 100% to voters, by definition D(u) > D(k). As voters must choose max(D(x) ∀x ∈ X), this is a contradiction.
So, we have arrived at a state where all voters obtain a dividend of 100% from BPs, and therefore BPs receive no reward. Now we will prove the following:
Lemma 2: If some v ∈ V has a relative percent stake of v.s/T, they will remain at the same relative stake v.s/T, and this is true ∀v. (Voters receive no reward.)
A voter begins with a relative stake v.s/T. When the total tokens T expands by P as a result of block production rate, a given voter will receive v.s/T % of these new P block rewards, because a BP pays their voters proportional to their stake, and the voters all vote for all the elected BPs (as voting for a non-elected BP would remove the voter’s dividend, and their goal is to maximize their dividend return). Thus, their new relative stake is (v.s + P*(v.s/T))/(T + P).
We can simplify this equation to ((v.s/T + v.sP)/T)/(T+P), apply the fraction rule, and get (v.sT + v.sP)/T(T+P). Further simplification brings this back to v.s/T. This is a formal way of saying that the stake of a given voter no longer changes relative to any other voter, when they all apply the same voting strategy of maximizing return dividends. Therefore, we can say that it is functionally equivalent to a voter not receiving any reward at all (as their relative stake does not change).
With Lemma 1 and 2, we have now proved our theorem that there is a functional equivalence of all BPs giving out all their rewards to voters, to block production not generating any reward at all, as no one -- voters nor BPs -- is rewarded. Finally, we will also show that ‘Block Producer tokens’ are no better than direct dividends.
Lemma 3: An airdrop/ICO of a token distributed by a Block Producer, with an express guarantee of buyback/burn, or a dividend of Block Producer rewards to their token holders, is equivalent to a dividend.
For the sake of simplicity, we will use dividends of BP rewards to their token holders, as it is easy to prove that buyback/burn of Block Producer Tokens (BPT) is mechanically similar. First we will quantize voter interest in a given BP and their BPT.
A voter's expected return with a given BPT can be represented as the ratio of the stake of their vote in T (given as v.s/T), relative to their stake in the BPT (given as v.sbpt/Tbpt) which we call a voter's amplitude.
Some examples: if a voter's relative influence is the same (v.sbpt/Tbpt == v.s/T), their amplitude is 1. If they have twice the influence in the BPT than they do in T, their amplitude is 2 (v.sbpt/Tbpt == 2*v.s/T). If they have no participation in the BPT, their amplitude is 0 (v.sbpt/Tbpt == 0*v.s/T, as v.sbpt is 0).
A voter's interest in a BP is governed by maximizing his amplitude in the BPT. In other words, it is favourable for a voter to have an amplitude >= 1, and unfavourable for a voter to have an amplitude < 1.
Lemma 4: The expected value of any and all given voters’ amplitude, i.e. the maximization of all voters' votes, is exactly 1.
Proof: Suppose there exists some equal or better BPT with a voter that has an amplitude > 1. This must by definition mean that at least one other voter has an amplitude < 1, and thus it is not preferable to this other voter, which is a contradiction.
Therefore, as the expectation of all voters' amplitude is 1, then v.sbpt/Tbpt == v.s/T ∀v ∈ V.
It is trivial to see that when these become equal, and when dividends are given to the token holders, they become distributed in the exact same fashion as direct dividends -- making a BPT dividend equivalent to a regular dividend. Then, the previous proof can be used to arrive at the same conclusion.
To summarize the combined lemmas:
In a system where block production rewards are distributed by dividends to voters, regardless of distributing it through their own token or directly to voters, this system, when maximized for voter interest in dividends, degrades to a system where there no effective block production reward at all: no reward to the BP, and by extension, no reward to the voters.
But what does this all mean?
When there is no longer any incentive for a Block Producer to remain honest, it may become untrustable: it is commonly touted with DPoS that the Block Producers should have some incentive to operate their expenses, and to incentivize their good behaviour, as a salary for their provided security. If not, it opens perverse incentives in the form of bribery, where a Block Producer already giving away all of their reward may opt to receive external income in exchange for loyalty.
Or if a Block Producer chooses to give to their voters MORE than they earn -- paying their voters out of their own pocket -- they can replace the other Block Producers. In this case, since a Block Producer who is paying more than they are receiving must have a source of these funds, it is very possible that they are a party with a nefarious agenda in becoming a Block Producer.
None of this is actually reality.
I agree.
The thing is, we have only isolated a single variable in these proofs -- if voters care about maximizing their profits. That is certainly not reality. In real voting systems, even with full fledged vote buying, there are people who are incorruptible, and people who will vote against their own self interest in an altruistic fashion. Further, most voters will consider many factors when voting for a given block producer. They might only factor in, “Alice seems trustable, and I like her.” I am not discounting that at all, I am simply trying to show the danger if the majority of people act in their own self interest. What happens when the answer becomes “Alice seems more trustable, but Bob is giving me more money…”
And this is where it starts becoming a problem. One might begin by thinking that it isn’t really that big of a deal -- Bob had leftover rewards, so he gave it out to his voters. But this becomes a form of vote incentivization. And if Bob instead bought back his ‘Token’ with his rewards… sure, the reality is that the distribution of those tokens probably wasn’t maximized, but it will still be some partial form of vote incentivization. Then Alice responds by offering her own dividend… and down we go.
So the reality ends up as a mix. It isn’t black and white. There are partial incentives, and some people will act in their own self interest while others will act in the interest of the community. The point of this post is only to highlight the problem when self interest is isolated and maximized.
I still don’t understand if [specific case] is vote incentivization. ELI5?
For the case you are considering, ask yourself: is the expenditure of the block reward in the goal of VALUE CREATION, or is it VALUE TRANSFER?
Once you have an answer to this question, it might become more clear. If you are reinvesting your block producer rewards into meritorious projects that add value to the system, you are in the former category. If you are hiring employees to build things, the former. Investing in infrastructure, the former. But, if you cannot justify any value being created, you are doing the latter -- and the odds are high that you’re vote incentivizing. If you promise someone a part of your block reward, even indirectly, even “for no reason”, you are incentivizing people to obtain a piece of that pie.
Instead of doing a transfer, if you think the Block Producer reward is too high and the ‘leftovers’ should somehow go back to the community, then your real petition should be to lower the block reward in the code.
Also, in regard to the idea of Block Producer Tokens, here’s an example that might help: if Bob is running for Mayor, and he gives you money and says “There’s more where that came from, if I stay elected! ;)” Is that vote incentivization?
What if Bob gives Alice money, then Alice gives you money, and she tells you “There’s more where that came from, if Bob stays elected. ;)” Is that no longer ‘vote incentivization’, because we played telephone? If you tell me it’s fine, because Bob didn’t tell you to vote for him… then, boy, do I have a good deal on a bridge I can sell to you.
Finally, the argument that all Block Producers offer some form of incentive to vote for them isn’t exactly sound. Block Producers should offer value creation, and they should do this for the good and security of the whole system. If the incentive is meant for security, then it should not be used for the transfer of financial benefit to a subset with aligned, special interests.
Some extra food for thought, and some ideas for another day…
- If a block producer requires an incentive, quantitatively what does that incentive need to be to obtain security (what is the magic number)?
- What would ‘reasonable security’ look like?
- Could we actually envision a model working with zero reward, and only altruism?
- Should we democratize what the block reward is (say, stakeholders voting on the block reward)?
Additional Credits:
Thanks to @complexring for feedback on the proofs. Special thanks to @lukestokes for all the input and insight from our discussions on this, even if we don’t necessarily agree on it all. :) Photo/icon by Iyikon.