Plasma World Map(KR)

The Hitchhiker’s Guide To The Plasma

Plasma World Map!!
온더는 이더리움 블록체인의 확장성 솔루션 Plasma 체인을 연구개발하는 회사입니다. 온더의 비전은 이더리움 블록체인 기술의 사용성을 제고시키고, 암호경제와 현실경제를 연동시켜 지금보다 더 나은 세상을 만드는 것입니다.

Plasma World Map은 플라즈마로의 긴 여정을 떠나는 모든이가 도중에 길을 잃지 않고 원하는 목적지까지 안전하게 도착할 수 있도록 안내해주기 위해 만들어졌습니다.

Plasma World Map은 플라즈마를 처음 공부하는 이들에게는 수많은 연구들에 대한 큰 그림을 그릴 수 있도록 하고, 기존의 플라즈마 연구자들 에게는 언제나 참고할 수 있는 좋은 Cheat sheet를 제공하고자 합니다.

Note : Plasma World Map은 완벽과는 거리가 멉니다. 글과 그림에 잘못된 내용이 포함되어 있을 수 있으니 발견하게 되면 꼭 알려주시기 바랍니다.

Index

1.Simple Transfer

비트코인과 같이 단순 지불(Simple Transfer) 기능을 구현한 플라즈마 모델입니다.

UTXO based

  • Plasma MVP
  • Plasma Cash
  • With ZKP

Account based

  • With ZKP

2.General States & Computation

이더리움의 스마트 컨트랙트 기능과 같이 일반상태에 대한 연산을 구현한 플라즈마 모델입니다.

UTXO based

Account based


Classification

World Map의 큰 두가지 범주는 Simple TransferGeneral States & Computation입니다. 두가지 범주의 경계선에 놓인 플라즈마 솔루션들은 각 솔루션이 구현하고자 하는 목적을 고려하여 더 가까운 쪽으로 배치하였습니다. 만약 더 나은 분류방법에 대한 아이디어가 있으시다면 언제나 환영입니다.


1. Simple Transfer

1)UTXO based : Plasma MVP

UTXO 자료구조를 바탕으로 하는 단순 전송(Simple Transfer) 플라즈마 솔루션들입니다. Plasma MVP의 연구를 그 근간으로 두고 있습니다.

Plasma MVP

저자 : Vitalik Buterin

플라즈마 백서 공개 이후 제시된 첫번째 플라즈마 모델. UTXO기반의 바이너리 머클트리 구조를 사용하였다. 또한 유효하지 않은 상태를 기반으로 한 Exit을 방지하기 위해 챌린지 시스템을 두었고, Data availability 문제를 해결하기 위해 Confirmation과 Exit Priority를 두었다. 하지만 트랜잭션 전송시 서명단계를 두번이나 거쳐야 하는 Confirmation단계로 UX가 심각하게 저해된다는 이슈가 제기되었고, Mass exit과 같이 여러가지 향후 연구과제들에 대해 제시하는 좋은 시발점 역할을 하였다.

Plasma with client-side validation

저자 : Dan Robinson

client-side validation 방법을 Plasma MVP에 적용한 모델로, UTXO의 구조를 signatures와 destination만을 포함하는 것으로 변형하였다. Plasma에 참여하는 client들이 각자가 거래하는 대상 UTXO를 검증할 수 있도록 하였다. 또한 pruning을 통해 거래들을 일종의 tumbling 할 수 있는 방법 또한 제시하였다.

Simple Fast Withdrawals

저자 : Kelvin Fichter

플라즈마 백서에서 제시된 Fast Withdrawal을 플라즈마 체인의 스마트 컨트랙트 없이 오로지 루트체인의 스마트 컨트랙트만을 이용해서 구현하는 방법을 제시하였다.

More Viable Plasma

저자 : Ben Jones, Kelvin Fichter

Plasma MVP에서 exit priority에 대한 기준을 UTXO의 age of output으로 산정하는 것을 age of the youngest input으로 변경함으로써 기존에 UX를 심각하게 저해하였던 Confirmation 서명단계를 제외하고서도 기존의 valid exit game schema를 유지할 수 있음을 증명한 연구이다.

Enabling Fast Withdrawals for Faulty Plasma Chains

저자 : Kelvin Fichter

오퍼레이터가 수수료 수익을 대가로 Fast Withdrawal의 대상이 되는 exit에 일종의 보증금을 두게함으로써 Simple Fast Withdrawal에서 제시한 방법을 플라즈마 체인에 문제가 있을때도 동작할 수 있게끔 개선한 연구이다.

Optimistic cheap multi-exit for Plasma (Cash or MVP)

저자 : Vitalik Buterin

Withdrawal을 할 때 해당 UTXO혹은 Coin에 대한 Merkle proof를 제출하는 것이 아니라 block number와 각UTXO 혹은 각 coin의 index를 제출하게하여 한번의 Withdrawal로 동시에 여러개의 UTXO or Coin을 exit하는 것을 제안한 연구이다.

Basic Mass Exits for Plasma MVP

저자 : Kelvin Fichter

UTXO Aggregation과 각 UTXO가 갖는 value의 합을 나타내는 Sum Merkle Tree를 통해 Mass Exit을 할 수 있도록 하는 방법을 제시한 연구이다.

Debt & Liquidity for L2 Scalability UX

저자 : Eva Beylin

Exit에 대한 보증금 등과 같이 Plasma를 포함한 여러 Layer2 Solution에서 발생하는 담보물 자산(collateral)에 대해 유동화할 수 있는 방법들에 대해 논의한 글이다.

RFC : Low Latency Transaction Confirmations Proposal

저자 : Bing Yang

루트체인에 커밋되지 않은 블록에 포함된 트랜잭션을 다른 트랜잭션의 input으로 사용할 수 있게 하여 transaction간 latency를 줄일 수 있는 방법을 제시한 글이다.

2)UTXO based : With ZKP

UTXO 자료구조를 바탕으로 하는 단순 전송(Simple Transfer) 기능에 ZK Proof를 통한 검증방법을 추가한 플라즈마 모델입니다.

Plasma is Plasma

저자 : josojo

Plasma MVP, More Viable Plasma의 모델에서 zk-snark를 이용한 검증방식을 도입하여 Plasma chain client에 일종의 light-client를 구성하는 방법을 제시한 연구이다.

3)UTXO based : Plasma Cash

UTXO 자료구조를 바탕으로 하는 단순 전송(Simple Transfer) 플라즈마 솔루션들입니다. Plasma Cash의 연구를 그 근간으로 두고 있습니다.

(Plasma Cash는 Plasma MVP의 연구를 근간으로 하고 있지만, Plasma Cash를 바탕으로 진행된 연구가 다수이기 때문에 따로 분류하였습니다.)

Plasma Cash

저자 : Vitalik Buterin

Plasma Cash는 Plasma MVP의 문제점들을 개선하기 위해 새롭게 제시된 모델이다. 각 코인에 고유한 ID와 액면가(denomination)를 부여하였고, Sparse Merkle Tree(SMT)를 활용하여 각 leaf 노드의 index를 토큰 ID로 두고, value에는 해당 토큰이 사용된경우 그에 관련된 트랜잭션 정보를 기입하는 형태로 설계되었다. 만약 해당 블록에서 사용되지 않은 토큰이라면 해당 토큰에 대한 트랜잭션 정보 또한 없으므로 value는 비어있게(null) 된다. 이렇게 해당 토큰이 특정 블록에서 사용되었는지, 혹은 사용이 되지 않았는지를 SMT의 포함증명과 비포함증명 기능을 통해 확인할 수 있기 때문에 해당 토큰의 사용기록에 대해 명확하게 검증할 수 있게 되었다.

하지만 부분 지불(Partial Spending)이 불가능하다는 것과 각 코인에 대한 사용기록을 검증하는 과정이 매우 무거운 작업이 될 수 있다는 단점등이 향후 개선되어야 할 부분으로 지적되었다.

PoS Plasma Cash with Sharded Validation

저자 : Karl Floersch

Plasma Cash Simple Spec에서 제시된 single operator모델의 단점을 보완하고자 PoS consensus를 도입하여 transaction censorship 문제와 data withholding시 모든 사용자가 exit해야 하는 문제를 해결하고자 하였다.

Plasma XT: Plasma Cash with much less per-user data checking

저자 : Kelvin Fichter

제목에서 알 수 있듯이 기존 Plasma Cash에서 지적되었던 coin 사용기록 검증에 대한 부담 문제를 Cryptoeconomic signature aggregation 방법을 이용한 안전한 checkpointing을 통해 해결하고자 하였다.

Plasma Cash with Sparse Merkle Trees, Bloom filters, and Probabilistic Transfers

저자 : Sourabh Niyogi

Sparse Merkle Tree, Bloom filters, Probabilistic transfers을 특징으로 하는 plasma cash implementation. 비지불(non-spend)에 대한 효율적인 증명을 위해 Bloom filters를 도입하였고, Partial spending을 위해 Probabilistic transfers(소수점을 이용한 transfer)을 도입하였다.

Loom Network: Plasma Cash for ERC721 Tokens

저자 : Georgios Konstantopoulos

ERC721토큰 사용에 특화된 Plasma Cash implementation이다.

Plasma Debit: Arbitrary-denomination payments in Plasma Cash

저자 : Dan Robinson

Plasma Debit은 각 코인을 사용자와 오퍼레이터간의 일종의 payment channel의 형태로 사용할 수 있게하여 Plasma Cash의 단점으로 지적되었던 Partial spending문제를 개선한 모델이다.

Plasma Cash Minimal Atomic Swap

저자 : Vitalik Buterin

Plasma Cash를 위한 Atomic Swap protocol. Atomic swap에 필요한 대부분의 행위를 플라즈마 체인에서 진행하고 오로지 key에 대한 공개만 메인체인에 머클트리의 형태로 공개함으로써 Atomic swap을 효율적으로 진행할 수 있도록 하였다.

Plasma Cash Defragmentation

저자 : Vitalik Buterin

Plasma Cash의 단점인 분할불가능(indivisible)을 개선하기 위한 단편화제거 (defragmentation) 방법을 제시한 연구이다. Coin을 전송하는 사용자간에 일종의 atomic swap을 통해 흩어져있는 사용자들의 Coin들을 single Merkle branch에 모일 수 있도록 하는것이 핵심 아이디어이다.

Plasma Cash defragmentation, take 2

저자 : Vitalik Buterin

오퍼레이터로 하여금 각 코인의 swap으로 구성된 permutation 트랜잭션을 전송하게 하여 단편화제거를 실행할 수 있는 방법을 제시한 연구이다.

Plasma Cash defragmentation, take 3

저자 : Vitalik Buterin

사용자간의 트랜잭션 단계에서부터 fragment 생성을 최소화함으로써 단편화제거를 실행할 수 있는 방법을 제시한 연구이다.

Plasma Cashflow

저자 : Hayden Adams

Plasma Debit과 Plasma Defragmentation의 아이디어를 이용하여 구현한 Plasma Cash Implementation이다.

RSA Accumulators for Plasma Cash history reduction

저자 : Vitalik Buterin

RSA Accumulators를 이용하여 Plasma Cash의 각 coin의 history에 대한 검증부담을 줄이는 방법을 제시한 연구이다. 이 아이디어는 Plasma Prime 설계의 중추가 되었다.

Log(coins)-sized proofs of inclusion and exclusion for RSA accumulators

저자 : Vitalik Buterin

