Contribution Proposal System Paper

Hey All,

After much discussion and thought we are excited to share the next iteration of the Contribution Proposal System. We are primarily looking to the community to find any serious attack vectors to this system. As you are reading this, ask yourself “How could I take advantage of this? Is there any way I could easily get free money from this?” and things of that nature.

This is an ambitious project and much thought was put into limiting attack vectors while still trying to provide something that is actually useful. It should be difficult to attack, but not too difficult to use.

Some highlights of the features include:

  • Sponsor P-Reps: Each Contribution Proposal must be sponsored by a P-Rep in the top 100. The Sponsor P-Rep takes on the risk associated with the project by putting up a Sponsor Bond. This way an ICONist does not need so much ICX to apply to through the CPS, but at the same time the CPS can be secured through money at risk. A Sponsor P-Rep will also receive a reward if the Proposal is approved, and this reward implies a 10% ROI for sponsoring an approved Contribution Proposal.

  • Voting: Main P-Reps will vote on how to invest the CPF. It has the same requirements as Network Proposals, being 67% approval from 1 P-Rep 1 vote AND the stake-weighted vote.

  • Progress Reports: All Approved Contributions Proposals must submit a monthly Progress Report. If they do not, they get DQed automatically.

  • Pausing Proposals: If the Progress Report is unsatisfactory, P-Reps can Pause a Contribution Proposal. This stops funding to the Proposal until the next voting period.

  • Disqualifying Contribution Proposals: CPs get DQed automatically if they don’t submit a Progress Report. The Sponsor Bond of a DQed proposal is burned and the funding for the proposal will stop. Paused CPs can also be DQed if Main P-Reps vote do to so.

Here is the full paper:

7 Likes

Hey there,

After reading the proposal here are a few points we would like to address.

1.2. The Contribution Proposal Fund

Payments to approved Contribution Proposals will come from the CPF and will be made in monthly installments. The amount of ICX per installment and the number of installments is based on the length and budget of the approved Contribution Proposal. The CPF will set aside the entire budget upon approval of a Contribution Proposal, as the amount of ICX funding for the CPF from month to month is unknown. Contribution Proposals that would create a deficit in the CPF will be automatically rejected.

We support the monthly installment scheme as a fund deployment control. However, we believe the way the project budget is taken from the CPF needs to be adjusted. In particular, it needs to be more dynamic to follow the development activity and avoid any bottlenecks where projects may block or delay each other because of the release of the funds.

Here is the project budget flow we would like to propose:

  1. Payments to approved Contribution Proposals will be made in monthly installments
  2. The CPF will first set aside the single monthly installment upon approval of a Contribution Proposal
  3. The monthly installment will be deducted from the monthly CPF budget
  4. The higher remaining CPF budget would significantly decrease the rejection of the Contribution proposals due to CPF deficit.
  5. At the end of each month before CPF budget resets, the unused budget would be set aside to cover the remaining outstanding budget of the approved projects. The projects that were approved first will have budgets secured first.
  6. If there are any unused funds in the CPF after the previous phase, then they will be subject of the token burn

1.3. Sponsor P-Reps

Since sponsorship can provide a meaningful return on investment, we hope to see P-Reps competing to sponsor good projects by offering additional services on top of the Sponsor Bond (i.e. strategic consulting, introductions to partners, marketing support, operational support, etc.).

The sponsorship process provides four key benefits:

  1. It provides a level of trust associated with each Contribution Proposal because it implies a certain level of due diligence done by the Sponsor P-Rep
  2. It gives P-Reps a direct economic incentive to research and support good proposals
  3. It filters out lower quality applications because they must first find a Sponsor P-Rep; and
  4. It allows ICONists to submit a Contribution Proposal without meaningful ICX holdings

We like this idea, it stimulates the P-Rep to serve as a community and the project hubs. The bond requirement is a good thing, it does make a P-Rep to have skin in the game and truly stand behind the sponsored project and the team.

