Proof-of-stake - Meaning Of Issues Voting

Discussion in 'Proof-of-stake Mining' started by Bill Threewits, Mar 4, 2016.

  1. 2017/12/15 - Decred v1.1.2 released! → Release Notes  → Downloads
  1. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    #1 Bill Threewits, Mar 4, 2016
    Last edited: Mar 5, 2016
    One of the most important differentiators in the Decred project is supposed to be its described voting structure. According to @davecgh , power is given to stakeholders to change Decred policy through a type of PoA structure. In the cited PoA paper, the described benefits are higher cost to hijack the coin and "...an improved network topology, incentives for maintaining full online nodes, low transaction fees, and a more efficient energy usage." That seems to make an "issues voting" structure innovative.

    The “yes/no” to the previous block voting has been described extensively and everyone seems content with that as that is how us PoSers (proof-of-stakers) make some money staking; I get it. However, for this coin to be different (a long-term success), the general public must understand how it fixes the problems with the status quo coins.

    @davecgh writes here, “...However, what is perhaps more important to realize than all the above is that voting has much greater implications and capabilities than simply voting whether you wish to deem the previous block as valid or not. Under the hood, a vote really consists of an extensible set of bit flags. This allows any voting agenda you can imagine to be assigned to one or more of the bits where the majority stakeholders make a public and transparent decision that is encoded into the very fabric of the blockchain. This means that whenever there are major decisions to be made about the future of the currency (an obvious example would be increasing the block size), the majority stakeholders make the decision via voting, not the developers or miners.”

    If this feature is supposed to fix the glaring Bitcoin deficiency regarding its difficulty in changing things such as its block size, then my questions relate to how it works:

    For a vote such as this, who or what is bound by the result of the vote? Does a vote like this amount to nothing more than a suggestion? What if there is a very close vote? Who words the vote? Can anything be put to a vote? Is there a minimum number of voters to decide issues? Is this like the lottery vote where random tickets are selected? Do issue votes require tickets?

    Forgive me if I missed obvious answers somewhere. I have searched for quite some time for them; so, I would guess that others will be enlightened by this thread.

    Edit: Took out my personal reason for asking.
     
    adam2312, jy-p, sw1 and 1 other person like this.
  2. Kandiru

    Kandiru Member

    Feb 21, 2016
    206
    87
    I would call the votebits voting "soft voting" as it won't actually directly have an effect. The voting yes/no to a block is "hard voting" as it has an immediate impact.

    I would imagine that, prior to people hard voting to deny any block under 1MB with transactions still in mempool, say, people would have a softvote about the issue first, and then everyone can agree to update their software to comply. People who don't comply will start to find their blocks are all rejected after people swap to hard voting.

    For example, say I wanted to scrap the dev subsidy. (Hypothetically, say the wallet has been breached?) it would do me little good to start hard voting no to any block which gave the dev subsidy, as no-one would know that was what I was doing. If instead I started setting a vote bit and telling other people to do the same, then it would rapidly become clear if there was support for that action or not. If there was sufficient people voting the same way, then I could release a new client which would accept blocks without the dev subsidy, and start hard voting down any blocks which still issued it.

    This is most likely to occur via PoS pools, where two opposing sides could set up PoS pools, and people would vote by using --ticketaddress to assign their votes to the pools. The result would then become apparent in the blockchain.

    This is just my impression of how voting could be used, I'm not affiliated to the Decred devs in any way.
     
    jy-p and Bill Threewits like this.
  3. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    FYI (from Constitution):
    Project Governance
    • Off-chain decision-making shall be used to resolve disputes related to development and voted on by the Decred Assembly as they arise, as an effective proof-of-assembly ("PoA"), until such time PoA is integrated into the blockchain.
    • The Decred Assembly shall be composed of diverse Assembly members who are selected for membership by the Admission Council from the project ecosystem for representation.
    • Councils that are composed of Assembly members shall be formed to address ongoing and episodic matters. The initial Councils shall serve the separate functions of admission (Admission Council), creation (Creation Council), and attrition (Attrition Council).
    • The Admission Council shall vote on the inclusion of new members into the Assembly. All additional Councils shall be created by the Creation Council. The Attrition Council shall be responsible for deactivating both Councils and Assembly members as necessary.
    • Membership of the Decred Assembly shall consist of Assembly members who have been confirmed by a 60% or greater affirmative vote by the Admission Council. There is no restriction on the age or nationality of Assembly members, the only requirement is that of merit as judged by the Admission Council. Merit is judged on the basis of two characteristics: (1) the amount of time over which one has been involved with the project, and (2) one's body of work and its impact in the context of the project.
    • Attrition is embraced by temporarily deactivating or actively expelling Assembly members by a 60% or greater affirmative vote by the Attrition Council on the basis of: (1) substantial non-fulfillment of duties for one or more Councils or the Assembly, and/or (2) counterproductive behaviour that goes against the framework set forth in the Constitution without constructive action toward solutions.
    • All matters formally presented to a Council shall be resolved by a vote in 365 days or less.
     
  4. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    #4 Bill Threewits, Mar 4, 2016
    Last edited: Mar 5, 2016
    Thanks for your answer, @Kandiru.

    So, what you describe reminds me of when my old BTC wallet would notify me that I had to update to a new version. Without the update to software, I could not access. Okay. That would be how the decision is broadcast, I guess. Still leaves the mechanism to give vote "teeth". In other words, how does a vote move to that stage you describe; who makes the decision to act on the vote?
     
    sw1 likes this.
  5. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    #5 Bill Threewits, Mar 4, 2016
    Last edited: Mar 4, 2016
    Admission Council is whom? Can/will votes control Admission Council? That group seems important (and anonymous?).
     
    sw1 likes this.
  6. sambiohazard

    sambiohazard Sr. Member

    Jan 21, 2016
    844
    372
    i should be reading more, your second post took me by surprise. I thought all decisions will be taken by setting votebits but this seems like hierarchical and vote delegation which i don't think is what i was looking forward to. This is not p2p and each person setting his preference at time of vote. If i am against a consensus rule change i keep my votebits as is while i change to votebit pattern of new consensus block if i support it. I thought it was going to be done like that. What is this thing about Assembly & representatives.
     
    sw1 likes this.
  7. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    #7 Bill Threewits, Mar 6, 2016
    Last edited: Mar 6, 2016
    Yeah, I am not sure exactly how the votes/assemblies will work. I figured to try to get the details out and cleared up now. Any changes to structure will be easiest early and give this coin the flight path that we all expect it to have.

    I am sure that the organizers have thought this through. No takers on answers to this one for awhile now, though. I hope the questions are seen as constructive; I have quite an interest in this coin's success as of now.
     
    sw1 likes this.
  8. sw1

    sw1 Jr. Member

    Dec 31, 2015
    90
    39
    Male
    Sydney, Australia
    I was in the same thought pattern @sambiohazard

    The voting needs to be PoS community consensus, not community "representatives", that only get to vote if they pass the assembly test.

    While p2p is very difficult at this point in time (due to current coin distribution), I never expected that a PoS style crisis vote would be needed in first 2/3 years anyway.

    I thought we had plenty time to work out how it would work. Im not keen on a UK politics style.... unelected assembly of lords....

    The decred guys have been pretty open and honest about everything thus far, so will be interesting to find out how this will all work... Or maybe I just need to do some more reading!
     
    jy-p, sambiohazard and Bill Threewits like this.
  9. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    Agreed on the openness and honesty of the leadership.

    Hey, as the founder of LinkedIn said, "...if you are not embarrassed by the first version of your product, you've launched too late." Not to say there is anything to be embarrassed of here, just to say that improvements are to be expected. Governance and ease-of-adoption development are the two biggies - I like what I am seeing so far!
     
  10. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    I am fairly certain that a pure democracy would be a disaster. I agree with the system in place of using a governing body. I just feel that ther ought to be some checks and balances in place, as well, to keep things going. These may already be in place. I guess we just wait on clarification.
     
  11. jy-p

    jy-p Sr. Member
    Organizer

    Jan 2, 2016
    133
    340
    Male
    I see several good questions in here, so I'll answer what I perceive are the larger questions being asked in this thread:
    • How does PoS voting act to resolve disputes and set policy?
    • How is PoS voting different from Proof-of-Assembly?
    PoS voting allows for direct resolution of issues that are related to consensus code and block validity. In all cryptocurrencies, there is a (complex) set of rules that must be obeyed in order to have a new block considered valid and added to the chain - this is what is meant when I refer to consensus code. Examples of this from Bitcoin include a maximum block size of 1 MB and transactions using a certain set of opcodes. As we have seen with Bitcoin and proposals to change the maximum block size limit of 1 MB, making changes to consensus code can lead to extended heated debates. In Decred, these disputes can be resolved efficiently via PoS voting by enabling the option to support the consensus change in the code, then allowing PoS voters to vote yes on blocks they consider valid and vote no on blocks they disagree with. The way to think about this is that PoW miners create blocks and the PoS voters are the ones who get to determine which set of consensus rules are valid on those PoW-created blocks.

    In addition to allowing for new consensus rules to be added or existing rules changed, PoS voters can vote no on a block under certain conditions. For example, if a PoW miner creates a block that does not include any or very few transactions despite there being no shortage of transactions in the mempool, PoS voters can vote no on that block. This scenario is what I believe would make a good first application of PoS voting - to actively vote no if there is not some minimum level of overlap between transactions included in a block and the transactions in your dcrd's mempool, e.g. a minimum overlap of 5%. Such a rule would invalidate blocks created by PoW miners that did not adhere to some minimum criteria for quality and act to coerce PoW miners into including a certain minimum number of transactions. Vote bits only expand the extent to which PoS voting can apply, e.g. vote on several issues at once, some of which may not involve consensus rules.

    Proof-of-Assembly (PoA in what follows) voting will apply to issues outside the scope of what PoS voting covers currently, e.g. whether to use ed25519 or ECDSA for public key crypto, which variations on consensus code to have developers write. Since a cryptocurrency has many moving parts, it does not make sense for PoS voters to vote on every development or organizational issue, especially if they lack the domain knowledge to make an informed decision. PoS would be expected to vote on consensus changes after the code has been written and tested, but not vote on how to architect that code, who to contract with to write the code, which algortihms to use, etc. Since PoS voters must ultimately approve of any consensus changes directly onchain, the Assembly is incentivized to provide the options PoS voters want to see.

    A takeaway from these answers is that Decred can and will make what other CCs refer to as "hard forks" using PoS voting to choose which direction we go. We will be preparing a demonstration of this on testnet in the next 4-8 weeks.
     
  12. Bill Threewits

    Jan 16, 2016
    146
    69
    Male
    Banker
    North Carolina
    Had to read this a couple of times. This seems well-conceived. I am all in on the use of the Assembly.

    One concern. Do I understand correctly that Admission and Attrition Councils are different people and Attrition Council can remove anyone on both the Admission Council and Assembly as it sees fit? Are there any checks to balance the power of the Attrition Council?

    The trial runs will be useful. I hope that the community takes the time to learn how to vote individually. Along this line, I hope that the Mainnet PoS pool coming Monday will have the functionality for individual vote settings come that trial run.

    From what I can tell from following BTC development, this type of policy voting will likely be rare. It could, however, turn out be essential to Decred in the long-term.

    One question from thinking this through. Wouldn't PoS voting, if split evenly, hurt returns of all PoW miners until resolved? I mean, if an issue is 50-50 will this be a problem for PoW decision-making on which fork to choose? Maybe the demonstration will answer this for me/us. I will look forward to it.

    Thank you for your thorough answer.
     
    jy-p likes this.
  13. sambiohazard

    sambiohazard Sr. Member

    Jan 21, 2016
    844
    372
    Thanks for the detailed answer. Its nice to know that division has been made at the right place between PoS & PoA. I am all for experienced people deciding the nitty gritty details and infact providing people with pros & cons of both side of the debate/decision so they can take a informed decision. After that its up to the people to do their own research and make their own decision.

    @Bill Threewits I think PoS voter & miners will be incentivized to vote in a way that minimizes their losses in terms of rewards they get and thus people will eventually move to one side or another or just sell their DCR and move on. When blocks will get rejected then PoS voters will also see their rewards delayed as chain will be reorganized a lot and also long/frequent reorganizations will decrease the value of the token they are invested in so it makes sense for everyone to resolve things quickly or just take their profits & bail.
     
  14. drunkenmugsy

    drunkenmugsy Sr. Member
    Advocate (Reddit)

    Dec 28, 2015
    405
    218
    Male
    This may be minutia but are vote bits set when you purchase a stake or when you actually are called to vote? Does this change when in a PoS pool?
     
  15. davecgh

    davecgh Hero Member
    Developer Organizer

    Dec 31, 2015
    642
    788
    Male
    United States
    They're set when you actually vote (which really only makes sense because you might have bought the ticket weeks or months before a specific voting agenda even exists).

    A PoS pool can operate however it wants since there is a lot of room for flexibility due to the way the ticket purchase commitment scheme is designed. That said, in general, people should avoid using stake pools that don't allow them control over how they want to vote on non-pool specific issues. The initial stake pool being released tomorrow allows people to specify how they want to vote even though it is currently extremely rudimentary.

    Ideally the community will be able to take the initial pool, improve it, and launch their own pools with their own benefits, policies, and fee structures as they deem fit in order to foster decentralization.
     
    adam2312 likes this.
  16. sw1

    sw1 Jr. Member

    Dec 31, 2015
    90
    39
    Male
    Sydney, Australia
    thanks to @jy-p and @davecgh for the clarification. All makes sense to me now.
    Good to understand where the lines in the sand are drawn! Seems perfectly sensible now I know what kind of issues PoS and PoA votes are cast for.
     

Share This Page