RSA accumulators를 통해 Plasma Cash의 여러개의 coin에 대한 포함증명(inclusion proof)과 비포함증명(exclusion proof)를 log(N) 복잡도로 실행할 수 있음을 증명한 연구이다.

Plasma Prime(spec by vitalik)

저자 : Sourabh Niyogi

Plasma Implementers Call에서 Vitalik Buterin이 Plasma Prime의 구체적인 spec에 대해 설명한 것을 정리한 글이다.

Plasma Prime design proposal(spec by Bankex)

저자 : Bankex team

Bankex팀의 Plasma Prime implementation이다. Plasma cashflow에 RSA accumulators 를 사용한 모델이다.

4)Account based : General

Account-balance 모델을 활용한 단순 지불(Simple Transfer) 플라즈마 솔루션입니다.

Chronos: A Quirky Application Proposal for Plasma

저자 : Paul Berg, Mark Milton

플라즈마에 일종의 payment channel을 활용한 implementation.

A DEX on Plasma

저자 : Bharath Rao

Plasma MVP와 Plasma Cash에서 Decentralized exchange(DEX)를 만드는 것이 어려운 이유를 설명하고, Plasma에서 DEX를 설계하는 다른 방향을 제시하고자 하였다. 자세한 내용은 Gluon Plasma에서 찾아볼 수 있다.

Gluon Plasma

저자 : Bharath Rao

UX와 Scaling의 개선에 중점을 둔 Plasma 모델을 제안한 연구이지만, Data availability 문제에 대한 솔루션이 부재하기 때문에 제대로 Plasma 모델을 제시했다고 보기에 어려움이 있다.

Off-chain Plasma state validation with on-chain smart contract

저자 : Jieyi Long

플라즈마 체인에서 account balance의 invalid state transition을 온체인에서 확률적으로 검증하는 것을 통해 올바른 state transition만을 강제할 수 있도록 한 연구이다.

5)Account based : With ZKP

Account-balance 모델을 활용한 단순 지불(Simple Transfer) 솔루션에 ZK Proof를 이용한 검증방법을 추가한 모델입니다.

Quark–gluon Plasma — verified Plasma chain without confirmation signatures

저자 : Alex Vlasov

balance를 갖는 어카운트 기반 모델에서 zkSNARKs 을 이용하여 플라즈마 체인의 state transition을 검증할 수 있는 모델을 제안한 연구이다. 하지만 data availability문제에 대한 솔루션이 미흡하였다.

Roll_up / roll_back snark side chain

저자 : Barry White Hat, Alex Gluchowski, HarryR 33, Yondon Fu, Philippe Castonguay

zkSNARKs 를 이용한 side chain 모델에 대한 연구이다. data availability문제 발생시 오퍼레이터가 대체될 수 있는 Operator auction시스템과 새로운 오퍼레이터가 유효한 상태에서 체인을 운영할 수 있게하는 Rollback 방식을 제시하였다.

Plasma Snapp

저자 : josojo

Deposit과 Withdrawal을 포함한 Plasma chain에서의 state transition을 snark를 이용하여 검증하는 방법을 설계하였다. 또한 Operator의 장기간 부재시 누구나 Operator가 될 수 있게 하였고, 또 다른 Operator가 나타나지 않을 경우 체인을 이전 상태로 되돌리는(roll back) 메커니즘을 두었다. Data availability의 경우 unavailable block의 존재를 인지한 후 약 7일간 exit 요청을 하면 항상 오퍼레이터의 exit요청에 대해 우선순위(priority)를 갖게 함으로써 해결하는 방향을 취하였다. 단, 사용자는 unavailable block의 존재를 인지한 이후 어떠한 트랜잭션도 전송하지 않아야 자신의 자산을 지킬 수 있다.

2. General States & Computation

1)UTXO based

