Stabilize Protocol for Future Development - RFC

updated: 2022/08/31

Hi Everyone!

The last few town halls we’ve been discussing how we can stabilize the protocol through a model based on community discussions and feedback.

The original proposal has been split into two separate CCIPs, but encompass basically the same overall vision described in the original proposal.

CCIP-012: Stabilize Emissions and Treasuries

  • Phase 1: Reduce CityCoin Emissions
  • Phase 2: Move CityCoin Treasuries to Smart Contract Vaults

CCIP-013: Stabilize Protocol and Simplify Contracts

  • Phase 3: Simplify the CityCoins Contract Design
  • Phase 4: Update Registration, Mining and Stacking Flows

Below is a summary of the information presented on the most recent call with links to more details.

:information_source: Everyone should read and review the upcoming changes before they are finalized for a vote and provide input now!

Overview

In order to stabilize the CityCoins protocol, four phases are proposed that work in concert with the overall vision from the community for sustainability. All four phases are included in CCIP-012 and CCIP-013.

Recap

In April, the community successfully voted for and implemented CCIP-008.

This change tested stemming the miner arbitrage problem. Results were mixed; arbitrage volume was reduced but is still persistent.

Phase 1: Reduce CityCoins Emissions

The goal is to reduce CityCoins inflation to 2% annually starting with a vote at Stacks block 74,300.

The vote will run for 2,100 blocks or approximately two weeks, expected to end on Fri. Sept 17th.

Upon successful vote, the change will be implemented by submitting a proposal to the auth contract for MIA/NYC, using the update-coinbase-amounts function defined in CCIP-010.

Phase 2: Move CityCoins Treasuries → Smart Contract Vaults

Today, CityCoin treasuries are stored in a 2-of-3 multisig Bitcoin wallet. BTC wallets can make STX transfers and stack STX, but cannot interact with smart contracts.

Multisig support is coming to Stacks wallets, but other projects have pioneered the use of great tools based on Executor DAO, like Stacker DAOs (shoutout to @orlando!) and Ecosystem DAO.

Phase 2 will replace the multisig wallet with a smart contract vault secured by a DAO implementation that can grow with the protocol.

The initial DAO structure would start with the same 3-of-5 signers from the auth contract to instantiate the DAO, enable proposals, and provide temporary veto/execution.

Using this DAO structure, proposals would be created and executed in order to:

  • Create treasuries for existing cities
  • Stack treasuries for existing cities

:information_source: The next two phases implement two main changes to simplify CityCoins protocol design and bring ownership and execution of CityCoin contract updates into the DAO established in Phase 2.


Phase 3: Simplify the CityCoins Contract Design

This phase consolidates the CityCoins core contract design for all cities and would be implemented and executed by the DAO established in Phase 2 to take ownership of the protocol.

  • The current design allows each city to grow & change independently of the core protocol, with the intent that each city would eventually manage their local deployment
  • This prioritized customization at the city level but also led to some unforeseen challenges
  • To form a more cohesive protocol & consistent experience across CityCoins, and reduce the overhead for protocol upgrades & maintenance, this could be simplified into a structure that takes advantage of the DAO created in Phase 2.

This would provide the following benefits, outlined in more detail with examples in CCIP-013.

  • a central contract for all users to register, where one address = one user ID for the entire protocol
  • generalized mining and stacking contracts that track data for each city, creating consistency across all implementations
  • sets up the infrastructure for DAO-led protocol changes that can be proposed, executed, and implemented for all cities in the protocol

There would still be one token contract per city, and contracts for each of the city’s respective vaults. These future contracts would also be implemented by the DAO.

Phase 4: Update Registration, Mining and Stacking flows

In addition to the overall protocol changes above, this phase implements a change to the value flows in mining and stacking, such that:

  • 100% of STX spent mining CityCoins is transferred to the city’s treasury
  • 100% of the STX within the city’s treasury are stacked for xBTC rewards
  • 100% of the xBTC rewards are claimable by anyone who stacks CityCoins, such that:
    • rewards are distributed per cycle
    • rewards are distributed proportionally to the amount of CityCoins stacked
    • if they are not claimed within 2 cycles, they can be claimed by the DAO? (open for discussion)

Resources

For more information or to track the overall progress of the implementation, please see the CCIP-012 / CCIP-013 Remaining Work Items.

