Author Topic: Consensus on the list of delegates  (Read 35612 times)

0 Members and 1 Guest are viewing this topic.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
The point is that being "rational" he thinks that all 101 delegates would immediately accept payment from the smart contract, and reject any new voting transactions that would replace any delegate.  He's basically asserting that the BitShares network would be unable to find even 1 out of the 101 delegates who would refuse to sabotage the network if offered a 1% pay raise as a bribe to sabotage it:

Not all 101. 50 is enough, because with 1 briber this group gets majority and can ignore blocks of other 50 delegates.
I don't get why this is not a classical 51% attack?

Offline Come-from-Beyond

  • Full Member
  • ***
  • Posts: 113
    • View Profile
The point is that being "rational" he thinks that all 101 delegates would immediately accept payment from the smart contract, and reject any new voting transactions that would replace any delegate.  He's basically asserting that the BitShares network would be unable to find even 1 out of the 101 delegates who would refuse to sabotage the network if offered a 1% pay raise as a bribe to sabotage it:

Not all 101. 50 is enough, because with 1 briber this group gets majority and can ignore blocks of other 50 delegates.

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
So what happens if less than 101 people pay into the smart-contract? The smart contract still pays to all 101 delegates?

Even 1 person is enough. The SC does pay to all 101 delegates. We can make it worse if some shareholders want to keep delegates the voted-for in top 101. These shareholders just need to send money to the balance of the SC.
I don't get it ..
In order for that to work, those that want the current 101 delegates to stay where they are, they need 51% of the stake. Else the others (majority) can simply vote them down. The SC would than pay to new people being independent from the attacker, won't they?

The point is that being "rational" he thinks that all 101 delegates would immediately accept payment from the smart contract, and reject any new voting transactions that would replace any delegate.  He's basically asserting that the BitShares network would be unable to find even 1 out of the 101 delegates who would refuse to sabotage the network if offered a 1% pay raise as a bribe to sabotage it:

You don't need a smart contract. Delegates get all payed already. Depending on their payrate 0%-100%, they get x% of 50BTS per block that is signed.
That also leads to an incentive to stay honest.

I don't see how a smart-contract would change anything. BTW, who pays for the smart-contract?

I used the smart contract to get a cryptographically reliable bribery. 0.4 BTS is a nice bonus to 50 BTS, isn't it? Any delegate can afford to pay this amount to others and still keep 50 - 0.4*100 = 10 BTS. Being a dishonest is still profitable if none of the delegates can be kicked off.

A delegate that wants to stay in top 101 forever pays for the smart contract. This can be done via a sockpuppet account.

If he actually believes this would work, he has my sympathy, and I hope he can spend more time around here in the future and get to know some of us and our delegates.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
So what happens if less than 101 people pay into the smart-contract? The smart contract still pays to all 101 delegates?

Even 1 person is enough. The SC does pay to all 101 delegates. We can make it worse if some shareholders want to keep delegates the voted-for in top 101. These shareholders just need to send money to the balance of the SC.
I don't get it ..
In order for that to work, those that want the current 101 delegates to stay where they are, they need 51% of the stake. Else the others (majority) can simply vote them down. The SC would than pay to new people being independent from the attacker, won't they?

Offline Come-from-Beyond

  • Full Member
  • ***
  • Posts: 113
    • View Profile
So what happens if less than 101 people pay into the smart-contract? The smart contract still pays to all 101 delegates?

Even 1 person is enough. The SC does pay to all 101 delegates. We can make it worse if some shareholders want to keep delegates the voted-for in top 101. These shareholders just need to send money to the balance of the SC.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
So what happens if less than 101 people pay into the smart-contract? The smart contract still pays to all 101 delegates?

Offline Come-from-Beyond

  • Full Member
  • ***
  • Posts: 113
    • View Profile
You don't need a smart contract. Delegates get all payed already. Depending on their payrate 0%-100%, they get x% of 50BTS per block that is signed.
That also leads to an incentive to stay honest.

I don't see how a smart-contract would change anything. BTW, who pays for the smart-contract?

