Solana는 어떻게 개선되어야 온체인 나스닥의 비전을 실현할 수 있을까요?
원제목:《The Path to Decentralized Nasdaq》
저자 :Max Resnick(Anza)\& Anatoly Yakovenko(Solana Labs)
편집 :GaryMa 우쉬어 블록체인
Solana는 나스닥보다 효율적인 탈중앙화 거래 네트워크를 구축하는 것을 목표로 하고 있지만, 현재의 블록체인 설계는 기대에 미치지 못하고 있으며, 현재 Solana의 시장 조성자는 주문 취소 경쟁에서 승률이 낮습니다(중앙화 거래소의 13%보다 훨씬 낮음). Jito 경매는 단일 리더가 상태 접근을 통제하는 것을 심화시켜 스프레드를 확대시키고 있습니다. 이에 대해, 그들은 합의 메커니즘을 재구성하고, 주문 정렬을 최적화하기 위해 다중 병렬 리더(Concurrent Leaders)를 도입하여 시장 조성자의 역선택 비용을 줄이고 가격 효율성을 높이겠다고 제안합니다.
Solana의 초기 목표는 중앙 제한 주문서를 운영할 수 있을 만큼 충분히 빠르고 저렴한 블록체인을 구축하는 것이었습니다. Solana 메인넷 테스트넷은 2020년 3월에 출시되었습니다 --- --- 지금은 5년이 지났고, 많은 성과를 거두었지만, 이 목표를 아직 달성하지 못했다는 것이 점점 더 명확해지고 있습니다.
현재의 블록체인 인프라는 거래를 위해 설계되지 않았습니다. Solana의 초기 사명을 달성하고자 한다면, 우리는 원점으로 돌아가 가장 기본적인 원칙에서 출발하여 합의 메커니즘을 완전히 재설계하고, 궁극적으로 뉴욕 증권 거래소와 경쟁할 수 있는 탈중앙화 네트워크를 구축해야 합니다.
우리가 뉴욕 증권 거래소와 경쟁한다고 말하는 것은 Solana의 거래소가 중앙화 거래소보다 더 나은 가격을 제공할 수 있어야 한다는 것을 의미합니다. 시장 세계에서 가격은 "스프레드"로 정의됩니다: 즉, 누군가 자산을 구매하려는 최고 가격과 누군가 자산을 판매하려는 최저 가격 사이의 차이입니다.
스프레드가 작을수록 거래자가 얻는 가격이 더 좋고, 시장의 효율성도 높아집니다.
스프레드의 공식은 간단합니다. 스프레드는 이렇게 설정됩니다: 시장 조성자가 비정보형 거래자와 거래에서 얻는 예상 수익은 정보형 거래자와 거래에서 발생하는 예상 손실과 같습니다. 시장 조성자가 정보가 상대방보다 많을 때 그들은 이익을 얻고, 정보가 상대방보다 적을 때 그들은 손실을 입습니다. 시장 조성자는 일반적으로 소매 거래와의 거래에서 약간의 이익을 얻지만, 가격이 급격히 변동할 때(희망적으로 드물게) 반대 방향으로 포지션이 잡히면 큰 손실을 입게 됩니다. 이것이 "시장 조성자가 깨를 주워도 수박을 잃는다"는 말의 유래입니다.
역선택 비용은 무엇에 의해 결정되는가?
역선택을 더 잘 이해하기 위해서는 시장 조성자가 어떤 게임을 하고 있는지를 이해해야 합니다. 시장 조성자는 시간에 따라 무작위로 변하는 "공정 가격"(fair)에 따라 판단합니다. 공정 가격이 매도-매수 스프레드 범위 내에 있을 때, 시장 조성자의 제안은 안전합니다. 왜냐하면 상대방이 그 제안을 받아들이면 이익을 얻을 수 없기 때문입니다. 그러나 공정 가격이 매도-매수 스프레드를 초과하면 경쟁이 시작됩니다: 시장 조성자는 가능한 한 빨리 주문을 취소하려고 하고, 상대방(taker)은 시장 조성자가 취소하기 전에 이 오래된 주문을 차지하려고 합니다. 성공적인 taker는 공정 가격과 오래된 제안 간의 차이를 통해 이익을 얻기를 기대합니다. 역선택 마찰을 줄이는 핵심은 가능한 한 시장 조성자가 이 경쟁에서 이길 수 있도록 하는 것입니다.
어떤 중앙화 거래소의 데이터에 따르면, 가격이 변동한 후 시장 조성자는 주문을 선행 취소할 확률이 13%에 불과합니다.
중앙화 거래소의 시장 조성자가 취소 경쟁에서 이길 확률은 높지 않지만, Solana에서는 더 낮습니다. Jito 경매 메커니즘 --- --- 이는 단일 제안자가 오랜 시간 동안 상태 접근 권한을 통제하는 부작용으로 인해 --- --- 시장 조성자가 거의 취소 경쟁에서 이길 수 없게 만듭니다. 시장 조성자가 더 빠르더라도, 실제로 승패를 결정하는 것은 Jito 경매에서 누가 더 높은 가격을 제시하는가입니다. 이는 시장 조성자를 곤란한 상황에 처하게 합니다: 주문을 취소하기 위해 큰 비용을 지불하거나, 다른 사람이 높은 가격으로 그들을 저격하도록 내버려 두어야 합니다. 어떤 경우든 그들은 손실을 보게 되므로 스프레드를 확대할 수밖에 없습니다.
실제 운영에서 현재의 체인 상 시장 미세 구조는 역선택 측면에서 taker에게 선발 우위를 제공합니다. 이 문제를 해결하기 위해서는 애플리케이션에 더 큰 거래 정렬 유연성을 제공해야 합니다. 스프레드를 줄이려면 애플리케이션이 주문 취소 경쟁에서 시장 조성자에게 선행할 수 있어야 합니다. 한 가지 방법은 "먼저 취소하고 나중에 거래" 정렬 전략을 도입하는 것입니다. 우리는 블록을 확인하고 모든 거래(takes)를 처리하기 전에 모든 취소 거래(cancels)를 먼저 처리합니다.
우리는 Solana에서 이 전략을 즉시 구현할 수 있으며, 현재의 재생 정렬을 리더가 결정하는 방식에서 취소를 우선 처리하는 전략으로 변경하기만 하면 됩니다. 그러나 이것만으로는 문제를 완전히 해결할 수 없습니다. 여전히 단일 리더가 통제한다면, 그는 여전히 취소 거래를 무시할 수 있는 선택권을 가지므로 우리는 다시 원점으로 돌아가게 됩니다 --- --- 시장 조성자는 여전히 취소 경쟁에서 불리한 위치에 놓이게 됩니다.
이 문제를 해결하는 유일한 방법은 다수의 병렬 리더(Concurrent Leaders)를 도입하는 것입니다. 이렇게 하면, 만약 어떤 리더가 취소 거래를 차단한다면, 다른 리더에게 제출할 수 있습니다.
실현 --- 거래 정렬
다수의 병렬 리더에 대해 가장 큰 의문은 충돌이 발생할 때 각자의 거래 블록을 어떻게 병합할 것인가입니다. 답은 사실 간단합니다: 우리는 수수료를 두 가지로 나눕니다: 포함 수수료(inclusion fee)와 정렬 수수료(ordering fee). 포함 수수료는 해당 거래를 포함하는 검증자에게 지급되고, 정렬 수수료는 프로토콜에 지급됩니다(소각). 각 리더의 블록을 병합할 때, 특정 슬롯의 모든 블록의 모든 거래의 합집합을 취하고, 그 정렬 수수료에 따라 정렬하여 실행합니다.
이 조치만으로는 충분하지 않습니다. 우리가 진정으로 이루고자 하는 것은 애플리케이션이 거래 정렬을 더 유연하게 제어할 수 있도록 하는 것입니다. 또 하나의 요소는 `gettransactionmetadata` 시스템 호출로, 이는 프로그램이 상호작용하는 거래의 정렬 수수료를 읽을 수 있게 하여 애플리케이션에 강력한 정렬 제어 도구를 제공합니다.
실현 --- 합의 메커니즘
우리의 합의 메커니즘 설계 목표는 다음과 같습니다:
1. 바인딩 및 블라인딩(Binding & Blinding): 병렬 리더는 자신의 블록에 다른 리더 블록의 정보를 포함할 수 없으며(예: 비공식 거래를 끼워 넣기), 다른 리더 블록의 내용을 기반으로 자신의 블록을 취소할 수 없습니다(예: 다른 입찰을 본 후 자신의 입찰을 취소).
2. 시계 공정성(Wallclock Fairness): 병렬 리더는 대략 동일한 실제 시간 내에 블록을 제출해야 합니다.
다음은 우리가 a16z Research의 Pranav Garimidi 및 Joachim Neu와 협력하여 개발한 가장 효과적인 솔루션 개요입니다:
각 리더는 자신의 블록을 오류 정정 코드 조각(shreds)으로 변환합니다. 충분한 수(인코딩 비율 이상)의 조각이 복구되면 블록을 복구할 수 있습니다. 부분 복구는 불가능합니다.
리더는 조각을 Turbine 트리의 첫 번째 레벨 중계 노드로 전송합니다. 각 리더는 첫 번째 조각을 중계 1에, 두 번째 조각을 중계 2에, 이렇게 순차적으로 전송합니다. 모든 것이 순조롭게 진행된다면, 각 중계는 모든 리더로부터 조각을 받을 것입니다.
타임아웃 후, 중계는 단일 합의 리더에게 서명된 IHAVE 메시지를 전송하여 수신한 조각을 알립니다.
합의 리더는 이러한 IHAVE 메시지를 포함하는 블록을 구성합니다; 충분한 비율의 IHAVE 메시지를 포함하지 않으면 해당 블록은 무효가 됩니다.
합의 리더는 해당 블록을 검증자에게 방송하고, 검증자는 이 블록에 대해 합의에 도달하기 시작합니다.
이 솔루션은 높은 확률로 바인딩 및 블라인딩 속성을 충족하며, 좋은 시계 공정성을 갖추고 있습니다. 비록 미래에 더 나은 솔루션이 등장할 수 있지만 말입니다.
결론
Solana의 창립 목표는 나스닥을 초월하는 것입니다. 이를 위해 우리는 나스닥보다 더 나은 가격을 제공해야 합니다. 이를 위해서는 애플리케이션이 거래 전에 취소 작업을 우선 정렬할 수 있는 능력을 부여해야 합니다. 이러한 능력을 애플리케이션에 부여하기 위해서는 리더가 일방적으로 주문을 검열하는 것을 방지해야 합니다. 이를 위해서는 여러 병렬 리더를 도입해야 합니다.