이더리움 블록체인 기반의 Dapp 을 만들 땐 크게 "요금, 처리시간" 이라는 두 가지 문제가 있다.비싼 요금은 해커들로 하여금 해킹 성공에 대한 메리트를 떨어뜨리므로 해킹 시도 부터 망설이게 만들어 준다.
반면에 Dapp 을 사용하는 유저들은 Tx 가 발생할 때마다 비싼 요금을 지불해야 한다.
예를 들자면, 대표적인 NFT 거래소 Open Sea 에서 NFT 를 하나 업로드 하려면 4~10 만 원(2021년 기준)을 수수료로 지불해야 한다.
(이는 NFT 를 처음 판매하려는 작가들로 하여금 NFT 작가 데뷔를 하는 데에 망설임 point가 될 수 있다.)
(물론 현재는 Polygon 이라는 L2 솔루션이 적용됐다.)
처리시간 또한 보안 측면에서 장점을 가져다 주지만, '12초' 라는 시간은 5G 시대의 빠른 web2 서비스를 경험하던 우리에겐 굉장히 긴 시간이다.
(물론 web3 의 Dapp 들이 가진 BM 은 web2 와는 다르다.)
web3 에서 확장성이란 비용, 처리량, 속도를 향상시킬 수 있는 능력을 말하며,
확장성이 좋다면 유저와 Tx 가 늘어나더라도 좋은 유저 경험을 제공할 수 있다.
이더리움 1.0의 경우, 확장성 문제를 해결하기 위해 샤딩, PoS, rollup 등과 같은 기술을 통해 확장성 문제를 해결한 이더리움 2.0로 업그레이드 했다.
앞으로 L1 레이어, L2 레이어라는 단어가 등장할 텐데, 이 중 L1 레이어는 기존에 우리가 알고 있던 '이더리움 블록체인 네트워크, aka 메인 체인' 이다. (물론 이더리움 보다 넓은 범위의 블록체인 네트워크를 뜻하는 단어이다.)
L2 레이어
기존 L1 레이어의 Tx 처리/검증 을 담당하는 부분을 떼어 낸 신규 레이어 이다.
(특정 기능만을 위한 레이어를 논리적으로 분리했다는 점에서 사뭇 ,네트워크 7Layer 가 떠오르지 않는가?)
rollup
L2 레이어의 핵심 기능은 'rollup' 이다. (FE 번들러인 rollup 과 헷갈리지 말자 ^^)
기존의 L1 레이어에선 수많은 단일 Tx 가 모여 하나의 블록을 만들었다.
유저는 각 Tx 마다 비용을 지불해야 했고, 하나의 블록이 가질 수 있는 크기는 한정돼 있었다.
이는 Tx 처리 시간 뿐만 아니라 비용에서도 확장성을 방해하는 요소가 된다.
rollup 은 L2 플랫폼에서 발생한 다수의 Tx 를 하나의 Tx로 압축(rollup) 시켜주는 기술로써, 기존에 가지고 있던 확장성 문제를 해결해 준다.
롤업에서 처리한 Tx 가 L1 로 전달될 때 머클 트리의 루트 해시만 전달하므로 L1 레이어 에서 사용 될 비용이 굉장히 싸다.
또한, L2 레이어 오퍼레이터가 청구하는 Dapp 유저의 Tx 청구비용 또한 기존 L1 레이어에서 직접 Tx 를 처리하는 것 보다 훨씬 저렴하다.
또한 이더리움 네트워크에 Tx 완료 시점이 블록체인에 신규 블록 연결(12초) 인 것에 비해,
L2 레이어는 그 보다 작은 시간 내에(ex 2초) L2 레이어에서 Tx 완료를 시켜주므로 Dapp 에서 발생하는 Tx의 속도가 빨라 진다. (물론 L2 에서 발생한 Tx 의 최종성(finality) 은 기존의 Tx 완료 시점과 같다)
L2 레이어를 통해 Tx 처리 및 블록체인에 새 블록이 연결되는 과정을 살펴 보자
1. L2 레이어에서 처리/검증 된 Tx 는 rollup 과정을 거쳐 L1 레이어로 전달 되고
2. 새로이 생성 될 블록에 rollup 된 Tx 가 저장된다.
3. L1 레이어에선 해당 rollup 된 Tx 에 대한 2차 검증을 거친다. (rollup 방식에 따라 2차 검증이 없을 수도 있다.)
4. 검증이 완료 된 경우, PoW or PoS 를 통해 메인 체인(L1) 에 연결 된다.
다음 그림은 Dapp 의 Tx 발생 부터 블록체인에 연결되기 까지의 과정을 그린 것으로,
위 과정에서 빠지거나(2차검증) 추가 된(Dapp Tx) 프로세스가 있다.
c.f.) 롤업 오퍼레이터는 L2 플랫폼의 구성요소로써, L2 플랫폼에서 발생하는 Tx를 집계 및 처리한 뒤, 압축된 데이터를 이더리움 L1 블록체인에 게시하는 역할을 담당한다.
c.f.) rollup 방식에 따라 세부 과정이 다르므로 위 과정이 정확한 프로세스라고 생각하진 말자.
대표적인 rollup 방식엔 아래 두 방식이 있다.
1. 옵티미스틱 롤업
기존의 이더리움 개발자들과 친숙한 롤업 방식이다. 개발자들에게 접근성은 좋지만, 블록이 블록체인에 연결된 이후에 L1 레이어에서 추가 Tx 검증을 하는 '도전 기간(challenge preiod)' 을 가진다. 도전 기간 내에 검증이 실패해 해당 Tx가 롤백 당할 수도 있다. 도전 기간으로 인해 최종성(Finality)에 지연이 발생한다.
2. 제로 지식(ZK) 롤업
옵티미스틱 롤업의 도전 기간이 없어 최종성 지연이 없지만, 대신 L2 에서 발생한 Tx에 대한 '제로 지식 증명' 이 존재한다. 이는 L1 에서 해야 할 추가 검증을 대체해 주지만, 그에따라 발생한 높은 계산성과 복잡성은 낮은 처리량을 야기할 수 있다. (블록에 Tx 만 저장하는 것이 아닌 '제로 지식 증명' 까지 저장한다) 그리고 옵티미스틱 롤업에 비해 기술적 난이도가 높다.
c.f. rollup 에 대한 인터페이스는 이전 이더리움 블록체인 1.0 버전에선 지원하지 않으며, 현행 버전인 2.0 버전(2020.12.01)에서 지원한다.
대표적으로 opensea 에서 사용할 수 있는 Polygon 이 있다.
L2 레이어 플랫폼을 만든다면, 롤업 오퍼레이터를 통해 이더리움 2.0 버전의 인터페이스 구현체를 생성하는 방식으로 만들면 될 것이다. (또한 Dapp 마다 다양한 rollup 방식을 선택할 수 있도록 플랫폼을 구축 한다면 더 좋을 것이다.)
다음은 옵티미스틱 롤업과 제로 지식 롤업의 프로세스다.
옵티미스틱 롤업
1. Tx 들이 쌓이고, 유효성 검증 과정을 거친 Tx 들만 L2 에서 롤업 함
2. 새로 생성 될 블록에 롤업 된 Tx 를 저장
3. PoW or PoS 를 통해 블록체인 네트워크(L1)에 연결
4. L1(메인 블록체인, ex 이더리움 블록체인) 에서 롤업 된 Tx 에 대해 추가 검증 작업을 거침 - 유효성 검증 도전 기간
(c.f. 도전 기간 중 제기 된 이의가 통과 되면 Tx 는 롤백 된다.)
제로 지식 롤업
1. Tx 들이 쌓이고, 유효성 검증 과정을 거친 Tx 들만 L2 에서 롤업 함, 제로 지식 검증 또한 생성
2. 새로 생성 될 블록에 롤업 된 Tx 를 저장, 제로 지식 검증 또한 블록에 저장
3. PoW or PoS 를 통해 블록체인 네트워크(L1)에 연결
다음은 옵티미스틱 롤업과 제로 지식 롤업의 장단점이다. (by chat-gpt 4)
옵티미스틱 롤업(Optimistic Rollup)과 제로 지식 롤업(ZK-Rollup)은 이더리움에서 L2 확장 솔루션을 제공하기 위해 사용되는 두 가지 주요 기술입니다. 각 기술은 서로 다른 접근 방식을 사용하여 확장성과 보안성을 달성하며, 각각 장단점이 있습니다.
옵티미스틱 롤업:
장점:
- 작업량 증명(Proof of Work) 또는 지분 증명(Proof of Stake)과 같은 기존 합의 메커니즘과 호환성이 높습니다.스마트 컨트랙트의 복잡성과 규모에 상관없이 확장성을 제공합니다.기존 이더리움 개발자들이 더 쉽게 적용할 수 있습니다.
단점:
- 도전 기간(Challenge Period)이 필요하며, 이로 인해 트랜잭션 최종성(Finality)에 지연이 발생할 수 있습니다.데이터 가용성 문제가 여전히 존재합니다.
제로 지식 롤업(ZK-Rollup):
장점:
- 즉시적인 트랜잭션 최종성(Finality)을 제공합니다. 도전 기간이 없기 때문에 트랜잭션 처리가 더 빠릅니다.데이터 가용성 문제를 더 효과적으로 해결합니다.트랜잭션 유효성이 제로 지식 증명에 의해 보장되므로, 보안성이 높습니다.
단점:
- 제로 지식 증명에 대한 계산 및 검증 복잡성이 높아, 처리량이 상대적으로 더 낮을 수 있습니다.스마트 컨트랙트의 규모와 복잡성에 따라 제한이 있을 수 있습니다.기술적 난이도가 높아 개발자들이 적용하기에 다소 어려울 수 있습니다.
결론적으로, 옵티미스틱 롤업과 제로 지식 롤업은 각각 확장성과 보안성을 제공하는 데 독특한 접근 방식을 사용합니다. 옵티미스틱 롤업은 도전 기간을 통해 보안성을 유지하면서 확장성을 제공하는 반면, 제로 지식 롤업은 즉시적인 트랜잭션 최종성과 데이터 가용성을 보장하는 데 집중합니다. 각 기술 선택에는 사용 사례, 성능 요구 사항, 개발 난이도 및 보안 요구 사항 등을 고려해야 합니다.
옵티미스틱 롤업은 기존 이더리움 개발자들이 더 쉽게 적용할 수 있는 방식을 제공하며, 스마트 컨트랙트의 복잡성과 규모에 영향을 받지 않는 확장성을 제공합니다. 그러나 도전 기간 때문에 트랜잭션 최종성에 지연이 발생할 수 있으며, 데이터 가용성 문제가 여전히 존재합니다.
반면 제로 지식 롤업은 즉시적인 트랜잭션 최종성을 제공하고, 데이터 가용성 문제를 더 효과적으로 해결합니다. 이로 인해 트랜잭션 처리가 더 빠르지만, 제로 지식 증명에 대한 계산 및 검증 복잡성이 높아 처리량이 상대적으로 더 낮을 수 있습니다. 또한, 스마트 컨트랙트의 규모와 복잡성에 따라 제한이 있을 수 있으며, 기술적 난이도가 높아 개발자들이 적용하기에 다소 어려울 수 있습니다.
따라서 이더리움 2.0에서는 각 프로젝트의 요구 사항과 목표에 맞게 옵티미스틱 롤업 또는 제로 지식 롤업 중 하나를 선택할 수 있습니다. 프로젝트의 성공은 적절한 기술 선택과 효율적인 구현에 따라 크게 좌우됩니다. 이를 통해 이더리움 네트워크의 확장성을 높이고, 처리 시간을 단축하며, 전반적인 효율을 향상시킬 수 있습니다.
이상, 최근 web3 에서 L2 레이어의 rollup 기술을 이용해 web3 의 확장성 문제(Tx 비용, 시간)를 해결하는 방법에 대해 알아봤다.
다음 포스팅에선 L1 레이어에서 확장성 문제 해결에 이용하는 샤딩에 대해 알아보겠다.
'소프트웨어 엔지니어링 > 블록체인,WEB3' 카테고리의 다른 글
web3 의 확장성 향상 동향 2. L1, L2 레이어, 샤딩 (0) | 2023.04.09 |
---|---|
공부 링크들 (0) | 2022.09.09 |