Happy 5th Birthday, Grin!

       .                      .    *+*+*   +             *       .---,
               }       *           |||||       .---.            /#    `\
     .--.     {            )     @@.@.@.@@    /     \  .        |      |
    /    \     }          (      |'='='='|    |#     |          '.   _/
    |#   |         +            @@.@.@.@.@@   '._ _,/             `(^
    \_ _.'   +          *   )   |'='='='='|     (^            +     )
     (^   *       .            @@.@.@.@.@.@@     )        *        (
      )  _ _  ___  ___  ___+__  __  ___  _  ___  ___+ _ _  ___  ___ __ *__
     (  | | |/   \|   \|   \\ \/ / | _ \| ||   \|   || | ||   \/   \\ \/ /
      ) |   || - || -_/| -_/ \  /  | _ <| || - / | | |   || | || - | \  /
  jgs   |_|_||_|_||_|  |_|   /_/   |___/|_||_._\ |_| |_|_||___/|_|_| /_/

May you live long and prosper!

Looks like there will be another new member in the Mimblewimble family this year (by the name of Tari),
while Beam has just ended its mining tax.

26 Likes

Happy 5th birthday Grin :vulcan_salute:

9 Likes

Happy 5th birthday Grin! :birthday:

I believe this is also the 5th birthday for time-cap currencies. Let’s see how accurately Grin (DAA) mapped real world seconds into digital space in the first 5 years. According to [1], between Jan 15th 2019 16:01:26 and Jan 15th 2024 16:01:26 we have 2,629,440 minutes which is 157,766,400 seconds. Grin’s block at height 2,620,963 was mined at 2024-01-15, 16:01:46 UTC.


>>> grin_s = (2620963+1) * 60         # Seconds on Grin network
>>> actual_s = 157766400              # Seconds in real world
>>> abs(actual_s - grin_s) / (24*60*60)  # How off are we in days?
5.886111111111111                     # Oops! We missed almost 6 days!
>>> rw_mins = actual_s / 60  # Number of minutes that passed in real world
2629440.0
>>> grin_s / rw_mins  # Number of seconds mapped for a real world minute?
59.80658999634903
>>> grin_s / actual_s # Number of seconds mapped for a real world second?
0.9967764999391505

Even though the total seconds are off by almost 6 days, since this is an error accumulated over 5 years, it’s actually pretty accurate. For each real world minute, we created 59.806 seconds on the Grin network or, put in seconds, for every real world second we created 0.9967 seconds on Grin.

grin_time

[1] Time Duration Calculator

12 Likes

Happy birthday, hopefully one day people will stop being so greedy and will appreciate you more =)

7 Likes

It should be grin_s = 2620963* 60, just like grin time is 0 at height 0 (genesis).

The 6 days can be mostly accounted for by

  1. the re-org with a bugfix for bogus rangeproof verification on rust client, and to a smaller extent,

  2. the slow launch, where initial blocks faced an extremely high difficulty.

It might be interesting to determine the timekeeping accuracy since we mostly recovered full graph power atfer the reorg.

4 Likes

Surprisingly, the difference is not as big as I had hoped for. For block range 949575 and 2621198, I get 100,555,179 seconds passed between this time.

>>> grin_s = (2621198 - 949575) * 60
>>> actual_s = 100555179
>>> grin_s / actual_s
0.9974362434380432
>>> rw_mins = 1675919.65
>>> grin_s / rw_mins
59.84617460628259
>>> 

I even tried calculating it from block at height 2 million. Here’s the real world diff Time Duration Calculator.

>>> grin_s = (2621198 - 2000000) * 60
>>> actual_s = 37350050
>>> grin_s / actual_s
0.9979070978485972

I was expecting a slightly bigger change in accuracy although an error of 0.2% is still quite impressive. Could this be due to the price getting lower and lower and thus taking longer to mine the coins?

Edit: @tromp regarding +1 correction, yes, though this would imply we have 60 more Grin than we have seconds mapped. This is why I simplified it and considered the genesis block an edge-case where I also counted it’s emission as mapped seconds.

1 Like

Yay! Happy Birthday Grin

1 Like


Happy birthday to grin and may we all have many more mining and stacking the most elegantly simple and scalable privacy protocol.

2 Likes