A lot of really interesting ideas shared here. I think the showroom idea has merit, and there is some similar prior art: the hatching period designed in BlockScience’s Augmented Bonding Curves.
In general, bonding curves can yield perverse incentives when initialized or decommissioned. For example, a similar dynamic could play out when a subgraph developer decides to deprecate a subgraph–that everyone will race for the exits leaving the slowest movers holding the check, despite the fact that most rational Curators would likely want to exit as soon as the subgraph developer announced the deprecation.
I would reiterate @ariel’s emphasis on defining simple mechanism, both for gas efficiency, better user experience, and implementation speed.
For that reason, I would not be in favor of a complicated bidding process involving a ceiling. To @Josh-StreamingFast’s point a simpler approach is to simply have a flat bonding curve during the hatching phase.
@Slimchance’s point about back-running is a good one, and is similar to this attack discovered by Peter Zeitz at 0x with regards to the Curve AMM. In general, you have to be very carefully suddenly changing the curvature of a bonding curve.
This can be mitigated by changing the bonding curve gradually after the hatching period ends. For example, a flat bonding curve has a reserve ratio of 1, while the bonding curves currently used in the network have a reserve ratio of 1/2. By gradually shifting from the former reserve ratio to the latter, you dramatically reduce any advantage to being the first to exit after the hatching period concludes. (Gradually shifting the bonding curve shape can be computed relatively efficiently as well, doesn’t actually require triggering a state change on-chain).
@Josh-StreamingFast’s proposal to always have flat bonding curve is also an interesting one, as is @chris’s well-articulated response. We refer to this tradeoff, which seems fundamental to bonding curves, as a tradeoff in allocative efficiency vs. investment efficiency (inspired by the discussion in this paper by Glen Weyl).
It’s worth noting that the delegation market effectively uses flat bonding curves and we received the exact negative feedback that @chris comment hinted at: that early delegators were having their rewards diluted by later delegators that came in after it became clear what Indexers were valuable to delegate to.
I’ll also add that most Curators in The Graph today are actually interacting with nested bonding curves: there are bonding curves in the core protocol with a reserve ratio of 1/2, which are then wrapped by (flat) bonding curves in the Graph Name Service (GNS) that have a reserve ratio of 1. So when we talk about changing the curation mechanism, the design space includes modifying the curvature and dynamics at the core protocol as well as at the GNS.
For example, one option we had previously discussed for reasons I won’t dive into here, was to have the subgraph bonding curve in the core protocol be flat, while making the bonding curve in the GNS have a reserve ratio of 1/2, resulting in the same total curvature when signaling through the GNS, but w/ different dynamics at the core protocol level.