RFC: L1 Speed Improvements

Hi @jude. Thanks for the RFC and for the thought that went into this.

In regards to Mandatory Microblock Confirmation, I agree that pre-commits would be an effective mechanism for making microblocks “more final”. That’s an important goal of course, so to me this is already enough to justify adding pre-commits to the protocol.

In regards to Time-bound Microblock Budgets, I think the proposal makes total sense and would address a pain point that I have absolutely noticed when using the network. So 100% support there as well.

In regards to Disincentivizing Missed Sortitions – which is the section that I’m most focused on as a prospective miner – I’m unfortunately not convinced that it helps the current centralization problem all that much, and I’d actually suggest that it may hurt (i.e. make it even more unlikely that small miners can profitably enter the pool).

That said, I’m still kind of digesting this part and am very open to being wrong. Here’s my best attempt walk through it w/ some hard numbers:

Let’s first assume that “an entity” controls 100% of the mining pool and that T is set to 95%. We are a new miner who is willing to commit 1/9th of The Entity’s capital, such that we will control 10% of the mining pool and they will control 90%.

We enter the pool and win sortition at block S. The Entity will have 90% of the pre-commits from block S-1, so they have an option to redirect block rewards from us to them (in the unlikely event that our block become canonical) by refusing to vote for our block. It’s unclear to me whether they would actually do this, but it seems that they would because it’s basically a free option. The only penalty for doing it is that we may do it back to them, but we’re already going to be doing that b/c it’s our only mechanism to punch back against their incessant forking. So they will never vote for our blocks, thus creating a backup plan for the rare cases when they fail to orphan us.

However, this is all secondary b/c they’re likely to orphan us anyways. Of course the nice thing about this proposal is that we will get a little bit of value back by using our 10% voting rights, but by my math this payment will still be several orders of magnitude too small for profitable/rational mining. This is one place where I’m a little fuzzy on the details, but if I’m interpreting (B[n] / sum(B)) * e * (1 - T’ / T) correctly, it means that we get a reward of (10/100) * e * (1-.9/.95) * block_reward. So basically we are getting 1/200th of a normal block reward even before accounting for e. In other words, we’re now getting a really small payment when we get orphaned, but this is offset by the fact that we’re losing value on our canonical blocks. In the net, maybe we’re doing better than before and maybe we’re doing worse, but it really doesn’t matter b/c either way we’re very far away from being able to profitably mine, and we will quickly give up and leave the pool.

So that’s my take on how things would play out under this change. Like I said though, I’m very open to the possibility that I’m thinking about it wrong or misunderstanding some details, so of course feel free to push back.

1 Like