Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a maximum date for Genesis #2134

Closed
econoar opened this issue Nov 17, 2020 · 41 comments
Closed

Add a maximum date for Genesis #2134

econoar opened this issue Nov 17, 2020 · 41 comments

Comments

@econoar
Copy link

econoar commented Nov 17, 2020

I'm suggesting that we add a maximum date (Dec. 15 2020) for the Genesis event. This would mean that eth2 genesis kicks off even if we don't hit the required minimum deposit amount (524,288 ETH) in the current spec.

The main reasoning for a minimum amount is to fend off gatekeeper attacks. However, the analysis for 524,288 was done with ETH price was at $80 and current distribution of stake on the eth2 side looks good.

@djrtwo
Copy link
Contributor

djrtwo commented Nov 17, 2020

Note, that a gatekeeper attack would be incredibly obvious and a censoring attacker is likely to be forked out through social consensus. Not a good ROI

@PhABC
Copy link

PhABC commented Nov 17, 2020

I would like to propose January 15th as a hard deadline instead for two main reasons:

  1. Give more time for the original design to pan out (1 month to reach the threshold was unrealistic imo)
  2. If shit hits the fan, most people won't be on vacation anymore, unlike end of December

@collinjmyers
Copy link

I agree that extending the max date beyond December 15th is best for a secure main net launch given current dynamics. Today I observe a universe of ETH holders that want to participate in genesis but simply need more time to determine their set ups or provider choice. Allowing 1 more month to deposit only makes genesis stronger. Lastly, the threshold should remain at 524,288 to avoid any discussions of a gate keeper attack.

Happy to see this being proposed and discussed.

JustinDrake added a commit that referenced this issue Nov 17, 2020
See discussion at #2134.
@latetot
Copy link

latetot commented Nov 17, 2020

Fully agree with this. Once people see the beacon chain up and running and distributing rewards, new validators will join rapidly, and we will get to 524288 ETH staked and beyond much more quickly than if we delay launch. Depositing into a contract without knowing when it will launch is too abstract for many potential validators and keeping them on the sidelines.

@latetot
Copy link

latetot commented Nov 17, 2020

I would like to propose January 15th as a hard deadline instead for two main reasons:

Do not underestimate the negative psychological impact of delaying launch until 2021. Everyone is ready for 2020 launch and the only justifiable reason to delay to 2021 at this point would be a major security issue.

@Buttaa
Copy link

Buttaa commented Nov 17, 2020

Against this idea, there is no reason to rush a launch. In fact we can work on phase1 and avoid unnecessary discussions.

@PhABC
Copy link

PhABC commented Nov 17, 2020

Do not underestimate the negative psychological impact of delaying launch until 2021.

Are there prediction markets depending on this that could be tainting people's judgement?

There is no need to squander 4 years of work for an additional month delay if this delay is a hard deadline. I very much recall a hardfork that happened late December a year or so ago and many core developers were very unhappy about it. I would not underestimate how many people are tuning off end of December either and I personally care much more about core devs mental health than market sentiment around "which year did ETH2.0 launch?".

I can guarantee that the week or two after it goes live will be very stressful for those closely involved, both devs and validators. Going live on December 15th could very well ruin a much needed vacation during one of the worst year in recent decades.

@cadrem
Copy link

cadrem commented Nov 17, 2020

It shouldn't only be a choice between Dec 15 or Jan 15.

Dec 8 is at least as valid. If we are ready for Dec 1 we are also ready for Dec 8 and this would give developers time between the genesis date and the holidays.

@ryanberckmans
Copy link

Is it possible that the market might sort it out, on a reasonable timeline, without a spec change?

Eg. maybe whales pile on closer to Nov 24.

It seems like it might be a healthy precedent to set to have evidence of market failure before a spec change.

@nootropicat
Copy link

I would like to propose January 15th as a hard deadline instead for two main reasons:
2. If shit hits the fan, most people won't be on vacation anymore, unlike end of December

The only way to ensure no launch happens during vacation time is to launch earlier, as it's only the maximum genesis date. The mainnet could as well launch exactly on Christmas Eve with a 15 Jan maximum. Therefore, I think this is actually an argument for an earlier maximum date, even 1 Dec.

@PhABC

@ghost
Copy link

ghost commented Nov 17, 2020

I’ll simply quote Justin Drake’s tweet of July 11:

“ Loud and clear! :)

The community wants phase 0 genesis in 2020—not one day late. The goal is set; let's ship.”

