수 페타 바이트 디지털 원장을위한 분산 형 스토리지 생성 방법

Solana 역사 증명 이라는 개념을 사용하는 고성능 블록 체인입니다. 암호로 안전하고 신뢰할 수없는 시간 소스입니다.

7 월에 우리는 다중 노드 테스트 넷을 내 놓았고 그 이후로 71 만 TPS를 허용 할 수있는 확장 가능한 블록 체인 구축에 대한 우리의 이론을 입증하기 위해 끊임없이 노력해 왔습니다.

Solana가 최고 속도와 용량 (1 기가비트 네트워크에서 초당 71 만 건의 트랜잭션)에 도달하면 연간 거의 4 페타 바이트의 데이터가 생성됩니다. 네트워크의 모든 노드가 해당 데이터를 모두 저장해야하는 경우 네트워크 멤버십은 이러한 종류의 저장 용량을 가진 중앙 집중식 소수로 제한됩니다. 다행히도 우리의 기록 증명 기술을 활용하여 이러한 상황을 피할 수 있습니다. 복제 증명의 구현을 신속하게 검증하고 네트워크의 모든 노드에서 원장을 토렌트 방식으로 배포 할 수 있습니다.

복제 증명의 기본 아이디어는 CBC 암호화를 사용하여 공개 대칭 키로 데이터 세트를 암호화 한 다음 암호화 된 데이터 세트를 해시하는 것입니다. 안타깝게도이 간단한 접근 방식의 문제점은 공격에 취약하다는 것입니다. 예를 들어, 부정직 한 스토리지 노드는 암호화를 스트리밍하고 해시 된 데이터를 삭제할 수 있습니다. 간단한 해결책은 해시를 암호화의 역순으로 수행하거나 임의의 순서로 수행하도록하는 것입니다. 이를 통해 증명을 생성하는 동안 모든 데이터가 존재하고 모든 신원의 모든 증명을 확인하기 위해 유효성 검사자가 암호화 된 데이터 전체를 보유해야합니다. 따라서 유효성 검사에 필요한 공간은 (CBC 키 수) * (데이터 크기)입니다.

이 접근 방식에 대한 개선 사항은 암호화 된 블록을 암호화하는 데 걸리는 것보다 빠르게 무작위로 샘플링하고 해당 샘플의 해시를 PoH 원장에 기록하는 것입니다. 따라서 블록은 모든 PoRep에 대해 똑같은 순서로 유지되며 검증은 데이터를 스트리밍하고 단일 배치로 모든 증명을 검증 할 수 있습니다. 이런 식으로 우리는 자체 CUDA 코어에서 각각 하나씩 여러 증명을 동시에 확인할 수 있습니다. 현재 세대의 그래픽 카드를 통해 네트워크는 최대 14,000 개의 복제 ID 또는 대칭 키를 지원할 수 있습니다. 확인에 필요한 총 공간은 (CBC 블록 2 개) * (CBC 키 수)이며 코어 수가 (CBC 키 수)와 같습니다. CBC 블록의 크기는 1MB로 예상됩니다.

이제 우리는 복제자가 증명을 생성하고 검증자가 실제로 증명을 확인하도록 검증 자와 복제 자 사이에 게임을 구성해야합니다.

PoRep에 대한 검증자는 거래를 검증하는 검증 인과 동일합니다. 그들은 자신의 작업이 정직하다는 것을 보장하기 위해 담보로 내놓은 지분을 가지고 있습니다. 검증 인이 가짜 PoRep을 검증했음을 증명할 수 있다면 검증 인 지분이 삭감 될 수 있습니다.

Replicator는 특수 씬 클라이언트입니다. 그들은 원장의 일부를 다운로드하여 저장하고 원장 저장 PoReps를 제공합니다. 검증 된 각 PoRep에 대해 리플리케이터는 마이닝 풀에서 솔 보상을받습니다.

다음과 같은 제약이 있습니다.

이를 수행하는 방법은 다음과 같습니다.

무작위 시드에 대해 모든 사람이 PoH 해시에서 파생 된 서명을 사용하도록합니다. 모든 참가자가 동일한 수를 사용해야하므로 모든 참가자가 동일한 PoH 해시에 서명합니다. 그런 다음 서명은 각각 암호화 방식으로 키 쌍에 연결되어 리더가 둘 이상의 ID에 대한 결과 값을 파악하는 것을 방지합니다.

ID 키의 순환을 엇갈리게해야합니다. 이 과정이 진행되면 다음 ID는 PoH 해시로 자체 해싱하거나 유효성 검사 서명을 기반으로하는 다른 프로세스를 통해 생성 될 수 있습니다.

암호화 ID보다 더 많은 클라이언트 ID가 있으므로 여러 클라이언트에 대한 보상을 분할하고 Sybil 공격이 동일한 데이터 블록을 획득하기 위해 많은 클라이언트를 생성하는 것을 방지해야합니다. BFT를 유지하기 위해 우리는 단일 인간 개체가 원장의 단일 청크의 모든 복제를 저장하는 것을 피하고 싶습니다.

이 문제에 대한 Google의 해결책은 클라이언트가 동일한 ID를 계속 사용하도록하는 것입니다. 첫 번째 라운드가 많은 클라이언트 ID에 대해 동일한 블록을 획득하는 데 사용되는 경우, 동일한 클라이언트 ID에 대한 두 번째 라운드는 서명의 재배포를 강제하므로 PoRep ID 및 블록이 강제로 적용됩니다. 따라서 스토리지 클라이언트에 대한 보상을 받으려면 첫 번째 블록을 무료로 저장해야하며 네트워크는 새 것보다 오래 살았던 클라이언트 ID를 더 많이 보상 할 수 있습니다.

연삭 공격 벡터

핵심 요약

— —

Solana 에 대해 자세히 알고 싶으십니까?

Github 에서 확인하고 커뮤니티 페이지에서 연결하는 방법을 찾으세요.