검수요청.png검수요청.png

스테이트 샤딩

위키원
ghdrn221 (토론 | 기여)님의 2019년 8월 28일 (수) 09:30 판
이동: 둘러보기, 검색

스테이트 샤딩(state sharding)은 상태가 지정된 상황에서, 특정 노드가 특정 상태값만 저장하고 있는 샤딩 기술을 말한다. 상태 샤딩이라고도 한다.

개요

스테이트 샤딩은 계정 기반 모델(account-based model)이다. 스테이트 샤딩은 상태가 지정된 블록체인에서 이 특정 샤드는 상태의 일부만을 유지하지만, 교차분할 트랜잭션을 수행하지 못하도록 제한되고 있다. 스테이트 샤딩은 시스템의 상태가 모든 샤드에 복제되어 있지 않기 때문에 네트워크는 더 오프라인 샤드에 대한 트랜잭션의 유효성을 검사하지 못하게 된다. 만약 오프라인 샤드를 유지하기 위해 백업 노드를 갖게 된다면 중앙집중식이 되어 보안성에 위협이 될 수 있다. 네트워크가 한 번씩 재편성될 때 한 번에 네트워크를 전환하게 되면 일부 동기화가 완료될 때까지 전체 시스템을 사용할 수 없게 된다.[1]

특징

  1. 계정 기반 모델(Account-Based Model)로 상태가 지정된 블록체인에서 이 특정 샤드는 상태의 일부만을 유지한다.
  2. 교차분할 트랜잭션을 수행하지 못하도록 제한이 되어 있다.
  3. 시스템의 상태가 모든 샤드에 복제되어 있지 않기 때문에 네트워크는 더 이상 오프라인 샤드에 대한 트랙재션의 유효성을 검사하지 못한다.
  4. 오프라인 샤드를 유지하기 위해 백업 노드를 갖게된다면 중앙집중식이 되어 보안성에 위협이 있다.
  5. 네트워크가 한 번씩 재편성될 때 한번에 네트워크를 전환하게 되면 일부 동기화가 완료될때 까지 전체 시스템을 사용할 수 없게 될 수도 있다.

활용

엘론드(Elrond)는 질리카(Zilliqa)와 비교하여 트랜잭션 샤딩뿐만 아니라 스테이트 샤딩도 사용하여 샤딩의 한계를 넓혔다. 엘론드는 작업증명(Proof of Work,PoW) 메커니즘을 완전히 제거하고 합의를 위해 확률적 지분증명(Stochastic Proof of Stake, SPoS)을 사용한다. 두 아키텍처 모두 자체 스마트 계약 엔진을 구축하고 있지만 엘론드는 블록체인 간의 상호운용성을 달성하기 위해 이더리움(EVM)을 목표로 한다.

  • 적응 스테이트 샤딩(Adaptive State Sharding)
중앙 집중식 상대방에 비해 처리량 비교로 블록 체인 샤딩을위한 최적의 접근 방식은 세 가지 샤딩 유형 (네트워크 / 통신, 트랜잭션 / 프로세싱, 상태 / 스토리지) 모두의 이점이 있다. 확장 성 및 처리량 증가에 대한 엘론드(Elrond)의 접근 방식으로 적응 스테이트 샤딩은 세 가지 샤딩 유형을 모두 샤드 내부의 통신을 개선하고, 병렬 처리를 통해 성능을 높이고, 스토리지를 줄이며 거의 선형으로 확장하는 솔루션으로의 결합을 말한다. 사용 가능한 리소스 유효성 검사기 노드 및 네트워크 사용량에 따라 샤드 수가 동적으로 변경되도록하면 처리량뿐만 아니라 효율성에도 큰 영향을 미치는데, 적응 상태 샤딩 메커니즘은 샤드 수가 계산되면 이진 트리 구조를 기반으로한다. 이 숫자는 계정 주소를 샤드에 결정적으로 매핑하는 데 사용되고, 샤드의 트랜잭션 발송은 발신자와 수신자 계정 주소를 지정된 샤드에 매핑하여 결정적으로 수행된다. 솔루션의 대부분의 선형적인 확장 성은 중앙 집중식 솔루션의 처리량을 능가한다.
  • 스테이트 샤딩 아키텍처 검증
