본문 바로가기
Block Chain/Web3 Series

[Rollup Series #2] 이더리움의 롤업을 위한 댕크샤딩 & PBS

by 개발이 체질인 나그네 2023. 4. 6.
반응형

안녕하세요. 스마트컨트렉트 개발자 최원혁입니다.

오늘은 크립토씬에서 가장 핫한 키워드인 "롤업"에 대한 내용과 롤업을 위한 이더리움의 기술 댕크샤딩에 대해 알아보겠습니다.

 

| 이더리움 현재 로드맵과 The Surge :

이더리움 로드맵

1) The Merge — 작업 증명 이더리움과 비콘 체인의 합병(merge)을 통해 이더리움을 지분증명으로 전환하고, 이는 앞으로의 확장성 개선 로드맵에 초석이 된다.

2) The Surge — 롤업들의 트랜잭션 데이터 저장 공간을 위한 블롭(blob)이 추가되는 댕크샤딩이 도입되며, 롤업 네트워크들에게 충분한 데이터 가용성을 제공한다.

3) The Verge — 머클트리 대신 버클트리를 도입하여, 노드들이 state 정보를 저장하지 않은 상태에서도 블록을 검증할 수 있게 한다. 이는 검증 노드들의 진입장벽을 낮춤으로써 네트워크의 탈중앙성을 개선할 수 있다.

4) The Purge — 분산 원장 내의 1년이 지난 데이터는 p2p 레이어에서 취급하지 않도록 강제하여, 노드들의 하드 디스크에 대한 진입장벽을 낮추고, p2p 레이어에서의 대역폭을 개선할 수 있다.

5) The Splurge — 위 네 가지 항목에 딱히 속하지 않는 업그레이드들의 모음으로, 주요 업데이트로는 1) MEV 탈중앙화 및 댕크샤딩 도입을 위한 PBS(Proposer-Builder Separation), 2) 지갑의 사용자 경험이 개선되는 계정 추상화(Account abstraction) 등이 포함되어있다.

 출처 : 100y Medeum 아티클
 

[Research] 이더리움 The Merge, 그 이후의 로드맵에 대하여

The Merge 업그레이드 이후, 이더리움 로드맵 상 나머지 업그레이드인 The Surge, Verge, Purge, Splurge에 대하여 개괄적으로 살펴봅니다.

medium.com

 

가장 최근 이더리움 2.0 업데이트를 성공적으로 끝내며 이더리움 로드맵의 1단계 The Merge가 끝이 났습니다. 이더리움 네트워크의 합의 알고리즘 작업증명(PoW)에서 지분증명(PoS)으로 바꾸는 과정이였으며, The Merge 업데이트는 이더리움 네트워크를 친환경적으로 만들었다는데에서 그 의의가 크지만, 이외에도 앞으로 확장성을 개선해나가려는 이더리움의 로드맵의 첫 발판이 되기도 합니다.

 

2단계 The Surge는 이더리움의 확장성을 개선하는 단계입니다. 1단계를 끝낸 지금, 이더리움의 Next Step을 실현하기 위해 많은 아이디어와 연구가 이뤄지고 있습니다. 2020년 10월 비탈릭 부테린은 "레이어 1(L1)의 처리속도를 높히려고 하지말고 레이어2(L2)에서 처리를 많이 하고, 처리된 데이터를 L1에 저장하자" 라고 제안했습니다. 즉, 이더리움은 레이어2를 활용한 "롤업"이 가장 효과적이라 생각하여 이를 실행하고자 합니다.

 

| 이더리움의 확장성 확보 전략 : 롤업(Roll Up)과 샤딩

롤업 이전에 이더리움은 확장성을 해결하기 위해 "샤딩"기술을 통해 "샤드체인"을 따로 구축하여 문제를 해결하려고 했습니다.

*해당 내용은 아래에 자세하게 설명해보겠습니다.

샤딩(Sharding)이란 ?
데이터베이스의 용어로 대규모 데이터를 빠르고 쉽게 관리하기 위해 데이터를 여러 조각으로 나누어 저장하는 기술입니다.

하지만 이런  방식은 기술적인 어려움과 효율성이 낮아 개선할 방법을 찾고 있었습니다. 그 과정에서 "롤업"이라는 개념이 탄생합니다.

