Gold collapsing. Bitcoin UP.

Taek

New Member
Dec 26, 2015
2
9
Welcome to the forum, @Taek!


Right, but I think you may be assuming that Bitcoin Unlimited forces the miner/node to accept blocks of all sizes and mine on them. It's actually a setting that the user can adjust. This results in an effective emergent blocksize cap, which limits how many times you can do that pruning (probably to very few times, if any).

So I think you may be seeing BU as having a bigger scope than it does. It merely gives miners/nodes a user-friendly menu to adjust some settings so that the network cap emerges dynamically. It is not unlimited in the sense of "everyone must accept giga-blocks." It's unlimited in the sense of unfettered by a development committee's decisions and also able to be adjusted on the fly.
This, and many other responses, have missed the most important part of my point. If miners are selecting the block size in an attempt to cater to the economic majority, they can iteratively 'prune' the smallest nodes by picking a larger blocksize. It endemically moves the netowrk towards datacenter sized full nodes, at which point you've lost the core value-add of Bitcoin: trustlessness. If I'm trusting 3-5 datacenters to mine correct blocks, because the cost of validating the chain is $1000s per day, this is no better than paypal.

There is an immense problem with setting your own block size limit. If you pick a smaller limit than everyone else, you have consensus risk. A block that is just above your limit is rejected by you but accepted by everyone else - you are forked from the network.

With BU, every node **still has a block size limit**!! That limit, instead of being a hard coded number, is actually just the limit to how many blocks you can process. And if every node is running BU, every node is going to have a **different limit**!!

The collective mining group needs to find the block size that won't be rejected by the global network. But there's no strict definition of what counts as the global network, and the smallest set of players is unlikely to matter to miners.

If everyone is running BU, the slow nodes are going to be pruned. And then a month later, the *new* slow nodes are going to be pruned (though they used to be faster than the slowest 10%, the slowest 10% is now gone so the node suddenly finds itself in the slowest 10%). And the miners have incentive to do this so long as there is more money to be made by getting more fees.

--------

Someone here keeps posting that I'm confusing miners with mining pools, and that this is significant because a small miner can join a pool and then have an orphan rate that is shared with the whole pool.

There are two problems with this. The first is that if the miner has joined a pool, they are no longer in control of the transactions they are mining. Even with GBT, the pool is a centralized source of power, and can always choose to implement something different, forcing the miner to either accept the change or switch pools. And if blocks are larger than you can process quickly, you spend much of your time mining a template that you haven't confirmed or chosen because you are still figuring out the block that you are mining on top of.

The second, and bigger problem, is that miners on pools experience higher orphan rates than miners not on pools. This is because all of the miners inside the pool still have to communicate to the central server, and the central server still needs to communicate to all the connected miners every block, and this takes time. At a single giant datacenter, this isn't the case. Propagation within a datacenter is going to be single digit milliseconds at worst.

The relay network can move blocks around in something like 300ms on the current network. But the average stratum pool does not get the first block template to its miners for something closer to 5 seconds. A massive disparity, and one that means that mining on a pool is significantly slower than mining from the relay network.

Pool mining is inferior to just being a giant datacenter. You cannot assume that large pools will be able to compete with large datacenters. Pools do not exist to reduce orphan rate (and indeed, they increase it), they exist to reduce the variance on payouts (this is a purpose they serve very well).
 
  • Like
Reactions: AdrianX and bitsko

cypherdoc

Well-Known Member
Aug 26, 2015
5,257
12,995
pretty amazing:

 
  • Like
Reactions: majamalu and bitsko

sickpig

Active Member
Aug 28, 2015
926
2,541
@Aquent I'd prefer not giving my name.

If you think that my nick is "somewhat" controversial(I know that it is), it's ok for me not having attribution on BU site.

Nevertheless I'll continue to help as much as I can.
 
  • Like
Reactions: majamalu

chriswilmer

Active Member
Sep 21, 2015
146
431
what is this craziness?:

"A better long term solution may be provable computing, plus multisig, with miners verifying that transactions have been signed by Blockstream or another entity in that the node/wallet they are running is compliant with Bitcoin consensus rules."

https://github.com/bitcoin-dot-org/bitcoin.org/pull/1178#issuecomment-167382418
I missed the "signed by Blockstream" the first time I read that (and I still thought it was crazy).

You really couldn't make this stuff up. If you tried to make up stuff like this, say for a movie, people would say it was too unrealistic.
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
There is an immense problem with setting your own block size limit. If you pick a smaller limit than everyone else, you have consensus risk. A block that is just above your limit is rejected by you but accepted by everyone else - you are forked from the network.
That's the whole point, yes. What you call a bug, I call a feature. (Though actually it's a bit more forgiving because of the acceptance depth setting.)

