걸프스트림 : 솔라나의 멤풀이 없는 트랜잭션 전송 프로토콜

“솔라나의 50,000TPS 블록체인 네트워크를 가능케하는 7 가지 주요 기술 중 하나 이해하기

솔라나는 세계에서 가장 성능이 뛰어난 무허가형 블록체인입니다. 현재 솔라나 테스트넷에는 각기 독립된 200 개의 노드가 있고, GPU로 실행할 때 5만 TPS 이상의 트랜잭션 속도를 지원합니다.
솔라나 네트워크를 가능하게하는 7 가지 주요 혁신은 다음과 같습니다:
역사 증명(POH)— 합의 이전의 시계;
타워 BFT(Tower BFT) – PoH 기반 최적화된 버전의 PBFT;
터민(Turbine) – 블록 프로퍼게이션 프로토콜;
걸프스트림(Gulf Stream) – 멤풀이 없는 트랜젝션 전달 프로토콜
씨레벨(Sealevel) – 평행 스마트 컨트렉트 런타임;
클라우드브레이크(Cloudbreak) – 수평으로 확장된 계정 데이터베이스; 그리고
복제자(Replicators) – 분산 원장 저장소
“이 게시글에서는 고성능 적대 네트워크(adversarial network)를 위한 솔라나의 멤풀 관리 솔루션인 걸프스트림(Gulf Stream)에 대해 살펴 보겠습니다. 다른 게시글에서 7가지 주요 혁신을 모두를 설명할 예정입니다.

멤풀에 관한 설명
“멤풀은 제출되었지만 아직 네트워크에서 처리되지 않은 일련의 트랜잭션입니다. 비트코인과 이더리움의 멤풀이 그 예시입니다.

바이트로 측정된 30일 비트코인 멤풀
트랜젝션으로 측정된 30일 이더리움 멤풀
“비트 코인과 이더 리움의 경우, 미확인된 거래 신청수는 위에서 보시는 바와 같이 일반적으로 20K-100K 정도 입니다. 보통 미확인된 트랜잭션 수로 측정되는 멤풀의 크기는 블록 스페이스의 공급과 수요에 따라 다릅니다. 블록체인 초기에도 멤풀이 커지면서 전체 네트워크에 상당한 병목 현상이 발생시켰습니다.

“그렇다면 솔라나는 이 문제를 어떻게 해결하나요? 네트워크 처리량을 늘리지 않으면서 솔라나검증 노드들은 100,000 크기의 멤풀을 관리할 수 ​​있습니다. 즉, 네트워크 처리량이 50,000TPS이면 몇 초 만에 100,000 개의 트랜잭션 멤풀이 실행됩니다. 이것이 바로 솔라나를 세계에서 가장 성능이 뛰어난 무허가형 블록 체인으로 만드는 비결입니다.

“인상적이지 않습니까? 그러나 이러한 간단한 분석은 많은 중요한 요소들을 무시합니다.

“이더리움과 비트코인의 멤풀은 가십 프로토콜을 사용하여 peer-to-peer 방식으로 임의적인 노드들 사이로 전파됩니다. 네트워크의 노드는 주기적으로 로컬 멤풀을 나타내는 블룸 필터를 구성하고, 네트워크에 있는 다른 노드의 필터 (최소 거래 비용과 같은 몇몇 다른 조건들과 함께)와 일치하지 않는 트랜잭션 을 요청합니다. 단일 트랜잭션을 나머지 네트워크로 전파하는 데는 최소한 log (N) 단계가 걸리며, 이를 필터링하는 데 필요한 대역폭, 메모리 및 계산 리소스가 소모됩니다.

“벤치마크 클라이언트가 초당 100,000 개의 트랜잭션을 생성하기 시작하면, 가십 프로토콜은 압도됩니다. 메모리에서 모든 트랜잭션을 유지하면서 필터를 계산하고 머신에 필터를 적용하는 비용은 큰 폭으로 커집니다. 리더 (블록 생산자)도 동일한 트랜잭션을 블록으로 다시 전송해야합니다. 즉, 모든 트랜잭션이 네트워크를 통해 최소 두 번 전파되며, 이는 비효율적이며 기능적이지 않습니다.

