“누가 먼저 보냈는가”는 블록체인에서 가장 민감한 질문 중 하나입니다. 솔라나는 리더가 트랜잭션을 받아 시간 축에 올리고, Tower BFT가 검증자 투표로 그 순서를 확정합니다. 이 글은 그 과정을 단계별로 정리합니다.

1. 리더가 트랜잭션을 모은다

현재 슬롯을 담당하는 리더는 네트워크에서 트랜잭션을 수집합니다. 리더는 각 트랜잭션을 현재 PoH 해시와 함께 기록해, 정확히 어느 시점에 들어왔는지 시간 축 위에 올립니다. 이로써 트랜잭션의 상대적 순서가 정해집니다.

2. 블록이 전파된다

리더가 만든 블록은 Turbine이라는 전파 구조를 통해 검증자들에게 쪼개어 전달됩니다. 각 검증자는 전체 블록이 아니라 자기에게 해당하는 조각을 먼저 받고, 이를 다시 이웃 검증자에게 전달해 전파 속도를 높입니다.

3. Tower BFT가 투표를 모은다

검증자는 블록의 해시가 올바른지 확인한 뒤 투표합니다. Tower BFT는 이 투표를 누적해 “이 블록이 확정될 만큼 충분한 합의가 쌓였는가”를 판단합니다. 일정 횟수 이상의 투표가 쌓이면 블록은 확정(fork가 되돌려질 수 없는 상태)됩니다.

포크와 확정: 솔라나는 같은 슬롯에 여러 후보 블록이 생길 수 있지만, Tower BFT가 가장 많은 투표를 받은 분기를 선택하고 나머지는 버립니다. 한번 확정되면 되돌릴 수 없습니다.

4. 순서가 확정된다

투표가 임계값을 넘으면 해당 슬롯의 트랜잭션 순서가 최종적으로 인정됩니다. 이후 블록들은 이 확정된 순서 위에 이어지므로, 전체 네트워크가 같은 순서를 공유하게 됩니다.

왜 이 구조가 빠른가

  • PoH가 시간을 미리 기록해 두어, 매 트랜잭션마다 시간을 합의할 필요가 없습니다.
  • 리더가 순서를 제안하고 검증자가 빠르게 투표하는 구조라 메시지 왕복이 적습니다.
  • Turbine이 데이터를 분할 전파해 대역폭을 효율적으로 씁니다.

초보자를 위한 요약

리더가 시간 축에 트랜잭션을 올리고 → 검증자가 투표하고 → Tower BFT가 충분한 투표를 확인해 순서를 확정합니다. 이 흐름이 솔라나가 빠르면서도 일관된 순서를 유지하는 핵심입니다.

안내: 이 글은 학습용 개념 설명입니다. 실제 구현 세부사항은 솔라나 공식 문서를 참고하세요. 거래 순서에 따른 수익을 보장하지 않습니다.