엘론드 프로토 이프 PoC-v0.5는 기본적으로 직접 메시징, 정보 방송 및 채널 통신을위한 통신 p2p 모듈이 포함 된 기술 백본으로 슈노르(Schnorr)방식, 발라레(Bellare)및 네븐(Neven)의 블록에 대한 다중 서명 방법과의 거래에 대한 서명 및 확인을 처리하는 암호화 모듈, 서로 다른 데이터 유형(블록, 트랜잭션, 계정 등)이 서로 연결되어 시스템에 저장되는 방법을 정의하고 설명하는 데이터 모듈, 일관성과 보안을 보장하기 위해 네트워크를 통해 상태를 복제하면서 트랜잭션을 처리하고 블록을 조립하는 데 사용되는 실행 엔진; 체계적인 부트 스트랩 프로세스와 적절한 타임 아웃을 보장하는 동기화 및 시간 통과 관점에 사용되는 연대기 모듈, 라운드 로빈 환경에서 기본 컨센서스를 사용하는 컨센서스 모듈로, 모든 샤드에서 독립적 인 컨센서스 그룹을 실행하여 블록을 제안하고 검증 할 수 있으며, 통신 주제를 사용하고 샤드 및 크로스 샤드 트랜잭션을 모두 사용할 수있는 샤딩 모듈이 있다.[2]
  • 엘론드 제로원 테스트넷
2019년 5월에 출시 하였고, 정응 스테이트 샤딩, 안전한 스테이크 컨센서스 증명, 트랜잭션을위한 슈노르(Schnorr)서명, 랜덤 시드 생성을위한 BLS서명 및 블록 서명을위한 수정 된 BLS 멀티 시그먼트로 구성된다. 관점을 설정하는 메트릭은 대기 시간, 대역폭 제한, 매우 제한된 컴퓨팅 성능 4Gb의 메모리를 가진 평균 듀얼 코어 CPU, 다른 지리적 위치를 가진 별도의 시스템에서 각 유효성 검사기 노드 실행과 같다.

테스트 넷 사양 :
샤딩 설정 : 5 개의 샤드 + 메타 체인
노드 : 500 x AWS T2.medium (검증기 노드) 및 AWS 12 x t2.large (관찰자 노드)
샤드 당 노드 : 83
컨센서스 : 6 초마다 BLS 라운드 (각 샤드)
컨센서스 크기 : 63 노드 (각 샤드)
최대 블록 크기 : ~ 800KB
Peak-TPS : ~ 12500

스테이트 샤딩 기술 기반의 블록체인 플랫폼 중 하나인 쿼크체인이 체인링크와의 기술협업을 통해 실생활에서의 블록체인 적용하였으며, 체인 링크는 미들웨어 플랫폼으로 오라클 문제, 즉 블록체인 외부 데이터와 스마트 컨트랙트와의 연결할 때 생기는 문제를 해결해 주는 역할을 하는데, 체인링크는 이 과정을 분산화 시켜 더욱 더 보안성 있고 편리하게 외부 데이터를 블록체인 내부로 입력할 수 있게 도와준다. 체인링크는 구글, 오라클, SWIFT (국제은행간통신협정) 등과 같은 주요 기업들과 함께 협력하여 이미 글로벌 시장에서는 유명한 기업으로 쿼크체인은 스마트컨트랙트 기능을 넘어 온체인 트랜잭션을 통해 사용자의 일상에서 더 많은 분야에 진입할 수 있게 되며 쿼크체인 네트워크의 개발자들은 Dapp을 블록체인 외부의 데이터에 성공적으로 연결함으로써 더 많은 산업 어플리케이션에 효과적으로 활용될 수있고 체인링크는 스마트 컨트랜트가 오프체인 데이터, 웹 API, 전통 은행 결제등에 안전하게 접속하게 해주는 블록체인 오라클 네트워크로, Gartner 와 같은 유명 독립 리서치 기관들로 부터 지속해서 최고의 블록체인 기술로 선정 되어 왔다. 주요 고객으로는 구글, 오라클, SWIFT 등이 있다. 쿼크체인은 페이스북과 구글에서 샤딩 기술을 적용한 개발자 출신 치조우 대표가 미국에 설립한 스테이트 샤딩 기반의 블록체인 플랫폼이다. 지난 4월 메인넷을 출시하였으며 이미 비자 네트워크에 가까운 5만5천 이상의 TPS를 달성하여 블록체인 기술의 가능성을 입증해오고 있는 대표적인 블록체인 플랫폼 이다.[3]

