Gold collapsing. Bitcoin UP.

shadders

Member
Jul 20, 2017
54
344
@shadders

I think you went off on a complete tangent that has nothing to do with jessquits idea of de-prioritizing some miners. De-prioritizing unknown miners will not lead to chain-splits. SM is the cause of the orphans (really micro-chain-splits).
Micro, mini, macro.... all the same in principle if different in impact and difficulty of execution. My point is that miners are not at all bound by the 'longest chain' in the short term. They are bound by economic incentive. If they have reason to believe they (or a group of them with a common purpose) can outmine the longest chain they can do so which means prioritizing or de-prioritizing other miners based on various criteria is a tool they have at their disposal to influence the characteristics of accepted blocks.

My comment is not at all specific to SM... J
 

cypherdoc

Well-Known Member
Aug 26, 2015
5,257
12,994
what a classic breakout from a descending wedge.
 

jessquit

Member
Feb 24, 2018
71
312
the idea you proposed to reject or delay incoming blocks from connections that are for some reason seen as lower priority goes against the concept of proof-of-work.
It's not a proposal and obviously I wasn't able to communicate the idea clearly to you :( . Sorry

It's an observation of the exigencies of not being able to transmit blocks to everyone all at once. And what I'm saying does not go against the concept of Proof-of-Work, in fact it's actually based on observations of mining incentives.

When a miner finds a block, the miner has an incentive to make sure as many other miners find out about the block as fast as possible. A miner does not want to waste its time broadcasting a newly found block to thousands of nonminers randomly. There are only so many network adapters available. The HM therefore should be expected to send blocks in parallel to as many mining nodes as it knows about. The HM will be sure to have transmitted blocks to these entities before relaying its found blocks to nonminers, because it is incentivized to do so.

And thus the "fully connected graph" topology.

The nonminer Sybil will never be part of this preferred "first wave" and can be expected therefore to learn about blocks from HM only after the other nearby HMs have learned about it and begun relaying to nonminers.

It is true that propagation around the world functions as a wave, but since HM prioritizes miners when it transmits blocks, SM is always behind when trying to "catch" that wave - other HMs in its vicinity can be expected to know about HMs block before SM or its nonmining nodes can catch up.

Edit: let's put this into a thought experiment. You are an honest miner who finds a block in New York. You begin broadcasting this block in parallel to all miners (pools) you know of. I'm a selfish miner in San Francisco. My mining node learns about your block in ~ 70ms because you broadcast it to me in the first wave, since I'm a miner. Immediately I try to create a connection to all the other miners local to me, but you're *already* transmitting to my local area and most all miners within the continental USA. Even worse, my nonmining full node in Los Angeles only learns about the new block when a miner in Los Angeles gets it directly from HM and relays it out to me.

How do these nodes "beat" HM? Yes, the transaction has to go to the other side of the world. The idea that SM can react and then "beat" these speed-of-light transmissions is very illogical, at least on the face of it. You can't stick a selfish nonmining relay node in Tokyo and expect it to "outrace" a direct broadcast from NY to Japanese miners, because that assumes that the nonmining node in Tokyo learned about the HMs block before HM could even connect directly to Tokyo at the speed of light. How? I think you're the one presuming faster-than-light broadcast, actually.
 
Last edited:

Tom Zander

Active Member
Jun 2, 2016
208
455
When a miner finds a block, the miner has an incentive to make sure as many other miners find out about the block as fast as possible. A miner does not want to waste its time broadcasting a newly found block to thousands of nonminers randomly. There are only so many network adapters available. The HM therefore should be expected to send blocks in parallel to as many mining nodes as it knows about. The HM will be sure to have transmitted blocks to these entities before relaying its found blocks to nonminers, because it is incentivized to do so.

Oh, wow, so you don't have any idea how miners actually connect.

And thus the "fully connected graph" topology.
Your description has nothing to do with the concept of a fully connected graph, though.


How do these nodes "beat" HM? Yes, the transaction has to go to the other side of the world. The idea that SM can react and then "beat" these speed-of-light transmissions is very illogical
And you misunderstood the original point of a SM being able to propagate his old block to sybils in order to avoid delays, acting like a full block takes equally long than a bit to propagate.

I'll stop replying to your theory here.
 
Last edited:

bitsko

Active Member
Aug 31, 2015
730
1,532
I appreciate the edge in competition against the sea of currencies.

I may use linux and android primarily, wish to see the world sharing ideas and tech, I may pirate and violate intellectual property rights from time to time, but more than these things I want just one main internet money.

If BCH doesn't win this competition against all cryptos and governments, it will probably be BTC with its socialistic stewards, ETH with its lack of solid monetary policy, or some government.

I dont want that type of world more than my feelings of sharing freely with all mankind. because mankind can still use the tech, on BCH.
 

jessquit

Member
Feb 24, 2018
71
312
I fully appreciate that I may have misunderstandings. I'm perfectly ok with that. Let's talk politely about my errors please. Since my questions apparently annoy Tom, I'd prefer Tom not reply any more. I don't want to fight with people about this. I don't understand why my ideas are so aggravating.

How does a sybil hanging around waiting with a selfish block in Toyko know to release it to a big miner right next door in Tokyo (latency <1ms) when HM finds a block in New York and broadcasts his block directly to the miner in Tokyo (200ms)? How did the sybil in Tokyo hear about HM's block before HM could tell the miner in Tokyo about it directly?
 
  • Like
Reactions: throwaway

Tom Zander

Active Member
Jun 2, 2016
208
455
I will let the original post do the talking, it answers your question;

While I don't think gamma can be "1," it can certainly be greater than 0. The selfish miner can "pre-propagate" his block to his Sybil nodes in all four corners of the world. This means the SM's block will be sitting ready-to-go one ultra-low-latency hop away from every miner while the HM's block is still localized in the specific corner of the network where it was mined. The SM thus has an advantage here.

That said, there is still a speed-of-light constraint for the SM's sybil nodes to get the "GO" command to release the block. However, now we're talking about the latency of sending a single BIT compared to the latency of sending thousands or millions of bits.
 

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
@jessquit

1. I think most people agree that the HMs could potentially make software changes to discourage selfish mining. You pointed out one idea, Bobtail is another, subchains is another still. The fact that a change may be possible to discourage SM means that SM must be real the same way a "51% attack" is real. (That said, I do NOT think SM is an imminent threat and I do NOT think we should make changes just to deal with it).

2. On the topic the value of gamma and the "number of hops" to propagate a block, I don't think we have a solid theory or solid evidence either way. And this applies even if you assume the miners are connected in a complete graph. You can model the connections from two extremes:
  • Every miner has a direct fiber connection with every other miner (i.e., there is no packet switching) limited to bandwidth B1.
  • Every miner has a direct connection to the Internet limited to bandwidth B2.
Assume ideal connections and routing in every other sense, even ignore the speed of light.

In the first model, then obviously the fastest way to propagate your blocks is to stream them in parallel to all the miners over the direct fiber connections. But in the second model, the fastest way is actually to send the block to only a few miners, who then each send the block to a few more, and the blocks fan-out exponentially over a series of "hops." In other words, "hops" is actually fastest if you assume the second model is correct.

How the network looks 20 years from now will be a bit of both IMO, and so I think both models are useful. But if Model 2 is more true than Model 1, then it means that gamma can be much greater than 0 because the SM can pre-propagate his blocks to all the members of his pool and his other Sybil nodes.

Let me end by again making it clear that I am not personally worried about selfish mining. I do think that studying the SM vulnerability helps us to learn more about Bitcoin and for this reason discussion on this topic should not be discouraged.
 

wrstuv31

Member
Nov 26, 2017
76
208
The core Satoshi idea was that ANYONE creating an actual valid proof will win. Not just your friends or some "prioritised" miners.
Because as soon as you start prioritising like that, group theory kicks in (cheating & cartel) and in the long run everyone loses.
Prioritizing by proof of work prevents you from prioritizing your friends...
 

jessquit

Member
Feb 24, 2018
71
312
@Peter R thank you for an informed reply.

In the first model, then obviously the fastest way to propagate your blocks is to stream them in parallel to all the miners over the direct fiber connections. But in the second model, the fastest way is actually to send the block to only a few miners, who then each send the block to a few more
Can you help me understand how adding a relay between points A and B accelerates the transmission of data between points A and B?

Remember we're talking about 1-2 dozen entities controlling 90%+ of the known hashpower. We aren't trying to reach thousands of nodes, but dozens. If my honest pool has 15% hashpower, by "winning the race" to only three or four other pools I've already broadcast my block to a solid majority of hashpower.

Help me understand why the best way for me to transmit a block to all of them, is to only attempt to connect to some of them? Why can I not parallelize? It would be advantageous.

Edit: I'm glad that we agree that SM itself isn't really an issue, and I'd like to make it clear that attacking the SM paper isn't actually my key issue either -- my issue is a whole slew of possibly incorrect assumptions we make about the mining network when we assume it's randomly connected.

Edit: Even if SMs sybil nodes only need to receive one bit from SM's mining node in order to begin their attack, there's still a topology problem. The fully-connected model would argue that every miner that matters is already receiving HMs block before any sybil can begin to transmit SM's block. HM still ought to be able to win that race.
 
Last edited: