Skip to content

Add support for passing data from Bitcoin as inscriptions #2478

@fadeev

Description

@fadeev

Is your feature request related to a problem? Please describe.

Currently, ZetaChain supports passing data using the op_return opcode, which has an 80-byte limit. This limitation restricts the amount of data that can be included in cross-chain transactions, posing challenges for applications that require more data, such as omnichain NFTs and complex smart contract interactions.

Describe the solution you'd like

To address this limitation, we propose adding support for passing data as inscriptions. Inscriptions allow for longer messages by utilizing the witness portion of a Bitcoin transaction, enabling applications to include more comprehensive data.

Inscriptions involve wrapping data into a Taproot script and injecting it into the witness portion of a Bitcoin transaction. This process allows for data pushes up to 520 bytes, and larger data files can be managed through multiple data pushes. Creating an inscription requires a commit transaction (hash reference) and a reveal transaction (revealing the entire script).

We propose maintaining support for both op_return and inscriptions. The advantage of op_return is that it allows for a single transaction, making it simpler and potentially less costly for users. On the other hand, inscriptions support longer messages, providing more flexibility for applications that need to pass larger amounts of data. A user-facing app could potentially choose which method to use depending on the length of the data being passed.

### Tasks
- [ ] https://github.com/zeta-chain/node/issues/2728
- [ ] https://github.com/zeta-chain/node/pull/2524
- [ ] https://github.com/zeta-chain/node/pull/2533
- [ ] https://github.com/zeta-chain/node/pull/2727
- [ ] https://github.com/zeta-chain/node/issues/2534

Metadata

Metadata

Assignees

No one assigned

    Labels

    chain:bitcoinBitcoin chain relatedepicGroup issues under a high-level objectivefeature:ideaAn early idea for a feature. Used as reference to follow new feature integrations

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions