Solana의 파이프라인: 트랜잭션 처리 장치

세계 최초의 웹-규모 블록체인으로 성장하기 위해 필요한 하위 초단위의 승인 시간과 트랜잭션 용량을 도달하기 위해서는 빠른 합의를 구성하는 것으로는 충분하지 않다. Solona 팀은 대량의 트랜잭션 처리를 신속하게 검증함과 동시에 네트워크에 배포할 수 있는 방법을 개발하였다. 이를 달성하기 위해 Solana 네트워크의 트랜잭션 검증 프로세스는 CPU 설계의 공통 최적화 방법인 파이프라이닝을 광범위하게 이용한다.

파이프라이닝은 일련의 단계에 의해 처리되어야 하는 입력 데이터 스트림이 존재하고 각 단계에 대해 서로 다른 하드웨어가 존재할 때 적용 가능한 프로세스이다. 이를 설명하기 위한 본질적인 비유로는 세탁기와 건조기를 예를 들 수 있는데 이는 즉 여러 빨래감을 순차적으로 세탁/건조/개기르 이행하는 것부터 시작한다. 세탁은 건조 전에 이행되어야 하며 건조 또한 개기 전에 이행되어야 한다. 단, 이 3가지 작업은 별도의 장치에 의해 수행된다.

효율성을 극대화하기 위해 단계별 파이프라인을 만들어야 한다. 세탁기를 1단계, 건조를 2단계, 그리고 개기를 3단계로 정의한다. 이 파이프라인을 실행하기 위해서는 누군가가 첫 번째 빨래감이 1단계에서 2단계로 넘어갔을 때 1단계에 두 번째 빨래감을 넣어야 한다. 이와 비슷하게, 첫 번째 빨래감이 개질 동안 두 번째 옷감은 건조단계로 넘어가야 하며 세 번째 빨래감은 1단계에 동시에 들어가야 한다. 이와 같이, 무한한 빨래감이 있을 경우 파이프라인은 단계 중 가장 느린 단계의 속도로 빨래감을 처리하게 된다.

Solana의 창립자이자 CTO인 Greg Fitzgerald는 “모든 하드웨어가 항상 바쁘게 움직일 수 있는 방법을 찾아야 했습니다. 이는 네트워크 카드, CPU 코어, 그리고 GPU 성능을 의미합니다. 이를 달성하기 위해 CPU 설계 디자인에서 한 아이디어를 얻었습니다.”라고 설명했다. 그는 또한, “우리는 소프트웨어에서 4 단계의 트랜잭션 프로세스를 만들었습니다. 우리는 이것을 TPU, 또는 Transaction Procesing Unit (트랜잭션 처리 장치)라고 정의했습니다.”라고 덧붙였다.

Solana 네트워크 상의 파이프라인 메커니즘(트랜잭션 처리 장치)는 커널 레벨에서 데이터 페칭, GPU 레벨에서 시그니처 검증, CPU 레벨에서 뱅킹, 그리고 커널 공간에서 쓰기를 통해 진행된다. TPU가 블록을 검증자들에게 전송하기 시작할 때는 이미 다음 패킷으로 제공되어 있을 것이며 시그니처가 검증되어 있을 것이고 토큰을 지급하기 시작할 것이다.

검증자 노드는 두 개의 파이프라인 프로세스를 운영한다. 하나는 TPU라고 하는 운영자 모드이며 다른 하나는 TVU라고 하는 검증자 모드이다. 두 종류 모두 파이프라인되는 하드웨어는 동일하며 네트워크 입력, GPU 카드, CPU 코어, 디스크 쓰기 및 네트워크 출력이 동일하다. 단, 하드웨어를 사용하는 방식에 차이가 있다. TPU는 원장을 작성하기 위해 존재하는 반면, TVU는 이를 검증하기 위해 존재한다.

Fitzgerald는 “서명 검증이 병목현상이 될 것이라는 것을 알고 있었지만 GPU로 떠넘길 수 밖에 없는 불가피한 절차였습니다.”라고 설명했다. 그는 추가적으로 “가장 비용이 만이 드는 이번 작업을 넘긴 후에도 아직 부가적인 병목현상이 남아있습니다. 이는 일시처리를 제한하는 스마트 컨트랙트 내에서 네트워크 드라이버와의 상호작용과 데이터 의존성 관리 등이 있습니다.”라고 말했다.

이 4단계 파이프라인의 GPU 병렬화 사이에서 Solana TPU는 언제든지 50,000개의 트랜잭션을 동시에 처리할 수 있다. Fitzgerland는 “이는 슈퍼컴퓨터가 아닌 $5,000 미만의 기성 컴퓨터로도 실행이 가능하다.”라고 설명했다.

GPU가 Solana의 트랙잭션 처리 장치에 오프로드되면, 네트워크는 단일 노드 효율성의 영향을 미칠 수 있다. 이를 해결하는 것이 Solana의 초기 목표였다.

Fitzgerald는 “다음 과제는 어떻게든 리더 노드에서 모든 검증자 노드를 네트워크 처리속도를 줄이지 않는 선에서 분리하는 것입니다. 이를 달성하기 위해 터빈(Turbine)이라고 하는 블록 전파 전략을 구성하였습니다.”라고 설명했다.

Fitzgerald는 “터빈(Turbine)을 통해 검증자 노드를 여러 레벨로 구조화하여 각 레벨이 상위 레벨의 두 배 크기를 유지하도록 할 수 있습니다. 이 구조와 명확한 레벨로 인해 승인 시간은 노드의 수가 아닌 트리의 높이에 비례합니다. 네트워크 규모가 두 배로 증가할 때마다 승인 시간이 약간 증가하는 것이 다입니다.”라고 덧붙였다.

파이프라이닝과 같은 기술적 구현 외에도 Solana의 웹-스케일 블록체인 기능을 가능하게 하는 몇 가지 핵심 기술이 있다. 더 자세한 정보는 Solana 블로그에서 확인할 수 있다.

Solana 네트워크를 가능하게 하는 8가지 핵심 기술:

  • Proof of History (POH)— 합의 이전의 시계;
  • Tower BFT – PoH 기반 최적화된 버전의 PBFT;
  • Turbine – 블록 프로퍼게이션 프로토콜;
  • Gulf Stream – 멤풀이 없는 트랜젝션 전달 프로토콜
  • Sealevel  – 스마트 컨트렉트 병렬처리 실행시간;
  • Pipelining검증 최적화를 위한 트랜잭션 처리 장치
  • Cloudbreak – 수평으로 확장된 계정 데이터베이스; 그리고
  • Archivers – 분산 원장 스토어