UTXO의 제한된 기능에서 오는 장점을 활용하여 플라즈마에서 일반 상태 및 연산 기능을 구현하고자 하는 솔루션들입니다.

Why Smart Contracts are NOT feasible on Plasma

저자 : Johann Barbie

Plasma에서 Smart Contract를 구현하는 것이 왜 어려운지에 대해 논의한 글이다. Data availability 문제가 생길 경우 exit game의 형태로 유효한 state를 강제하는 것이 불가능하다는 것을 간략하게 제시하였다. 이는 Plasma Leap의 이론적 기반이 되기도 하였다.

Plasma Leap — a State-Enabled Computing Model for Plasma

저자 : Johann Barbie

general computation 기능을 비트코인의 Pay-to-Script-Hash (P2SH)와 유사한 Spending condition이라는 일종의 작은 프로그램으로 구현하였고, state기능을 일종의 스토리지 루트해시를 갖는 ERC721토큰이라고 볼 수 있는 nun-fungible storage token(NST)을 통해 구현하였다. NST를 통해 기존의 More Viable Plasma에서 사용되는 exit model을 그대로 사용할 수 있게 됨으로써 data availability에 대한 문제를 해결하였다.

2)Account based

Account State 모델을 활용하여 플라즈마 체인에서 이더리움과 비슷한 혹은 동일한 수준의 일반 상태 및 연산 기능을 구현하고자 하는 솔루션들입니다.

Plasmabits: Viable Stateful Sidechain

저자 : Esteban Ordano

EVM-based smart contract를 사용할 수 있는 Plasma implementation에 대한 proposal. 올바른 state transition에 대한 검증방법으로 truebit-like verification게임방식을 차용한 PASITO contract (Plasma Arbitration Stepping Instruction Test Operator)를 제시하였다.

또한 data availability문제에 대한 해법으로 사용자의 블록 데이터 요청(query)가 있을때마다 오퍼레이터가 온체인에 모든 데이터를 올리는 응답(respond)하도록 강제하는 방법을 제시하였다. 하지만 이는 사실상 Plasma 솔루션을 사용하는 의미가 없게 만들기 때문에 적절한 해법을 제시했다고 볼 수 없다.

Plasma EVM : state-enforceable construction

저자 : 박주형(Carl Park) , 박정원(Aiden Park), 정순형(Kevin Jeong)

Plasma EVM은 플라즈마 체인에서 EVM을 실행할 수 있는 모델이다. State transition을 검증하기 위한 방법으로 truebit like verification game을 사용하고, Contract Account의 exit authority 문제를 해결하기 위해 requestable contract라는 개념을 제시하였다. 또한 Data availability 문제 해결을 위해 User Activated Fork 방법을 제시하였다.

Comment

Plasma World는 2017년 8월 탄생한 이후 빠르게 성장을 거듭해 왔습니다. 현재도 많은 연구자들이 Plasma의 영역을 확장하기 위해 애쓰고 있는 만큼 Plasma World Map 또한 새롭게 개척된 영역을 빠르게 반영하기 위해 주기적으로 업데이트 될 예정입니다.


이더리움 블록체인 R&D 스타트업 온더(Onther Inc.)에서는 현재 Ethereum client를 그대로 Plasma chain에 올릴 수 있는 솔루션인 Plasma EVM에 대한 구체적인 설계/개발/연구를 진행하고 있습니다. 사이드체인과 플라즈마 체인에 관심을 가지고 계시는 기업, 이를 실제 서비스에 적용하고자 하는 팀, 여기에 기여하고 함께 연구하고 발전 시키고자 하시는 연구자 분들이 계시면 아래의 채널을 통해 언제든지 연락, 질문, 제안을 해주시기 바랍니다. 온더의 문은 항상 열려있습니다.
Github : https://github.com/onther-tech
Facebook : https://www.facebook.com/OntherInc
Telegram : @onther_blockchain
Blog : https://medium.com/onther-tech
E-mail : info@onther.io