[PLIP draft] Universal Plasma DSL + Tool for wallet developers + Plasma reference Wallet implementation


#1

[PLIP draft] Proposal: Universal Plasma DSL + Plasma reference Wallet implementation

There is no unique generalized “plasma for everything” right now and there is no plasma standard

So far, there are already many types of Plasma - MVP (Minimum Viable Plasma), MoreVP, Cash, Matic’s, Plasma Snapp, etc

However, none of them are connected to each other and each time they were built in the developers’ sole discretion. The idea is to develop one unique Plasma Standard that might be connected with any programming language and can be built for any purpose.

I would like to build a tool for wallet developers. All plasmas have operations of the same type, so it is logical to define “actions” in the spirit of requesting balance or transfers, and wallets developers can use this abstraction. And the underlying implementations can be provided by plasma developers with a standard external interface.

Finally, the aim of the proposal is to develop a Plasma Wallet with basic functions (deposit, withdrawal, transfer)

DSL API:

  • Deposit
  • Exit
  • Challenge
    • Tx Verification
    • History Verification
  • Wallet SDK

Optional features:

  • Predicate support (a bitmask with a list of available features in specific kind of plasma):

    • erc20 / 721 support
    • atomic swaps
    • timelocks
    • state manager operations
Plasma Attributes to specify:
  1. TPS
  2. The cost per transaction
Next steps:
  1. Research Stage (research of existed current flavors of Plasma and their main value features to put into DSL)

  2. The development of Plasma Standard + reference implementation of Plasma according to the standard

  3. The development tool for Plasma (Plasma constructor that will allow specifying custom modules for deposit/exit games and internal structure according to standard protocols)

  4. Reference Plasma Wallet / Framework development (webassembly / ios /android)

Examples:

An good description of the plasma architecture at a basic level from the cryptoeconomics lab

p.s.
I will prettify format according to Feedback on PLIP 1: PLIP Purpose and Guidelines and post it GitHub after the call (if the team will support this initiative :+1: ).

Thanks to @shamatar for the initial idea and @karl for pushing it forward


[Retrospective] Plasma Implementers Call #24!
[Retrospective] Plasma Implementers Call #23!
#2

Then I think these things will have to be divided into 3 different projects (or PLIP’s):

  1. Universal Plasma DSL
  2. Tool for wallet developers
  3. Plasma reference Wallet implementation