본문으로 건너뛰기
0%

개발자를 위한 Ethereum 스케일링 솔루션 가이드

Alchemy team headshot

작성자 Alchemy

2022년 5월 17일에 게시됨7분 읽기

Ethereum은 탈중앙화와 보안을 우선시하기 때문에 트랜잭션 처리 속도가 느립니다. 이는 네트워크 처리량에 영향을 미치고 탈중앙화 애플리케이션의 확장 능력에 영향을 줍니다.

Ethereum의 확장성 문제를 해결하기 위해 다양한 설계가 제안되었으며, 각각 서로 다른 이점을 제공합니다. 이 가이드에서는 Ethereum 확장 솔루션을 소개하고 이들이 어떻게 작동하며 왜 중요한지 설명합니다.

확장성이란 무엇인가?

확장성은 기능을 희생하지 않고 사용량의 기하급수적인 증가를 처리할 수 있는 시스템의 능력을 의미합니다. 블록체인 기술의 맥락에서 확장성은 기능에 영향을 주지 않으면서 증가한 트랜잭션을 지원할 수 있는 블록체인의 용량을 의미합니다.

현재 Ethereum의 트랜잭션 처리 능력은 초당 7-15건의 트랜잭션(TPS) 처리로 제한되어 있습니다. 반면 Oracle Database나 Microsoft SQL Server 같은 전통적인 중앙화 데이터베이스는 초당 수천 건의 트랜잭션을 처리할 수 있습니다.

ethereum 초당 트랜잭션 수 차트

출처: Blockchair

Ethereum의 설계가 확장성에 영향을 미치는 두 가지 방식

Ethereum은 확장성보다 탈중앙화와 보안을 우선시하기 때문에 처리량이 낮고 처리 속도가 느립니다(확장성 트릴레마).

Ethereum의 설계가 확장성에 영향을 미치는 몇 가지 방식은 다음과 같습니다:

1. Ethereum의 합의 알고리즘은 트랜잭션을 순차적으로 처리합니다

Ethereum은 작업 증명(PoW)을 사용하는데, 이는 네트워크상의 트랜잭션이 모든 노드에 의해 승인되고 검증되어야 함을 의미합니다. 이는 탈중앙화를 촉진하고, 더 중요하게는 보안을 강화합니다.

단점은 트랜잭션의 순차적 실행이 트랜잭션 완결성(트랜잭션 확인에 걸리는 시간)에 영향을 미친다는 것입니다. 이는 Ethereum이 높은 TPS 비율을 지원하지 못하는 원인 중 하나입니다.

2. Ethereum은 블록 크기를 1MB로 제한합니다

Ethereum은 채굴된 블록이 담을 수 있는 데이터 양(1MB)을 제한하는데, 이는 블록 크기를 제한하는 것이 노드가 블록체인 히스토리를 더 효과적으로 저장할 수 있도록 함으로써 탈중앙화를 개선하기 때문입니다. 블록 크기가 커지면 사람들이 풀 노드를 운영하기 어려워져 탈중앙화에 해를 끼칩니다.

하지만 1MB의 블록 크기 제한은 채굴자가 하나의 블록에 담을 수 있는 트랜잭션 데이터를 줄여 네트워크 처리량에 영향을 미칩니다. 작은 블록 크기는 Ethereum Virtual Machine에서 연산을 실행하는 데 필요한 계산 자원인 가스 비용에도 영향을 줍니다.

채굴자는 유한한 계산 능력을 가지고 있기 때문에, 종종 더 높은 수수료를 지불하는 트랜잭션을 우선 처리할 수밖에 없습니다. 이는 Ethereum 사용자 간에 일종의 입찰 전쟁을 만들어내고 트랜잭션 수수료의 급격한 상승을 초래합니다.

Ethereum 확장 솔루션이란 무엇인가?

Ethereum 확장 솔루션은 Ethereum 네트워크에서의 트랜잭션 실행을 개선하기 위해 특별히 설계된 플랫폼입니다. Layer 2 rollups과 사이드체인 같은 Ethereum 확장 솔루션은 네트워크 처리량을 늘리기 위해 서로 다른 메커니즘을 사용하는 프로토콜입니다.

ethereum 스케일링 솔루션 다이어그램

출처: Reddit

Layer 1 vs layer 2 확장 솔루션

확장 솔루션은 크게 "온체인"과 "오프체인" 솔루션 두 가지로 나눌 수 있으며, 이는 실행 지점에 따라 구분됩니다.

Layer 1 확장 솔루션

