복제자(Replicators) – 블록 체인 데이터 스토리지의 페타바이트에 대한 솔라나의 솔루션

“솔라나를 가장 성능이 뛰어난 블록체인으로 만드는 7 가지 혁신 중 한가지에 대해 자세히 알아보십시오.

“솔라나는 세계에서 가장 성능이 뛰어난 무허가 블록체인입니다. 현재 솔라나 테스트넷에는 각각의 독립된 200개의 노드가 GPU와 함께 운영될 때 50만TPS 이상의 속도를 꾸준히 유지하고 있습니다. 이를 위해서는 여러가지 최적화와 새로운 기술의 구현이 필요하며, 결과적으로 블록체인 개발에서 새로운 차원의 네트워크 역량(보안성, 성능/확장성, 탈중앙화, 호환성, 상호운용성 등)을 보여주는 획기적인 변화를 이끌어낼 것입니다.

솔라나 네트워크를 가능하게하는 7 가지 주요 혁신은 다음과 같습니다:
역사 증명 (POH)— 합의 이전의 시계;
타워 비잔티 장애허용(Tower BFT) – PoH기반 최적화된 버전의 프랙티컬BFT;
터빈(Turbine) – 블록 확산 프로토콜;
걸프스트림(Gulf Stream) – 멤풀이 없는 트랜젝션 전달 프로토콜
씨레벨(Sealevel) – 스마트 컨트렉트 병렬처리 런타임;
클라우드브레이크(Cloudbreak) – 수평으로 확장된 계정 데이터베이스; 그리고
복게자(Replicators) – 분산 원장 저장소
“본 게시글에서는 페타바이트 단위의 블록체인 데이터 저장을 위한 솔라나의 분산 원장 저장소 인 복제자(Replicator)를 살펴 보겠습니다. 우리는 2017년 프코인에서 복제 증명(Proof of Replication)을 접했습니다. 2018년에는 검증가능한지연함수(VDF)를 사용하여 솔라나 전용 볼제증명 버전을 구축하였고 배치(batch) 검증을 위해 최적화했습니다.

“솔라나 네트워크는 매년 최대 1gb / s * 365 일 = 4 페타 바이트의 데이터를 생성합니다. 네트워크의 모든 노드가 모든 데이터를 저장해야하는 경우, 해당 종류의 스토리지 용량을 유지하는 중앙화된 소수만 네트워크에 참여할 수 있습니다. 우리의 역사 증명 기술을 사용하면, proof 증명을 빠르게 검증할 뿐만 아니라, 전 세계 수백만개의 Replicator 노드에 원장을 빠르게 분배할 수 있습니다. Replicator는 합의에 참여하지 않으며, 그들에게 요구되는 하드웨어 사양은 매우 낮습니다.

“솔라나 복제자 네트워크는 다음과 같이 작동합니다: 복제자는 네트워크에 데이터를 저장할 수있는 X 바이트의 공간이 있음을 알려야합니다. 가끔가다 네트워크는 원장 이력을 조각으로 분할하여 복제기 ID 수와 사용 가능한 총 스토리지 수에 따라 일부 복제 속도 (현재 목표 속도는 약 100배로 예상) 및 내결함성(이레이져 코딩으로 달성 됨)을 이루고자 합니다. 복제자: 데이터가 할당되면 각 복제자는 합의 검증 노드로부터 해당 데이터를 다운로드합니다. 간간히 복제자는 데이터를 저장하고 있음을 증명해야하며, 이때 복제 증명(PoRep)을 완료해야합니다. 복제자 노드는 이러한 노력의 대가로 3 %의 이하의 인플레이션을받습니다.

복제증명 더 깊이 살펴보기

“예를 들어 부정직한 스토리지 노드는 암호화를 스트리밍하고 해시된 방식대로 삭제할 수 있습니다. 이에 대한 간단한 해결책은 암호화의 역순 또는 임의 순서로 해시를 강제 실행하는 것입니다. 이를 통해, proof 생성 중 모든 데이터가 주어지는지 확인하고, 모든 ID의 proof를 확인하기 위해 검증 노드에 암호화된 데이터 전체를 요구합니다니다. 검증에 필요한 공간은 (CBC key 수) * (데이터 크기)입니다.

“암호화 속도보다 빠른 속도로 암호화된 블록을 무작위로 샘플링하여 이러한 접근 방식을 개선하였고, 해당 샘플의 해시를 PoH 원장에 기록하였습니다. 따라서, 모든 블록은 PoRep에 대응하여 동일한 순서로 유지되며, 검증 작업에서는 데이터를 스트리밍하고 모든 proof를 단일 배치로 확인할 수 있습니다. 이런 식으로 각자의 CUDA 코어에 기반한 서로 다른 증명을 동시에 확인할 수 있습니다.