Note that there is nothing to preclude every miner from setting the same blocksize cap, and much to ensure that they do (you just gave the prime reasons); it's just that it no longer has to be the one recommended by Core.

All BU really does in that regard is decentralize the process of decision-making on what the blocksize should be. Miners can coordinate to arrange a "flag day," communicate carefully, set their acceptance tolerances slightly higher, use prediction markets, etc. They can take into account Core's recommendations about the block number at which to start using a higher cap and about the size of the new cap, but also take into account other experts' recommendations, even those of mining consortiums who will eventually - as the division of labor in the ecosystem broadens - have more expertise about the network than Core devs do, as well as their own judgments and their own profit/loss calculations and orphan risk estimates. Solid Schelling consensus would form because of the profit motive - around Core's recommendation as a last resort if you don't think so.

If Core's (or any one client's) recommendation must be followed for consensus to be reached, Bitcoin is already centralized and we may as well have a checkpointing system.
 
Last edited:
  • Like
Reactions: majamalu

Peter R

Well-Known Member
Aug 28, 2015
1,398
5,595
@Zangelbert Bingledack You are correct, today I'd set my max mining size to 1MB, and my excessive size to 1MB. So you would not mine on a big block fork until other people have done so.
And this is why BU is great: I would do something different and we can agree to disagree.

If I were a 1% miner, I would use 8 MB. Indeed, if someone else today were to mine a 2 MB block (destined to be orphaned), I would still attempt to mine on top. The chances of me solving the next block are only 1%, so probably I'm no worse off by this act of good faith (if someone was brave enough to try to produce a big block, I can at least take a much smaller risk and try to accept that block). The expected cost of running this policy per block (compared to @theZerg's) is

<lost revenue per block> = (25 BTC) x (1%) x (Probability that someone produces a block they know will get orphaned)