Layer 1 확장은 블록체인 네트워크 자체를 변경하고 기본 레이어를 다시 작성하는 것을 포함합니다. "온체인"이라는 표현은 Ethereum의 확장 업그레이드가 블록체인 자체에서 실행됨을 의미합니다.

Layer 1은 블록 크기를 늘려서 확장할 수 있습니다

가능한 Layer 1 확장 개선 방법 중 하나는 블록 크기를 늘리는 것입니다. Ethereum의 1MB 블록 크기가 증가한다면, 채굴자는 블록에 더 많은 트랜잭션 데이터를 포함할 공간을 갖게 됩니다.

Ethereum의 블록 크기를 늘리면 TPS 비율이 증가하겠지만, 그 부작용으로 블록 크기가 커질수록 블록체인의 크기도 증가해 완전한 노드를 운영하기 어려워지는(슈퍼컴퓨터가 있지 않은 한) 점진적인 중앙화가 나타납니다. 이러한 이유로 Ethereum 커뮤니티는 블록 크기 확대를 확장 솔루션에서 제외했습니다.

Layer 1은 블록체인 샤딩을 통해 트랜잭션을 병렬로 처리하여 확장할 수 있습니다

블록체인 샤딩은 Ethereum이 사용하는 기본 순차 실행 모델 대신 트랜잭션의 병렬 실행을 도입하는 확장성 개선 방법입니다. 샤딩에서는 블록체인이 별도의 트랜잭션을 검증하고 처리하는 더 작은 체인(샤드)으로 나뉩니다.

현재 Ethereum이 작동하는 방식을 생각해 보세요:

트랜잭션은 검증될 때까지 네트워크 전체에 브로드캐스트됩니다. 샤딩은 트랜잭션이 모든 노드에 의해 승인될 필요가 없습니다. 대신, 각 샤드에는 트랜잭션 승인을 담당하는 검증자(콜레이터라고 함)가 있습니다.

각 콜레이션(샤드 체인상의 트랜잭션 모음)은 콜레이터의 ⅔가 서명해야 합니다. 또한 제안된 콜레이션은 완결성을 획득하기 전에 메인 체인에 추가되어야 합니다. 이러한 조치들이 함께 시스템의 보안을 보장하는 데 도움을 줍니다.

샤딩을 통해 Ethereum은 탈중앙화나 보안을 희생하지 않고도 TPS를 늘릴 수 있습니다. 샤드 체인이 서로 다른 트랜잭션을 동시에 처리함에 따라 네트워크의 전체 처리 용량이 증가합니다. 또한 네트워크 참여자는 암호학적 증명을 통해 샤드 콜레이션의 유효성을 여전히 증명할 수 있습니다.

ethereum 샤딩 다이어그램
출처: Genesis Block

출처: Genesis Block

Layer 2 확장 솔루션

Layer 2(L2) 확장 개선 방법은 메인 체인(Layer 1)이 아닌 곳에서 실행되기 때문에 이렇게 불립니다. "오프체인" 솔루션이라고도 불리는 Layer 2 확장은 메인 체인에 보안을 의존하는 별도의 네트워크에서 트랜잭션을 처리하는 것을 포함합니다.

L2 솔루션은 대개 탈중앙화와 보안보다는 트랜잭션 속도와 확장성을 중시하도록 설계됩니다. L2는 트랜잭션 데이터를 메인 Ethereum 레이어에 게시하기 때문에, 메인넷의 탈중앙화와 보안의 이점을 누릴 수 있습니다. 또한 L2 솔루션은 Ethereum 위에 구축되기 때문에 자체 네이티브 토큰이 필요하지 않습니다.

이러한 오프체인 프로토콜은 여러 트랜잭션을 하나의 트랜잭션으로 집계하여 메인 체인에 추가할 수 있습니다. 이는 네트워크에 대한 부담을 줄이고 사용량이 증가함에 따라 앱이 확장될 수 있는 잠재력을 향상시킵니다.

Layer 2 확장 솔루션의 예:

  • Rollups
  • 상태 채널
  • Plasma
  • Validium

Layer 2 vs. 사이드체인

사이드체인은 Ethereum Mainnet과 상호작용하지만 보안을 의존하지 않는 별도의 블록체인입니다. 사이드체인은 크로스체인 브리지를 통해 Ethereum과 연결되며, 이를 통해 두 체인 간의 자산 이전이 가능합니다.

사이드체인은 높은 처리량을 가능하게 하는 서로 다른 특성으로 설계되기 때문에 확장성에 유리합니다. 예를 들어, Polygon 사이드체인은 더 빠른 트랜잭션을 위해 지분 증명(PoS) 합의 알고리즘을 사용합니다.

Layer 2 솔루션과 사이드체인의 주요 차이점은 보안 보증에 있습니다. L2 네트워크는 Ethereum의 보안 보증을 누리는 반면, 사이드체인은 그렇지 않습니다.

사이드체인은 자체 합의 메커니즘에 의해 보안이 유지되는 반면, L2는 Ethereum의 합의로부터 이점을 얻습니다. 이러한 이유로 많은 사람들이 L2를 사이드체인보다 더 안전하다고 여깁니다.

Ethereum에 확장 솔루션이 왜 필요한가?

좋은 Ethereum 확장 솔루션은 web3 개발자와 사용자에게 더 낮은 가스 수수료와 더 빠른 트랜잭션을 제공하면서 트랜잭션의 보안도 유지합니다.

Ethereum에 확장 솔루션이 필요한 이유는 다음과 같습니다:

1. 낮은 트랜잭션 수수료

Ethereum의 가스 수수료 문제는 광범위한 비판의 소재가 되었습니다. 확장 개선은 네트워크 혼잡을 줄이고 트랜잭션 비용을 크게 낮출 수 있습니다.

낮은 가스 가격은 더 나은 사용자 경험과 앱의 더 높은 채택으로 이어집니다. 사용자는 실패한 트랜잭션이나 과도한 가스 수수료를 겪을 필요가 없어집니다.

2. 더 빠른 트랜잭션

많은 확장 솔루션은 Ethereum이 더 짧은 시간에 더 많은 트랜잭션을 처리할 수 있도록 개선하기 위해 특별히 만들어졌습니다.

예를 들어, rollups은 수천 건의 오프체인 트랜잭션을 하나의 온체인 트랜잭션으로 묶을 수 있습니다. 마찬가지로 샤딩은 트랜잭션의 병렬 처리를 촉진하여 처리량을 늘립니다.

이러한 개선의 결과는 초당 트랜잭션(TPS) 비율의 증가입니다. 추정치는 다양하지만, 많은 사람들은 L2와 샤딩이 Ethereum의 TPS를 수천 건까지 끌어올릴 것으로 예상합니다.

3. 향상된 보안

L2는 네트워크 보안을 저하시키지 않으면서 Ethereum을 확장하는 데 매우 유용합니다. 온체인 확장과 달리, 오프체인 확장 프로젝트는 Ethereum의 탈중앙화에 영향을 미치지 않습니다.

이러한 L2는 별도의 체인이지만, 그 보안은 Ethereum 블록체인과 긴밀하게 연결되어 있습니다. 이는 사용자가 자산을 위험에 빠뜨리지 않으면서도 확장성의 이점을 누리며 이러한 프로젝트와 안전하게 상호작용할 수 있음을 의미합니다.

가장 인기 있는 5가지 Ethereum 확장 솔루션

가장 인기 있는 5가지 Ethereum 확장 솔루션은 rollups, 사이드체인, 상태 채널, plasma 체인, Validium입니다.

1. Rollups

Rollups은 오프체인에서 실행된 여러 트랜잭션을 결합하거나 "롤업"하여 배치로 묶은 뒤 메인 체인에 전달합니다. 하나의 rollup은 메인 체인이 처리해야 할 트랜잭션 양을 줄이기 위해 압축된 수백, 심지어 수천 건의 트랜잭션을 포함할 수 있습니다.

확장성 개선 외에도, rollups은 트랜잭션이 L1 체인에 고정되어 트랜잭션 완결성을 보장하기 때문에 Ethereum 자체와 유사한 수준의 보안을 제공합니다.

rollups에는 두 가지 주요 유형이 있습니다: optimistic rollups과 zero-knowledge rollups입니다. 각 유형은 트랜잭션이 계산되고 Ethereum에 게시되는 방식에 따라 다릅니다:

Zero-knowledge rollups 또는 ZK-rollups은 오프체인에서 계산을 수행하고 Succinct Non-Interactive Argument of Knowledge(SNARK) 또는 Succinct Transparent Argument of Knowledge(STARK)라고 불리는 암호학적 증명을 생성합니다. 이러한 **"유효성 증명"**은 메인 체인의 노드에게 트랜잭션 배치의 유효성을 보증합니다.

Optimistic rollups은 기본적으로 트랜잭션이 유효하다고 가정하며 모든 트랜잭션 번들에 대해 유효성 증명을 생성하지 않습니다. 하지만 optimistic rollup의 트랜잭션 유효성은 **사기 증명(fraud proof)**을 통해 이의를 제기할 수 있습니다.