as I’ve seen in other crypto companies in my opinion the nr.1 way that these crypto funded projects keep becoming worthless is because they dont even stay online after the project is done. I say this even as somebody who took my project offline because I dont want to pay for the domain and server if I dont really get anything for it. This automatically also disincentivizes me from doing more on top of that particular ICON project but also in general. It creates a situation where you have lots of ICON projects that were completed but most of them go offline. They get done, they stay online for a ~3-6 months and then it goes offline because nobody cares anymore and lets be real, there arent that many ICON dapp users so keeping things online and paying it out of pocket is not so fun. This is about looks for the ICON project, if tons of things go offline even though they were funded and approved by ICON then how does that look? It looks like a joke. The last thing we need is a bunch of freelancers to come in, make a shitty wallet for 3 months, get paid and then leave it offline and unmaintained.
So in my opinion every project that gets approved and built should have an extra vote at the end of the period when everything is finished and the p-reps should vote whether this project is important enough that it should receive a monthly income for 2 years to keep it online and I suppose minimally maintained as well. Not sure how that would be enforcable but at the very least to keep it online would be enforcable. Have some prep create a pinging service that checks if something is online and serves the html it’s supposed to serve or the community can alert p-reps to projects that were approved for server hosting but went offline anyway. The cost to ICON should be pretty small, 50 dollars a month would easily pay for hosting for most projects and if you dont agree that keeping an ICON project online is worth 50 dollars a month then why on earth did it ever get funded? Maybe an extra vote in the end should determine if a project is deemed not just successfully completed as per spec but also worth it to keep online for 2 years and then it gets approved for the server hosting grant. It actually forces people to think long term for the ICON project instead of completing an ICON project like a little side gig as a freelancer and then leaving the community again after they got paid. It puts a bit more pressure on people and incentivizes them to stay involved. If somebody now says that 50 dollars is not enough to pay for hosting then that may or may not be true, most likely it is completely false because cloud servers are too expensive but if you pay for a dedicated server on hetzner or even linode gives you 4cores 8gb for 60 dollars a month, that should be plenty to keep almost anything online. If not, the server hosting fee could even be adjustable just like the funding fee is, as per the proposal. If you disagree with all of this then fine but you cant disagree with one thing: funding projects that go offline makes absolutely zero sense. Maybe call it a maintenance fee and then you can require people to report to bug reports for 2 years. Lets say somebody did get a wallet funded (which I find stupid but ok): if he gets paid maintenance then he must fix bugs for it if they occur or he loses his maintenance fee. Obviously the goal is to NOT pay out maintenance fees for projects that will obviously not be used in the future by real people and therefore wont need maintenance. It should only get approved if a project seems decent and people will want to use it in the future.

2 Likes

Hi @Benny_Options,

Solid work from the ICON team on this iteration of the Contribution Proposal System, we can’t wait to see the first implementations of it. Financing builders and bringing ICON closer to a fully decentralized DAO :ok_hand:

We’ve been thinking about the mechanism and potential attack vectors in the CPS and here is what we came with:

  • Sponsors rewards: Is the sponsor reward of 1% enough to cover the risk of the 10% sponsor bond? We believe it is adjustable and understand that finding the good %percentages may be an iteration process.
  • Bond slashing: What is the % of projects that we expect to be completed, given that some might be very risky ventures?
  • Cost of opportunity: Does the locked bond generates staking reward or is there also a small cost of opportunity for a P-Rep sponsoring a project?
  • Off-chain agreements: Is there a risk that under such incentives applicants end-up building off-chain agreements with P-Reps and sponsor their own bond in exchange for “easier access” to the CPS and community (marketing, intros, influence)? This would turn the incentive for P-Reps into receiving as many applicants as possible vs. filtering for good proposals. To counter this risk if it appears in the future, would it make sense to create an on-chain “reputation indicator” measuring % of failed projects / achieved projects sponsored by a P-Rep?
  • Winner takes all: Large P-Reps may get contacted first by the good projects, and may get more chances of being selected to sponsor these good projects because of their influence among other P-Reps and voting power. It can lead to a virtuous circle among the top 5 P-Reps, because they can now earn more, build a successful CPF track record, and get even bigger. In light of this, would it make sense that every project should also be posted on the forum for all P-Reps to bid as Sponsors on it?
3 Likes

