B&C signer voting watch

From block 540000 (2016-07-18 06:28:46) to block 552999 (2016-07-27 02:29:04 UTC),
There are 217 minters with 59940 total shares. (32% of moneysupply)
6 signers were voted by 56 voting addresses (24%) with 29912 total shares, in 3995 blocks (31%)

[note:balances were read just now]

From the above numbers

  • 32% shares are minting. Apathic rate is quite high.
  • Half of the minting shares are voting.
  • ~ all voting blocks are voting on signer reputation.

The signers and number of votes they got:

8XQaJSXNFk5kijspiphx17EdET6QuDPi2a 2376 **sabreiib**
8eA3FVjGUE2KFDJy6qSQxZb3MZdoqLf3ZL 1082 **backpacker**
8Yq1JGmKAm4qyitx6atpUz1QQqqFm5Ki19 981  **phoenix**
8KXAthBdtPWokQRXB93FzPTKvBH5WXdTxV 665 **jooize**
8WP6o6HrXQwc8hfhZPKzGGdd238UqCsRqz 574 **mhps**
8ZzENdnyZLDvsZPJmZhQYtdzaBwSKDLXGX 543 **cybnate**

Vote weights are not taken into account yet so downvotes and upvotes are treated equally above. Interesting things can be seen from the score order of current (553141) voting results

bcexchanged getreputations
{
    "8KXAthBdtPWokQRXB93FzPTKvBH5WXdTxV" : 953.0,
    "8WP6o6HrXQwc8hfhZPKzGGdd238UqCsRqz" : 674.0,
    "8XQaJSXNFk5kijspiphx17EdET6QuDPi2a" : 4574.5,
    "8Yq1JGmKAm4qyitx6atpUz1QQqqFm5Ki19" : 1980.0,
    "8ZzENdnyZLDvsZPJmZhQYtdzaBwSKDLXGX" : 637.5,
    "8eA3FVjGUE2KFDJy6qSQxZb3MZdoqLf3ZL" : -23.5        
}

backpacker is being heavily downvoted.

I have seen voting for one signer several times in the same block (w/ the same weight), @sigmike, how is this treated? what if the weights are different?

1 Like

I don’t know who are downvoting him, but I’ll upvote him soon.

I think that was a rhetoric question

The system is different in the client (when you set your vote) and in the blockchain:

  • In the client you can put many reputation votes with different weights
  • In the blockchain you can only put 3 reputation votes per block, with a weight of 1 (upvote) or -1 (downvote).

When you find a block, for each allowed reputation vote your client picks a reputation vote randomly according to the weights, and assigns a weight of 1 if it’s an upvote or -1 if it’s a downvote. The code is here if anyone is interested: https://bitbucket.org/JordanLeePeershares/bcexchange/src/e722d3365f673ad54afc7b25e74a2a8cc137376e/src/vote.cpp?at=master&fileviewer=file-view-default#vote.cpp-585:619

So if you upvote a single signer then the same one will be picked each time and you’ll make 3 upvotes per block for this signer.

Also note that the actual reputation score also depends on the age of the votes:

  • each reputation vote in the most recent 5000 blocks counts for 1
  • in the next 10000 blocks they count for 0.5
  • and in the next 20000 blocks they count for 0.25

Design document quotes and discussion here: https://bitbucket.org/JordanLeePeershares/bcexchange/issues/16/reputed-signer-reward

The code is here: https://bitbucket.org/JordanLeePeershares/bcexchange/src/e722d3365f673ad54afc7b25e74a2a8cc137376e/src/vote.cpp?at=master&fileviewer=file-view-default#vote.cpp-969 (the actual score is divided by 4 when it’s displayed)

But they still count as one vote for calculating the reputation score, I suppose?

From the code below if vote.nWeight == 0, it is regarded as an upvote. Is this intended? I guess it shouldn’t be 0.

No they count as 3 votes. Each block can cast 3 votes.

