Solana 2.0 업데이트, 그 이후

: QUIC, Fee Market, Stake-weighted QoS

Junghoon
CURG
10 min readNov 11, 2022

--

고정훈 | researcher of CURG | kjh24871@naver.com

Solana Network가 최근 2.0 업데이트라고 발표할 만큼 큰 스케일의 버전-업 업그레이드를 완료했다. 이 글에서는 업데이트 내용과 그 이후의 상황에 대해서 알아보려고 한다.

Solana Network에게는 보안성과 탈중앙화에 있어서 큰 문제점이 있었고, 이는 곧 솔라나 하면 따라오는 수식어이자 아킬레스건과 같았다.

기존 문제점

1. 말도 안되는 하드웨어 스펙

이더리움과 같은 지향점을 가진 솔라나이기에 솔라나와 이더리움을 비교해 보면 노드 참가 조건 중 하나인 하드웨어 스펙이 말도 안 되게 높다는 것을 알 수 있다. 하드웨어 스펙이 높으면 당연하게 노드로 참가하려는 유저도 적어지게 되고, 이는 곧 탈중앙화를 해치게 되는 요인이 된다.

2. 저렴한 가스비

출처 : https://genesisblockhk.com/the-rise-of-solana

솔라나의 평균 가스비는 거의 0원에 수렴한다. 유저의 입장에서 보면 낮은 수수료가 뭐가 문제가 되냐마는 0원에 가까운 가스비로 인해 솔라나 생태계는 DDos 공격에 핵심 타깃이 되고 있다. 실제로 솔라나 Discord에서 자유롭게 봇 거래를 하고 있는 상황이고, 누구의 봇이 더 빠른지 대결하고 더 빠른 봇이 거래에 채택되는 게 당연해졌다. 이더리움에서는 높은 가스비로 인해 이 문제를 막았지만, 솔라나는 속도를 채택하고 보안성을 버렸다.

또한 이러한 스패밍 공격으로 인해 트래픽 과부하로 네트워크가 느려지거나, 멈춘 경험이 올해에만 8번이 있었다. 이 외에도 PoH 자체의 문제, 프로토콜의 보안성 문제 등등 모든 문제를 나열하기엔 너무나도 긴 글이 될 것이다.

3가지 솔루션

재단 측에서도 이 문제를 직시하고 있었으며 이 문제를 해결하기 위해 3가지의 솔루션 방안을 내놓았다.

#1. QUIC (Quick UDP Internet Connections)

QUIC은 2012년 구글에서 발표한 프로토콜 방식이며 현재 구글 서버, 크롬, 유튜브 등 많은 서버에서 통신 표준으로 사용하고 있다. 기존에 사용했던 프로토콜 방식은 TCP와 UDP 방식이며 동작 방식은 아래와 같다.

출처 : https://dev.to/tamerlang/udp-in-depth-15e5

UDP는 사전 연결 없이 서버 측에서 request가 들어오면 바로 response를 브로드캐스팅 방식으로 보낸다. 이 장점은 서버와 클라이언트가 굳이 연결을 안 해도 되기에 속도가 빠르고 가볍지만 중간에 데이터 패킷이 사라져도 서버와 클라이언트 어느 누구도 모르기에 연결의 신뢰성은 낮다.

그에 반해, TCP는 서버와 클라이언트가 통신 전에 서로의 연결을 구성하는 3-way handshaking 방식을 채택하고 있다. 클라이언트는 서버에게 연결을 의미하는 SYN 데이터를 보내고 SYN를 받았다는 응답으로 SYN ACK를 서버 측에서 클라이언트에게 보낸다. 그 후 클라이언트는 연결 완료 후 데이터 보내기를 시작한다는 의미의 ACK를 보내고 서로의 연결 과정은 끝나게 된다. 이 과정을 거치고 데이터를 보내기 때문에 데이터의 신뢰성은 확실하지만 당연하게도 속도도 느리고 데이터가 무겁다.

블록체인은 안정성과 보안성을 중요시하기에 당연스럽게 다른 체인들은 TCP 프로토콜의 채택이 했지만, 솔라나는 달랐다.

TCP의 문제점

출처 : https://http3-explained.haxx.se/ko/why-quic/why-tcphol

TCP는 데이터의 통신의 안정성을 위해 클라이언트가 데이터를 받으면 데이터를 문제없이 잘 받았다는 뜻의 ACK를 서버 쪽에 보낸다. 만약 서버 쪽에서 ACK를 받지 못하면 클라이언트에게 전송된 데이터가 제대로 가지 않았다고 판단되어 해당 데이터 재 전송을 준비한다.

HOL (Head Of Line) 문제는 TCP에서 필연적으로 마주치는 문제이다. 서버 쪽에서 ACK를 받지 못해서 재 전송을 기다리기까지 다음 데이터들은 대기 상태에 있어야 한다. 다음 데이터는 이전 데이터가 재 전송이 완료될 때까지 계속 기다려야 하는 문제이다.

솔라나는 밸리데이터가 많은 수의 코어로 병렬적으로 컨트랙트를 검증하는 방식으로 속도 측면에서 강력한 파워를 가지고 있습니다. 하지만 TCP 방식을 채택하게 되면 이러한 HOL 문제에 직면하게 되어 속도라는 강점에 엄청난 제약이 걸리게 되어 결국 UDP 방식을 채택하게 되었습니다.

QUIC 방법

출처 : https://http3-explained.haxx.se/ko/why-quic/why-tcphol

QUIC은 TCP와 UDP의 장점만 채택한 알고리즘이다. UDP의 초기 연결 단계의 속도와 TCP의 통신 보안성을 모두 챙긴 프로토콜이다. TCP의 3-way handShaking과 달리 한 번의 hand-shaking 과정으로 연결하는 방식을 채택하였고 TCP의 ACK 방식으로 연결의 보안성을 모두 잡았다. 또한 Cache 메모리 구조를 착안하여 최근에 연결된 이력이 있다면 Cache 메모리에서 바로 Latency Time 을 0으로 바로 연결할 수 있고 만약 Cache에 연결 이력이 없다면 연결 설정을 Cache에 저장해 다음 연결 때 사용한다.

출처 : https://http3-explained.haxx.se/ko/why-quic/why-tcphol

또한 TCP의 HOL 문제에 대해서도 솔루션을 제공한다. QUIC는 TCP와 달리 여러 개의 독립된 데이터 링크를 제공해 하나의 데이터 링크가 재 전송으로 인해 대기 상태에 돌입해도 다른 데이터 링크의 연결 상태는 유지되어 정상적으로 데이터를 전송하는 방식으로 멀티 플렉싱 기능을 향상시킨다.

#2. Fee Market

Fee market 업데이트를 통해 솔라나 네트워크는 고정 가스비 방식에서 수수료 경쟁 구도 방식으로 전환했다. 다른 수수료 경쟁 모델과의 차이점은 디앱, 마켓, 옥션, AMM 풀에만 국한해서 수수료 경쟁 방식을 적용하고 특정 시장에 대해서만 수수료 경쟁을 붙이는 Local fee market 전략으로 차별성을 가져가고 있다. 과거 이더리움의 NFT 민팅 경쟁이 과열되어 네트워크 전체에서 배보다 배꼽이 큰 가스비를 지출해야만 했던 사례와 달리 솔라나의 Local fee market 모델은 만약 Magic Eden에서 수수료 경쟁이 심화되었다고 해도 다른 앱에서의 수수료는 큰 영향을 받지 않는다.

출처 : https://twitter.com/voteforpedrito/status/1537447292445278208/photo/1

위 그림은 이더리움의 경우 이더리움 네트워크에 트랙잭션이 몰리면 모든 트랙잭션의 가스비가 계속 올라가게 되는데, 솔라나의 Local fee market 모델의 경우 앱마다 Local Fee State를 따로 두어 수수료 경쟁은 해당 앱 내 에서만 이루어지게끔 한다. 이 모델을 통해 수수료 경쟁이 과열되어 네트워크 전체에 피해 주는 사례를 줄이고, 밸리데이터에게 더 많은 리워드 제공함으로써 탈중앙화에 좀 더 다가가는 효과를 누리게 된다.

#3. Stake-weighted QoS(Quality of Service)

QoS란, 네트워크가 처리할 수 있는 것보다 더 많은 트래픽이 있을 때, 트랜잭션의 우선순위를 지정하는 방식이다. 우선순위 방식은 지분 양에 따라 결정된다. PoH는 PoS 방식에 근간을 두고 있기 때문에 지분에 따라 우선순위가 결정되는 것은 꽤 합리적이다. 이전까지는 UDP 프로토콜을 사용했기 때문에 받은 트래픽의 IP를 알 수 없었지만, QUIC 방식으로 업데이트된 이후에는 QUIC를 통해 IP를 확인할 수 있기 때문에 밸리데이터는 특정 연결에 대한 트래픽의 우선순위를 지정하고 제한할 수 있다.

업데이트 이후,

2022년 10월 31일, 솔라나 네트워크는 3가지의 업데이트 내용을 포함한 버전 업그레이드를 완료하였다. 아직 Local Fee market 부분은 부분적으로만 구현되었다고 밝혔다. 이제 업데이트 이후 트랙잭션 데이터에 대해서 알아보도록 하자.

https://t.co/L4zgYAqdC9"

실제로 업데이트 이후 TPS 수치에 대해서는 크게 증가한 것으로 볼 수 있다.

출처 : 네트워크 성능 보고서: 2022년 10월 (solana.com)

블록 생성 시간 또한 큰 속도로 감소된 것으로 볼 수 있다.

https://beta-analysis.solscan.io/public/dashboard/06d689e1-dcd7-4175-a16a-efc074ad5ce2

Fee market 업데이트로 인해 10월 말 업데이트 이후, 추가적인 가스 요금을 내고 거래를 하는 비율이 월등하게 높아졌다.

결론

3가지 2.0 솔루션 업데이트 이후, 위와 같은 밈 놀림에서 벗어날 수 있길 바란다. 아직 업데이트 초반이라 업데이트 성공의 유무를 따지기엔 너무 이른 시기인 것 같다. 또한, 개인적으로 위의 TPS와 블록 생성 시간에 대한 성능 향상 자료 역시 지금까지 논란이 되어왔던 안정성 문제에 대해 답변을 할 만한 자료는 아니라고 생각한다. 하지만 수수료 시장 정책은 좋은 방향으로 결과를 내고 있는 것으로 보이고 이를 통해 네트워크에 많은 노드가 참여한다면 충분히 좋은 쪽으로 발전할 수 있을 것 같다는 생각이 들었다.

계속해서 솔라나를 지켜보고 앞으로의 방향성에 대해 기대할 수는 있을 것 같다. 이제는 스패밍, 봇 대결이 판치는 스캠 네트워크라는 인식에서 조금이라도 벗어나고 안정성 또한 어느 정도 챙겨갈 수 있었으면 좋겠다.

--

--