Hey @Edouard_POS_Bakerz thanks for the kind words and happy to elaborate:

  • Sponsor Rewards: I believe the Sponsor Reward / Bond Ratio is fair right now, but perhaps could use a small bump. Just remember that this reward comes out of the budget. Let’s run through the math anyway. Let’s say somebody requests a 100k ICX budget for three months. The Sponsor puts down 10k ICX, gets back 1k up front, then at the end of three months gets their bond back, thus ending with 11k. That’s a 10% ROI in 3 months. Annualized, it’s a 40% ROI after three months. The maximum length of a Contribution Proposal is 6 months, so at minimum, you receive a 20% annualized ROI on all Sponsorships. I assume very low risk associated with the bond, and a 40% ROI is quite attractive to me given the low risk. Sponsor P-Reps should be confident that the project will not get disqualified.

  • Bond Slashing: I kind of answered this in my previous comment, but I expect it to be quite low given the Sponsor structure. Even if it’s risky, I don’t think failing justifies a DQ, unless the project is causing serious recurring losses to the CPF or there is a clear lack of effort. CPs go to “Paused” before DQ, which I think could happen more often than DQ. DQ will be mostly for blatant scams - maybe the sponsor was tricked by a community member and the community member is simply running off with the CPF funding. I expect this to happen very rarely.

  • Cost of Opportunity: You are correct, there is opportunity cost because the Sponsor Bond can’t be staked. I’ll continue the math from a 100k 3 month project. Sponsor puts down 10k ICX in the bond. Assuming r_rep is ~16%, you could assume ~4% opportunity cost. So Sponsor puts down 10k ICX bond and loses out on 400 ICX over the period. However, they also receive 1k ICX up front. 1k ICX staked for 3 months gets you ~40 ICX. So let’s do the math of Sponsoring vs not Sponsoring. If I sponsor, after 3 months I will turn 10k ICX into 11,040 ICX. If I choose not to Sponsor, I can turn 10k ICX into 10,400 ICX. So you make an extra 6% through Sponsoring. This example does not include self-delegation, as self-delegation is a bit hard to predict with i_rep always changing.

  • Off-Chain Agreements: I’m not quite sure I understand this point unfortunately, maybe we can clarify over telegram if you shoot me a DM. Overall I haven’t thought of a way for somebody to benefit from pushing through bad projects, since bad projects come at a serious cost to the Sponsor. But to your last point, I definitely think it would be great to track a P-Rep’s “track record” of sponsorships, DQed proposals, successful proposals, etc.

  • Winner Takes All: I don’t necessarily think that top ranked teams have much of an advantage other than being able to Sponsor more projects because they have more ICX, however, I completely agree that common practice should include forum discussion first. I mentioned this in the paper, but obviously there is no way to enforce this on-chain.

1 Like

First of all I would like to say, good job with the system, its obvious that a lot of though has been put into it.

As requested, I have tried looking into as much detail of the presented paper as I could in order to find potential issues and I actually have a lot of questions so I apologize in advance for the long post. I also apologize if the answer of one or more of these questions is in the paper - imho its better to ask something that we have the answer to than miss something :slightly_smiling_face:

Here we go:

  1. I have expressed this concern before but will no segregation of the CPF funds by type of activity result in a large possibility for the funds to be drained by multiple one-sided projects (e.g. marketing)? Will not the separation of pools by type make people chase more the available funding and thus make the contributions more rounded?
  2. As the funding is updated and distributed quite frequently, will that not result in there never leaving enough time for funds to be generated for a large project (as smaller ones will potentially be funded on each rotation)? That should make the posting of large projects impossible as they will automatically be rejected when posted (not enough funding atm) and there will not be a point of time where that will not be true
  3. Will the sponsor bond rewards have to be factored into the budget?
  4. As sponsor bonds will mostly be available by a few well-funded teams, will this not make the whole system a closed circle and makes some top preps sort of ‘banks’ that provide funding w nothing else to offer (because they will not have the opportunity as they are funding a lot of projects and as there is also limited choice on who can sponsor the projects)?
  5. Will not the above (limits to who can provide sponsorship to a project due to the funding that they have) also limit the submitted projects to the ones that the ‘main sponsors’ like or to the current personal relations that the person submitting the project has with them?
  6. Is 10% of their posted bond a large enough incentive for a project that could run for up to 6 months when the alternative is to stake and have around 50% of that gain for doing nothing and no risk would be involved?
  7. Can the applications be self-sponsored if submitted by a prep?
  8. What happens if the main preps are just not active enough and the submission is not approved due to reasons outside of the control of the person submitting the project?
  9. 67% of the votes needing to approve - will that be a approve/disaprove ratio or will the abstained votes count in that % as well and 67% of all votes will need to be ‘approve’? If it’s the latter, would there be a need for an ‘abstain’ vote when it simply counts as disaprove (aside from it being a political tool)? If its the former, will there be a minimum of votes needed for approval as a project can easily be approved by 2 approve/1 disaprove/all others abstain?
  10. Will not the abstain vote give excuse to some preps to not bother at all with the voting and just vote abstain on everything? Should we not replace abstain with budget change vote option and force everyone to voice an opinion?
  11. Will the preps have to provide proper reasoning for their vote? Where will it be posted? How can we fight reasoning like (extreme example) ‘I voted myself in, I don’t care about votes, all projects will be disaproved by me. Deal with it!’? Is there a way that tools can be implemented to fight such situations?
  12. Will budget change request votes be separate from the update approval votes? Will budget changes have proposed values? If they do, how will the budget changes be proposed in a decentralized way?
  13. Should there not be a budget adjustment from Icon’s side in case of significant price increase during that period as in example the price of icx going 3x in the first month and there being no adjustment to the budget does not make a lot of sense? If there is, what will happen to the excess amount?
  14. In case of a significant icx price drop, where will the requested budget adjustment come from? I assume that at most times the cpf coffers will be close to empty (or at least they should be). What will happen to such project - will they be forced to work with the costs, but with less funding and be marked as scam and significantly penalized if they are not able to do it? will it be paused due to no fault of their own and risk the project to fail (some projects are time sensitive or require a stable flow of the work)?
  15. Will a cap be implemented (for a period and overall minnimum cpf levels?) on the preps’ ability to change the cpf funding?
  16. Something that Im not sure that is an issue, but I decided to put it in anyway just so smarter people than me figure out if there are potential implications - there is currently a thing well teams use their personal stash put themselves into the top 22 only at a certain point of time in order to maximize their gains and afterwards reverse that so they should not have to deal with being an actual top 22 prep. I expect this possible with the 15 day voting period (potentially switching their delegations for a few hours in order to or not to participate in the voting) but Im not sure of the types of abuse that this might lead to

