셀 단위 델타, 없는 조각만 받는 블롭 전파
Strawmap Glamsterdam (2027년 초) · cell-level deltas
PeerDAS에서 블롭 데이터 컬럼을 통째로 주고받는 대신, 노드가 아직 갖고 있지 않은 셀만 골라 받는 네트워크 최적화입니다. 하드포크 없이 노드별로 점진 배포할 수 있습니다.
왜 필요한가
블록이 참조하는 블롭은 대부분 각 노드의 멤풀(mempool, 대기 중인 거래 저장소)에 이미 들어와 있습니다. 그런데 지금 구조에서는 블롭 하나만 멤풀에 없어도 합의 계층이 데이터 컬럼 전체를 네트워크에서 다 받아야 데이터 가용성 검사를 통과할 수 있습니다. 이미 가진 데이터를 다시 받느라 대역폭을 낭비하고 빠진 조각 하나 때문에 전체를 기다리는 셈입니다. 이 항목은 컬럼을 잘게 나눈 단위인 셀(cell) 수준에서 서로 무엇을 갖고 있는지 알리고 없는 셀만 받아오게 해서 이 낭비를 줄입니다. 새 프로토콜을 만드는 대신 기존 가십섭(gossipsub) 동작을 확장하는 방식이라 메시지 전파 구조는 그대로 두고 하드포크 없이 클라이언트별로 먼저 적용할 수 있습니다. Strawmap에서는 Glamsterdam 칸에 놓여 있지만 이는 예상일 뿐 확정은 아닙니다.
어떻게 동작하나
- 가진 셀을 서로 알립니다 노드끼리 어떤 셀을 갖고 있는지 비트맵으로 교환합니다. 가십섭의 부분 메시지 확장(Partial Messages Extension)을 사용합니다.
- 없는 셀만 요청합니다 멤풀에 이미 있는 셀은 건너뛰고 빠진 셀만 피어에게 요청해 받습니다. 기본 전략이 밀어 보내기(push)에서 당겨 받기(pull)로 바뀝니다.
- 컬럼을 채우고 검사를 통과합니다 빠진 셀을 채우면 컬럼이 완성되어 데이터 가용성 검사를 진행할 수 있습니다. 데이터를 미리 밀어 보내는 방식(eager push)도 가능하지만 기본 동작은 아닙니다.
관련 EIP
- EIP-8136 데이터 컬럼 전파의 셀 단위 델타