0 is forbidden here: https://bitbucket.org/JordanLeePeershares/bcexchange/src/e722d3365f673ad54afc7b25e74a2a8cc137376e/src/vote.cpp?at=master&fileviewer=file-view-default#vote.cpp-565

Then I have a strong incentive to vote for myself three times than spreading it to other two, besides myself. This doesn’t seem to encourage decentralization.

Besides I am very surprised to see spending blockchain space this way. We could just allow weight to be +/- 3, integer, and the sum of the absolute value of the three weights is no bigger than 3. Casting 3 votes on one signer only cost one place. Basically the more weiight on one signer the less blockchain space spent.

1 Like

You have an incentive to vote only for yourself. The fact there’s one or more votes doesn’t change that. Unless there’s a rule to allow only one vote per signer, but I’m not sure it would be fair, and you could still have multiple signer identities, or you would just downvote competitors.

That would be a good optimization to make but if the large majority of the shareholders vote for multiple signers (which is probably expected) the effect would probably be small. There are many ways to optimize the vote size (some of them having a much bigger effect) that we haven’t taken the time to implement because it was not a priority.

In fact, the duty of being a reputed signer is not light, as a reputed signer, you have to prepare the hardware and spend quite some time on it, e.g. If shareholders vote a new coin, you have to download the wallet and sync the block chain. And there is potential law issue in some countries because our business disobey the important rule----know you customer.

If there are enough applicants for reputed signers, I would rather quit the team, but since B&C is in danger so I have to fight at the first line as a big hareholder.

The second thing is decentralization.

Company A: 2000 shareholders with 70% active node/miners.
Company B: 10000 shareholders with 70% apathetic node/miners.

Which one is better? Which one is more decentralized? I prefer A, because this company is more active although less decentralized.

If you wanna simulate gold with block chain tech (BTC),—a commodity—the more decentralized, the better. But if you wanna set up a successful business on Internet via block chain tech----a company---- you’d better choose more educated/professional anticipators. A small successful business is better than a big failed business, if we cannot become a big successful one.

1 Like

I fail to understand the difference between the votes received by a reputed signer and his reputation score.
For example backpacker has gotten 1082 votes but his reputation score is -23.5.
His is the second top signer in terms of votes received but his reputation score is the worst.
How the score is actually used?
He should be the second most used signer. How does the score actually influence how often his wallets are actually used?

downvotes = -1 score
upvotes = +1 score
and

changes record during sync

It took 253 blocks for phoenix to get max support 39% in rolling 100 block statistics, with 13k bks support.

for several k blocks a stable 8.5k bks voted for sabreiib, and reached 29%. then more support came in, pushing to 42%.

If phoenix has 13K, mine +@dhume’s is more than his.

it’s more complicated then only the number of bks one owns. one can vote for themselves 3 times per block and can down vote others (using the 3 votes). So if A votes for A B C and C votes for C C and -A, even they have the same number of shares, the result is 0A 1B 3C.

1 vote per block or 3 votes per block is the same result. Only difference is blockchain size.

better catch up discussions in this thread in the last few days. 3 votes are counted independently

Eg. If 3 vote per block, I cast 3000 vote during some time, 1000 for myself, 1000 for backpacker, 1000 for cybnate.

If only one vote per block, during the same time, cast 1000 votes totally, 333 for myself, 333 for backpacker, 333 for cybnate.

The reputed ratio is same. “3votes per block” makes statistical data more smooth, and ocupies more blockchain size, that’s all.

You are right. But the important point is that when you can cast 3, you can also cast 3000 for yourself in the first example. If most people don’t realize that they can cast multiple times for the same person in one block and cast for themselves only once, you have a 3:1 advantage to them.

So game theory would suggest that the potential signers always cast 3 votes all for themselves, or they could be at disadvantage against those who do so. This is a terrible outcome for decentralization because voting degenerates into simply comparing who has the most shares.