터빈 – 솔라나 블록 전파 프로토콜이 확장성 Trilemma를 해결합니다.

Solana를 세계에서 가장 성능이 뛰어난 블록 체인으로 만드는 7가지 핵심 기술 중 1가지 이해

Solana는 세계에서 가장 성능이 뛰어난 권한없는 블록 체인입니다. Solana Testnet의 현재 반복에서 물리적으로 고유한 200개의 노드 네트워크는 GPU로 실행할 때 초당 50,000개 이상의 트랜잭션의 지속적인 처리량을 지원합니다. 이를 위해서는 여러 가지 최적화와 새로운 기술을 구현해야 하며, 그 결과 블록체인 개발의 새로운 단계를 알리는 네트워크 용량의 획기적인 발전이 이루어질 것입니다.

Solana 네트워크를 가능하게 하는 7가지 주요 혁신이 있습니다.

이 게시물에서는 블록 체인 확장성을 해결하는 BitTorrent에서 영감을 얻은 Solana의 블록 전파 프로토콜인 Turbine을 살펴보겠습니다.

확장성 트릴렘마

블록 체인 기술의 확장성은 대역폭에 관한 것입니다. 오늘날 대부분의 블록 체인 네트워크에서 노드당 대역폭의 양이 일정해짐에 따라 노드 수를 늘리면 모든 데이터를 모든 노드에 전파하는 데 필요한 시간이 늘어남에 따라 증가합니다. 그것은 큰 문제입니다.

그러나 데이터가 전파되는 방식을 최적화할 수 있는 기회는 무수히 많습니다. 많은 새로운 데이터 전파 기술이 있으며, 각 기술은 특정 응용 프로그램에 최적화되어 있습니다. 예를 들어, BitTorrent는 TCP를 사용하는 대규모 그룹의 사람들에게 대용량 파일을 제공하는 데 최적화되어 있으며, 제가 작업한 프로젝트인 MediaFLO는 무선을 통한 멀티캐스트의 효율성을 향상시키기 위해 물리적 계층에서 데이터 전파에 최적화된 프로토콜입니다. 네트워크.

이러한 맥락에서 Solana 의 블록 전파 프로토콜인 Turbine을 통해 Solana 네트워크가 어떻게 데이터를 전파하여 블록 체인 확장성을 해결할 수 있는지 설명해 보겠습니다.

터빈

솔라나, 규모를 위해 구축 된 블록 체인

고성능 블록 체인의 과제 중 하나는 네트워크가 많은 수의 피어에 많은 양의 데이터를 전파하는 방법입니다. 예를 들어 20,000개의 유효성 검사기로 구성된 네트워크를 살펴보겠습니다. 리더는 128MB 블록(약 500,000트랜잭션 @ 250바이트/트랜잭션)을 모든 20,000개의 유효성 검사기에 전송해야 합니다. 순진한 구현은 리더가 각 유효성 검사기와 고유한 연결을 가지고 전체 128MB 20,000시간을 전송하도록 요구합니다. 단순히 많은 연결을 수용할 수 있는 대역폭이 충분하지 않습니다.

이 문제에 대한 우리의 솔루션, 터빈, 비트 토런트에서 무겁게 빌려 – 몇 가지 주요 기술 세부 사항은 두 가지를 구별하지만. 터빈은 스트리밍에 최적화되어 UDP만을 사용하여 데이터를 전송하며, 리더(블록 생산자)가 데이터를 스트리밍할 때 네트워크를 통해 패킷당 임의 경로를 구현합니다. 리더는 최대 64KB 크기의 패킷으로 블록을 나눕습니다. 128MB 블록의 경우 리더는 2,000개의 64KB 패킷을 생성하고 각 패킷을 다른 유효성 검사기로 전송합니다.

솔라나, 규모를 위해 구축 된 블록 체인

차례로 각 유효성 검사기는 우리가 이웃이라고 부르는 피어 그룹으로 패킷을 다시 전송합니다. 네트워크를 이웃 트리로 시각화하여 네트워크가 1,000개의 유효성 검사기를 훨씬 넘어성장할 수 있도록 할 수 있습니다.

솔라나, 규모를 위해 구축 된 블록 체인

각 이웃은 데이터의 일부를 그 아래의 각 이웃에게 전송할 책임이 있습니다.

솔라나, 규모를 위해 구축 된 블록 체인

