셀 단위 델타, 없는 조각만 받는 블롭 전파

Strawmap Glamsterdam (2027년 초) · cell-level deltas

PeerDAS에서 블롭 데이터 컬럼을 통째로 주고받는 대신, 노드가 아직 갖고 있지 않은 셀만 골라 받는 네트워크 최적화입니다. 하드포크 없이 노드별로 점진 배포할 수 있습니다.

왜 필요한가

블록이 참조하는 블롭은 대부분 각 노드의 멤풀(mempool, 대기 중인 거래 저장소)에 이미 들어와 있습니다. 그런데 지금 구조에서는 블롭 하나만 멤풀에 없어도 합의 계층이 데이터 컬럼 전체를 네트워크에서 다 받아야 데이터 가용성 검사를 통과할 수 있습니다. 이미 가진 데이터를 다시 받느라 대역폭을 낭비하고 빠진 조각 하나 때문에 전체를 기다리는 셈입니다. 이 항목은 컬럼을 잘게 나눈 단위인 셀(cell) 수준에서 서로 무엇을 갖고 있는지 알리고 없는 셀만 받아오게 해서 이 낭비를 줄입니다. 새 프로토콜을 만드는 대신 기존 가십섭(gossipsub) 동작을 확장하는 방식이라 메시지 전파 구조는 그대로 두고 하드포크 없이 클라이언트별로 먼저 적용할 수 있습니다. Strawmap에서는 Glamsterdam 칸에 놓여 있지만 이는 예상일 뿐 확정은 아닙니다.

어떻게 동작하나

  1. 가진 셀을 서로 알립니다 노드끼리 어떤 셀을 갖고 있는지 비트맵으로 교환합니다. 가십섭의 부분 메시지 확장(Partial Messages Extension)을 사용합니다.
  2. 없는 셀만 요청합니다 멤풀에 이미 있는 셀은 건너뛰고 빠진 셀만 피어에게 요청해 받습니다. 기본 전략이 밀어 보내기(push)에서 당겨 받기(pull)로 바뀝니다.
  3. 컬럼을 채우고 검사를 통과합니다 빠진 셀을 채우면 컬럼이 완성되어 데이터 가용성 검사를 진행할 수 있습니다. 데이터를 미리 밀어 보내는 방식(eager push)도 가능하지만 기본 동작은 아닙니다.

관련 EIP

← 로드맵