Skip to content

Instantly share code, notes, and snippets.

@therne
Created June 14, 2018 04:26
Show Gist options
  • Save therne/0b6763f6163e565d014becf64f6835f5 to your computer and use it in GitHub Desktop.
Save therne/0b6763f6163e565d014becf64f6835f5 to your computer and use it in GitHub Desktop.
Brief introduction of the Ethereum Layer 2 Scaling Solution (Sidechain, Plasma)

Ethereum Layer 2 Scaling Solution - Sidechains

Please Read

요약

Ethereum의 한계

이더리움은 확장 가능하지 않다. 왜냐면 이더리움은 자산을 다루기 때문에, 최상위의 안전성을 염두에 두고 설계한 퍼블릭 블록체인이다. 하지만 Scalability Trillemma에 의해, 보안성과 확장성은 공존하기 힘들다. 트랜잭션 속도를 높이려면 블록 생성자 수를 줄이는 방법밖에 없음. (ex: EOS의 DPoS 합의)

Sidechain

사이드체인은 블록체인의 하위 블록체인으로서, 일반적으로 상위 체인보다 빠른 블록 생성 주기를 가지고 특정 도메인에 최적화되어 있다.
사이드체인은 상위 체인과는 다른 합의 알고리즘을 채택할 수 있음. (ex: PoW인 Ethereum을 상위 체인으로 두고 하위 체인에서 DPoS 사용)

하지만 빠른 블록 생성 주기를 가지고, 적은 노드 수를 통해 퍼포먼스를 확보한다면 보안이 약해질 수밖에 없다. 블록체인에서의 보안성 약화는 자산에 대한 위험으로 이어진다. 이를 해결할 방법은 무엇인가?

Plasma

플라즈마는 하위 체인의 보안을 상위 체인을 통해 보장하는 역할을 한다.

  • 하위 체인에서의 트랜잭션에 대한 머클 증명을 상위 체인에서 수행
  • 상위 체인에서 Lock-up한 자산만 하위 체인에서 사용할 수 있음으로서, 자산의 안전을 보장
  • 하위 체인에 문제가 있을 땐, Exit을 통해 안전하게 내 자산을 인출할 수 있음

이렇게 때문에 플라즈마 체인 (플라즈마를 통해 구성한 하위 체인) 에서는 보안성이 낮은 합의 알고리즘을 사용하더라도 안전하다.

Layer-2 Scaling

이더리움은 Layer-1 베이스 레이어로서 하위 체인의 보안성을 보장하는 역할을 수행할 것이다. 일종의 백본망처럼 수행하는 것이다.
실제 애플리케이션 및 스케일링은 사이드체인과 같은 Layer-2에서 이뤄질 가능성이 높다.

Examples
  • Loom Network의 DAppChain - 플라즈마를 이용한 이더리움 하위 DPoS 사이드체인으로서, 블록 생성 주기 0.5초에 수수료가 0원임.
  • OmiseGo is currently developing decentralized exchanges onto their MVP implementation of Plasma
  • Cosmos Network, one of the leading inter-chain platform, is also developing Plasma MVP implementation
  • 두나무 (업비트) 산하의 블록체인 플랫폼 연구조직인 Lambda256은 확장성 솔루션으로서 플라즈마를 연구중이라고 발표.

개인적인 전망 : 앞으로 어떻게 될 것인가?

모든 앱은 각자의 블록체인을 가진다

모든 Dapp은 각자의 블록체인을 가지게 될 것이다. 하지만 그건 메인넷을 의미하는 것이 아니라, 각자의 기능에 특화된 사이드체인이 될 것이다.
DPOS 합의를 사용할 수도 있고, 심지어는 PoA (허가된 블록 생성자만이 블록을 생성하는 프라이빗 블록체인) 합의도 가능하다.

이더리움의 백본화

이더리움은 Safety-Proving한 백본망으로서의 역할을 수행할 가능성이 높다.

  • 자산 관리 (ERC20) 및 보호
  • 사이드체인에서의 트랜잭션에 대한 머클 증명
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment