Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - emski

Pages: 1 ... 74 75 76 77 78 79 80 [81] 82 83 84 85 86
1201
General Discussion / Re: Dry Run 4: A New Hope
« on: June 21, 2014, 08:50:48 am »
I see one block signed by my delegate. And the same block missed by another one of my delegates.

1202
General Discussion / Re: Dry Run 4: A New Hope
« on: June 21, 2014, 08:39:23 am »
How can I see a reason why a block was missed by my delegate?

1203
General Discussion / Re: Attack scenario
« on: June 21, 2014, 08:25:48 am »
Also, I think 34% is not sufficient - the LAZIES will not need to push EVIL's delegates to 0, just out of top 101. They do not need to use all 33% of their LAZY votes to accomplish this.
Well 34% was just a number. Under very probable circumstances EVIL could manipulate LAZIES with just 3% or 4%. Pushing a delegate out of top101 requires 2%- X% , where X is the NET VOTE for 101th delegate. And even in the test network this diff is close to 1%. I believe that in the real network a lot of the top delegates will have NET VOTE of 2%, leaving 101th (X) with much lower NET VOTE.

If EVIL has 4% stake and acts like this:
1 EVIL votes up misbehaving delegate with 4% stake. (this may take some time while LAZIES downvote it, so EVIL can use up all his stake)
2 LAZIES vote it down with 3% (which may still be in top101 as the missbehaving delegate has 1% but this is the worst case).
3 EVIL moves his 4% upvotes away and places 1 well performing delegate into suitable position so that LAZIES' autovote for that delegate. (using his stake)
4 LAZIES abandon the misbehaving delegate and vote for EVIL's delegate from 3.
5 EVIL carefully removes his stake so that ALL LAZIES' votes are cast on his delegate from 3. (This might require following each block's vote changes and making sure the delegate remains on autovoting position)
6 if delegatesEVILControls < 51 repeat else ShowWhyEVILisEvil();

Using the above mentioned "algorithm" an entity with small stake could "redirect" much of the LAZIES autovote.

1204
General Discussion / Re: Attack scenario
« on: June 21, 2014, 08:09:44 am »
Negative votes is not an "entirely different topic" I proposed a voting scheme that doesn't rely on negative votes but you've said you're not convinced.
Difference comes from the topic I intended - LAZIES vote manipulation. What problem will your proposed voting scheme solve ?

Do you think we can just get rid of negative votes from the current voting system and otherwise leave it as is?
Do you think it's fine if anyone (or group) with 1% can elect a delegate with no way for everyone else to get rid of that delegate?

I think negative voting shouldn't exclude positive vote. But I'm too lazy to research extensively on this so I stay quiet.

OK, so you think it's complex. but I've given a place to start and proposed a system to solve the problem.  Are there specific reasons you suspect it doesn't or other specific reservations or you just haven't had time to think about it?
What problem will your proposed voting scheme solve ? And as I already said I didn't research this extensively I cant say which is better.

1205
General Discussion / Re: Attack scenario
« on: June 21, 2014, 12:45:29 am »
emski,
Can you think of any attacks against "approval voting"?  It's quite simple; no down votes and every share can vote for (approve) of as many delegates as they like.  Delegates with the most approval win.  I think it's a perfect system for what we want and can't think of any reasonable attack.

More detailed discussion in the DPOS thread:
https://bitsharestalk.org/index.php?topic=4009.msg66308#msg66308

Its not that much about the voting system as it is about the predictable autovoting algorithm for LAZIES. I believe this could be exploited relatively easy and could be an issue.

As for the "approval voting" I'm not convinced in the advantages it has over current system (although I don't think current negative votes are good for the system but this is entirely different topic). In general "fair" voting system for our case is extremely complex and controversial topic that might require much more research.

1206
General Discussion / Re: Dry Run 4: A New Hope
« on: June 20, 2014, 10:02:21 pm »
I've enabled all my delegates.
And I've registered few more.
However I still see some negative VOTES FOR. Is this expected?
6           unelected-delegate-6     -104917529          102557509978        -1.026658773 %      0               1

