dominant-strategies / Quai-Macro-Model

GNU General Public License v3.0
1 stars 0 forks source link

Figure out modeling of decision to not mine at all #124

Closed SeanMcOwen closed 2 months ago

SeanMcOwen commented 2 months ago

We currently have it so that we always have a block mined.

With the set up, at some point a block eventually has to be mined so maybe it can ignored safely, but we might want to see if there is anything that this changes in our modeling approach.

First thought is that all that info gets taken care of in the time between blocks being mined

jshorish commented 2 months ago

@SeanMcOwen I've added this to the HackMD doc in an expanded section on the Miner's decision.

This would eventually impact the expected value of the miner's profitability, but agreed this doesn't materially impact the specification, as the block reward/conversion rate is time-dependent only indirectly, as a function of the block difficulty (hash). So the hash responds to whether or not a block has been mined, and can take on e.g. the time between blocks etc., but there's no direct dependence on time between blocks for specifying the block reward or conversion rate.

SeanMcOwen commented 2 months ago

@jshorish I'm paraphrasing from a conversation Jakob and I had a while back on a different project, but I believe there is one nuance with empty vs. skipped block. Empty block would mean 0 transactions but a mined block versus skipped block would be a miner not mining. So probably more of a nit, but might be worth referring to skipped vs. empty, but it also may be different for this protocol so take it with a grain of salt.

Otherwise I think that everything in the document and that you have said makes sense! Difficulty adjustments from skipped blocks should decrease difficulty down, and I think now it just depends on whether or not we go for adding in a "difficulty controller" versus full abstraction out. I think we will use the difficulty controller and thus would have a feedback loop like this. So good to go for now! Thank you!

jshorish commented 2 months ago

@SeanMcOwen Thanks for the clarification! In light of our discussion yesterday (Aug 8th) I think we can safely abstract away from empty/skipped blocks and just work with the population Hashpower as Zargham has suggested, in combination with the difficulty controller block implementation you mention.