블록체인에서 다른 노드에 데이터를 전송하는 시간을 줄이기 위한 솔루션의 레퍼런스를 기록했다. 솔루션의 방향은 크게 다음과 같이 분류할 수 있다.
- 릴레이 네트워크
- 대역폭 줄이기
1. Relay Network
전 세계의 허브를 통해 데이터를 송수신한다.
- FIBRE - Bitcoin
- Falcon
Related Works
SABRE - Protecting Bitcoin against Routing Attacks2. Reducing Bandwidth Usage
블록이 전파되기 전에도 이미 다수의 트랜잭션을 노드가 갖고 있으나, 블록 전달시 모든 트랜잭션을 한번 더 전송한다.
→ 수신하는 노드에 인바운드 대역폭 스파이크가 발생할 가능성이 있고, *buffer bloat으로 인해 인터넷 연결이 일시적으로 사용 불능 상태가 될 수 있어 블록전달이 지연될수 있다.
*buffer bloat: 패킷의 **버퍼(큐)의 크기가 확장됨으로써 버퍼링 딜레이가 발생
**버퍼: 스위치, 라우터 등의 네트워크 장비에서 queue, FIFO 등의 데이터를 임시로 저장하는 메모리공간
대역폭 사용량을 줄여야함(이미 보유한 트랜잭션은 전송할 필요가 없으나 DoS attack도 방지해야함)
부작용으로 인한 블록 전송 대기 시간을 줄임
압축하는 방법도 고려
Using Compression
Compact BlocksXThinner
Using Probabilistic Data structure(Set reconciliation)
XThin Blocks(Xtreme Thinblocks) +α - Using Bloom FilterGraphene-Using IBLTs & BloomFilterErlay
아래 블록 동기화 문제는, 블록에 참여하기 시작하는 노드에 대한 내용이나, 함께 보아야할 필요가 있음.
Related Works
Bloom FilterIBLTs(Invertible Bloom Lookup Tables)O(1) block propagation - Gavin Andresen이 비트코인시절 IBLT를 이용한 개선방법에 대해 쓴글확률적 자료구조(probabilistic data structures)