Replies: 9 comments 25 replies
-
Is the "base block reward" here referring to coinbase rewards in the graph at the bottom here? Does it mean that coinbase reward targets 5% and staking rewards targets 7% thus a combined 12% inflation rate? |
Beta Was this translation helpful? Give feedback.
-
Put this in discord and also putting here: some interesting numbers for you from our end over at Puzzle. Background on data below: so in light of adjusting block reward algorithm we ran numbers to see how this increase in activity effected consensus and run quick analysis on projections of what it will do to consensus times/block rewards down road October 2nd: October 3rd: ~11k Arcade WAUs Back of napkin projections: 30k Arcade WAUs 40k Arcade WAUs Based on this quick analysis -- we think it's best to wait and see how this is effected with the coinbase ramp with Leo Wallet, Pondo, Verulink, and Arcane during this month. If their numbers lineup with ours and based on number of transactions we expect coinbase to see alone, we are likely to hit 5s/block in November. And that is not counting what we are trying to grow to in November at Puzzle as well. There is a chance we get to 10s/block based on activity alone -- not even counting increasing validator set. That being said about the near term, I do like this as a direction to continue to pursue as I imagine pushing validator sets + increasing usage might have us greater than 10s/block given our own internal targets lol. I believe this could be a good solution for both near and long term. I do worry about whether this block reward calculation would work given that secs_since_last_block might be different between each node though. Any idea on if this would be an issue or any solutions to this potential issue? |
Beta Was this translation helpful? Give feedback.
-
Big +1 from me for fixing the inflation issue.
UPDATE: actually maybe the timestamp is deterministic: https://github.com/AleoNet/snarkVM/tree/mainnet/ledger/narwhal/subdag/src/lib.rs#L191 |
Beta Was this translation helpful? Give feedback.
-
While I support the approach outlined in ARC-0042 for dynamic blocktime adjustments as a medium-term solution, I think we need an immediate band-aid to address the current issue of skewed reward distribution. By increasing blocktimes to around 8 seconds (buffered to 10 seconds under heavy load), we can better align rewards with Aleo’s original tokenomics model. The implementation can be found here: AleoNet/snarkOS#3412 This interim fix ensures rewards are balanced more evenly between validators and provers, while allowing time to implement the more comprehensive dynamic solution proposed above. Therefore I propose merging PR #3412 and test in Canary Net, testnet beta according to the same test plan we ran for our mainnet roadmap. |
Beta Was this translation helpful? Give feedback.
-
I generally support this proposal. One outstanding question I have, following Matt's comment, is what effect adding the 9 additional validators will have on block time. This isn't a "blocking" question, but it does make me wonder how pertinent this ARC will be in the coming months. Does it make sense to add the 9 new validators to canarynet to get a feel for how that'll change the network speed? |
Beta Was this translation helpful? Give feedback.
-
I was initially skeptical about the reliance on timestamps as they are notoriously untrustworthy, but the weighted median timestamp calculation from the certificates should mitigate validator collusion attacks. I would trust timestamps more if the delta times between timestamps were guaranteed to be statistically consistent across validators, but for now this looks like a decent approach. |
Beta Was this translation helpful? Give feedback.
-
I generally support this proposal. |
Beta Was this translation helpful? Give feedback.
-
I support @HarukaMa's proposal for a dynamic adjustment to the block reward. As this ARC is intended to re-align the network's rewards with the published inflation schedule, I agree with @OzielLa's point that the @HarukaMa's points about potential collusion risks are correct. From my understanding, if a subset of validators collude, the network runs into the risk that forking is a possible concern. If at least 2/3rds of validators (by stake weight) collude, then the network runs into both a forking and a deviation from the anticipated inflation rate. Before rolling in these changes, adequate testing of these edge cases should be done to understand the complexity of pulling off such an attack, which in my opinion, also introduces more fundamental concerns to the sanctity of the network (CC @vicsn). This change will require validators to update to a new version of snarkOS/VM with this ARC applied. The good news is that it does not require a coordinated synchronous update. Validators should be able to asynchronously update in advance of the target block height with which the rule change would occur. At least 2/3rds of all validators (by stake weight) will need to update to this version for the change to be effective on the network. |
Beta Was this translation helpful? Give feedback.
-
For those who are new to this thread and/or following this ARC proposal, I recommend reviewing the technical implementation as proposed by @raychu86 in this PR: AleoNet/snarkVM#2569 It provides a detailed implementation of the transition to the new emission curve as iterated upon from the above ARC discussion threads. |
Beta Was this translation helpful? Give feedback.
-
arc: 0042
title: Adjust block reward algorithm to make sure inflation is stable
authors: Haruka Ma
discussion: self
topic: Protocol
status: Draft
created: 2024-09-09
Abstract
The AleoBFT consensus doesn't guarantee a stable block interval, but the current block reward algorithm assumes the block interval is fixed at 10 seconds, and is emitting rewards regardless of actual block intervals. This makes the 5% annual reward target almost unattainable: shorter block intervals causes higher reward frequency and higher annual reward, and vice versa.
As an example, if the block interval is 3 seconds throughout a full year, the effective inflation rate from base block reward would be 16.67% instead of 5%.
This ARC proposes changes to the block reward algorithm so it could adjust the per-block reward according to the actual block interval, therefore achieving the 5% annual target without being affected by fluctuations of the validator network.
Specification
Proposed new block reward algorithm and implementation:
The proposed algorithm takes the actual block interval into account, emitting less reward if block interval is short, and vice versa.
Note the block interval is capped to 60 seconds in the calculation; this is set mainly to remedy situations like chain halts or the gap between genesis timestamp and first block (only applicable to future chain resets for testnets) so there won't be a sudden large sum of credits being rewarded in one block. The 60 seconds here is just an arbitrary number; actual interval cap should be discussed further.
Also note the block interval is guaranteed to be greater than zero on the consensus level.
Test Cases
Tested with the above code on local devnet:
Dependencies
snarkVM. Potentially other products that relies on the implementation.
Backwards Compatibility
Implementing this ARC requires the snarkVM and snarkOS to have a proper soft fork mechanism.
Security & Compliance
The proposed algorithm affects the tokenomics, albeit it's trying to bring the chain back to the intended state.
Conflict of interests among validators
This section lists some situations the author could think of.
References
N/A
Beta Was this translation helpful? Give feedback.
All reactions