그렇다면 두 rollup 방식은 서로 비교했을 때 어떨까요? ZK-rollups은 유효성 증명을 생성하기 때문에 더 안전하지만, 이로 인해 optimistic rollups보다 느립니다.

ZK-rollups은 복잡한 메커니즘이기 때문에 EVM 호환성을 프로그래밍하기가 어렵습니다. 결과적으로 ZK-rollups은 optimistic rollups에 비해 기능이 제한적입니다.

Polygon은 Hermez 2.0 계획을 통해 zero-knowledge rollups의 기능을 Ethereum 네트워크에 확대하기 위한 zero-knowledge EVM(zkEVM)을 개발하고 있습니다.

Optimistic rollups을 사용하는 Ethereum L2

  • Optimism
  • Arbitrum
  • Boba Network
  • Immutable X

ZK rollups을 사용하는 Ethereum L2

  • zkSYNC
  • Loopring
  • dYdX
  • StarkNet

개발자로서, dApp에 rollups을 통합하여 트랜잭션 완결성과 확장성을 개선할 수 있습니다. 이를 통해 사용자는 Ethereum에서 흔히 발생하는 높은 가스 수수료, 실패한 트랜잭션, 느린 처리 속도를 경험하지 않아도 됩니다.

2. 사이드체인

사이드체인은 Ethereum Mainnet과 병렬로 작동하는 별도의 블록체인인 Layer 2 솔루션의 한 유형입니다. 이러한 차이는 암호경제적 인센티브, 합의 메커니즘 등이 될 수 있습니다.

Ethereum을 위해 특별히 설계된 사이드체인은 Ethereum Virtual Machine(EVM) 호환성을 갖추고 있으며 스마트 컨트랙트를 지원할 수 있습니다. 이는 사이드체인에 프로젝트를 배포하고 앱의 확장성 개선을 활용할 수 있음을 의미합니다.

크로스체인 브리지는 사이드체인을 Ethereum 스마트 컨트랙트 플랫폼에 연결하는 데 필요합니다. 이름에서 알 수 있듯이, 블록체인 브리지는 사용자가 메인 체인과 사이드체인 사이를 이동할 수 있는 게이트웨이를 제공합니다.

브리지를 사용하려면 원본 체인에서 일부 자산(이 경우 ETH)을 잠가야 합니다. 그러면 사이드체인에서 동일한 양의 자산이 생성되어 지갑에 입금됩니다.

그런 다음 사이드체인에서 자유롭게 거래하며 뛰어난 트랜잭션 처리 능력을 활용할 수 있습니다. 앞서 설명했듯이, 사이드체인은 확장성을 제공하도록 설계되었으며 이를 달성하기 위해 서로 다른 메커니즘을 사용합니다.

Ethereum 사이드체인 예시:

  • Polygon
  • xDAI
  • SKALE

다른 대안 Layer 1(L1) 블록체인, 특히 EVM 호환 블록체인도 Ethereum 사이드체인으로 기능할 수 있습니다. 이러한 대체 L1은 종종 더 낮은 가스 수수료, 더 나은 트랜잭션 완결성, 특정 경우 더 풍부한 기능과 같은 이점을 제공합니다.

EVM 호환 L1의 예:

  • Avalanche
  • Fantom
  • Binance Smart Chain

3. 상태 채널

상태 채널은 메인 체인이 모든 트랜잭션을 검증할 필요 없이 두 당사자가 거래할 수 있도록 하는 오프체인 확장 솔루션입니다. 상태 채널은 본질적으로 필요한 당사자들의 승인이 있을 때만 실행되는 다중 서명 스마트 컨트랙트입니다.

상태 채널의 작동 방식

  1. Alice는 매일 아침 커피를 파는 Bob과 상태 채널을 열고자 합니다. 그녀가 채널에 0.4 ETH를 예치하고 이 트랜잭션이 Mainnet에 게시된다고 가정해 봅시다.

  2. 이 개시 트랜잭션 이후, Alice와 Bob은 원하는 만큼 오프체인에서 트랜잭션을 실행할 수 있습니다. 유일한 조건은 양쪽 모두 트랜잭션에 서명해야 한다는 것으로, 이는 Alice와 Bob이 각 커피 결제를 승인해야 함을 의미합니다.

  3. Alice가 예치금을 모두 소진하면, 메인 체인에 종료 트랜잭션을 게시할 수 있습니다. 이 트랜잭션은 채널의 마지막으로 알려진 상태를 반영하며, 이는 완결성을 위해 기록됩니다. Alice와 Bob이 수십 차례 거래했을 수 있지만, Ethereum 네트워크는 개시 및 종료 트랜잭션 단 두 건만 기록합니다.

