Author Topic: Approval Voting vs Delegation  (Read 47841 times)

0 Members and 1 Guest are viewing this topic.

Offline bytemaster

Approval voting has been implemented in a branch on our repo.  Changes were about 400 lines of code total and it is passing our basic unit tests. 

For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
After cooling off a bit I will try to make a suggestion on wording the above suggestion to:

“Introducing randomization of the block producers selection as a way to improve the security of the system against emski’s  attack”



Emski’s attack: https://bitsharestalk.org/index.php?topic=5164.msg67657#msg67657


‘Random voting’ is kind of oxymoronic when you think about it….
« Last Edit: June 23, 2014, 12:52:00 pm by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

Offline gamey

  • Hero Member
  • *****
  • Posts: 2253
    • View Profile

So the first exchange will pay Delegates off transaction fees and nothing else ?
I speak for myself and only myself.

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
I need to ban BM from posting without PR review.

We aren't diluting the first chain, end of story. Edit: by "we" I mean "anywhere I have the final say"... looks like me amd dan and stan are out of sync about wtf the plan is

"Randomness" is an OPTIONAL feature for OPTIONAL PRIVACY ENHANCEMENT. Delegates are NOT selected randomly, you just fuzz your votes over time IF YOU SO CHOOSE.
« Last Edit: June 23, 2014, 02:35:57 am by toast »
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bitder

  • Full Member
  • ***
  • Posts: 65
    • View Profile
The big problem is that under Approval Voting even if you own 49% of the shares you may not get any delegate representation.
This coupled with the Targeted Growth model  https://bitsharestalk.org/index.php?topic=5199.msg68575#msg68575
could dilute the minority shareholders to oblivion.
(This would mean that I3 + the top 5 or 10 shareholders would effectively control everything)



wallet_account_set_approval delegate.bitder 1

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
So under the approval voting system if EvilAlliance controls 50%+1 votes then they can collectively vote for the same set of delegates that they control and prevent the 50%-1 share holders from doing anything about it.
It would be great if you're part of the EvilAlliance but not so great if you're not...
Or did I miss something?

Under the old system if you controlled 50%+1 you could take control of the chain anyway
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bitder

  • Full Member
  • ***
  • Posts: 65
    • View Profile
So under the approval voting system if EvilAlliance controls 50%+1 votes then they can collectively vote for the same set of delegates that they control and prevent the 50%-1 share holders from doing anything about it.
It would be great if you're part of the EvilAlliance but not so great if you're not...
Or did I miss something?
wallet_account_set_approval delegate.bitder 1

Offline bytemaster


I am truly fascinated by the idea of random voting

 … and before asking who is the one who is claiming the discovery of the concept… I should say that  I believe every constitution should be changed (starting with the US one) to require all government officials   to be elected  by no other criteria but by drawing balls (you know lottery style) to determine the vote of each voter…

There will be an option to vote for exactly the set you want rather than random subsets of who you want over several transactions if you want to have no privacy.

How about allowing the lazy people the right to not going to the polls… too simple and not fancy enough?

This is called the NULL slate and is a valid slate.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline pendragon3

Sorry if I'm asking some dumb questions here. I don't have 1/N th of the expertise of you all here but would still like to understand the introduction of randomness.

Is this new voting scheme totally secure against manipulation and misbehavior?

Why do we need the new scheme?

Is it totally safe to rely on the randomness? I'd think security of the delegate system and the network is of paramount importance, and privacy is somewhat less important  ???

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai

I am truly fascinated by the idea of random voting

 … and before asking who is the one who is claiming the discovery of the concept… I should say that  I believe every constitution should be changed (starting with the US one) to require all government officials   to be elected  by no other criteria but by drawing balls (you know lottery style) to determine the vote of each voter…

There will be an option to vote for exactly the set you want rather than random subsets of who you want over several transactions if you want to have no privacy.
Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

Offline bytemaster

sure...

what is random slate btw?

A slate is a selection of 101 delegates.
A random slate is a random selection of N delegates out of M  or a the random selection of an existing slate of delegates from a set of candidate slates.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bytemaster

The initial condition is that there are no votes for anyone.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline tonyk

  • Hero Member
  • *****
  • Posts: 3308
    • View Profile
what is delegate slate?
« Last Edit: June 23, 2014, 12:59:13 am by tonyk »
Lack of arbitrage is the problem, isn't it. And this 'should' solves it.

bitbro

  • Guest
Bravo! Agent 86, toast, BM, hats off to you.


Sent from my iPhone using Tapatalk

Offline bytemaster

I would like to thank everyone who has contributed to the various debates about voting styles.  The delegated proof of stake we have been testing has been based upon the idea that each share gets to vote for or against a single delegate.   That misbehaving delegates could get voted out quickly.

Thanks to Agent86 and Toast for debating this issue with me until it got through my thick head.

I have drawn the following conclusions:
1) With approval voting there is no need for negative votes.  A vote for 101 delegates is just as good as a vote against everyone else. 
2) To vote for 101 delegates would require an extra 202 bytes per transaction, which doubles the transaction size assuming there are less than 30K total delegate candidates.

The voting interface is a bit more intuitive as almost all of your delegates get a vote when you make a transaction.

Because everyones delegate slate could be a unique identifier, the wallet should only vote for a random subset of the supported delegates in each transaction.
To save bandwidth, a slate of delegates can be re-used and identified by 8 bytes.  Wallets can automatically identify existing slates that are fully supported and randomly select one of those slates. 

What this means is that the chain can have a compromise between privacy ( generating a unique slate every time) and efficiency (reusing existing slates).

The changes required to implement this change are minimal.   



For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.