I used the smart contract to get a cryptographically reliable bribery. 0.4 BTS is a nice bonus to 50 BTS, isn't it? Any delegate can afford to pay this amount to others and still keep 50 - 0.4*100 = 10 BTS. Being a dishonest is still profitable if none of the delegates can be kicked off.

A delegate that wants to stay in top 101 forever pays for the smart contract. This can be done via a sockpuppet account.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Thank you for your replies guys. The problem is becoming more and more interesting.

Imagine that someone created a smart contract that pays money to every delegate as long as none of the delegates is voted out. In this case every delegate knows that he will get money with 100% probability. It's also impossible to know who is bribing, it can be any or even several delegates. The shareholders can't abandon this fork because even if all the delegates are replaced with new ones then the smart contract will keep paying money.
You don't need a smart contract. Delegates get all payed already. Depending on their payrate 0%-100%, they get x% of 50BTS per block that is signed.
That also leads to an incentive to stay honest.

I don't see how a smart-contract would change anything. BTW, who pays for the smart-contract?

Quote
I showed how bribery can be reliable, unavoidable and briber undetectable and there is no even need to keep the fact of bribery in secret. Several honest delegates can be excluded by dishonest ones by pretending that their blocks don't reach the next in the queue. Or am I wrong and blocks can't be ignored?
blocks can be ignored. and due to the 10secs block interval it happens from time to time that your next delegates just doesn't see your block in-time.

Offline Come-from-Beyond

  • Full Member
  • ***
  • Posts: 113
    • View Profile
Thank you for your replies guys. The problem is becoming more and more interesting.

Imagine that someone created a smart contract that pays money to every delegate as long as none of the delegates is voted out. In this case every delegate knows that he will get money with 100% probability. It's also impossible to know who is bribing, it can be any or even several delegates. The shareholders can't abandon this fork because even if all the delegates are replaced with new ones then the smart contract will keep paying money.

I showed how bribery can be reliable, unavoidable and briber undetectable and there is no even need to keep the fact of bribery in secret. Several honest delegates can be excluded by dishonest ones by pretending that their blocks don't reach the next in the queue. Or am I wrong and blocks can't be ignored?

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Would they still include these transactions if the delegate who is being voted
out promised to pay 1 milion dollars if they didn't?

I'm analyzing a situation when delegates bribe other delegates in exchange of
keeping their position in top 101. Every rational delegate will accept the
money. There can be some delegates who will reject the money but depending on
the offered amount the number of such delegates can be less than 10-20-30. In
this case the other (majority) will ignore their blocks if these blocks contain
voting-out transactions.

You can always (not only try to) buy votes. Though you need to keep it a secret.
Also, you do not gain anything by having a single delegate active. You need
plenty to be able to fake price feeds in the market, which can be observed by
(other) people and make them downvote you. If you manage to buy 51% you can fuck
with the system, as you can with ANY consensus algorithm, because by definition
51% is majority and defined "consensus" :)

Through I don't believe you can "buy" 51 delegates. Once you just "ask" an
honest guys he will certainly ring bells and warn the community about what's
going on.

Further, if 51% is not achieved yet but an attack has been identified, the
stakeholders can still vote for a hard fork to "freeze" malicious signing keys.

What do we get here? We get that if mining is too profitable then
delegates may get enough money to "buy" permanent position in top 101. Any
expert in Game Theory here?
No game theory expert here, but I can tell you that delegates cannot get enough
delegate pay to pay for their positions 'on ther own'. There will always be a
need for more money to flow in if someone outside wants your delegate to be in
the top 101.

Offline cube

  • Hero Member
  • *****
  • Posts: 1404
  • Bit by bit, we will get there!
    • View Profile
  • BitShares: bitcube
Welcome Come-from-Beyond.  I am glad you join the bitshares community. 

The people who can really help you with the 'deep questions' you are seeking answers for are bytemaster and its developers. vikram and theoretical are two of the key developers on the bitshares blockchain. Another user, arhag may help you too.
ID: bitcube
bitcube is a dedicated witness and committe member. Please vote for bitcube.

Offline theoretical

What ensures that the shareholders agree on the list of delegates? If a delegate can be kicked off for misbehavior then the list can change instantly which is hard to achieve in a distributed system.

