Celer and L4 are excited to announce that we are collaborating on the development of open-source state channels technology. After several months of informal collaboration and exchanging ideas, we’re excited to begin working more closely together. Over the next several months, we hope to achieve many shared goals:

Learn from each other’s contrasting design decisions in our separate codebases.

Develop shared standards for encoding off-chain state, connecting generalized state channels into networks, developer interfaces, and more.

Collaborate on cutting-edge research, including zero-knowledge state channel designs, formal verification of generalized state channel models, and more.

Why work together?

L4 is helping build Counterfactual, an open-source framework for generalized state channels on ethereum. Counterfactual’s goal is to make it easy for developers to build distributed applications using state channels, leading to immediate improvements in usability, speed, and cost. On August 1, L4 released the smart-contracts layer of Counterfactual. Earlier this summer, L4 published a detailed technical paper intended to serve as an essential reference for the ethereum developer community.

Last October, L4 set out the goals of the Counterfactual project. Now that the paper has been released, and contract code has been open-sourced, it’s time to focus on working more closely with leading state channel teams in order to establish clear, interoperable standards for state channels.

Celer has been building the Celer Network, a coherent off-chain technologyand crypto economy stack to bring scalability to blockchain applications. Earlier this summer, Celer Network published their white paper documenting their layered technology stack including: cChannel, a generalized state channel specification; cRoute, a provably optimal state routing algorithm; cOS, an off-chain blockchain VM architecture, developer framework and user runtime. On June 25th, Celer released their cChannel-eth smart-contracts repository, an implementation of the cChannel abstraction on the Ethereum blockchain that can be used along with cOS to create state channel applications (See MVP demo).

cChannel-eth and the Counterfactual smart contracts were independently developed by Celer and L4. As can be seen from our published papers and code, our design choices bear some differences. For example, Celer Network chose to focus on a set of full-featured on-chain components with out-of-box features and structured off-chain object schemas, while L4 chose a minimalist on-chain presence to allow best future-proof upgradability.

Ultimately, every state channel team shares the same goals. We’re not competing against each other, we’re aiming to move as many blockchain operations off-chain as possible and to progress the state of the art in dapp design. We’re competing with blockchains that sacrifice too much decentralization in exchange for short-term performance benefits. We’re competing with the old web, and with a centralized financial system.

Since we were first introduced to each other by Joseph Poon earlier this year, Celer and L4 have been frequently exchanging ideas, discussing mutual technical challenges, and beginning an in-depth collaboration on a shared vision for how state channels can function at scale. As we have come to know each other better and gained a high respect for each other’s technical contributions to state channels technology, we’ve come to believe that the best path forward is to collaborate more closely.

Our smart-contract repositories will remain separate for the immediate future, but we will be working closely together to ensure that Counterfactual and cChannel are compatible standards.

We are looking forward to collaborating on various work in the near term. Here are some things we’re thinking about:

Shared standards

In order for state channels to succeed at scale, we need widely adopted standards. We believe that collaborating closely and learning from each other will increase the speed at which blockchain applications can scale and reach mass adoption. Specifically, we are excited to work together on standards and interfaces that maintain these shared values:

Maximizing privacy in state channel designs through solutions like minimal on-chain footprints and zero knowledge dispute resolution proofs.

Minimizing on-chain state bloat through contract design that uses smart selections of cryptographic data structures.

Providing expertly optimized, formally verified, and highly audited components that developers of decentralized applications can rely on without repeatedly re-inventing the wheel.

Support for multiple parallel operations inside of a single channel that do not interfere with each other.

Finding the right balance between full-featured on-chain smart contracts with simple off-chain interaction and minimal on-chain presence with full upgradability.

And, we want to establish clear standards for how all of these generalized state channels will fit together into a global, multi-blockchain network where any user can easily connect to any other.

Learning from differences in our designs

As is obvious from our codebases, we’ve made very different design choices. We primarily see this as a learning opportunity — both for ourselves and for the ecosystem — to better understand the tradeoffs within the larger design space of state channels.

One of the most jarring differences in our designs has been the encoding of off-chain state. In cChannel-eth, Celer has aimed for maximum portability of the data structure through the use of Google’s protobufs, a generic data exchange format. Counterfactual, with an aim for developer simplicity and compatibility with existing Ethereum libraries, encodes all data using Ethereum’s native RLP encoding in a way that is compatible with the experimental ABIEncoderV2 that has been included in the Solidity language since Solidity 0.4.17. We agree there are clear paths to take to work towards a unified standard that can maximize both data portability and developer tool compatibility.

Collaborative research on new tech

L4 and Celer share an interest in pushing forward the state of the art in state channels tech. Here are some of the areas we’re discussing and looking forward to collaborating on more in the future:

Zero knowledge state channel applications

Using ZK proofs in dispute cases

Using hashladders instead of HL registries to minimize dispute costs

Formal verification of generalized state channel models

Optimizing the on-chain contract layer while preserving some “out of the box” features

Joint research publications & blog posts to increase the ecosystem’s understanding of layer 2 technologies

— Celer+ L4