Replies: 1 comment
-
An update: currently the following high level design is under consideration (@sergmetelin for visibility):
In this configuration the retirement operation would work as follows:
The operation is atomic since it is executed from inside the single smart contract call. If any of the 'burn' contracts or the 'match-making' contract reject the submission the entire transaction is reverted. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Problem description
In the blockchain-based environmental markets, where emissions and offsets are modelled by different tokens, the final stage of these tokens' lifecycle and their very reason to exist is to be 'burned together' - under some (may be very complex) rules. In a way, each such environmental accounting transaction has a 'plus' and a 'minus' side, and when these are 'added' together they in effect 'cancel' each other and thus produce zero, which is recorded as a burn of the tokens representing both sides. Here is some further context:
Currently owing to the 'burn' design, performing such an operation requires complex coordination of parties, is awkward and not scalable.
Proposal
Add a capability for the owner of the token burn key to authorise another address, which can be smart contract or a user address, to execute token burn operation. Such authorisation should have parameters allowing it to be:
There should be an opposite operation, i.e. the owner of the burn key should be able to withdraw the authorisation to burn specific tokens.
Option 1: smart contract rules
In this version an issuer of a token would be able authorise a specific smart contract (address) for burning the token instances. Since smart contracts are immutable and their execution is deterministic the issuer would have certainty that its tokens would be burned if and only if all rules expressed in the code of the smart contract have been followed.
Option 2: core platform implementation
There is value in enabling the actual end-users to execute the burn transaction for a pair of tokens, this way their action would be directly traceable as explicit 'burn'. The disadvantage of this option is that it lacks the flexibility of the smart contract version, and may require implementation of additional parameters/logic to enforce additional rules. The MVP subset of such rules is TBD.
Beta Was this translation helpful? Give feedback.
All reactions