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

Protocol Design (BRC20 CoinJoin) - WIP #5

Open
gregdhill opened this issue Oct 18, 2023 · 0 comments
Open

Protocol Design (BRC20 CoinJoin) - WIP #5

gregdhill opened this issue Oct 18, 2023 · 0 comments

Comments

@gregdhill
Copy link
Contributor

BRC20 is not anonymous since it is possible to trace the lineage of the ordinal transfer inscriptions. There is no way to anonymize ordinal ownership (unlike with BTC) but since BRC20 is a meta-protocol on top we can obfuscate transfers by routing through a single taproot address.

  1. Users inscribe and transfer to mixer (provides list of addresses off-chain)
  2. Mixer inscribes and transfers to each (uniform amount)

The problem with this is we have to trust the mixer to actually send the BRC20. To eliminate the intermediary we can do the following:

  1. Users join off-chain pool (possibly on BOB)
  2. Create P2TR multisig address
  3. Users send BRC20 to taproot address
  4. Users sign multisig to distribute tokens

This approach assumes the parties actually complete the process since otherwise the BRC20 tokens are locked forever. Additionally, to distribute the tokens we either need multiple rounds of signing or we can create a "cursed" inscription which contains multiple BRC20 transfers. The open question here is whether that is supported by the BRC20 protocol, I think ord already indexes these inscriptions but they are certainly not "native".

Some other thoughts

If we were able to introspect the witness data in the P2TR reveal script we could make sure it is only spent with a specific inscription but I don't think that is possible. It is also unclear if the multiple inscriptions discussed here mean that the they can be rolled within one envelope or multiple.

@bob-collective bob-collective deleted a comment from 3lang3 Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant