Write Article
Create Collection
Import from medium
Sign in
POSTED 22 Apr 2019 21:13

Towards A General Purpose Plasma



We created a general purpose plasma design that allows you to build a broad class of smart contracts on plasma. Reach out to learn how:

Imagine a world where every time you wanted to build a dapp, you had to build Ethereum from scratch… including the entire client, all of the networking, all of the data structures, and everything else . Until now, that’s what plasma app development was like. Each deployed plasma chain was application-specific due to constraints in the old plasma architecture. Not upgradeable, not generalizable. What we really needed was a way for people to build applications on top of a general-purpose plasma chain in the same way you build dapps on a general-purpose blockchain like Ethereum.

Clap for the Plapps

We’ve devised a new architecture for building plapps (plasma apps) on one generalized plasma chain. It establishes a clean separation between the plasma layer and the application layer. Writing a new plapp is as simple as writing a special type of smart contract, called a predicate contract , and deploying it to Ethereum. Anyone can use your plapp by interacting with your predicate contract, and it all happens on the plasma chain — where it’s much, much cheaper.

Of course, these applications still live in the plasma design space. Plapps need to implement a standard predicate contract interface, and individual transactions must still fit within the ethereum gas limit. In other words, plasma isn’t magical infinite Ethereum. However, most existing dapps (bounties, games, decentralized finance…) easily fulfill the above requirements. And, as a plapp, they get the benefits of plasma: low cost scalability, and frictionless onboarding — new users can join without ever touching Ethereum.

Where We‘re At

At ETH Denver, we used this new framework to create bitcoin lightning contracts in a predicate contract on our plasma chain:

Since then, we built a python proof-of-concept that demonstrates how things work under the hood. We then upgraded our existing client code to support plapps. It uses a new library we built that allows clients to run predicate contracts .

Where We’re Going

Come build a plapp! We need your help. As we implement various parts of the architecture and distill our learnings into a detailed writeup, we need early adopters like you to help us understand your needs. We are building this for you, and we want to make it everything it can be. We designed all of this with the goal of making plapp development as easy as possible, but implementation always teaches you something new. This understanding will allow us to build better tooling for developers.

Build a plapp. Reach out to us on:

  • Clap for the Plapps

  • Where We‘re At

  • Where We’re Going