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

RCP-241024A: Make each contract single-chain #14

Open
dr-orlovsky opened this issue Nov 1, 2024 · 0 comments
Open

RCP-241024A: Make each contract single-chain #14

dr-orlovsky opened this issue Nov 1, 2024 · 0 comments
Assignees
Labels
C-pushback Consensus-breaking change S-accepted Accepted proposals for the implementation
Milestone

Comments

@dr-orlovsky
Copy link
Member

dr-orlovsky commented Nov 1, 2024

author: @fedsten
layers: consensus
breaking: consensus, api

Background

Each RGB contract in its genesis defines a set of blockchains where it can operate

Motivation

Contract operations over multiple chains add a lot to the consensus code and valdiation complexity (see for instance the problems with cross-chain consensus ordering of the operations described in RCP-241013A.

Proposal

Let a contract to commit and be used only on a single chain. Perform cross-chain operations as an atomic swaps between contracts.

Rationale

Once any of the contract state is used on a less secure chain, it either decreases the security of all of the contract to the level of that chain - or makes contract state and assets unfungible.

Atomic swaps do not introduce any decrease in the contract security and allow an issuer still to maintain cross-chain interoperability by issuing the same asset as an individual contracts on individual chains, as they do today with other non-RGB assets.

@dr-orlovsky dr-orlovsky added C-pushback Consensus-breaking change S-accepted Accepted proposals for the implementation labels Nov 1, 2024
@dr-orlovsky dr-orlovsky added this to the v0.12 milestone Nov 1, 2024
@dr-orlovsky dr-orlovsky self-assigned this Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-pushback Consensus-breaking change S-accepted Accepted proposals for the implementation
Projects
Status: No status
Development

No branches or pull requests

1 participant