각 이웃이 200개의 노드로 구성된 경우 루트에서 단일 지시선으로 시작하는 3단계 네트워크는 2홉에서 40,000개의 유효성 검사기에 도달할 수 있으며 각 네트워크 링크가 평균 100ms라고 가정하면 약 200밀리초내에 도달할 수 있습니다.

이 기술로 우리가 직면한 과제는 보안입니다. 예를 들어, 적노드는 데이터를 다시 브로드캐스트하지 않도록 선택하거나 잘못된 데이터를 다시 브로드캐스트할 수 있습니다. 적대 노드를 처리하기 위해 리더는 리드 솔로몬 지우기 코드를생성합니다. 지우기 코드를 사용하면 각 유효성 검사기에서 모든 패킷을 받지 않고 전체 블록을 재구성할 수 있습니다.

솔라나, 규모를 위해 구축 된 블록 체인

지시자가 블록의 패킷 중 33개(33개)를 지우기 코드로 전송하는 경우 네트워크는 블록을 잃지 않고 33개의 패킷을 삭제할 수 있습니다. 리더는 네트워크 조건에 따라 이 숫자를 동적으로 조정할 수도 있습니다. 이러한 결정은 이전 블록에서 지도자의 관찰 패킷 드롭 속도에 의해 이루어집니다.

모든 유효성 검사기가 동일하게 만들어지지는 않습니다. 가장 중요한 유효성 검사기는 가장 중요한 유효성을 갖춘 유효성 검사기입니다. 따라서 우리는 그에 따라 전파의 우선 순위를 지정합니다. 스테이크 가중치 선택 알고리즘은 더 높은 스테이크 유효성 검사기가 리더와 가까운 지역에 있도록 트리를 구성합니다. 각 유효성 검사기는 동일한 트리를 독립적으로 계산합니다. 지우기 코드는 오류를 복구할 수 있지만, 특히 서비스 거부 공격과 결합된 경우 적대노드가 결합된 스테이크 크기보다 높은 실패를 유도할 수 있도록 트리에 자신을 배치할 수 있습니다.

우리는 어떻게 일식공격의이 종류를 처리합니까? 당사의 팬아웃 알고리즘은 패킷의 디지털 서명을 기반으로 임의의 소스를 사용하여 모든 패킷에 대해 스테이크 가중치 트리를 생성합니다. 각 패킷은 다른 경로를 취하고 경로를 미리 알 수 없으므로 이웃 수준의 일식 공격은 네트워크를 거의 완전히 제어해야 합니다.

솔라나, 규모를 위해 구축 된 블록 체인투르 드 솔(Tour de SOL)에 대해 자세히 알아보려면 솔라나(Solana)의 인센티브 테스트넷 이벤트에 대해 알아보십시오.

한 수준에서 이 기술은 200개에서 1,000개 노드 사이를 확장할 수 있습니다. 1Gbps를 지원하는 네트워크 카드는 초당 백만 패킷을 전송할 수 있습니다. 단일 유효성 검사기는 네트워크 연결이 허용하는 경우 1초 이내에 최대 64KB에서 1,000대의 컴퓨터로 패킷을 보낼 수 있습니다.

Solana는 역사 증명, 파이프라인 VM, 복제 증명 및 걸프 스트림과 같은 혁신과 함께 터빈 전파를 모두 활용하여 전체 생태계에서 가장 성능이 뛰어난 블록 체인을 만듭니다. 솔라나 테스트넷은 오늘 생중계됩니다. https://explorer.solana.com/. 비용 상의 목적으로 소수의 노드만 실행하고 있습니다. 그러나 벤치마킹을 위해 AWS, GCE 및 Azure의 23개 데이터 센터에서 공유 하드웨어가 아닌 200개 이상의 물리적으로 고유한 노드로 많은 인스턴스에서 이를 분산했습니다.

런타임이 현재 작동중이며 개발자는 지금 testnow에 코드를 배포할 수 있습니다. 개발자는 오늘날 C에서 스마트 계약을 구축할 수 있으며 Rust 툴체인을 적극적으로 개발중입니다. Rust는 솔라나 스마트 계약 개발을 위한 주력 언어가 될 것입니다. Rust 툴체인은 Solana Javascript SDK의 일부로 공개적으로 사용할 수 있으며 소프트웨어 개발 키트에서 더욱 반복하고 있습니다.

Solana는 곧 코스모스의 스테이크 게임과 유사한 투르 드 SOL을 통해 노드를 실행하도록 공개 베타 인센티브 유효성 검사기를 출시할 예정이며, 이는 Solana 네트워크의 한계를 테스트하는 데 큰 도전과 유사하며 토큰을 획득합니다.