buildOMG / comms

OMG Network FAQ
2 stars 1 forks source link

Plasma Update #1 - August 10, 2018 #27

Closed nebali closed 5 years ago

nebali commented 5 years ago

Plasma Update 01

Hey! We've heard your requests for more regular communication about Plasma. We think it's really important too. This will become a bi-weekly Plasma update where we outline our latest work. Each update will also come with a summary (with links) of the topics in the latest Plasma Implementers Call!

What we've been working on

Carved out More Viable Plasma

More Viable Plasma (“MoreVP”) has been a huge project for us in the last few months. Building on the original Minimal Viable Plasma specification, we designed a new protocol for withdrawing funds if something bad ever happens. This new protocol greatly improves user experience by removing confirmation signatures and making withdrawals cheaper when the chain is functioning normally!

We’ve implemented a research version of the MoreVP contracts on GitHub and a few other projects have followed suit. We’ve also just about finished review on a big document that cleans up the original MoreVP post and simplifies the protocol as much as possible.

Concepts for Mass Exits

In the worst case Plasma MVP requires every Plasma chain user to exit within a short period of time. This causes number of UTXOs that can be safely be withdrawn to also be the number of UTXOs we can safely support on a Plasma chain. More UTXOs means more throughput, so its important that anyone be able to exit many UTXOs.

We’ve designed a few experimental protocols that allow thousands of UTXOs to be exited at the same time. However, these protocols are largely a WIP and we’re still optimizing on a lot of details.

Designed Fast Withdrawals

When users withdraw funds from the Plasma chain, they’re required to wait for a period of time before those funds become available on Ethereum. Users might not want to wait, so we designed Fast Withdrawals as a way for users to “sell” their withdrawals.

The gist of this mechanism is that users send their token to a special address on the Plasma chain before starting a withdrawal. This creates an ERC721 token that represents the right to receive the value of the withdrawal once it processes. Users can then quickly and simply receive value of their withdrawn funds (minus a fee in the form of a discount) by selling this token to any other user.

Withdrawals effectively become tokenized debt, around which a marketplace can be built. It’s really cool and it should greatly improve user experience by speeding up withdrawals. We also don't need to change the Plasma contract itself to support Fast Withdrawals! A draft implementation of the Fast Withdrawal contract is available on GitHub.

Designed cheaper Block Commitments

We're always focused on making our Plasma contracts as gas-efficient as possible. This is particularly important to keep validator costs low. Currently, a "block root" is submitted to Ethereum every time a Plasma block is created. This regular commitment is what links the Plasma chain to Ethereum.

However, it's expensive to store stuff in Ethereum! That's why we developed and prototyped a way to reduce the cost of submitting block roots by more than 50%. Check out the code here. We aren't putting the code into production right away, but we'll be experimenting with methods like these after the initial network release.

Created LearnPlasma

LearnPlasma is a community effort to share Plasma-related information, developments, and research from around the ecosystem. Lots of teams and individuals are currently working on Plasma. Ideas shared via ethresear.ch, Plasma calls, and other places all over the Internet have been a huge catalyst for development of both the framework as a whole and the OMG network. However, these resources tend to be hard to find and hard to parse, especially for someone who’s still trying to make sense of what Plasma really is.

LearnPlasma was designed for a broader audience and provides both introductions to the basics of Plasma as well as more technical deep dives. LearnPlasma is still very much a work in progress, but you can keep up with development and give feedback over on GitHub.

What's next

Proof-of-Stake

We’ll be working on a few key areas of research for the coming months. Our primary focus will be to develop an experimental Proof-of-Stake mechanism for use on the Plasma chain. Luckily, much of the heavy lifting has been done for us already, but there's still plenty of work to adapt existing mechanisms to Plasma. We're absolutely committed to moving the network to PoS as soon as possible.

Learning Resources

We’re going to expand LearnPlasma heavily over the course of the next few months. We want this website to become a central learning resource for everyone interested in Plasma. We need your help with this! We’d love to hear what you’d like to learn about Plasma. Feel free to make an issue on GitHub or to make a post to r/learnplasma.

Optimizations

We're very excited to see how our Plasma contracts behave in the real world. At first, things will probably slow down or break. This means we'll get a chance to figure out our bottlenecks! We'll be spending a lot of time finalizing the contracts we're taking to the mainnet.

We're also exploring some zero knowledge protocols to potentially optimize a few interactions. This is particularly promising in the context of mass exits.

Plasma Implementers Call #12 Summary

Thanks for reading! Now, back to work.

Cheers, The OMG Plasma Team


nebali commented 5 years ago

Final version