You are viewing a single comment's thread from:

RE: Proposed Changes to Steem Economy

in #steem8 years ago (edited)

Not a big fan of only 15% going to the vesting fund. Under the current system the worse case effective dilution rate on fraction of total VESTS for a passive holder is 6.7% per year (not counting SD conversion effects of course). The proposed changes would make that worst case rate 7.4% per year. My preference would be to have at least 25% of created STEEM go to the vesting fund. With those numbers the worst case effective dilution rate on fraction of total VESTS for a passive holder becomes 6.6% per year. And by the way, the dilution rate for fraction of total STEEM for a passive holder would be 8.68% per year under this new inflation rate of 9.5% per year (again ignoring SD conversion effects), which is a very nice improvement for short-term speculators compared to the current 50% per year number.

By the way, if we are considering these kind of large changes to the economics of the system, I would rather see the hardfork include my proposed change that creates two classes of VESTS (investor class and author/curator class) which I have discussed previously in Slack, but of course that is a much bigger change and actually somewhat independent of the changes being discussed in this proposal. But I mention it because it does have to do with the inflation numbers being discussed. For example, if we were to make such a change, while the investor class VESTS worst case dilution rate would be the same (or at least really close to) that of author/curator class VESTS, the typical dilution rates for investor class VESTS would likely be considerably lower (perhaps even 0%) than that of the author/curator class VESTS (who would be paying that higher rate for the ability to earn curation rewards, have post-voting influence, and possibly other benefits). I have crunched through some of the numbers and I think the following would be a decent configuration: 50% of printed STEEM goes directly to reward fund; 20% of printed STEEM gets budgeted by the top 19 witnesses to pay for the block producers, top 19 witness operations, and other chosen workers that can add value to the community; (fraction of total virtual STEEM supply that are powered up as author/curator class VESTS) * 30% of printed STEEM goes directly to the author/curator class vesting fund; enough of the remaining printed STEEM goes into investing class vesting fund to completely cover, if possible, the inflation that investor class VESTS holders experience (but no more, i.e. no deflation); and if there are any remaining printed STEEM left, they all go into the author/curator reward fund again. With this configuration, the effective dilution rate for author/curator class VESTS would be a constant 6.16% per year (which would also be the worst-case dilution rate for investor class VESTS, although typically I would expect it to be much less).

I also disagree with how the proposed changes would split up witness rewards. @smooth and I discussed this a lot on the Slack and steemit.chat (BTW, I honestly feel like the devs are missing out on really great ideas and useful interactive discussion by completely ignoring the various discussion forums available to this community). At first I was thinking the witnesses should just get paid for block production and other responsibilities should be separated into a different role.

Under that philosophy, a major rebalancing between the top 19 witnesses and the runner-up witnesses and miners would be necessary as this proposal attempts to do. But I am not a huge fan of the way you are proposing to do it here. It could be possible for a witness at rank 20 to earn more than any of the top 19 witnesses (over the long-term) depending on the distribution of votes among witnesses. For example, if the sum of the votes for enabled witnesses other than the top 19 enabled witnesses is less than 5 times the votes for the rank 20 witness, then the rank 20 witness would earn more than any of the top 19 enabled witnesses (to put this into perspective, the one-fifth of the sum of votes for enabled witnesses between ranks 20 and 70 is approximately 70.4% at the moment). What I think would work better is to instead have the pay to the top 19 be determined by the fraction of their votes relative to the total votes T for some large number (say 200) of the top voted enabled witnesses. This would approximately simulate what their pay would be (over a long enough period) if every block producer slot (other than the miner slot) was allocated according to the runner-up witness scheduling algorithm. The miner pay would have to be determined through some other method. If we want to reward the top 19 witnesses more because of their added responsibilities, then some fraction f_m of the witness/miner pay budget B per round would be allocated for miner pay, some other fraction f_b to block producer pay, and the rest of the witness/miner pay budget would be allocated as supplementary pay to the top 19. Let us denote the votes of witness i that is one of the top 19 enabled witnesses as v_i, and the total sum of votes of the top 19 enabled witnesses as V (V = v_1 + v_2 + ... + v_19). Then, the amount paid to the miner would be B * f_m. The amount paid to the runner-up witness would be B * f_b * (1 - V/T) (unless there were two runner-up witnesses and no miner scheduled in a round, e.g. because of an empty mining queue, in which case they would each get B * (f_m + f_b * (1 - V/T))/2). The amount paid to top 19 witness i would be B * (f_b * (v_i/T) + (1 - f_m - f_b)/19). After each round, the full amount of rewards allocated for witness/miner pay for that round would be distributed; if some witnesses/miners missed their block, their pay would go into the author/curator reward fund instead. I think the top 19 witnesses could vote on the fractions f_b and f_m, but there could be hardcoded minimum or maximum limits on those fractions.

But actually now I disagree with the very philosophy that the pay budgeted by the blockchain to the top 19 should be the same or close to the same (e.g. over a week) as the other witnesses. There are greater expectations placed on the top 19 in terms of reliability and in terms of setting policy with their parameter updates. They are not only acting as block producers but also a committee (to use BitShares 2.0 terminology). Originally I wanted to separate out the committee role from the witnesses and have that be a separate group that was elected, but after some discussion with @smooth I changed my mind and decided that may just be an unnecessary complication. Now technically the implementation described in the previous paragraph allows the top 19 to get paid for more than just block production responsibilities (just make sure f_m + f_b < 1), but it is not good enough in my opinion to allow for a worker funding mechanism via the witness budget.

One thing I knew I wanted and still want is an official worker funding system (taking a cue from BitShares 2.0 again) to avoid the non-ideal ways many witnesses currently use (as delegates used to in BitShares 0.9.x) to pay other people with their witness pay (except the problem is even worse in Steem since witnesses are currently paid in Steem Power which is not liquid). But the worker system I want for Steem is one in which the elected people decide how to distribute the limited funds available to them rather than the stakeholders directly making those deicision as was done with BitShares 2.0. Regular users don't want to think too hard about every little worker funding decision; they rather elect people they trust and let them make those decision on their behalf, and of course they have the ability to vote them out if they don't agree with their decisions. So originally I wanted the elected committee to reach consensus on worker funding decisions, but now, if the committee is just going to be the top 19 witnesses, I was convinced by @smooth that it would be better if the top 19 witnesses should each be given control of some equal budget (taken from the fraction of created STEEM directed toward witnesses) and have the ability to instruct the blockchain to automatically direct that budget each round to the various accounts (workers) they want to fund.

I discussed the details of a possible implementation of this mechanism on steemit.chat, but I will repost it here:

Each witness specifies a backup_witness_budget_percentage and can specify up to N worker_items which consist of the tuple ( worker_account_name, budget_percentage, powerup_percentage). The sum of the budget_percentage of each of the worker_items specified by a witness plus the witness's backup_witness_budget_percentage must be less than or equal to 100%. The powerup_percentage determines how much of the STEEM directed to that worker by this witness should be delivered as SP (could be 0%) and the rest will be delivered as liquid STEEM.

At the beginning of each round, the top 19 (enabled) witnesses are determined, and the system calculates (based on inflation rate parameters) some amount of printed STEEM to move to the author/curator rewards pool and some other amount STEEM rewards X to print and allocate to be distribution by the top 19 (enabled) witnesses of that round. The system sends an amount of STEEM Y equal to the sum of X * backup_witness_budget_percentage/19 of each of the top 19 witnesses to the backup witness payment pool from which the runner-up witnesses and miners are paid for producing a block according to some hardcoded algorithm (but that may be modulated by witness-selected parameters to shift payment between the runner-up witness class and the miner class). These payments are given to the runner-up witnesses and miners in the form of SP as they are today. Also, any payment that would have been received by the runner-up witness or miner but was not because they missed the block is instead directed to the author/curator rewards pool.

Furthermore, at the beginning of each round, the remaining (after paying into the backup witness pool) amount (X-Y) of the printed STEEM rewards is distributed according to another algorithm. The system goes through each of the worker_items of each of the top 19 witnesses, and for each one it sends X * budget_percentage/19 * powerup_percentage to worker_account_name as SP and X * budget_percentage/19 * (100% - powerup_percentage) to worker_account_name as STEEM. Finally, if there are any remaining funds left in those allocated rewards after this distribution, it is moved to the author/curator rewards pool.

Also, changes to a witness's worker_items or backup_witness_budget_percentage can have a 1 (or 2) day delay to give voters time to vote someone out. Perhaps modifying the worker_items only to decrease (not increase) the budget_percentage could be immediate though.

So with this mechanism, each witness would obviously specify a worker_item to pay themselves for the role of being a top 19 witness (of course they would only get paid for the round if they are actually in the top 19 for that round and are enabled, i.e. have a valid signing key). They would only be able to pay themselves an amount out of their allocated budget that stakeholders accept (otherwise they wouldn't stay voted in), so effectively the market determines the appropriate pay rate for the top 19 witnesses. But they can also specify other worker_items to pay other accounts (e.g. the accounts of those working on development of useful services in the ecosystem or working on marketing and advertising to reach a larger audience). The runner-up witnesses and miners are paid out of the backup witness pool which is funded according to the top 19's backup_witness_budget_percentage parameters as described in the above quote. Any amount of the top 19's budget not allocated elsewhere would go to the author/curator reward fund acting as extra rewards on top of the minimum amount guaranteed by the hardcoded rules of the blockchain. Because of this, the hardcoded percentage of created STEEM that goes to the author/curator reward fund can be lower since it is only a blockchain-guaranteed minimum; typical values would likely be higher unless stakeholder-elected witnesses have better places to send that extra money (e.g. dedicated workers improving the ecosystem, accounts that use the received STEEM to buy and burn SBD to help with the peg, perhaps directly into the vesting fund to further compensate for the effective inflation experienced by VESTS holders, etc.) rather than letting it go to the general author/curator rewards pool. For that reason, I think it would be acceptable to have only 50% of created STEEM go directly to the author/curator reward fund (remember, that is just the minimum blockchain-enforced percentage), 25% of created STEEM go directly the vesting fund, and the remaining 25% of created STEEM get allocated towards the top 19 witness budgeting mechanism described above.

The rest of the proposed changes look fine to me, although I want to know more about the details of how witness vote expiration would be implemented.

Sort:  

Wow, thanks for all your work on this response. I really wish I could understand 2/3 of it. :) Like the adjusted distribution at the end though. I understood that!

I wish I could understand the 2/3 too :D but there is no doubt @arhag made an amazing job explaining his proposition.

way to go man!

@arhag, you rock. You make me want to learn more math. :)