1 of 74

2 of 74

2.

Minimal

Viable

Plasma

A Plasma chain for scalable payments

3 of 74

Plasma Provides: Massive Scaling

  • Massively scalable
    • MVP can scale to more than 1,000 TPS
    • Later versions TPS in the millions

4 of 74

Plasma Provides: Asset Security

  • Strong security guarantees
    • Tokens cannot be double spent
    • Tokens cannot be withheld
    • Tokens can always be redeemed on the root chain

5 of 74

Plasma Exits

  • The key mechanism which secures Plasma chains
  • Coded in a smart contract on the root chain �(mainnet Ethereum)
  • MVP is designed for token transfers
  • Can be designed for ERC 721, general state transitions, etc
    • Check out the Plasma Implementers Call!

6 of 74

Minimal Viable Plasma

Plasma

operator

7 of 74

Minimal Viable Plasma

Plasma

operator

Plasma contract deployed to mainnet

8 of 74

Minimal Viable Plasma

Plasma

operator

Single Plasma operator proof of authority

9 of 74

Minimal Viable Plasma

Plasma

operator

  1. Operator creates a block
  2. A new user, Sam, deposits ETH into the Plasma chain
  3. Sam sends a bunch of transactions to Alice
  4. Sam attempts to exit with all 5 PETH but fails
  5. Operator creates an invalid block and all users exit

10 of 74

Minimal Viable Plasma

Plasma

operator

  • Operator creates a block
  • Sam deposits ETH into the Plasma chain
    1. New Plasma block is created
    2. Sam begins watching Plasma chain for misbehavior
  • Sam sends a bunch of transactions to Alice
    • Sam confirms the transactions
  • Sam attempts to exit with all 5 PETH
    • Alice stops the exit with challenge
  • Operator creates an invalid block
    • Sam and Alice exit before operator steals their ETH

11 of 74

Minimal Viable Plasma

Plasma

operator

Create Plasma Block

12 of 74

Minimal Viable Plasma

Plasma

operator

Create Plasma Block

Plasma block not yet included in root chain

13 of 74

Minimal Viable Plasma

Plasma

operator

Send Plasma Block Creation Tx to miner

14 of 74

Minimal Viable Plasma

Plasma

operator

15 of 74

Minimal Viable Plasma

Plasma

operator

Plasma block “confirmed”

16 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 10

17 of 74

Minimal Viable Plasma

Plasma

operator

Plasma block “confirmed”

  • Operator creates a block
  • Sam deposits ETH into the Plasma chain
    • New Plasma block is created
    • Sam begins watching Plasma chain for misbehavior
  • Sam sends a bunch of transactions to Alice
    • Sam confirms the transactions
  • Sam attempts to exit with all 5 PETH
    • Alice stops the exit with challenge
  • Operator creates an invalid block
    • Sam and Alice exit before operator steals their ETH

18 of 74

Minimal Viable Plasma

Plasma

operator

Deposit 5 ETH into

Plasma contract

Sam�ETH: 10

19 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 10

20 of 74

Minimal Viable Plasma

Plasma

operator

Immediately create new Plasma block

Sam�ETH: 5 - PETH: 5

21 of 74

Minimal Viable Plasma

Plasma

operator

Watch chains for misbehavior

Sam�ETH: 5 - PETH: 5

22 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

23 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

  • Operator creates a block
  • Sam deposits ETH into the Plasma chain
    • New Plasma block is created
    • Sam begins watching Plasma chain for misbehavior
  • Sam sends a bunch of transactions to Alice
    • Sam confirms the transactions
  • Sam attempts to exit with all 5 PETH
    • Alice stops the exit with challenge
  • Operator creates an invalid block
    • Sam and Alice exit before operator steals their ETH

24 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Send 2,500 0.001 PETH

txs to Alice just because

Alice�PETH: 1

25 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Create block with Sam’s txs

26 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Create block with Sam’s txs

Note the Plasma block has not been confirmed!

27 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Create block with Sam’s txs

This means Alice cannot yet spend her new PETH

28 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Submit block to root chain

29 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

30 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Sees a Plasma block with Sam’s txs in the root chain

31 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 5

Alice�PETH: 1

Sends Alice a confirm message

32 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Balances update & Alice can spend her new PETH

