Join 73,913 users and earn money for participation

Announcing the Grasberg DAA

76 2256 boost
Avatar for deadalnix
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
Proof
  127
1 year ago

The Bitcoin Cash community has shown great interest in improving the DAA. While there is a lot of discussion around the DAA, no concrete proposal has reached ABC at the time of this writing, which does not leave us with sufficient time to review adequately, simulate and test, and get feedback addressed before the feature freeze on August 15th.

Bitcoin ABC is therefore moving forward with the Grasberg DAA.

The Grasberg DAA aims to solve 3 main problems existing right now on the Bitcoin Cash blockchain:

  • Ensure more consistent block production, which will translate into more reliable confirmation times for users, and will also reduce occurrences in which users run into per-block limits.

  • Ensure that steady miners get close to optimal profitability vs alternative mining strategies.

  • Ensure that the emission of coins follows a predictable schedule.

The source code for the Grasberg DAA is available for review.

Design Choices

The Grasberg DAA is based on an ASERT core. ASERT is a DAA proposal made by Mark Lundeberg which has very interesting properties and would be perfect for a new blockchain, but it has to be modified slightly to fit Bitcoin Cash's requirements.

Work-based

The original ASERT proposal assumes that work and target are inverse of each other. In practice this is not exactly true. While the difference is not big enough to make ASERT based on target unworkable, we should do what is correct as much as possible. Grasberg is therefore working on the work required to produce a block rather than the target.

Fixed-point math

ASERT needs to compute an exponential. In order to make the DAA 100% predictable on all machines, the use of floating point needs to be banned. This lead to the implementation of a fixed point approximation of an exponential.

This approximation is computed via the use of lookup tables and a polynomial of order 2 to improve the result. This leads to a precision that exceeds the precision of the input which has a second granularity and is therefore deemed enough.

Relative form

ASERT has two formulations, an absolute form, using a reference block, and a relative form using the two most recent blocks. While the absolute form has numerous advantages over the relative one, such as self-correcting imprecisions due to rounding, it does make the activation much more complex. The absolute form would certainly be preferable on a system that is built from scratch, but Bitcoin Cash has an history.

Parameters

The chosen half-life is of 288 blocks, or 2 days, as suggested by Jonathan Toomim in his analysis of ASERT.

Drift correction

Grasberg includes a drift correction mechanism. While ASERT does not drift very much on its own, Bitcoin Cash has experienced significant drift in the past. Choosing a reference point other than the genesis block is effectively equivalent to redefining the coin emission policy, which is a big NO.

The drift correction adjusts the targeted block time up or down slightly in order to catch up with the expected emission schedule. This adjustment is small and bounded in order to not disrupt the user experience. It is also purposefully defined to be tame so that its influence is bounded to larger time scales.

Some will find that this mechanism breaks the mathematical beauty of ASERT and they'd be correct. Unfortunately, ASERT in its absolute form using the genesis block as reference would jack up the difficulty so high due to pre-existing drift that it is a complete non-starter.

Once again, Bitcoin Cash is a chain with a history, not a new blockchain that we start from scratch. The upside of such a mechanism is that it ends up being more precise than ASERT at correcting drift. Once existing drift is absorbed, it will be possible to predict with a high degree of precision when a block is going to be mined, even many years in advance.

Testing and simulations

Bitcoin ABC has already run simulations and real-world testing of this algorithm, but is inviting other parties to reproduce the results - hopefully - or not. We also want to encourage anyone with knowledge of C++ or DAA in general to review the source code of the Grasberg DAA.

46
$ 17.06
$ 5.78 from @m4ktub
$ 2.25 from Anonymous user(s)
A
$ 2.00 from @Steve_Deplus
+ 22
Avatar for deadalnix
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
Proof
  127
1 year ago
Enjoyed this article?  Earn Bitcoin Cash by sharing it! Explain
...and you will also help the author collect more tips.

Comments

There are numerous severe problems with this article:

  • This article complains no concrete proposal has been made yet, but the Jonathan Toomim's ASERT proposal is way more concrete than this Grasberg thing, as evidenced by multiple implementations already being in development.
  • The relative formulation of ASERT is chosen despite the absolute formulation being superior on all aspects other than the temporary activation logic inconvenience for which Jonathan Toomim already proposed a simpler solution (fixing the block height).
  • A simple polynomial formula was replaced with a formula involving giant lookup tables. The giant lookup table makes the code impossible to read and humanly verify.
  • The lack of drift correction is suddenly considered unacceptable for ASERT but was never deemed problematic in all previous DAA changes.
  • There is no beginning of a description of how the drift correction is supposed to work, let alone any robustness analysis of this mechanism or any assessment of potentially undesired side effects.
  • Never in the history of bitcoin was there a drift correction mechanism. Despite the stated purpose to preserve the original emission policy, adding drift correction is itself a redefinition of the emission policy. It even literally contradicts the "moving average targeting an average number of blocks per hour" from the bitcoin whitepaper (p. 3) - it is no longer moving and the target is now something different.
  • Unlike the extensive ASERT proposal by Jonathan Toomim, zero simulation results or other quantitative analyses are presented in this article.
$ 14.55
1 year ago

Great work!

$ 0.56
1 year ago

I Found your article in homepage as boosted. very amazing and full of interesting information about The Grasberg DAA. Now I know that ASERT is a DAA proposal made by Mark Lundeberg which has very interesting properties and would be perfect for a new block chain. And what is the most I like is how you explained the drift correction.

$ 0.00
1 year ago

Time to fire Amaury. How long will this bullshit keep happening?

$ 0.00
1 year ago

Fire him? from his own software? It's open source. copy it and do it better. BCHN already started. If you think they are better people and less arrogant and socially hostile, then good for you. Good luck outcompeting ABC. This is the way to 'fire' him.

$ 0.05
1 year ago

Yeah. fire him and his ABC dictatorship.

I am sick of your ABC shilling

$ 0.00
1 year ago

blah.

$ 0.00
1 year ago

How can i be part of the Bitcoin Cash Community?

$ 0.00
1 year ago

Welcome, learn as much as you can, start helping others learn and join us at BCH Ignite https://discord.gg/Dvf79Xh

$ 0.00
1 year ago

great BCH

$ 0.00
1 year ago

Nice job

$ 0.00
User's avatar OG
1 year ago

Bitcoin ABC is therefore moving forward with the Grasberg DAA.

$ 0.00
1 year ago

All singn point to right.

$ 0.00
1 year ago

BCH ✌

$ 0.00
1 year ago

İm new in read.cash my cash account is very small😥 please help me

$ 0.00
1 year ago

From the looks of it, it is a great work!!! The other team has also something to propose but let's trust this work, it wouldn't do any good if the misunderstanding cant be undone. It would be be better if one should listen and follow. Nevertheless we expect it to be a success. Thanks for the immense talent in all this field.

$ 0.00
1 year ago

These is very good event though

$ 0.00