롤업이란 L1 체인 위에 별도의 L2 체인을 구축하여, L2에서 트랜잭션을 처리하고 데이터를 저장하며 주기적으로, L1에 저장하는 과정을 뜻합니다. L2는 여러개의 체인을 만들고 각 체인에서 트랜잭션을 처리하며, 기존에 메인넷에 집중된 트랜잭션을 분산하기 위함입니다.

 

때문에 레이어2를 활용한 "롤업"이 가장 효과적이고 실현 가능성이 높은 기술이라 판단하여 비탈리 부테린과 이더리움 재단은 "댕크샤딩"이라는 기술을 활용하여 이를 실현하고자 합니다. 

 

 

| 이더리움 확장성 개선 이전 모델 : 샤드체인 (현재 폐기됨)

이더리움은 데이터의 양이 증가함에 따라  메인넷 하나에 트랜잭션 데이터를 저장하기에 굉장히 무거워지고 느려지게 되었습니다. 이는 더 많은 Dapp과 다양한 스마트컨트렉트가 베포됨에 따라 더욱 악화가 될 것입니다.

 

샤드체인의 장점 :

  1. 이더리움은 "샤드체인"을 만들어서 각 체인에서 트랜잭션을 진행하고 데이터를 집계하여, 이더리움 메인넷에 결과값만 저장하는 구조를 생각했습니다. 이렇게 되면 한정된 용량에 저장될 수 있는 트랜잭션을 분산시켜 확장성을 해결할 수 있습니다.
  2. 이전에 Validator(검증자)는 모든 블록을 검증해야 했지만, 샤드 체인은 자신이 속한 샤드체인의 블록만 검증 할 수 있으며, 검증 단계가 유연해져 하드웨어 사양이 낮아도 쉽게 Validator(검증자)에 참여할 수 있습니다. 이렇게 되면 검증 단계가 빠르게 진행되어 블록 생성 속도 또한 빨라지게 됩니다.

샤드체인의 문제점 :

  • 샤드체인에서 트랜잭션을 동작하고 데이터를 집계하지만, 결과적으로 마지막에 해당 데이터를 메인넷에 저장해야합니다. 이때, 각 샤드에서 보낸 데이터는 메인넷에서 결국 다시 집계해야하고, 모든 데이터를 읽어야합니다.
  • 이 과정에서, 모든 샤드체인의 블록 생성 싱크를 맞춰야지만, 샤드에서 검증된 블록들이 밀리지 않고 메인넷에 저장 할 수 있습니다. 만약 싱크가 안맞아서 각 샤드체인의 블록 생성 타이밍이 서로 맞지 않는다면, 어떤 샤드체인에선 검증이 성공하여 내 트랜잭션이 성공했다 생각했지만, 메인넷에 반영이 안되는 일이 발생할 수 있습니다.
  • 이는 기술적으로 구현하기 매우 어려우며, 현실적으로 해결할 수 있는 확실한 방안이 아직 없습니다.

 

| 이더리움 확장성 개선 현재 모델 : 댕크샤딩 (가장 유력한 기술 후보)

댕크 샤딩은 Dankrad Feist라는 이름을 가진 사람이 제안한 방법이라, 이름 앞부분을 따서 댕크샤딩이라 이름을 지었습니다. 

이전 모델에서는 트랜잭션을 실행하고 데이터를 저장하는 별도의 샤드체인을 구축하려고 했습니다. 

이를 개선하여, 댕크샤딩은 레이어2 체인에서 트랜잭션"만" 실행하고, 비콘체인(L1)내에 레이어2가 보낸 데이터"만" 저장할 수 있는 샤드를 만드는것이 주요 관점입니다.

 

출처 : 100y 트위터

즉, 댕크샤딩은 이더리움 네트워크에 (shard) blob data라는 새로운 데이터 구조를 추가한 것입니다.

 

기존의 데이터 저장공간 : Calldata 

  • 이더리움 네트워크는 3가지 저장 공간(Memory, Storage, Calldata)이 있으며, 기존의 롤업 데이터는 Calldata라는 저장 공간을 활용했었습니다. 기존의 트랜잭션 데이터는 블록의 Regular tx에 저장되었고 여기에 Calldata의 데이터도 포함되었습니다.
  • Regular tx는 블록(노드)에 최종적으로 저장되었으며, 블록의 저장 공간을 확장시키는데 한계가 있기에, Calldata는 많은 양의 데이터를 저장할 수 있는 공간을 확보해야하는 롤업에 적합하지 않았습니다.

 