And what are the chances that some produces a big block that's destined to be orphaned? Has this ever happened in the history of Bitcoin? I'll be conservative and say the chances of any given block being excessive are 0.1% (although I think it's vastly lower). Work out the math and you'll see that this policy only costs me (as a 1% miner) $18 per day.

Being able to say "I will mine on top of big blocks TODAY" is worth $18 per day to me :D

[Of course, once all the miners get their heads on straight and increase their block size limits, then I'd probably switch my settings to whatever everyone else is using, because I would no longer have a point to prove]
 
Last edited:

Justus Ranvier

Active Member
Aug 28, 2015
875
3,746
It endemically moves the netowrk towards datacenter sized full nodes, at which point you've lost the core value-add of Bitcoin: trustlessness. If I'm trusting 3-5 datacenters to mine correct blocks, because the cost of validating the chain is $1000s per day, this is no better than paypal.
What does "trustlessness" mean, and why didn't Satoshi recognize that datacenter nodes contract Bitcoin's core value-add when he was the one who both invented Bitcoin and proposed that nodes will eventually be run in data centers?
 
  • Like
Reactions: majamalu

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
But the more I think about it the more I think that the algorithm should be to look for the FIRST INSTANCE of an excessive block on that chain. After all the point of accept depth is to prove that there is significant hash power on a chain, compared to someone who just got lucky. And if the first instance is > the accept depth, the chain is accepted.

So the difference between this proposal and today is that after 4 "excessive blocks" the miner pops to the chain tip rather than always trailing it.
Makes sense. I'd be sure to let people know this is extra-experimental software.
 

Peter R

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

I think everyone agrees that the lowest-cost equilibrium configuration of the network from a very naive perspective is a single "super node" in a datacenter. However, there are other forces at play--such as control and influence--that I believe will prevent centralization to this degree.

What I hear from you is:

"we don't know X so we should coerce everyone to do Y"

whereas I suggest

"we don't know X so we should let the market decide"

With @theZerg's recent paper, my fee market and subchains papers, some important aspects of "large block" thinking have been clearly exposed. Whether you agree of disagree--love the papers or hate them--what we have done is made clear statements so that our position can be scrutinized.

I would love you to do the same. Would you or a team of your colleagues consider writing a paper on the "big block = centralization" thesis?
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
Work out the math and you'll see that this policy only costs me (as a 1% miner) $18 per day.
That's a beautiful example of what I mean by "each miner will factor in their own individual profit/loss calculations." More than just agree to disagree, we see that each miner is actually a business making their own decisions. A useful consensus can emerge even when everyone has different priorities.

The consensus rules, like the rules of the English language, serve as a public good. You gain a lot by adhering to them and tapping into that public good, but you can freely deviate from them at your own risk if you think the cost is worth it.

The hard work of explaining this logic to the public now begins.

(I still move that the default in BU be Core settings: 1MB, 1MB, infinite accept depth)
 
Last edited:

theZerg

Moderator
Staff member
Aug 28, 2015
1,012
2,327
And this is why BU is great: I would do something different and we can agree to disagree.

If I were a 1% miner, I would use 8 MB. Indeed, if someone else today were to mine a 2 MB block (destined to be orphaned), I would still attempt to mine on top. The chances of me solving the next block are only 1%, so probably I'm no worse off by this act of good faith (if someone was brave enough to try to produce a big block, I can at least take a much smaller risk and try to accept that block). The expected cost of running this policy per block (compared to @theZerg's) is

<lost revenue per block> = (25 BTC) x (1%) x (Probability that someone produces a block they know will get orphaned)

And what are the chances that some produces a big block that's destined to be orphaned? Has this ever happened in the history of Bitcoin? I'll be conservative and say the chances of any given block being excessive are 0.1% (although I think it's vastly lower). Work out the math and you'll see that this policy only costs me (as a 1% miner) $18 per day.

Being able to say "I will mine on top of big blocks TODAY" is worth $18 per day to me :D

[Of course, once all the miners get their heads on straight and increase their block size limits, then I'd probably switch my settings to whatever everyone else is using, because I would no longer have a point to prove]

Ok, let me rephrase "If I put myself in the mind of an ultraconservative miner... that is what I'd do. If I was me, I'd probably take Peter R's advice.
 

Justus Ranvier

Active Member
Aug 28, 2015
875
3,746
This is what a honeypot looks like:

https://github.com/bitcoin-dot-org/bitcoin.org/pull/1178

Read the OP carefully and you'll notice the decision to merge this was made prior to it being posted.

The only reason it was left open for comments was to see if anyone who wasn't already on their enemies list would comment in opposition.

Anybody who fell for it and who wasn't already no-platformed will be now.
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
That's why I think having a togglable BIP101 option would be good. A "flag day"-style change would be more convenient if it were automated like that. But at this point the argument can just be made that, yes, support for that behavior is just a more convenient version of what is in BU and support can be added for it soon enough.

Eventually I can imagine a whole suite of settings and parameters that miners might want in their algorithms for choosing when to change their block settings. Whether BU should have this all inside it or it should be left to some kind of third-party plug-in, I'll leave for the coders here to answer.

After all, the change BU makes is basically a matter of convenience (don't have to change the code yourself or hire someone), and convenience could be taken a lot further.
 
Last edited:

Peter R

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

Agreed. I think the hardest thing for people to understand is that just because every node operator is able to easily adjust their block size limit in random ways, doesn't mean they will. Order can emerge without top-down control :)

That being said, I still support XT and BIP101 and see them as complementary to BU. In fact I see BIP101's 8 MB, 16 MB, 32 MB, ... as a Schelling curve that BU node operators will adhere to.
 

Justus Ranvier

Active Member
Aug 28, 2015
875
3,746
I think the hardest thing for people to understand is that just because every node operator is able to easily adjust their block size limit in random ways, doesn't mean they will. Order can emerge without top-down control :)
For many (most) nodes, it doesn't matter if they set their limit in random ways.

Some nodes represent a larger fraction of the economy than others and, conveniently enough, those nodes have proportionally more incentive to carefully choose an optimal value.
 

Zangelbert Bingledack

Well-Known Member
Aug 29, 2015
1,485
5,585
I'm in the process of updating the website and wondered if someone could write a high level summary of what bitcoun unlimited is. Specifically, how everyone can set their own limit, the fact that there is a buffer of some 5mb I think, how emergent consensus is meant to arise, how you wouldn't be forked off etc.
And the FAQ will have to be pretty hefty, I'm thinking.
 

Mengerian

Moderator
Staff member
Aug 29, 2015
536
2,597
(I still move that the default in BU be Core settings: 1MB, 1MB, infinite accept depth)
Yeah, I agree. We are in consensus ;)

For political/rhetorical purposes, having the 'default' set the same as Core would be good. Should make it more obvious that the 'altcoin' argument is ridiculous. Then I imagine having some sort of drop-down option the user can select with pre-defined configurations like BIP101 and completely unlimited.
 
  • Like
Reactions: majamalu and bitsko

VeritasSapere

Active Member
Nov 16, 2015
511
1,266
@Zangelbert Bingledack @Aquent I can imagine that would be a daunting task, considering that we are still in the process of discovering what this means. I can definitely help write this, might be good to start a new thread for this purpose like we did with the articles of federation, maybe someone else with a deeper knowledge can start it off and I can help with the editing, principles and language.

It is an exiting time to be alive, we are at the forefront here of understanding blockchain governance, I believe this is incredibly significant. The understanding that we gain here is mostly likely only a fraction of the knowledge that these developments entail, it is all very profound actually. :)