---
# System prepended metadata

title: HackMD Dark Theme
tags: [theme]

---

---
title: HackMD Dark Theme
tags: theme
description: Use `{%hackmd theme-dark %}` syntax to include this theme. 이거 save as template 로 저장해서 글 작성전에 insert from template 불러오면 됨
---

<style>

html, body, .ui-content {
    background-color: #333;
    color: #ddd;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    color: #ddd;
}

.markdown-body h1,
.markdown-body h2 {
    border-bottom-color: #ffffff69;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
    color: #fff;
}

.markdown-body img {
    background-color: transparent;
}

.ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a {
    color: white;
    border-left: 2px solid white;
}

.expand-toggle:hover, 
.expand-toggle:focus, 
.back-to-top:hover, 
.back-to-top:focus, 
.go-to-bottom:hover, 
.go-to-bottom:focus {
    color: white;
}


.ui-toc-dropdown {
    background-color: #333;
}

.ui-toc-label.btn {
    background-color: #191919;
    color: white;
}

.ui-toc-dropdown .nav>li>a:focus, 
.ui-toc-dropdown .nav>li>a:hover {
    color: white;
    border-left: 1px solid white;
}

.markdown-body blockquote {
    color: #bcbcbc;
}

.markdown-body table tr {
    background-color: #5f5f5f;
}

.markdown-body table tr:nth-child(2n) {
    background-color: #4f4f4f;
}

.markdown-body code,
.markdown-body tt {
    color: #eee;
    background-color: rgba(230, 230, 230, 0.36);
}

a,
.open-files-container li.selected a {
    color: #5EB7E0;
}

</style>


확장성
===
```
영어로는 Scalability
```
```
블록체인 3대 Trillema 중 하나
```

###### 블록체인 산업에서 ‘Blockchain Trilemma’
> Blockchain Trilemma 에는 탈중앙화 (Decentralization), 보안 (Security) 그리고 확장성 (Scalability), 3가지로 구성되어 있는데, 블록체인 서비스들은 이 중 2가지는 충족할 수 있지만, 3가지 모두 충족할 수 없다하여 Trilemma 라고 부른다. 서로 다른 블록체인 네트워크의 특징을 정의하는데 쓰인다.

배경
---
- 바이낸스, 업비트, 빗썸 등 암호화폐 거래소에서 거래하는 다양한 종류의 암호화폐들은 모두 각기 다른 블록체인 네트워크를 갖고 있다. 비트코인(BTC)은 비트코인 자체 네트워크를, 이더리움(ETH)은 이더리움 자체 네트워크를 갖고 있는 것처럼 바이낸스 코인 (BSC), 리플 (XRP), 폴리곤 (MATIC)은 각각의 네트워크를 갖고 있고, 그 네트워크 위에서 자체적으로 발행된 암호화폐들이 거래소에서 거래되고 있다.

- 하지만, 이들 모두 독립적인 네트워크를 구성하고 있을까? 이게 무슨 뚱딴지 같은 소리냐, 당연하다라고 생각할 수 있지만, 독립적인 네트워크를 갖는 네트워크도 있지만 그렇지 않은 네트워크도 있다. 즉, 어떤 네트워크는 다른 네트워크으로부터 파생된 네트워크라고 볼 수 있다. 예를 들어, 폴리곤 네트워크는 이더리움에서 파생된 대표적인 네트워크라고 볼 수 있다. 이러한 경계를 명확하게 하기 위해서 '레이어 (Layer)' 라는 말이 등장하기 시작했다.

- '레이어 1 네트워크'는 다른 네트워크로부터 파생되지 않고 독립적인 네트워크를 가지고 있고, '레이어 2 네트워크'는 '레이어 1 네트워크'로부터 파생된 네트워크를 의미한다. 예를 들어, 비트코인, 이더리움, 솔라나, 바이낸스, 쎄타토큰 등은 '레이어 1 네트워크' 이고, 폴리곤, Optimism, Arbitrium 등은 이더리움에서 파생된 '레이어 2 네트워크'라고 한다.

- '레이어 1 네트워크'가 있음에도 '레이어2 네트워크'가 등장하게 된 이유는 무엇일까? 그 이유는 블록체인의 '확장성 문제' 때문이다. 블록체인 뿐만 아니라 어떤 시스템이든, 사용자가 몰리게 되면 어떻게 서비스를 안정적으로 확장시킬 수 있지 고민을 하게 된다. 예를 들어, 손님들이 식당에 몰리면 1) 식당의 크기를 확장시키거나 2) 회전율을 높이는 방법을 떠올릴 수 있고, 트래픽이 몰리는 웹사이트에서는 1) 서버의 대수를 늘리거나 2) 알고리즘을 최적화시킬 수 있다. 

- 블록체인도 마찬가지로 사용량이 증가함에 따라 네트워크에서 처리해야하는 transaction 의 수가 기하급수적으로 증가하면서 어떻게 하면 초당 처리할 수 있는 transaction의 수 (TPS, Transaction Per Second)를 증가시킬 수 있을까 라는 문제를 마주하게 되었다. 예를 들어, 이더리움의 경우 [1초에 수십 개의 transaction을 처리할 수 있는데](https://ethtps.info/), 이 속도는 수백 수천개의 디앱(Dapp)을 수용하기엔 충분하지 않고, 이에 따라 디앱에서는 경쟁적으로 더 많은 수수료를 지불함으로써 네트워크 수수료는 높아지게 되는 치명적인 문제점이 발생하게 되었다. 

- 이러한 확장성 문제를 해결하기 위해서 두 가지 측면에서 접근하는데, 1) 메인 네트워크 안에서 확장성을 개선시키는 방법, 2) 메인 네트워크 밖에서 확장성을 개선시키는 방법이 있다. 


해결 1. 메인 네트워크 내부에서의 해결
---

확장성 문제를 해결하는데 가장 주목받고 있는 블록체인인 이더리움의 사례를 통해 어떤 방식으로 메인 네트워크 안에서의 확장성을 해결하려고 하는지 알아보자.

이를 해결한 버전을 이더리움 2.0이라고 불렀는데, 현재는 이름이 주는 혼동때문에 이더리움 2.0 으로 불리지 않는다.


### 블록 생성 메커니즘의 변화
블록체인 안에서 노드들이 블록을 생성하는 메커니즘이 있는데, 대표적으로 Proof of Work (PoW)과 Proof of Stake (PoS)가 있다. PoW는 블록을 생성하기 위해서 엄청난 연산량을 요구하는 문제를 풀도록 하고, 그 문제를 풀면 블록을 생성할 수 있는 권한을 부여한다. PoS는 지분을 얼만큼 가지고 있느냐에 따라서 블록을 생성할 수 있는 권한을 부여하는데, 블록체인의 더 많은 지분을 보유할수록 블록을 생성할 확률이 높아진다. 현재 PoW는 비트코인과 이더리움, PoS는 이더리움의 다음 업데이트 버전이 대표적이라고 볼 수 있다. PoS로의 전환은 블록이 생성될 수 있는 속도를 높이기 때문에 메인 네트워크 안에서 확장성 문제를 해결하는 대안으로 제시되고 있다.

### 샤딩
```...```

해결 2. 메인 네트워크 외부에서의 확장성 해결
---
- 첫 번째로, Nested blockchain 이다. 메인 네트워크에서는 파라미터를 설정하고, execution 은 서브 네트워크에서 수행하는 구조이다. parent - child 구조의 nested architecture 로 되어있다. 대표적으로는 오미세고(OMG)가 있는데, 오미세고는 플라즈마 알고리즘을 기반이다. 플라즈마 알고리즘은 비탈릭 부텔린이 이더리움의 확장성 문제를 해결하기 위해서 개발한 알고리즘이다. 
- 두 번째로, State Channel 이다.
- 마지막으로 레이어2가 있는데 이는 레이어1 네트워크와 별개의 합의 메커니즘을 갖고 있다는 것이 특징때문에 구분한 것이라고 볼 수 있다. 

### 멀티체인과 크로스 체인

- 레이어2 네트워크는 트랜잭션에 대한 정보를 저장하고, 최종 결과값만 레이어1 네트워크로 저장을 한다. 
- 레이어1 네트워크는 이더리움이 대표적인데, 이더리움의 트랜잭션 수수료는 높기로 악명이 높다. (이더리움 수수료 볼 수 있는 사이트). 레이어1을 온체인 (on-chain), 레이어2를 오프체인(off-chain) 이라고 부르기도 한다 (??). 그리고 이러한 레이어2를 멀티체인이라고 부른다. 여기서 멀티체인(multi-chain)은 크로스체인(cross-chain), 사이드체인 (side-chain)과 다른 개념인데, 이 둘의 차이는 나중에 다뤄보도록 한다.

###### 레이어별 코인 종류
> 레이어1 코인
비트코인, 이더리움, 비트코인캐시, 비트코인SV, 에이다, 아발란체, 솔라나, 알고랜드, 이오스 나보스, 뉴이코노미무브먼트

> 레이어2 코인
Bitcoin Lightening Network (비트코인 기반), 폴리곤 (MATIC, 이더리움 기반), 플라즈마 (PLASMA, 이더리움 기반), 오미세고(OMG), 신세틱스(SNX), 루프링(LRC), 스케일 네트워크(SKL), 인젝티브 프로토콜(INJ)





참고 자료
---
[1] 레이어 2 코인 종류 총 정리 
[2] ﻿[코인 용어사전] 레이어2(Layer2) - CoinDesk Korea 신뢰 그 이상의 가치 
[3] Layer 2 | Binance Academy 
[4] Blockchain Technology: Layer-1 and Layer-2 Networks | Gemini 
[5] 플라즈마 알고리즘 - 해시넷
[6] 이더리움 레이어2인 State Channel을 이용한 토큰 디자인 | by Jason Jaewoo Kim | dapps-blockchain | Medium
[7] 사이드체인 - 해시넷   