Try   HackMD

How Plasma implementation changed by OVM?

Presentation

Outline

  • About me
  • History of Plasma implementation
  • Difficulity of Plasma implementation
  • Universal Language
  • How changed Plasma implementation
  • Conclusion

Introduction

Hi, I’m going to talking about recent plasma implementation.
Title is how Plasma implementation changed.
Our Plasma implementation was changed amazingly, it became very clear by OVM proposed by Plasma Group.

About me

  • Plasma Chamber
  • OVM with Rust language
  • My current interest
    • How do we build L2 efficientlly?
    • Both construction and application?

History of Plasma implementation

  • Plasma Cash
    • fungibility and instant finality
      • channel
    • defragmentation
      • atomic swap
    • withholding attack
      • simple exit game
      • limbo exit
  • Plasma implementation is very complex.
  • Different implementations have different features.

Difficulity of Plasma implementation

  • Complexity cause unsecure implementation
  • We need to write specific code for each feature

Plasma exit game was a complex challenge but we knew it's able to be solved.
We need to know what we can do on plasma and how to implement that efficiently.
We need more general concept before implementing Plasma!

OVM helps us

PG proposed OVM in July.
It includes 3 concepts.

  • Universal expression for dispute
  • Universal Adjudicator Contract concept
  • Universal L2 Client concept

Things became much clear

How is smart contract abstracted

Undecided contradiction

  • challenge inclusion
  • invalid history challenge

Challenge Inclusion procedure

  1. Alice claims her exit Property.
exit(state_update) := And(
  IncludedAtBlock(state_update),
  Not(isDeprecated(state_update))
)
  1. Bob proves undecided contradiction. Alice's exit is never decided until that this contradicting claim is decided as False.
Not(IncludedAtBlock(state_update))
  1. Alice can show counter claim for the Bob's claim and contradicting claim will be decided as False. Alice go exiting.
IncludedAtBlock(state_update)

Nested claim and parallel dispute

  • Generalized Plasma
  • Channel on Plasma

Generalized Plasma

We defined 3 Properties for minimal Plasma transfer.

  • Checkpoint Property is Property to claim and decide coin history is valid.

  • Exit Property is Property to claim and decide that the coin has never been deprecated.

  • Ownership Property is Property to claim and decide owner has signed valid transaction for the SsateUpdate.

  • Checkpoint Property claims that StateUpdates within this coin range included in a block less than the current block number are all deprecated.

  • Ownership Property. It is "deprecate logic" of StateUpdate. It represents the owner has never signed the transaction.

  • Exit Property claims StateUpdate never deprecated.

Plasma works as combination of these Properties.

Parallel dispute

When a user claim exit of channel on Plasma. They claim multiple Properties.

  • checkpoint
  • exit of open state in Plasma
  • exit of channel

Each claim can be adjudicated parallelly. We can think each claims as separated problem.

Shared client code

  • History Manager
  • History verification
  • Conciseness contributes to security

Conclusion

  • OVM enables unified expression for dispute design. Developers can design claims more securly than using natural language.
  • This expression also reduces developers effort because we can use same claims for both smart contract and client. Client decides claims with local information. Smart contract can decide claims by universal fraud proof contract. There will be fewer potential bugs than the developers write codes of L2 application from full scratch.
  • How do we define unsecured claim?