문제점

중앙화의 문제와 보안성의 문제를 가지게 되고, 보안의 문제는 1% 어택(Attack)의 문제가 생길 수 있으며, 100개의 샤드 시스템에서는 오직 1%의 해시 비율(Hash Rate)로 샤드를 지배할 수 있다. 샤드간의 커뮤니케이션이 너무 빈번하게 일어난다면 커뮤니케이션으로 인한 지연시간의 문제가 발생하고, 시스템의 상태가 모든 샤드에 복제되어 있지 않기 때문에 네트워크는 더 이상 오프라인 샤드에 대한 트랙재션의 유효성을 검사하지 못한다. 오프라인 샤드를 유지하기 위해 백업 노드를 갖게된다면 중앙집중식이 되어 보안성에 위협이 있으며, 네트워크가 한 번씩 재편성될 때 한번에 네트워크를 전환하게 되면 일부 동기화가 완료될때 까지 전체 시스템을 사용할 수 없게 될 수도 있고, 계정 기반 모델(Account-Based Model)로 상태가 지정된 블록체인에서 이 특정 샤드는 상태의 일부만을 유지하며, 교차분할 트랜잭션을 수행하지 못하도록 제한이 되어 있다.

해결방안

빠른 샤드 전환 이 되야 하는데, 샤드에 대한 공격 성공 가능성을 줄이고자 한다면 검증자를 빠르게 전환해야 한다. 이전 부터 look ahead time을 두어 검증자가 자신이 맡을 샤드 블록을 미리 동기화 시킨다. 미리 동기화 하기 위해서는 동기화할 자료를 줄여서 빠르게 검증자를 준비할 수 있는 무국적 고객(stateless client)을 제안하는 이유는 블록 헤더만을 저장하는데 블록헤더만을 저장하기 때문에 거래에 대한 검증은 불가능하고, 거래 검증을 하려면 거래를 만들때, 검증에 필요한 Witness를 첨부해야하며, 영지식을 사용하여, Witness 의 크기를 줄이는 방법도있다. 자료의 가용성으로는 모두가 무국적 고객이라면 블록의 내용을 손실할 수 있어 누군가는 상태(state)를 저장하고 있어야 하며, 적절한 보상과 검증(Proof of Custody)가 필요하다. 어부(Fisherman) 딜레마는 이레이저 코딩(Erasure Coding)으로 해결가능하다. 난수생성으로는 난수를 사용하여 검증자를 샤드에 배정하는데, 공격자가 난수를 예측하거나 조작하여 샤딩보안에 문제가 생기면, 기존의 란다오(RANDAO) 난수 생성방식을 VDF(Verigiable DelayFunction)을 사용한다.

각주

  1. sobly tv, 〈샤딩이란? 쉽게 이해해보자〉, 《미디엄》, 2018-09-03
  2. 엘론드 공식 홈페이지 - https://elrond.com/technology
  3. QuarkChain, 〈스테이트샤딩 블록체인 플랫폼 쿼크체인, 체인링크와 기술협업〉, 《네이버》, 2019-07-26

참고자료

같이보기


  검수요청.png검수요청.png 이 스테이트 샤딩 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.