1207
General Discussion / Re: Attack scenario
« on: June 20, 2014, 03:14:53 pm »
Quote
EVIL switches his votes to his own delegate placing it in such a way that LAZIES autovote for it.

Big leap here... how do you place it in such a way that LAZIES auto vote for it?
I used as reference https://github.com/BitShares/bitshares_toolkit/blob/master/docs/dpos.dox - @section dpos_voting_algorithm  Voting Algorithm

Assuming the new delegate has high score. Evil places it at rank 101 with some of his %2 stake (that delegate has less than 1% of votes). The misbehaving delegate now has -2% votes (all from LAZIES and none from EVIL) and is at rank > 200. With LAZIES' next transactions they should autovote again (am i right?). And LAZIES' vote should be according to the following rule
# If there are no trusted_delegates in then vote for the observed_delegate with the highest score and less than 1%
         of the vote
EVIL can easily place votes for his (high scored) delegate so that he falls in this rule. And adjust his votes each block so that he is still in that rule.

So he can free most of his stake to repeat this (assuming EVIL controls several high performing delegates). And he might "trap" all the LAZIES' votes into delegates he controls... AND THEN....

1208
General Discussion / Re: Attack scenario
« on: June 20, 2014, 02:39:56 pm »
And what if an attacker decides to use the LAZIES to make them vote for his delegates.
Imagine the following:
EVIL has 2% stake.
EVIL votes for misbehaving delegate.
LAZIES votedown that misbehaving delegate.
EVIL switches his votes to his own delegate placing it in such a way that LAZIES autovote for it.
Each block EVIL reduces his vote for that delegate making all LAZIES' transactions autovote for that particular delegate.

This shouldn't cause much trouble initially but if EVIL carefully places his votes he could control most of the LAZIES.

I understand that there are more "imminent" and important tasks at hand and this might not be even possible.

However my point is that LAZIES could be exploited and it might be a good idea to think about updating the autovoting algorithm to the point that it is not that predictable.

1209
General Discussion / Re: Dry Run 3: A Game of Delegates
« on: June 20, 2014, 06:52:18 am »
There are delegates with negative "VOTES FOR".
66          unelected-testz1         -885053986          106224251086        -1.071245313 %      0               4

Some of the initial delegates lack unelected prefix.
41          crazybit                 9215                106210341099        -1.06225431 %       2               2
40          coolspeed                0                   109830374550        -1.09845984 %       0               4
28          delegate-alt             6927                104666022311        -1.046808958 %      3               1
https://raw.githubusercontent.com/BitShares/bitshares_toolkit/master/libraries/blockchain/genesis.json

1210
General Discussion / Re: Dry Run 3: A Game of Delegates
« on: June 20, 2014, 06:38:45 am »
I've noticed that i cant wallet_enable_delegate_producing_blocks right after I register the account as delegate.
And it takes more than 2 blocks for newly registered delegate to be marked as a delegate in wallet_list_accounts.
Is this expected ?

PS: After few minutes it is ok however several blocks were created in the meantime

1211
General Discussion / Re: Attack scenario
« on: June 19, 2014, 08:49:23 pm »

Lazy votes will likely be those with cold storage and thus 'unchanging'. 


Isnt it possible to have 30% stake in lazy active shareholders that don't bother setting delegates?

1212
General Discussion / Attack scenario
« on: June 19, 2014, 07:28:02 pm »
I was wondering what would happen if we had the following situation:

Imagine an evil user (EVIL) exists with 34% of the total stake.
Imagine we have 34% of the users (LAZIES) who let the software autovote.
Imagine EVIL votes for misbehaving delegates with all of his stake (34% of the total).
This should cause the LAZIES to (auto)vote against the same misbehaving delegates with ~ 34% of the total stake. So that the misbehaving delegates have <0 total votes.
As the total stake is 100% the remaining 32% controlled by honest users (HONEST) elect the remaining/acting delegates.

