I don’t know, it needs more analysis, no rush, we don’t have the problem which this would hypothetically solve.
How I got here is asking myself: “Why are orphan rates a problem?” and “How high orphan rates could we tolerate?” but that’s for another topic, the takeaway from my pondering is this: if everyone had equal orphan rates then they wouldn’t be a problem at all.
That’s how I got here, wondered “If we have to have some orphans then what if there was a way to equalize orphan rates across pools?”
Uncle merging proposals like Tailstorm would address the problem by subsidizing orphans, and
this proposal would address the problem socializing orphan losses.
Header-first requires mining an empty block to get the subsidy. How would header-first work when fees take over?
But still, if bandwidth significantly outpaces our network growth and demand for transactions then it may as well be that we never see orphan rates become big enough to be a problem, so changes to 1st seen would be unnecessary.
The current state of things is that miners are free to implement whatever tie breaker policy they want because any 2 tips are equal as far as consensus is concerned, favoring either is subjective.
That means we can actually have competing policies, there needs not be consensus on this policy.
With the H(A||B) as policy we’d have an objective tie-breaker for the case when chainworks are equal.
Something more to ponder, what if longer tips are competing, e.g.:
N+A+B vs N+C+D
should we evaluate H(B||D) or H(A||C) to pick the tip? or some 3rd thing like H(A||B||C||D)?
what if evaluating N+A+B+C vs N+D+E+F ?
in that case difficulty in C and F could differ so our DAA may resolve the conflict because one of the chains would have higher chainwork?