-
Notifications
You must be signed in to change notification settings - Fork 520
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
Add ERC: ERC for Exit Format in State Channels #728
base: master
Are you sure you want to change the base?
Conversation
ERCS/erc-7250.md
Outdated
@@ -0,0 +1,160 @@ | |||
--- | |||
eip: 7250 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eip: 7250 | |
eip: 7824 |
Assigning next sequential EIP/ERC/RIP number.
Numbers are assigned by editors & associates.
Please also update the filename.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I applied the change of number as suggested,
I decided to split into two ERC
- 7824: Define the EXIT format: https://github.com/statechannels/exit-format
- 7825: Define the State Channels types: https://docs.statechannels.org/protocol-tutorial/0010-states-channels/
Please note this code was audited by Consensys Diligence
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry I had missed this. 7825 has already been issued. @SamWilsn has issued a number for the second ERC.
ERCS/erc-7250.md
Outdated
@@ -0,0 +1,160 @@ | |||
--- | |||
eip: 7250 | |||
title: Nitro Protocol for State Channels with Account Abstraction |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ERCs are for Ethereum standardization and not product/protocol promotion.
title: Nitro Protocol for State Channels with Account Abstraction | |
title: State Channels with Account Abstraction |
Can this ERC be used by any state channel implementation, or is it limited to Nitro based state channels?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello,
There is no commercial name or product nitro,
this can be used by most state-channels
We are from the open-source project https://statechannels.org/
https://github.com/statechannels
We are mentioned in https://ethereum.org/en/developers/docs/scaling/state-channels/
I will remove nitro, as it's an historical name of the open source protocol, but we also have the following name: "Stateful Asset Transfer Protocol"
ERCS/erc-7250.md
Outdated
title: Nitro Protocol for State Channels with Account Abstraction | ||
description: A standard for implementing interoperable state channels on Ethereum using the Nitro Protocol, integrated with ERC-4337 for enhanced account abstraction. | ||
author: Consensys Mesh (@statechennels), Layer 3 Foundation (@layer-3), Louis Bellet (@mod) | ||
discussions-to: https://github.com/ethereum/EIPs/discussions/7250 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please create a discussions topic in Eth Magicians with a link to this PR: https://ethereum-magicians.org/c/ercs/57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Account in progress, I will create the topic as soon as I have permissions
Will be corrected soon |
The commit 74b085b (as a parent of fbe3c66) contains errors. |
@@ -0,0 +1,146 @@ | |||
--- | |||
eip: 7824 | |||
title: ERC for Exit Format in State Channels |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
title: ERC for Exit Format in State Channels | |
title: Exit Format in State Channels |
You don't need to mention ERC in the title.
|
||
## Abstract | ||
|
||
This ERC defines a standard **Exit Format** for specifying outcomes and asset allocations in state channels. The Exit Format supports diverse token types (native tokens, ERC-20, and others) and accommodates both simple and advanced allocation mechanisms. The standard ensures interoperability and clarity in the distribution of locked assets upon channel finalization, particularly in protocols like Nitro. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to see a brief definition of what an "exit format" is in your abstract, for anyone who isn't familiar with the term.
|
||
This ERC introduces new structs and enums for use in state channel contracts. It is designed to be forward-compatible with existing protocols like Nitro. Implementations not using this standard will need to adapt their on-chain logic to parse Exit Format structures. | ||
|
||
## Test Cases |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test cases should be a list of inputs and expected outputs (or code essentially doing the same.)
You can omit this section, or you could include the input structs and what changes they should make on chain.
|
||
## Rationale | ||
|
||
The Exit Format standardizes asset redistribution logic across state channel implementations, reducing ambiguity and improving interoperability. By supporting both simple and advanced allocations, it addresses a wide range of use cases, from basic payments to complex virtual channel setups. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mostly reads like motivation because it's justifying the proposal as a whole. The rationale should be used to explain why you made certain technical choices within the document. For example, why you've included metadata fields or why destination
is 32 bytes long. Obviously you should explain actually important stuff 🤣
|
||
State channels rely on clear and interoperable methods for redistributing locked assets when a channel closes. Current implementations lack a standardized format for defining these outcomes, leading to inefficiencies and integration challenges. This ERC introduces a unified **Exit Format** that can be adopted across state channel implementations, improving compatibility and simplifying on-chain interactions. | ||
|
||
## Specification |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your specification doesn't really explain where these structs fit into the big picture, or explain why they need to be standardized separately from the interface that will be using them. Normally we only accept standards that define externally visible behavior (like events/functions.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to change the second EIP number.
@@ -0,0 +1,160 @@ | |||
--- | |||
eip: 7825 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eip: 7825 | |
eip: 7842 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please also update the filename.
@@ -0,0 +1,160 @@ | |||
--- | |||
eip: 7825 | |||
title: State Channel Standard data types and interfaces |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
title: State Channel Standard data types and interfaces | |
title: State Channel Data Types & Interfaces |
--- | ||
eip: 7825 | ||
title: State Channel Standard data types and interfaces | ||
description: Interoperable state channels on Ethereum using State Channel Protocol, integrated with ERC-4337 for enhanced account abstraction. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description: Interoperable state channels on Ethereum using State Channel Protocol, integrated with ERC-4337 for enhanced account abstraction. | |
description: Interoperable state channels using State Channel Protocol, integrated with ERC-4337 for enhanced account abstraction. |
|
||
### Integration with ERC-4337 | ||
|
||
#### Benefits |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anything not describing requirements should be in the rationale or motivation section.
|
||
## Rationale | ||
|
||
This ERC builds on the modularity of Nitro Protocol and the flexibility of ERC-4337, creating a unified standard for state channel implementations. By decoupling execution rules from core protocol logic, it ensures adaptability for various applications while maintaining a secure and efficient dispute resolution process. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This reads more like motivation. See my earlier comment on motivation vs. rationale.
|
||
This ERC depends on ERC-4337 and assumes its availability for account abstraction functionality. Legacy state channel implementations without Nitro compatibility will require adaptation. | ||
|
||
## Test Cases |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same about test cases
title: ERC for Exit Format in State Channels | ||
description: Outcomes and asset allocations definition in state channels using the Exit Format. | ||
author: State Channels (@statechannels), Layer-3 Foundation (@layer-3), Louis Bellet (@mod) | ||
discussions-to: https://ethereum-magicians.org/c/ercs/57 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please create a discussions topic in Eth Magicians linking to this PR
https://ethereum-magicians.org/c/ercs/57
title: State Channel Standard data types and interfaces | ||
description: Interoperable state channels on Ethereum using State Channel Protocol, integrated with ERC-4337 for enhanced account abstraction. | ||
author: State Channels (@statechannels), Layer-3 Foundation (@layer-3), Louis Bellet (@mod) | ||
discussions-to: https://ethereum-magicians.org/c/ercs/57 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please create a discussions topic in Eth Magicians linking to this PR
https://ethereum-magicians.org/c/ercs/57
Pull Request Description
EIP Title
ERC-7825: State Channels Protocol with Account Abstraction
Description
This ERC introduces a standard for implementing Nitro Protocol-based state channels on Ethereum, integrated with ERC-4337 account abstraction. The proposal defines the essential structs and interfaces for Nitro-based state channels, enabling scalable off-chain execution, efficient on-chain dispute resolution, and enhanced interoperability. By leveraging ERC-4337, this standard allows programmable wallets to interact directly with Nitro state channels and supports custom plugins for state validation using NitroApps.
Author
Louis Bellet (<mod@yellow.org>)
Status
Draft
Type
Standards Track (ERC)
Category
ERC
Build Status
All required builds have passed successfully. The proposal adheres to the provided guidelines and submission criteria.
Notes
This pull request creates a new draft EIP for ERC-7250 and follows the template provided in [EIP-1](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1.md). The proposal aims to facilitate scalable state channel implementations on Ethereum while aligning with existing standards for account abstraction.