Every BTS balance keeps track of the slate [1] it's voting for.  Whenever BTS moves, vote totals are updated.

[1] A "slate" is a set of delegate accounts assigned a numeric ID.
BTS- theoretical / PTS- PZxpdC8RqWsdU3pVJeobZY7JFKVPfNpy5z / BTC- 1NfGejohzoVGffAD1CnCRgo9vApjCU2viY / the delegate formerly known as drltc / Nothing said on these forums is intended to be legally binding / All opinions are my own unless otherwise noted / Take action due to my posts at your own risk

Offline sschechter

  • Sr. Member
  • ****
  • Posts: 380
    • View Profile
All these attacks of course are entirely theoretical and extremely unlikely.  BitShares is a company like any other centralized company....  No delegate will offer 1 million dollars unless being in that spot can guarantee the money gets returned - a bet that is extraordinarily risky.  If a delegate gets voted out, they are better off spending the money to lobby voters to get voted back in.  There is no penalty to get voted out then voted back in, minus a temporary loss of income. If delegates are making a million dollars, then you're a goddamn idiot for not investing now when they are making $2000-3000 a month. Theoretically, every Google employee could shoot each other in the face, and its shareholders would get burned.  It doesn't stop people from taking that risk and investing in Google.  Your game theory scenario requires that the main participant makes bad choices that go against his own self interest.  There is no mechanism in place that prevents delegates from taking the money and not fulfilling their promise to the bad actor.

Its great that you are thinking these scenarios through and asking these questions, but the thing about BitShares is that its made up of entrepreneurs willing to go out and do, and to take risks that these extraordinary edge cases will exist and will never happen.  Its why we will make the money while those chasing perfection will end up teaching university courses. BitShares always has a back up plan in case of the unpredictable black swan, but it doesn't waste time squabbling about optimizing the effectiveness of plans that are unlikely to ever be needed.
BTSX: sschechter
PTS: PvBUyPrDRkJLVXZfvWjdudRtQgv1Fcy5Qe

Offline Troglodactyl

  • Hero Member
  • *****
  • Posts: 960
    • View Profile
The non-colluding delegates would include the vote transactions in blocks...

Would they still include these transactions if the delegate who is being voted out promised to pay 1 milion dollars if they didn't?

I'm analyzing a situation when delegates bribe other delegates in exchange of keeping their position in top 101. Every rational delegate will accept the money. There can be some delegates who will reject the money but depending on the offered amount the number of such delegates can be less than 10-20-30. In this case the other (majority) will ignore their blocks if these blocks contain voting-out transactions.

What do we get here? We get that if mining is too profitable then delegates may get enough money to "buy" permanent position in top 101. Any expert in Game Theory here?

So you've gone from requiring 51 colluding delegates elected to 101 delegates who will eventually collude.  Assuming the 101 delegates all trust each other and don't betray one another after striking their agreement, they still aren't going to be able to keep their alliance a secret.  That fact that they're ignoring transactions to vote them out will be quickly observed and brought to public attention, which will destroy the value of their fork of the chain, and with it the value of the delegate positions for which they've worked so hard.  This is basically a worst case scenario, in which a single malicious group takes over all delegate positions, and I think it would likely require a hard fork maintaining current balances but resetting the elected delegates.

Since this sort of hostile takeover leaves the target chain basically worthless, I don't think it would be worth the cost and effort for anyone to seriously attempt, unless a competitor to BitShares was truly desperate.  Even for a competitor, the cost to recruit all 101 delegates would probably exceed the cost to the BitShares community of forking to resolve the issue.

The assertion that every rational delegate will accept the money also implies that every delegate values reputation very little, and short term monetary gain very highly, but which value systems are objectively the most rational is a discussion for another time.

chryspano

  • Guest
I might be wrong in this and my memory maybe fails me but I think that even if there is only one honest delegate the bad delegates are doomed, the only real side effect will be the slow transaction times(16,8 minutes)  because the honest delegate will have to wait for his turn every time until the situation is resolved.

Again I might be wrong in this and it would be better if someone can confirm or deny this.