Thats it from me. I apologize once again for the long post - I hope that these thoughts of mine are of help to you guys :slightly_smiling_face:

1 Like

Thanks for taking the time to read and offer feedback, I’ll answer your questions below:

  1. This is an interesting idea but I think it adds unnecessary restrictions and complexity to the system. Whatever projects get approved will be up to the Main P-Reps at the time. If/when this fund is worth millions of dollars perhaps we can circle back to this, but at the current size I don’t think it’s worth it

  2. CPF funding amount can be adjusted using i_rep & increasing the percentage of rewards that go to the CPF, so if it’s always empty then we can increase the amount going to it.

  3. Yes

  4. There needs to be value at risk, which means somebody needs to put up the ICX collateral. Higher ranked teams have more ICX, there’s nothing we can do about that. However, I disagree that this will only be done by a handful of teams. 100k ICX project only takes 10k ICX. The top 40 teams currently make that in 1 month

  5. I expect projects without an existing personal relationship to the Sponsor to be first discussed on the forum. Everybody will have the opportunity to offer sponsorship and try to convince the applicant to choose them as a sponsor

  6. I think it could be a bit small so I am considering raising the Sponsor Reward. However, if you Sponsor 12 one month projects in a year with the current Sponsor reward rate, you will receive a 120% ROI, which is far more than staking returns. I still need to think if this needs to be raised. I expect the average project to be 1-3 months. That ranges from a 40% - 120% annualized ROI on average.

  7. Yes

  8. If it’s not approved nothing happens to the applicant, there is no penalty other than the small application fee. If P-Reps are not active on this, then lots of ICX will get burned and our inflation will get lowered. If P-Reps don’t vote at all they will suffer a burn penalty

  9. P-Reps will have the option to approve, reject, or abstain. The only difference between a reject vote and an abstain vote is to allow Main P-Reps to express a more specific opinion. You need 67% of Main P-Reps to approve in order to pass. If this proves too difficult and nothing is getting done we can adjust policies later. Better to start off too secure.

  10. If we remove abstain, they would just vote reject on everything. Abstain doesn’t make much of a difference but some people may want it so it’s easy enough to include

  11. Main P-Reps will be required to type a brief explanation of their decision in a text box when submitting their decision to give more visibility into the decision making process.

  12. Budget Change Request is separate from the Progress Report in terms of voting

  13. I’ll think more about a way to include this

  14. If the budget is not available, workers could change scope of work or the proposal could remain paused until more budget is available. All of your questions are up to the discretion of p-reps here. They can vote to Approve or Reject a Progress Report for their own reasons and They can vote to Resume or DQ a Paused Proposal for their own reasons.

  15. Not sure what you mean here, but the cap (1M ICX) can be changed via a vote. In theory, anything on our entire network can be changed with a vote then developed and adopted. Even if we added some sort of cap, we could vote to change that too

  16. I don’t see much of an issue here

Thanks for the feedback and feel free to shoot me a DM on telegram with any followups

3 Likes

Thanks for the prompt and detailed response. I will post just one follow-up here instead of on tg as I think that it might be a valid suggestion:

Maybe it could be a valid approach to increase the sponsor rewards for longer projects or tie the rewards to the project lenght somehow so the preps do not all fight for the shorter ones that will give them a higher ROI/time ratio

1 Like

Hi @Benny_Options,

after writing everything down in our proposal [GRANT] ICON Hub - Contribution metrics, I want to point again how the voting mechanism of the CPF is an excellent choice to officially confirm and verify the proposal reports and their metrics.

The proposals that are verified by the decentralized governance are only contribution data that should be used for measuring the contribution. Because not all of the proposals will go to the CPF, I want to propose additional points for CPF voting:

  • in order to receive contribution value and to verify a previous work not registered in CPF of Grant program, P-Reps can submit the final project report to CPF for approval. In order to qualify for the CPF vote, team must follow all the requirements as it was a normal CPF proposal.

  • if the team plans to work on the project that is self-funded, in order to receive contribution value and to verify the project, the team must declare it is a self-funded project and follow all the requirements as it was a normal CPF proposal.

It would be completely voluntary for the teams to apply and verify the pre-CPF contribution.