Enough said.

@kladkogex
Copy link

kladkogex commented Nov 17, 2020

Well, if you guys want a simple game-theoretic solution that solves all problems, here it is:

Limit the max amount staked for the next 12 months to 524,888 ETH.

I can bet you will get the entire amount by Dec 31 :)

The deposit contract cant be changed, but the clients cant be tweaked not to accept deposits over 524,888 until Jan 1 2022.

@wjmelements
Copy link

I suspect a reason some would want to rush this launch with less ETH on this particular schedule is that there are prediction markets regarding whether the genesis happens before or after the end of this year.

@latetot
Copy link

latetot commented Nov 17, 2020

I suspect a reason some would want to rush this launch with less ETH on this particular schedule is that there are prediction markets regarding whether the genesis happens before or after the end of this year.

Let's just discuss the issue on the merits and avoid this kind of silly speculation which would could apply equally to impugn the motives of people no matter what side they take.

@wjmelements
Copy link

I suspect a reason some would want to rush this launch with less ETH on this particular schedule is that there are prediction markets regarding whether the genesis happens before or after the end of this year.

Let's just discuss the issue on the merits and avoid this kind of silly speculation which would could apply equally to impugn the motives of people no matter what side they take.

It's not silly speculation; OP promoted such a market on Twitter in July, with the commentary "Put your money where your mouth is".

@prestonvanloon
Copy link
Contributor

If this request is fulfilled, @prysmaticlabs would like at least 2 release cycles (2+ weeks) advance notice on the max genesis date to test the functionality properly.

@djrtwo
Copy link
Contributor

djrtwo commented Nov 17, 2020

Please save the discussion of individual motives for other forums. Leave ad hominem attacks out of this repo

