lightninglabs / lightninglabs/taproot-assets

VM: introduce genesis scripts to bind assets to a particular context?

Open
#6 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

brainstorming issuance spec taro vm
Dominant language
Go
Stars
525
Forks
150
Avg merge
2d 15h
Merged PRs (30d)
31

Description

We've so far implemented a way to assets to define extra witnesses that need to be included in order to allow for more expressibility for unlocking. Given that if a user doesn't follow the witness, their asset gets burnt, care needs to be taken w.r.t designing protocols that use this feature.

However what if we introduced a script that's to be run at issuance time? Such a script could be implemented as a new covenant, which would take the Bitcoin transaction into its environment, along with the script tree.

We could then express things like:

Issuing N units of this assets can only be done if 1.5*N units of BTC are present in the nth output of the minting transaction. In addition, the output created must commit to a NUMs point for the internal key, meaning that only a script path is possible. The script paths must be revealed, with the only acceptable unlocking leaf being a time lock of 9 months".

I left some option questions on this ML post: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020223.html

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue proposal and the linked Bitcoin-dev mailing-list post, including its outstanding option questions. The work needs an agreed design for issuance-time genesis scripts, their covenant environment, and asset-binding rules before implementation can begin; done would be a settled specification and corresponding implementation plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.