상태 채널은 당사자들이 긴 대기 시간과 높은 트랜잭션 수수료를 겪지 않고도 안전하게 오프체인 트랜잭션을 수행할 수 있게 합니다. 또한 채굴자가 처리해야 할 트랜잭션이 줄어들어 더 빠르게 작업할 수 있으므로 확장성도 개선됩니다.

상태 채널을 사용하는 Ethereum 확장 솔루션:

  • Raiden Network
  • Connext Network
  • Celer Network

4. Plasma 체인

Plasma 백서는 메인 블록체인 또는 "루트 체인"에서 비롯되는 "자식 체인" 개념을 소개합니다. Plasma 체인은 트랜잭션을 검증할 수 있지만, 루트 체인의 보안에 의존합니다. 트랜잭션의 유효성을 증명하기 위해, 자식 체인은 루트 체인에 암호학적 증명을 제출합니다.

Plasma 체인은 스마트 컨트랙트를 통해 Ethereum 블록체인과 연결된다는 점에서 사이드체인과 유사합니다. Plasma 체인을 사용하려면 자식 체인에서 토큰을 받기 전에 루트 체인의 스마트 컨트랙트에 ETH를 잠가야 합니다.

Plasma는 Ethereum의 기본 레이어로부터 직접 보안을 얻기 때문에 L2 확장 솔루션으로 간주됩니다. 이것이 사이드체인보다 더 안전하게 만드는 요소입니다.

Plasma는 Ethereum 메인 체인의 각 블록에 대해 Merkle root를 게시합니다. 블록 루트는 트랜잭션에 대한 정보를 검증하는 데 사용할 수 있는 작은 정보 조각입니다. Plasma 체인에서 공격이 발생하면, 사용자는 적절한 증명을 사용하여 안전하게 메인 체인으로 빠져나와 자금을 인출할 수 있습니다.

Plasma를 사용하는 Ethereum 확장 솔루션

  • OMG Plasma
  • Gluon Network

5. Validium

Validium은 메인 Ethereum 레이어 밖에서 계산을 수행한다는 점에서 ZK-rollups과 유사하지만, 주요 차이점은 Validium이 ZK-rollups처럼 압축된 데이터를 메인 체인에 게시하는 대신 "오프체인 데이터 가용성"을 사용한다는 것입니다.

Validium은 데이터 제공자와 함께 오프체인에 데이터를 저장하므로 어느 정도 커스터디얼한 성격을 갖습니다. 하지만 StarkWare 같은 일부 솔루션은 데이터 제공자가 정직하게 행동하도록 보장하기 위해 Data Availability Committees(DACs)를 사용합니다.

Validium은 매우 낮은 수수료와 빠른 트랜잭션(최대 100,000 tps)을 제공합니다. 하지만 ZK-rollups 같은 다른 확장 솔루션보다 더 많은 신뢰 가정을 요구합니다.

Validium을 사용하는 ETH 확장 솔루션:

  • DiversiFi
  • Immutable X

확장 솔루션의 단점은 무엇인가?

Ethereum 확장 솔루션의 두 가지 단점은 구현이 복잡하다는 점과 보안 보증이 낮을 수 있다는 점입니다.

1. 복잡성

많은 확장 솔루션은 구현이 복잡하여 기능에 영향을 줄 수 있습니다. 예를 들어, Ethereum 개발팀은 업그레이드에 필요한 작업량 때문에 샤딩 출시일을 계속 미뤄왔습니다.

2. 낮은 보안 보증

많은 L2와 L1 확장 솔루션이 보안을 Ethereum에 의존하지만, 이들이 Ethereum만큼 안전할 수는 없습니다. 각 확장 솔루션은 속도를 얻는 대신 탈중앙화와 보안 같은 요소를 일부 희생합니다. 사용자는 이러한 플랫폼을 사용하기 전에 이러한 위험을 충분히 인지해야 합니다.

결론

이 가이드에서 다룬 확장 프로젝트들은 Ethereum이 확장성을 향해 나아가는 데 큰 역할을 할 것으로 보입니다. 다만 이것이 장기적인 확장성을 보장하기에 충분할지는 아직 지켜봐야 합니다.

다음 dApp을 L2에서 확장할 계획이신가요?

세계 최대 블록체인 개발 플랫폼인 Alchemy에 무료 계정을 등록하세요. Arbitrum, Optimism, Polygon, StarkNet을 비롯한 인기 L2를 지원합니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.