롤업의 데이터 저장 공간 : (shard) blob 

  • Calldata를 저장하는 블록은 데이터 저장공간을 확장시키는데 한계가 있기에, 블록이 아닌 별도의 데이터를 저장할 수 있는 샤드(blob)를 구축하여 롤업이 보내는 데이터를 저장하는것이 댕크샤딩의 목적입니다.
  • blob은 EVM이 접근 할 수 없는 데이터 공간이기에, Calldata보다 훨씬 저렴하게 설계되어 롤업체인이 큰 부담감 없이 데이터를 저장할 수 있기에, 확장성과 비용문제를 해결할 수 있습니다.

 

| 이더리움 확장성의 또다른 문제점(중앙화)와 해결 방안 : 

노드 및 Validator(검증자)의 중앙화 :

이더리움의 확장성은 또다른 문제점을 야기합니다. 확장성을 해결했다는건 노드가 처리해야하는 데이터의 크기가 증가했다는걸 의미합니다.

이렇게 되면 그 노드를 검증하는 Validator(검증자)는 이를 검증하기 위해 많은 비용처리가 발생하게 되며, 이는 결국 비용을 많이 쓸 수 있는 사람만 검증할 수 있는 구조가 되어 점점 중앙화되어 갈것입니다. 이를 해결하기 위해 새롭게 제안된 개념이 PBS(Proposer-Builder Separation)입니다.

 

 

중앙화 해결 방안 : PBS(Proposer-Builder Separation)

PBS는 댕크샤딩의 선행조건으로 기존에 POS 지분증명을 따르는 검증자의 검증 과정을 개편한 내용입니다.

 

· 기존의 검증 과정 :

1. 블록체인에서 발생하는 트랜잭션은 먼저 Mempool에 모입니다. 이때의 트랜잭션의 상태(status)은 Pending 상태로 기록됩니다.

멤풀(Mempool) : 아직 블록에 들어가지 않은 상태의 트랜잭션들이 어떤 공간

2. 블록의 정해진 용량으로 처리할 수 있는 트랜잭션의 양은 정해져있기에, 제안자(Proposer)는 트랜잭션을 골라서 블록을 만듭니다. 여기서 제안자는 랜덤으로 선발됩니다.

3. 블록을 생성한 제안자는 증명자들(attesters)에게 검증 및 투표를 진행합니다. 이때 통과된 블록은 상태값을 컨펌(Confirm)으로 바꾸고 블록체인에 연결됩니다. 이러한 제안과 검증과정에 참여한 조직을 위원회(Committe)라 칭합니다.

 

 

노드가 처리해야하는 데이터의 크기가 증가함에 따라 하드웨어 사양이 높은 사람만 위원회에 참여하여 제안자가 될 수 있기에, 블록을 생성함에 있어서 제안자(Proposer)의 권한이 너무 강력해져 중앙화 가능성이 생깁니다. PBS(Proposer-Builder Separation)는 이러한 중앙화를 억제하기 위해 제안자의 역할을 둘로 나뉘는 내용입니다.

 

 

· PBS 검증 과정 :

1. 기존의 제안자가 블록을 생성하는거와 다르게, PBS는 빌더(Builder)가 트랜잭션을 선택하여 블록을 생성합니다. 이때 빌더는 여러명이 될 수 있습니다.

2. 빌더는 제안자에게 자신이 만든 블록을 제안합니다. 이때 빌더는 제안 수수료(Propose Fee)를 명시합니다.

3. 제안자(Proposer)는 빌더가 제시한 수수료를 보고 원하는 블록을 선택하여 증명자들(attesters)에게 블록을 제안합니다.

4. 제안한 블록이 컨펌되면 위원회(Committe:Builder ,Proposer, Attesters) 모두 보상을 받습니다.

 

이 과정에서 제안자(Proposer)와 검증및 투표를 진행하는 증명자(Attesters)의 과정을 가볍게 만들어서 속도를 개선하고, 빌더(Builder)가 만드는 블록의 난이도를 어렵게하여 블록 생성의 중앙화를 억재할 수 있습니다. 이것이 PBS가 하고자 개념입니다.

 

 


| Reference :

- https://www.youtube.com/watch?v=4nhWnlk-fZA&t=3s

 

반응형

댓글