분산 블롭 재구성, 슈퍼노드에 몰린 복구 작업 나누기

Strawmap I* (2028) · distributed blob reconstruction

PeerDAS에서 슈퍼노드가 혼자 떠안던 블롭(blob) 복구 작업을 행(row) 단위 가십 토픽으로 쪼개 네트워크의 모든 노드가 나눠 맡게 합니다. 슈퍼노드 없이도 데이터를 되살릴 수 있는 길이 생깁니다.

왜 필요한가

PeerDAS(EIP-7594)는 블록에 실린 블롭 데이터를 소거 부호(erasure coding)로 늘려 128개 열(column)로 나누고 그중 64개 이상을 받은 노드가 전체를 되살리도록 설계됐습니다. 그런데 이 복구 작업은 사실상 128개 열을 모두 구독하는 슈퍼노드(supernode)가 혼자 맡습니다. 블롭 수가 늘면 슈퍼노드 한 대가 떠안는 부담도 그만큼 늘고, 슈퍼노드마다 빠진 블롭을 전부 되살리느라 같은 일을 겹쳐서 합니다. 이 일을 네트워크 안에서 나눌 방법도 없습니다. EIP 원문은 슈퍼노드 의존이 한 곳에 집중된 약점이어서 네트워크 복원력이 바람직한 수준에 못 미친다고 봅니다. RowDAS는 노드마다 블롭 공간의 다른 부분을 우선 되살리게 해서 더 빠르고 CPU를 덜 쓰고 더 튼튼한 복구 구조를 만들려는 제안입니다. 2026년 8월 ACDC 184차 콜에서 헤고타(Hegota) 후보로 접수됐지만 10월 189차 콜에서 클라이언트 지지가 낮고 현재 블롭 수요가 적어 급하지 않다는 이유로 후보에서 빠졌습니다. EIP는 아직 초안(Draft) 단계입니다. Strawmap은 2028년 I* 포크 칸에 두고 있지만 예상일 뿐 확정이 아닙니다.

어떻게 동작하나

  1. 열로 쪼개 뿌리기 PeerDAS는 블롭 데이터를 소거 부호로 늘려 128개 열로 나눠 퍼뜨립니다. 열을 64개 이상 받은 노드는 나머지를 계산해 전체를 되살릴 수 있습니다.
  2. 행 서브넷 배정 data_row_{subnet_id}라는 행 서브넷 128개를 새로 둡니다. 블롭은 슬롯마다 바뀌는 의사 무작위 순열로, 노드는 자기 node_id 해시로 담당 서브넷이 정해집니다. 둘 다 체인 상태 없이 계산할 수 있습니다.
  3. 나눠서 되살리기 열을 64개 이상 구독하는 행 재구성자는 지정된 행 서브넷을 꼭 구독하고 그 행의 블롭을 먼저 되살립니다. 셀 단위 전송을 지원하는 다른 노드도 구독이 권장되지만 보관 의무는 없습니다.
  4. 되살린 조각 돌려주기 복구한 셀은 자기가 구독하는 열 토픽 이웃에게 보내고 구독하지 않는 열 서브넷의 피어에게도 fanout으로 건넵니다. 무작위로 고른 일부 열에만 알리거나 전송을 늦춰 기존 구독자와 겹치지 않게 할 수 있습니다.

관련 EIP

← 로드맵