Bitcoin ABC has recently announced that they're "moving forward with Grasberg", a novel DAA algorithm. This announcement has proven to be very controversial, and has produced a high amount of animosity. Why is that? I'll try to explain my view of it briefly.
As always, dear reader, when reading anything, account for people's bias. Here's mine: I contribute to BCHN on the basis of promoting distributed evidence-based development for BCH.
A short and incomplete summary of facts
The current DAA was chosen by ABC in a rush some two years ago, with research and simulations that were never made public. Independent research on DAAs has continued, though.
The current DAA has oscillations which lead to blocks being mined with big variance, from a few seconds to several hours. These oscillations have been taken advantage of by switch miners. It has been problematic for users, waiting hours for confirmations, and for dedicated miners loosing an edge to switch miners. This has become to be universally recognized as a problem. The reason DAAs are on the table is because of these oscillations.
Mr Toomim has recently said he started working on DAA because of this. He produced a modified simulation suite and a heap of evidence to study the differences between various DAAs. In Ferbrurary, Mr Toomim posted an update on his work thus far, with arguments in favor changing the DAA into a better one. Mr Sechet, the lead maintainer of ABC, has also commented in that thread, recognizing the urgency, but also insisting on agreeing on a common problem statement.
Starting from there Mr Toomim (and other people) has worked his ass off doing research. Work has been happening all over in public and private spaces, including zawy's github and ABC's DAA Workgroup (where the lack of a common "problem statement" has been often stressed), and many other chats and avenues.
He has converged to one solution with the best tradeoffs, aserti3-2d
based on Mark B. Lundeberg's work, presented publicly on July 8th, as a proposal so that it can be discussed, dissected, criticized and maybe accepted. As a request for comments of sorts. Mr Toomim has been incredibly patient on talking to anyone and everyone having questions and comments. Since then he's been working, in an open manner, on producing working code for ASERT. As of now, ASERT is under evaluation, to verify that it works as advertised and doesn't have hidden pitfalls, but so far it looks great, Mr Toomim really did his homework.
On July 23th Mr Sechet announced Grasberg, a slightly modified version of ASERT, saying that ABC will move forward with implementing it in their fullnode. Grasberg's main difference with aserti3-2d is that it aims to correct historical blocktime drift - according to the description in that article, not only we need 10 minute blocks (on average) going forward, but this needs to hold all the way from genesis block. This effectively increases blocktimes to 11+ minutes (on average) for the next years. More on this here.
So what's wrong with Grasberg?
This is where facts end and my opinions start. Obviously I've had to skim through a lot of details. But there are a lot, and we all have 24 hours in a day. By all means don't listen to just one source on this.
1. Grasberg is presented as already decided on by ABC
While this discussion was being held for months, and the best proposal born out of a shared effort was proposed for comments and backed by heaps of evidence, and it's still under evaluation, Grasberg has been announced as ABC's final decision with no public discussion or backing evidence. While comments are welcome, they deem the essentials of Grasberg to be ready for primetime.
2. Grasberg introduces a new previously ignored requirement to DAA
The drift correction aspect has never been seen as an important requirement for the new DAA until the announcement. There is simply little interest in it. ABC have not made a clear and convincing case for it, neither before nor after the announcement. For it to be an essential part of a novel DAA is very sudden and unexpected.
3. Grasberg is basically ASERT with a fancy name
And it fails to give credit where credit is due. Mr Toomim (but also others) has worked his ass off for months, and if we can hope to upgrade the DAA in November is because he spearheaded this initiative. The small modifications made to ASERT should have been proposed as such, in the spirit of collaboration. (It could have easily been aserti3g-2d
, g for genesis).
Not giving credit is a great way to alienate people, and discourage them from future contributions. This is a no-go for collaboration and unhealthy for development in general.
4. ABC has withheld information on their own telegram WG
This is nothing damning per se - everyone can work on something in private before having everyone to have a look at it. But combined with all the other points, it's my biggest beef with how ABC handled this matter.
First of all, ABC thought that drift correction is very important, a deal-breaker basically, but did not push in this direction (even in their own telegram workgroup), despite the issue of the "problem statement" was frequently raised by themselves. While it was mentioned a couple times, it was never presented as crucial. On July 12th Mr Donnelly's said that a problem statement wasn't even ready (less than two weeks before announcement).
Secondly, they never stated they were developing their own DAA (even in their own telegram workgroup). What's the point of it then? What's the point of calling for collaboration if you don't collaborate? In the words of Mr Chancellor, the admin of the workgroup, Grasberg was being actively worked on for weeks prior to announcement.
Thirdly, if you have a new DAA that you think is best, won't you submit it for public discussion before going forward with it? Hasn't cw-144 - the very reason a new DAA is needed - taught us anything? It's not that we can do better than that, we need to do better that that to avoid a new capture - why BCH was created in the first place.
My idea of going forward
I suggest ABC withdraw Grasberg as a decision, and instead submit it as a proposal. To be dissected and evaluated based on technical merit, especially against aserti3-2d. So that we end up with the very best DAA, on which we can all agree on.
The way ABC introduced Grasberg has been very divisive; let's back up and discuss it and heal the divide. Or at least try.
I second the suggestion.
I also am happy to make bets with anyone who thinks ABC will actually do that.
anyone?