CCIP-012

CCIP-013

2022/08/10 Town Hall

2022/08/17 Town Hall

2022/08/25 Town Hall

Anyone is welcome to comment and join in on the fun!

Inspirations

This CCIP was drafted based on continued feedback from the community, whether it was in the Discord #path-forward channel, here on the forums, or discussed in our weekly meetings.

Below are a few quotes from other forum posts that felt in alignment with the proposal here, and a huge shout out to @logan723’s path-forward post and proposal. My hope is that this proposal sets a strong foundation to start building toward the vision set there and in ideas like @BowTiedMooneeb’s decentralized city activations.


Let’s keep building!

“Continuous effort, not strength or intelligence
is the key to unlocking our potential.”

Winston Churchill

edit: added link to presentation from the town hall
edit: updates in line with 2nd town hall announcements
edit: added links for second town hall resources
edit: added links for 3rd town hall, latest CCIP details and links

3 Likes

as a trader, what is the payout going to be from stacking(general amount)? I have built it so I have stacked enough CC to earn STX, to keep involved with mining pools and some mining on my own. If you do this what will be the payout for owning CC or mining?

I believe stacking rewards would be available in xBTC (instead of STX) as a portion of the xBTC stacking rewards of the city wallet. Each user’s rewards would proportional to their portion of all stacked tokens for that city. That’s my understanding at least. Maybe @whoabuddy can confirm or correct me on this. Either way, it would be helpful to put together some reference numbers based on historical STX stacking figures. This would give stackers a better feel for what to expect in terms of CC stacking APY.

1 Like

I get it and think others get that part, just want safeguards and real numbers put to the stacking payouts. Like I have said what is to prevent them from changing the payout % once have locked in my CC’s for 32 cycles? What is to prevent them from emptying the STX wallet?

Questions and Answers

I posted some questions and answers in a DIscord thread on the #path-forward channel, and wanted to share a copy here as well. This should help answer some of the common questions seen so far and help us align on a common goal.

I’m paraphrasing/generalizing the questions I saw, please correct me if I missed something along the way.


Q: What would the block reward be after the change?

The block reward varies between 1,978-3,288 for each CityCoin depending on the 2% calculation per epoch. More details, a graphic, and supporting materials can be viewed in CCIP-012.

Q: What is to prevent the protocol from emptying the STX wallet?

The DAO controlling the funds would initially be the same 3-of-5 signers that steward the protocol changes now, and in the future it can introduce more features for community involvement.

Phase 2 will only move these funds from one secure location to another, with the added bonus of being able to manage things directly as a DAO and grow the ecosystem in an even more decentralized way.

Q: What is to prevent the protocol from changing the payout % once have locked in my CC’s for 32 cycles?

The change proposed in Phase 3 would require everyone to un-stack and re-stack in the new contract again, but should be the final time that’s required given the protocol’s new structure of one action per contract.

When we implemented the changes from the first community vote it was agreed that future changes could/would be necessary, starting with that initial reduction to inflation. That’s why we’re discussing these CCIPs as our next steps toward stabilization.

Another benefit of phase 3 is that by consolidating/separating the contracts, the costs are reduced, which could allow for things like migrating the stacking state in future upgrades. Previously with registration/mining/stacking in one contract we were very limited by how much each operation costs.

Q: What is the stacking payout going to be in Phase 3?

This is still being modeled but given the size of the treasuries now should provide a competitive return. One thing to keep in mind - once the inflation drops to 2% we can expect mining throughput to decrease as well, which would reduce rewards in the current structure.

Phase 4 follows Phase 1-3 because it stabilizes the earnings based on how much of the treasury is stacked.

This would create a consistent reward independent of mining throughput while still allowing for new CityCoins to be minted and experimentation with the protocol to continue.

Q: How would launching a new city work without a massive initial inflation rate (to establish a basis of coin supply) as we’ve had for MIA and NYC?

The goal right now is to stabilize MIA/NYC, but I imagine for new cities we would evaluate if the coinbase amounts/thresholds follow the same path as MIA/NYC with higher inflation to start then a steep descent to match current supply.

edit: updated with latest CCIP info and more detail

3 Likes

Looks good Jason & Logan. I vote yes!

2 Likes