Then EVIL registers 51 delegates and (instantly?) votes for them with his stake (34% of the total). EVIL will surely elect all of them as we have 34% LAZIES who voted against the initial misbehaving delegates.

1.How long will it take for the LAZIES to autovote again?
2.What if EVIL arranges his votes in such way, that autovoting of LAZIES gives upvotes for his delegates, freeing some of his stake to elect other delegates?
3.Is controlling 51 of the delegates a problem?
4.Can EVIL attempt the same with less than 34% of the stake? (what is the minimum stake he needs?)

5.Is this situation impossible?

PS: Sorry if the question is lame, I'm still collecting pieces of the puzzle and I might've missed some information.

1213
General Discussion / Re: Names for dry run 3
« on: June 19, 2014, 02:24:13 pm »

The primary thing we are trying to avoid is giving the initial delegates undo advantage of votes from those who lost their keys, donated from an exchange, or are too lazy to get involved.  For this reason starting all votes as 'negative' votes means that the real names with real votes will get in priority over those we assign.  It also removes any accusations of bias in initial delegate selection. 

Changing the name to be 'unelected-your-name-x' allows people to see your performance and thus vote for 'your-name-x'. 

We could give you just 'your-name-x' but if we start you out with negative votes from passive users it may end up poorly for you.

Thanks for the explanation!


One more thing... I've seen somewhere comments about enabling "no-vote" state. Isn't this contrary to the idea in the DPOS whitepaper? Will this be implemented?
Here is the quote in question:
Quote
This sounds like a good idea. I'd modify it in that after shares start paying inactivity fees they should no longer vote, which means we need a no-vote state anyway, instead of generating fake delegates to sink votes.

1214
General Discussion / Re: Names for dry run 3
« on: June 19, 2014, 11:30:35 am »
Same as betax I did not arrive home in time to be part of the previous delegate batch and have been running a highly connected node instead, but if possible could you add these:

Code: [Select]
joeyd-d1: XTS7xm5K6cVv8y7dowzjTBLTwWBXQDVvKHsU3a5qDhcUSwvcwjV4u
joeyd-d2: XTS549hCkKyf4UM7rNEeF7Q83CBYdetx3smujtX2FazXTDoWnyuDW
joeyd-d3: XTS5iaa34ikXpLArVrk7wjSEwjpU9fUCznW3bSynuYGtm6xvT2Xdp
joeyd-d4: XTS5a5SrAWoXzUvDmtL4CZcYYLwSkJJk3ch2a9RNzDNERCogZZPY4
joeyd-d5: XTS671QbNrgCy945UDPRmDPf3ARQaP6vHBXAH25mt1oB5QRsrwaLS

Btw, is it possible to use a different datadir for the client apart from the usual .Bitshares\ XTS one?

use --data-dir yournewdatadir

1215
General Discussion / Re: Dry Run 2: The Real Deal
« on: June 19, 2014, 08:35:53 am »
Is it normal for me to see that much difference on this message:
--- syncing with p2p network, XXX blocks left to fetch
Code: [Select]
--- syncing with p2p network, 4523 blocks left to fetch
--- there are now 23 active connections to the p2p network
--- syncing with p2p network, 3762 blocks left to fetch
--- syncing with p2p network, 387 blocks left to fetch
--- there are now 22 active connections to the p2p network
--- in sync with p2p network
--- there are now 23 active connections to the p2p network
--- in sync with p2p network
--- there are now 24 active connections to the p2p network
--- syncing with p2p network, 4527 blocks left to fetch
--- there are now 25 active connections to the p2p network
--- there are now 24 active connections to the p2p network
--- there are now 23 active connections to the p2p network
--- there are now 24 active connections to the p2p network
--- syncing with p2p network, 4528 blocks left to fetch
--- there are now 23 active connections to the p2p network
emski (unlocked) >>> get_info
{
  "blockchain_head_block_num": 22474,
  "blockchain_head_block_time": "20140619T083400",

Pages: 1 ... 74 75 76 77 78 79 80 [81] 82 83 84 85 86