걸프스트림(Gulf Stream) 소개
“이 문제에 대한 솔라나의 해결채은 트랜잭션 캐싱 및 전달을 네트워크 가장자리로 푸시하는 것입니다. 우리는 이것을 걸프 스트림이라고 부릅니다. 모든 검증 노드는 예정된 리더의 순서를 알고 있기 때문에 클라이언트와 검증 노드는 사전에 예상 리더에게 트랜잭션을 전달합니다. 이를 통해 검증 노드는 미리 트랜잭션을 실행하며, 확인 시간을 단축할 수 있습니다. 또한, 리더를 더 빠르게 전환하고, 확인되지 않은 트랜잭션 풀의 검증 노드에 대한 메모리 부담을 줄여줍니다. 사전에 리더노드가 정해지지 않는 네트워크에서는 이 해결책을 사용할 수 없습니다

“걸프스트림은 어떻게 구현될까요? 월렛과 같은 클라이언트는 특정 블록 해시를 참조하는 트랜잭션에 서명합니다. 클라이언트는 네트워크에 의해 완전히 검증된 비교작 최근의 블록 해시를 선택합니다. 대략 800밀리초마다 블록이 생성되며, 기하급수적으로 증가하는 타임아웃은 매번 새로운 블록이 추가될 때 증가되는 정도가 줄어들어야 합니다. 초기 설정된 타임아웃 곡선에서 보면, 최악의 경우, 최종 확정된 블록 해시값들은 이전에 생성된 32개의 블록에 사용된 것들입니다. 블록당 800ms의 시간을 가정하면 25.6 초에 해당합니다.

“Once a transaction is forwarded to any validator, the validator forwards it to one of the upcoming leaders. Clients can subscribe to transaction confirmations from validators. Clients know that a block-hash expires in a finite period of time, or the transaction is confirmed by the network. This allows clients to sign transactions that are guaranteed to execute or fail. Once the network moves past the rollback point such that the blockhash the transaction reference has expired, clients have a guarantee that the transaction is now invalid and will never be executed on chain. 거래가 검증 노드로 전달되면, 검증 노드는 이 거래를 다음 순서의 리더 중 한명에게 전달합니다. 클라이언트는 검증 노드가 트랜잭션을 확정하는 것에 동의할 수 있습니다. 클라이언트는 블록 해시가 제한된 기간 내에 만료되거나 네트워크에서 트랜잭션이 확정된다는 것을 알고 있습니다. 이 때문에 클라이언트는 확실히 실행될 혹은 그렇지 않은 트랜잭션에 서명할 수 있습니다. 네트워크가 롤백 시점을 지나 트랜잭션이 참조하는 블록 해쉬값이 만료되면, 클라이언트는 그 트랜잭션이 유효하지 않으며 체인에서 절대 실행되지 않는다는 것을 보장받게 됩니다.

오프 더 체인: 아나톨리 야코벤코, 솔라나 대표 및 공동 설립자: “샤딩”이 실제로 의미하는 바는…
‎아나톨리 야코벤코는 솔라나 대표이자 공동 설립자입니다. 이번 에피소드에서, 아나톨리와 안토니 폼플리아노는… podcasts.apple.com
“이러한 아키텍처에는 그 나름대로 몇 가지 긍정적인 부작용이 있습니다. 먼저, 처리량이 많지 않은 검증 노드는 미리 트랜잭션을 실행할 수 있고, 실패한 트랜잭션을 삭제할 수 있습니다. 둘째, 리더는 거래를 전달한 검증 노드의 스테이킹한 양에 따라 트랜잭션 처리의 우선 순위를 정할 수 있습니다. 이로 인해 대규모의 서비스 거부 중 네트워크가 저하 될 수 있습니다.

“블록체인 네트워크는 멤풀이 적으면 적을 수록 성능이 좋아진다는 것은 자명한 사실입니다. 트랜잭션 처리량이 제한된 네트워크들이 끊임없이 증가하는 멤풀을 해결하기 위해 완전히 새로운 스케일링 기술을 개조하려는 노력을 기울이고 있지만, 솔라나는 처음부터 역사증명, 걸프스트림, 파이프라인 VM과 같은 최적화 기술로 구현되어 블록체인 1세대가 가지고 있던 문제점들을 해결하고 방대한 거래 처리를 가능하게 했습니다. 그 결과 웹스케일, 초고속에서부터 시작하여 전 세계 기업, 경제, 사람들을 위한 고성능, 탈중앙화 인프라를 구축하는데 있어서 근본적인 발전을 가져오게 되었습니다.