This is a technical change being suggested (example PR #2135) which would require an additional constant and a modification to genesis logic. Additionally a genesis with a lower initial validator count will have security compromises.

In addition to the above technical considerations, modifying potential genesis date logic can have practical impacts on engineering teams. Note, that without any such change (either setting to sometime in December or January), the holidays are in play.

The above is fair game for discussion. If this gets personal or nasty, I will more heavily moderate this issue.

@wjmelements
Copy link

However, the analysis for 524,288 was done with ETH price was at $80

I also want to call this into question. ETH hasn't been $80 since 2017 and even at the lowest point this year the weighted-average price was $95.69 according to CMC. Also, the USD is not the foundation of Ethereum's security; ETH is. USD crashing this year alongside a 42% M1 inflation should not lower our security standard; we should ignore the ETH/USD market in this decision. I suspect there is no thread discussing this threshold that values ETH at $80. The number seems to have been chosen to make the current insufficient balance seem sufficient by denominating it in USD, but when the real numbers are used the pseudo-threshold is no-longer met.

Depositing into a contract without knowing when it will launch is too abstract for many potential validators and keeping them on the sidelines.

This is a more compelling reason to set a deadline. The indefinite wait has unbounded opportunity costs. We are more likely to reach the threshold if there is a deadline.

Setting the deadline will effectively set the launch date, and so the timing should revolve around validators and engineers instead of apparent popular demand.

@djrtwo
Copy link
Contributor

djrtwo commented Nov 18, 2020

I suspect there is no thread discussing this threshold that values ETH at $80.

I believe this analysis went as low as $80.

Also, one thing to note is that in Phase 0, the beacon chain only secures itself, so a $ equivalent of attack independent of % ETH staked is reasonable to discuss. I do see your point when the beacon chain is used to secure all of the network.

Agreed on your points about the compelling reasons for a deadline. @econoar's brief notes about security are still worth considering. If, for example, there were only 10k ETH, we would all likely consider that Insufficient both in terms of baseline security and decentralization. We should thus consider if 100k or somewhere less than 500k is sufficient on these considerations.

@paulhauner
Copy link
Contributor

This is a technical change being suggested (example PR #2135) which would require an additional constant and a modification to genesis logic. Additionally a genesis with a lower initial validator count will have security compromises.

I'm not convinced that making a spec change this late in the game is a good idea. This affects the "waiting for genesis" logic, which is a known hot-spot for bugs. We've seen lots of mistakes in this area in the past; IIRC one team had a critical issue as recent as the Toledo launch.

If we did do this, it will make a much more compelling argument to start the clients from a known genesis state instead of listening to the eth1 chain.

My preferred course of action is:

  1. Don't add a maximum genesis time.
  2. Leave MIN_GENESIS_ACTIVE_VALIDATOR_COUNT at 16,384 for the rest of 2020.
  3. If we haven't met genesis by 2021, drop MIN_GENESIS_ACTIVE_VALIDATOR_COUNT to a value decided then.

I prefer this course of action for the following reasons:

  • It avoids making last-minute changes to historically buggy code.
  • For the community, the commitment to launch in 2020 if we get 16k validators is upheld.
  • For the developers, we don't force a major event to occur a week before xmas (Lighthouse already has core staff with leave scheduled on the 15th Dec).

Unfortunately this course of action means that we might get genesis on Dec 25th if someone(s) decides to drop a couple of hundred million USD into the deposit contract. This would be pretty terrible, but we already signed ourselves up for this and I find it hard to imagine that there's that much ETH out there wishing to ruin the developers holidays and launch Eth2 with a handicap.

@djrtwo
Copy link
Contributor

djrtwo commented Nov 18, 2020

If we haven't met genesis by 2021, drop MIN_GENESIS_ACTIVE_VALIDATOR_COUNT to a value decided then.

We would need to change MIN_GENESIS_TIME as well or else genesis could have already started in the past

@paulhauner
Copy link
Contributor

We would need to change MIN_GENESIS_TIME as well or else genesis could have already started in the past

Good point, I'm totally fine with this as well. I have full confidence to tweak MIN_GENESIS_ACTIVE_VALIDATOR_COUNT and MIN_GENESIS_TIME as we see fit.

@kladkogex
Copy link

However, the analysis for 524,288 was done with ETH price was at $80

I also want to call this into question. ETH hasn't been $80 since 2017 and even at the lowest point this year the weighted-average price was $95.69 according to CMC. Also, the USD is not the foundation of Ethereum's security; ETH is. USD crashing this year alongside a [42% M1 inflation]

IMO price is not the only reason here. Another big reason is that many people do not want to lock a high risk/high return asset for two years.

A typical investor will invest, say, 1% of the portfolio in crypto as high-risk/high-return asset class. Then the investor will want to be able to sell the asset fast if a bubble forms.

If there is a crypto bubble in 2021 (which it may well be), and ETH goes up, say 4 times, then a 20% return may not be a good deal in exchange for not being able to sell at the peak of the bubble.

The true ETH believers may not think like that, but for many of them, 32 ETH is simply too much money. An ability to create pools for small investors could have been added into ETH deposit contract.

We are adding such pools to SKALE.

@jdetychey
Copy link

Instead, what about keeping the date and using the funds of the EthDev contract (https://etherscan.io/address/0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae) to guarantee a launch on the 1st of Dec?
Something like:

  • look at the gap before 524k ETH on the deposit contract on the 22nd Nov, divide the gap by 4
  • send one fourth of the gap to the teams behind Teku/Nimbus/Prysm/Lighthouse
  • Have them deposit and stake until until we reach say 20,000 validators and then gradually exit validation after that
  • Let them keep the validation reward and send back the rest of the funds to the EthDev contrat

@mgcrea
Copy link

mgcrea commented Nov 18, 2020

I do think that having any sort of clear official plan with a fixed deadline will tremendously help reaching the target. And I'm pretty confident that we would reach the target before the deadline, just knowing that there is one would instill the missing confidence in early adopters that just can't take the risk to have a sizeable portion of their capital somehow stuck in limbo.

I also think it would be better to set it sooner than later as we were ready for dec. 1st, and that there is quite a few downsides to set it further away:

  • Having it in January would actually greatly increase the risk of a late on target December activation that devs seem to want to avoid (personally, I wouldn't bother, as it means more time for me to follow the launch).
  • Missing the 2020 deadline for lack of enthusiasm, aka. improper incentives, would give a bad look to a network that is based on game theory and fined tuned incentives.

I think that the more time passes, the less people are confident that the network will actually start, hence the importance to communicate early and proactively to give a clearer pictures to potential stakers out there.

@nootropicat
Copy link

nootropicat commented Nov 18, 2020

@jdetychey Good idea, EF guaranteeing 1 Dec launch would eliminate all problems from changing node logic. That would be the best solution, assuming it's actually possible on the EF's side. I don't think exiting validation or giving funds to node teams is a necessary part - funding arrangements seem like something completely separate and complicate the idea. Ideally, EF would only spend staking income, I think, so it would be best if they continue validating on their own as long as possible.
At the current balance, EF would have 141k eth1 left till withdrawals become possible, which looking at past spending should be more than enough - a number that's certain to rise as people deposit.

One possible counterargument is centralization of validators - but any decentralization of validators at low eth numbers is a mirage. As long as entities with holdings large enough to take control exist, they can deposit and take control anyway, so large friendly entities not depositing change nothing in this regard. Therefore, I don't think it's a correct counterargument.

Other eth whales also could also help guarantee the 1 Dec launch by publicly committing to deposit the difference up to their individual maximum before the cutoff date.

edit: in addition, EF or other ethdev-related people/entities staking a lot of ethers could increase general confidence that a merge is going to happen in a reasonable amount of time.

@labrav
Copy link

labrav commented Nov 18, 2020

I think changing the rules of initial staking mid-game might send the wrong message to stakers and users concerning how well thought out the crypto-economics of the whole chain had been in the first place. As there are indications (signals from at least a swiss aggregator and a Dubai fund) that money is likely to flow in in the last minute, which is the rational thing for a major investor whose eth bears interest in defi now and won't between first staking and genesis I suggest let us not have weak knees just yet.

@jonk-berifyio
Copy link

If the contract does not meet the minimum, having it launch 10-15 days afterwards regardless of however much staked ETH is a good compromise. Stakers expected to be staking in December. It's not changing the rules because most people expected the genesis event to be within the month of December. Having it as a contingency plan that's being communicated now will inspire confidence the genesis event will happen as expected.

I do think a large influx of deposited ETH at the last minute will occur and we have a very good chance of meeting the threshold because

  1. there no incentive to do it early
  2. stakers are waiting for staking clients to have all the latest updates before depositing
  3. Americans are waiting for black Friday deals to decrease their upfront costs of getting hardware to make a staking computer. It makes less sense for whales, but for those depositing the minimum ETH, getting cheap reliable hardware will make a big difference on their ROI

@DigiDr
Copy link

DigiDr commented Nov 19, 2020

We are trying to co-ordinate [hopefully] thousands of individuals, many of whom have never participated in testnets or staked and need to purchase hardware as well as get to grips with the very basics of ETH2. A "come what may" fixed launch date as proposed provides the community with a clear target to work towards. Humans will always say they need more time, but deadlines are motivating. In any case, it certainly makes the messaging and coordination around this enormous effort that much easier.

It will also prevent the economically driven dithering that many speculate is occurring, from continuing and adds an additional economic incentive (FOMO) for those that find that kind of thing helpful. It's possible that even the announcement of a date would precipitate an enormous surge in deposits and result in us reaching the original target anyway.

If you are going to do this then 15th of December is as good a target as any, and keeps us well within the EOY goal with a bit of room if something goes wrong.

+1

@ga24xoc
Copy link

ga24xoc commented Nov 19, 2020

I wouldnt set a maximum date. Rather agree on a date where measures will be discussed how to properly start the chain. For example, on Jan 1st 2021 Beacon Chain has not launched and barely any deposits are made anymore, so we sit together and think about lowering the minimum genesis validator count. If we agree on it, the chain might just launch with lets say 5000 validators which might be hit the following days. There is no necessasity of a maximum date.

@shenstone-peng
Copy link

I think it is a good idea to add a maximum date for Genesis.

@SuburbanDad
Copy link

SuburbanDad commented Nov 19, 2020

A hard launch date would be compelling and increase participation for several reasons. First, it would clear up the uncertainty about at what point a return on tied up collateral would begin. There is a disincentive to participate early currently. If we are nowhere near the high water mark for genesis, why tie up any eth at all? Once that threshold is reached you have 7 days to get in with zero opportunity cost. With a hard launch date, at least there is an upper limit on how long collateral will be idle and generating no returns.

Also, and perhaps more compellingly, if there is a hard launch date that will kick off genesis with FEWER than 16k validators, returns would be better than actually meeting the genesis threshold. Obviously that makes being in the genesis validator set much more attractive. With greater potential short term upside, even early depositors might be willing to stake more than they have already. Even though a hard deadline would be unlikely change the future returns dramatically, the potential of increased rewards would incentivize increased early participation.

@diogenesthedoggo
Copy link

I would like to represent the portion of people who are happy that 2.0 Genesis should be delayed a bit. COVID + Unemployment is making it tough to come up with $15k on short notice. I learned of ETH 2.0 only days ago; and I was an ETH 1.0 founder. A lot of people are distracted with life right now, and may not be checking their normal channels for updates. I know this one almost slipped by me, and I will be in deep regret if you guys change the rules before I get a chance to liquidate some assets. Lastly, after everything else in 2020, do we really wanna be associated with 2020? ;)

@Jackten
Copy link

Jackten commented Nov 20, 2020

Speaking as an eager potential staker, it is completely economically irrational to deposit into system as it stands with an open ended start date. Why have Eth sit and do absolutely nothing on ETH2 for who knows how long instead of making an easy 5% in Defi or elsewhere? The only incentive to participate right now is being able to say 'i was in the genesis block', and at 15k a pop, those are pretty expensive bragging rights.

Maybe I'll still put in 1 validator for the participation points, but everything else is definitely staying right where it is.

I guarantee there are thousands of us just sitting on the sidelines waiting for such a unnecessary incentive miscalculation to be remedied.

@mohsenghajar
Copy link

mohsenghajar commented Nov 20, 2020

I think we should let it run its course. There is no rush and we will eventually reach the required amount.

However, if there has been some overestimation of the required amount as Eric says (being based on $80 eth), we can safely revise that number as Eth at this point is extremely unlikely to ever go under $200. As people deposit, one can only expect the price to go up. I have one validator in, but I am hesitant to add more since I am not sure how many more will join once this starts and if at that point the yield is worth it.

@alex3498
Copy link

However, if there has been some overestimation of the required amount as Eric says (being based on $80 eth), we can safely revise that number as Eth at this point is extremely unlikely to ever go under $200.

As I understand, changing the required amount would be significantly harder to implement technically. Imagine a situation where we want to reduce it to 200,000:

  1. Teams start working on a new client release.
  2. Stakers get more confident and deposit the remaining 100,000 in a week or so.
  3. One of the clients releases a new version with the new limit and immediately starts the beacon chain.
  4. Other clients fork out as they don't support the new limit yet.

I think the easiest and safest way would be to set a maximum start date a few weeks in advance. And make sure that developers have enough time to release new versions.

I agree with other posters that without an estimated date, locking down my Eth would be too risky. Unlikely, but this has a potential of turning into a political issue and go months if not years, something similar to Bitcoin's block size increase.

I suggest developers and researcher to at least have an agreement to force start the beacon chain at some point to boost confidence of early stakers.

@ghost
Copy link

ghost commented Nov 20, 2020

I think it is better to start the plan B now: adjust parameter (just the one, or two), and start testing now. Better be early than sorry. Two weeks lead time, as Preston requested, from now would be Dec 4, just 3 days late than Dec 1. Pyrmont test net is running good. No other thing distracts dev teams now.

It is clear that deposit amount won't be reached, although there is big one today. Still need another 30+ whales, throw in 10k eth each person. Yet big money has a habit to stay cautious. Even if the number is reached at Nov. 24 magically, the plan B preparation won't be a waste. It would be yet another test.

The community understand it is extremely hard to co-operate multiple teams across the globe, in a decentralized world. However, if eth2 can be pull off this year, it will be a magic, one huge achievement to be proud of for the rest of life: we met the deadline; we kept our promise; we've done something unbeliveable.

“That's one small step for man, one giant leap for mankind." -- Neil Armstrong

@experiencedft
Copy link

I realize I'm very late into the discussion but I'm a bit confused by the original post and some of the answers in this thread. What exactly is the problem we would be trying to solve by adding a maximum genesis date?

@mohsenghajar
Copy link

I realize I'm very late into the discussion but I'm a bit confused by the original post and some of the answers in this thread. What exactly is the problem we would be trying to solve by adding a maximum genesis date?

With the recent surge of deposits I think there won't be a problem and it will launch with 1 week of delay.

@nisdas
Copy link
Contributor

nisdas commented Nov 24, 2020

This issue can be closed now :) We have reached the minimum deposit threshold, as of the current moment
530,304 eth has been deposited into the contract

@Neozaru
Copy link

Neozaru commented Nov 24, 2020

I realize I'm very late into the discussion but I'm a bit confused by the original post and some of the answers in this thread. What exactly is the problem we would be trying to solve by adding a maximum genesis date?

Apparently the main concerns were :

  • Money put in prediction markets.
  • Having a predictable launch date to avoid a launch when validators might not be available.

Glad the target has been reached - and outperformed.

@dankrad dankrad closed this as completed Nov 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests