Skip to content

Instantly share code, notes, and snippets.

@mslipper
Created March 4, 2019 19:59
Show Gist options
  • Save mslipper/4f42e5c4b83dfb0c8b202e68e45f844d to your computer and use it in GitHub Desktop.
Save mslipper/4f42e5c4b83dfb0c8b202e68e45f844d to your computer and use it in GitHub Desktop.

Announcing Our Plasma MVP Alpha

Since March of last year, the Kyokan team has been hard at work building our Plasma network. We've ahad a singular goal in mind from the beginning: build a production-ready, trustless payment rail that drives transaction fees to almost zero. Today, we're proud to announce we've reached two critical milestones on the way to that goal: the launch of our mainnet alpha, and the completion of our security audit.

What's In The Alpha?

This release is packed with goodies. It includes:

  • plasmad, our Plasma root node and validator.
  • plasmacli, our Plasma CLI interface.
  • kyokan-plasma-client, our JavaScript client library that lets you build browser and Node.js applications on top of plasmad.
  • The complete security audit of our rootchain smart contract, courtesy of our friends at Authio and FourthState.

To show you how everything fits together, we've also built an example browser-based Plasma wallet that integrates with MetaMask:

Finally, all the documentation on our site has been updated to match the latest code. Check out the links below for where to find everything:

Keep in mind that this is an alpha release, so we expect there to be bugs. If anything blows up, please don't hesitate to file a GitHub issue.

Audit Results

The results of the audit are posted publicly on Authio's website. We're proud to report that all critical and high-severity issues have been addressed. Many thanks to Authio for their diligence throughout the Audit process, and to FourthState for their great work on the contract itself.

Capture-The-Flag

Our goal with the alpha is to test how Plasma behaves when it's publicly available and iron out any bugs we find. To that end, we've deployed the smart contract to mainnet and deployed a hosted root node. To transact with them, use the links below:

We'll be progressively ramping up the amount of money in the contract over the next few weeks as we observe how Plasma behaves on mainnet. We invite penetration testers and security researchers to try and break the system in a game of capture-the-flag. In the spirit of other CTF security wargames, you are welcome to keep whatever funds you are able to take - just let us know how you did it, so that the rest of the community can benefit. Note that all funds will added to the contract are in scope for the CTF, so please don't deposit any funds into the contract that you are not willing to lose. Successful attacks that lead to loss-of-funds or denial-of-service will also pay an additional $1,000.00 bounty.

The CTF root node does not charge any fees. Since block production costs money, however, we have imposed a secret block production budget so we don't break the bank. We'll be gathering data throughout the alpha to determine what the appropriate fee should be.

Benchmarks

Plasma isn't terribly useful if it can't continually deliver high performance under load. As part of this release we generated some preliminary benchmarks that document how plasmad performs while being bombarded by transactions. Initial results are promising: we are able to service approximately 1,000 sustained transactions per second on commodity hardware with plenty of room for optimization. Stay tuned for a full breakdown of our benchmarking methodology, and where we'll be optimizing next.

What's Next

Our next milestone is our general availability (GA) release. We aim to get there by the end of Q2 2019. Here's what remains to be done:

  • Updating the contract and validators to support delegated validation.
  • Tuneable finality parameters for validator nodes.
  • Mass exit testing.
  • Gas cost modelling.
  • Metrics and telemetry.
  • Determining the ideal root node fee.

We don't currently plan to support generalizable computation or smart contracts. We want to laser focus on one use case - fast, low-fee payments - before moving on to others.

How To Contribute

Want to get involved? Please do! We love welcoming new contributors. Head on over to our Contributing page for how to get started.

If you're able to contribute financially to the continued maintenance of this project, check out our Gitcoin grant page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment