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

A clean proposal for redeeming group tokens #34

Closed
Tracked by #10
benjaminbollen opened this issue Nov 28, 2023 · 3 comments
Closed
Tracked by #10

A clean proposal for redeeming group tokens #34

benjaminbollen opened this issue Nov 28, 2023 · 3 comments
Assignees

Comments

@benjaminbollen
Copy link
Member

benjaminbollen commented Nov 28, 2023

proposal: group tokens can be redeemed for the amount of your personal tokens present in the collateral, paying a relative exit fee

note: while it's technically possible to "have you choose which collateral tokens you'd want upon redeeming group tokens", there are several reasons why we might not want to allow that.

First, upon minting you have to declare which of your (avatar/group) circles you want to deposit as collateral to mint new group tokens. The group needs to trust these tokens, but you also need to be in possession of them. For redeeming different incentives play: there is always the incentive to redeem the most-valuable-person circles from the group, creating a race to redeem the collateral; especially if I might have (poorly-connected / less-valuable) personal circles, that are still trusted by the group. This can be blocked by having high exit fees from the group, but that's an unfortunate way to mitigate the problem.

the two extremal approaches, burn-collateral-so-no-redemption or choose-your-redemption-freely:

  1. v1 group circles does not have a redeem ability, and strictly speaking I think circles v2 will be fine if we never allow redeeming of group circles. This is why if you set the exit fee for the group v2 to 100%, the group will burn the collateral upon minting. This is also necessary to accept group tokens as trusted collateral (with native group support groups can trust other groups so group tokens can be collateral to other groups, not so in v1) - why is it necessary? one can keep increasing group collateral artificial by minting group tokens from group tokens, so they have to be burnt to be meaningful as collateral.
  2. the choose-your-redemption-freely introduces problems as describe above.

so
3. a clean proposal that still allows exiting from a group token without sharp edge cases (at least thus far): you can only redeem group tokens for your own personal tokens. So if I have x group circles, and the collateral has y of my personal circles, then I can redeem a maximum of min(x, y) group circles for my own personal circles. Doesn't matter who deposited my personal circles.

tl;dr

The combined implementation is then summarised with a single exit fee:

  • for exit fee 0%, you can redeem group circles 1-1 for your personal circles that have been collateralized, if any
  • for exit fee < 100%, the above but you get back only (100% - exit fee) of your personal circles, and the fee of personal circles collateral is burnt
  • for exit fee = 100%, all collateral is immediately burnt upon minting group tokens. No-one can redeem, but group tokens can be used as collateral for another group (if trusted)

My guess is that the exit fee 100%, will be the most powerful option for groups, but it does not hurt to leave the developer field open for other experiments

@benjaminbollen benjaminbollen self-assigned this Nov 28, 2023
@benjaminbollen benjaminbollen changed the title group tokens can be redeemed for the amount of your personal tokens present in the collateral, paying a relative exit fee A clean proposal for redeeming group tokens Nov 28, 2023
@benjaminbollen benjaminbollen moved this from 🫡Todo to 😅In Progress in circles-contracts-v2 Nov 28, 2023
@benjaminbollen benjaminbollen moved this from 😅In Progress to 🫡Todo in circles-contracts-v2 Nov 28, 2023
@benjaminbollen benjaminbollen moved this from 🫡Todo to 🧐Review in circles-contracts-v2 Nov 29, 2023
@koeppelmann
Copy link
Member

one can keep increasing group collateral artificial by minting group tokens from group tokens, so they have to be burnt to be meaningful as collateral.

I would disagree here. If every group token either needs one personal token or another group token as collateral than the total amount of circulating (not used as collateral) tokens is still equal to the amount of personal tokens.

However - if a group is malicious - the way it can inflate its supply is to create a million fake personal account and trust all of them and use the personal tokens as collateral. However - if the process of adding members has strong guarantees then also the group token has those strong guarantees.

@benjaminbollen
Copy link
Member Author

I want to retract the above argument that we must burn group circles if they are used as collateral, because it does create problems to eventually always be able to redeem for personal Circles.

Perhaps what we can instead do for group circles as collateral is: subtract from the total supply of the group being staked, and add to the group it is being staked into. Then the total collateral is not manipulable with repeatedly restaking group circles (as no nett total supply is being created).

Upon redeeming the collateral of the group, we do the reverse: reduce total supply of group it is being redeemed from, and up the total supply again of the group it was originally from.

@benjaminbollen
Copy link
Member Author

this is programmable in the new architecture but consider the total supply issue in 1155

@github-project-automation github-project-automation bot moved this from 🧐Review to 💪Done in circles-contracts-v2 Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 💪Done
Development

No branches or pull requests

4 participants