33 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Balances update & Alice can spend her new PETH

  • Operator creates a block
  • Sam deposits ETH into the Plasma chain
    • New Plasma block is created
    • Sam begins watching Plasma chain for misbehavior
  • Sam sends a bunch of transactions to Alice
    • Sam confirms the transactions
  • Sam attempts to exit with all 5 PETH
    • Alice stops the exit with challenge
  • Operator creates an invalid block
    • Sam and Alice exit before operator steals their ETH

34 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

35 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Sends exit transaction claiming 5 PETH

36 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Sends exit transaction claiming 5 PETH

Exits include a security deposit which is released after challenge period

37 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

38 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

39 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Alice’s client automatically notices bad behavior

40 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Alice’s client automatically notices bad behavior

All honest nodes will notice & can submit a challenge

41 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Send challenge before challenge period (~1 week)

42 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Send challenge before challenge period (~1 week)

Challenge includes a merkle proof of a transaction spending the coins Sam tried to withdraw

43 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

44 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

45 of 74

Pay challenger Sam’s security deposit

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

46 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Cancel Sam’s exit!

47 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Cancel Sam’s exit!

ATTACK FAILED

48 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Cancel Sam’s exit!

ATTACK FAILED

49 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Cancel Sam’s exit!

ATTACK FAILED

Go Plasma!

50 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Balances update & Alice can spend her new PETH

  • Operator creates a block
  • Sam deposits ETH into the Plasma chain
    • New Plasma block is created
    • Sam begins watching Plasma chain for misbehavior
  • Sam sends a bunch of transactions to Alice
    • Sam confirms the transactions
  • Sam attempts to exit with all 5 PETH
    • Alice stops the exit with challenge
  • Operator creates an invalid block
    • Sam and Alice exit before operator steals their ETH

51 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

52 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

Create invalid block

printing money

ETH: 0 - PETH: 99999

53 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Submit invalid block to root chain

54 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

55 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Oh nose!

An invalid block is confirmed!

56 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Clients notice bad behavior!

57 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Sam & Alice submit

exit transactions

58 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

59 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Uh oh!

Plasma operator submits an exit too

60 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

61 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

62 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

6 ETH

63 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

6 ETH

64 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

6 ETH

65 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 5 - PETH: 2.5

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

6 ETH

66 of 74

Minimal Viable Plasma

Plasma

operator

Sam�ETH: 7.5 - PETH: 0

Alice�PETH: 3.5

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

3.5 ETH

Send 2.5 ETH!

67 of 74

Minimal Viable Plasma

Plasma

operator

Alice�ETH: 3.5 - PETH: 0

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

0 ETH

Send 3.5 ETH!

Sam�ETH: 7.5 - PETH: 0

68 of 74

Minimal Viable Plasma

Plasma

operator

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

0 ETH

Send… LOL pwned

Alice�ETH: 3.5 - PETH: 0

Sam�ETH: 7.5 - PETH: 0

69 of 74

Minimal Viable Plasma

Plasma

operator

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

0 ETH

Send… LOL pwned

Alice�ETH: 3.5 - PETH: 0

Sam�ETH: 7.5 - PETH: 0

ATTACK FAILED

70 of 74

Minimal Viable Plasma

Plasma

operator

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

0 ETH

Send… LOL pwned

Alice�ETH: 3.5 - PETH: 0

Sam�ETH: 7.5 - PETH: 0

ATTACK FAILED

71 of 74

Minimal Viable Plasma

Plasma

operator

ETH: 0 - PETH: 99999

Exits based on older txs are processed first!

1

2

3

4

5

6

1

2

3

4

5

Plasma Contract

0 ETH

Send… LOL pwned

Alice�ETH: 3.5 - PETH: 0

Sam�ETH: 7.5 - PETH: 0

ATTACK FAILED

Go Plasma!

72 of 74

Important Design Pattern: Constraints

73 of 74

Important Design Pattern: Constraints

  • Trust is established by…
    • Limiting possible actions
    • Imposing costs for bad behavior

74 of 74

Final Takeaways

  • Store minimal information on chain
    • Plasma avoids storing intermediate state
      • Only stores incoming & outgoing ETH balance
  • Threat of recourse can be enough to prevent bad behavior