“솔라나 네트워크는 최신 그래픽 카드를 사용하여 GPU 카드 당 최대 1500 개의 복제 ID 또는 대칭키를 지원합니다. 확인에 필요한 총 공간은 (2 CBC 블록) * (CBC 키 수)이며, 코어 수는 (CBC 키 수)와 같습니다. CBC 블록의 크기는 1MB입니다.

“다음으로, 검증 노드와 복제 노드 간에 게임을 구성하여 복제 노드가 proof를 생성하고 검증 노다가 실제로 복제 증명을 검증하는지 확인해야합니다.

“원장의 복제 증명 생성을 시작하기 위해, 복제 노드 클라이언트는 다음을 수행합니다:

“1. 클라이언트는 정기적으로 PoH 해시에 서명합니다.

“2. 서명은 원장의 특정 조각을 선택하기 위한 임의의 소스로 사용됩니다.

“3. 서명은 대칭의 CBC 키를 만드는 데 사용되며, 클라이언트는 원장의 조각을 key로 인코딩합니다.

“각 클라이언트가 동일한 PoH 해시를 처리하기 때문에 모든 클라이언트간에 서명이 무작위로 배포됩니다. 그런 다음 클라이언트는 암호화된 샘플을 지속적으로 샘플링합니다:

“1. 클라이언트는 정기적으로 PoH 해시에 서명합니다.

“2. 서명은 슬라이스의 1MB 당 1 바이트를 샘플링하기위한 임의의 소스로 사용됩니다.

“3. 샘플은 SHA256을 통해 해시됩니다.

“모든 클라이언트는 서명과 동일한 PoH 해시 값을 사용해야합니다. 서명은 PoH와 연결되어 있으므로, 샘플의 해시는 특정 시점과 특정 복제에 대응하는 고유한 값을 가집니다.

“검증자는 차례로 돌아가며 클라이언트의 proof를 확인합니다.

“1. 검증 노드는 GPU 코어 수에 따라 확인할 수있는 PoReps 수를 선언합니다.

“2. 검증 노드는 정기적으로 PoH 해시에 서명합니다

“3. 서명은 검증할 원장의 슬라이스 선택과 검증 노드의 용량을 검증할 샘플을 선택하는 마스크를 위해 사용됩니다.

“4. 검증 노드는 검증에 실패한 proof를 업로드합니다.

“Client는 검증 노드를 실패한 proof로 속여 게으른지에 대한 여부를 시험할 수 있습니다. 그라인딩 공격을 방지하려면 클라이언트는 동일한 한쌍의 key id를 지속적으로 사용해야합니다. 스팸을 방지하기 위해 프로토콜의 모든 메시지에 tx 요금이 부과됩니다. Replicator는 성공적으로 제출한 proof의 수에 비례해 보상을 받습니다. 검증 노드는 proof를 검증하여 스테이킹에 비례하는 보상을 받고, 검증 노드를 속인 클라이언트는 가짜 proof를 증명할 때마다 검증 노드의 슬래시 동전으로 보상을받습니다.

“솔라나는 역사 증명, 파이프라인 VM, 복제 증명, 걸프스트림과 같은 기술 혁신과 더불어 터빈 전파를 활용하여 세계에서 가장 성능이 뛰어난 블록체인을 만듭니다. 솔라나 테스트 넷은 현재 가동 중이며, http://explorer.solana.com/에서 확인할 수 있습니다. 비용 상의 이유로, 적은 수의 노드만 운영하고 있지만, 벤치마킹을 위해 AWS, GCE, Azure 클라우드 인프라에 구축된 데이터 센터 23곳에 흩어져 있는 200개가 넘는 각각의 독립된 노드(서로 하드웨어를 공유하지 않음)를 운영할 수 있도록 준비하고 있습니다.

현재 런타임이 작동 중이며, 개발자들은 이제 테스트나우(testnow)에 코드를 배포할 수 있습니다. 개발자들은 C 언어로 스마트 컨트랙트를 만들 수 있지만, 솔라나팀은 러스트 툴체인을 적극적으로 개발 중입니다. R러스트는 솔라나 스마트 컨트랙트 개발에 있어 가장 중요한 핵심 언어가 될 것입니다. 러스트 툴체인은 솔라나 자바스크립트 SDK의 일부로 모든 개발자들이 사용할 수 있고, SDK는 더 업그레이드될 겁입니다.
솔라나는 곧 코스모스의 게임 오브 스테이크(Game of Stakes)와 유사한 투어 드 솔(Tour de SOL)에서 노드를 운영하는 밸리데이터/검증인에게 인센티브를 제공하는 공개 베타 테스트넷을 출시합니다. 투어 드 솔은 대중들이 솔라나 네트워크의 한계를 테스트하는데 도전하여 토큰도 확보하는 테스트넷 공개 참여 이벤트입니다.