본문 바로가기

블록체인/[전문] 블록체인 논문

[논문] 고확장성 블록체인 저장 기술 설계

[출처] 김창수, 이명철, ACK 2021 학술발표대회 논문집 28권 2호 pp.316-319

 

연구의 필요성

현재의 블록체인은 시스템은 데이터 소유의 탈중앙화로 신뢰성을 확보할 수 있으나 합의, 저장, 분석 등 여러 방면에서 확장성의 한계로 인해 주로 가상 자산의 거래에만 활용되고 있다. 이 연구는 다양한 일반 산업 및 비즈니스에서의 블록체인 기술의 활용성을 증대하기 위해 요구되는 데이터의 다양성, 대규모 용량, 대용량 데이터, 트랜잭션 처리 속도 등 확장성 문제를 해결하기 위한 고확장성 블록체인 저장 기술 시스템 구조를 설계 및 제시한다.

 

기존 블록체인의 한계점

1번째 한계점은 대규모 원장이다. 점차 커지는 분산 원장을 효율적으로 분산 노드에서 관리하기 위한 기술 개발이 요구된다. 2번째는 상태 데이터 관리이다. 현재의 주소-잔액 기준의 단순한 key-value 형태의 데이터 관리를 범용의 DBMS(DataBase Management System)을 사용하는 방식을 탈피하여, 다양한 종류와 블록체인 특성을 고려한 고속 처리 가 필요하다. 3번째는 대용량 데이터는 블록체인에 저장 할 수 없기 때문에 외부 저장소를 활용한다는 것이다.

 

범주 제약사항
대규모 원장 - 중복 저장에 따른 저장공간 낭비
- 데이터 소유 집중화 유발
상태 데이터 - 범용 key-value DBMS
- 저장공간 낭비
- 불필요한 연산 및 처리속도 저하
대용량 데이터 - 외부 저장소 활용
- 가용성, 무결성, 소유권 보장 어려움

 기존 블록체인의 해결방법

1번째 대규모 원장 문제를 해결하기 위해 이더리움은 샤딩(Sharding), 플라즈마 기술을 도입했다. 이러한 기술들은 블록체인 네트워크를 수평 분할하여 원장을 관리하거나, 체인을 메인 체인과 자식 체인으로 계층적 분할하여 관리하는 방식을 활용한다. 그러나 수평 분할된 체인은 비잔틴 공격에 취약성을 보이며, 계층적 분할은 전체적인 블록체인 데이터의 추적이나 분석이 어렵고 특정 자식체인의 규모가 클 경우 기존의 취약성이 그대로 나타난다.

 

2번째 상태 데이터 관리의 경우, 기존 key-value 저장소의 특정 알고리즘 성능을 개선하거나, 랜덤 I/O 성능을 보완하기 위해 SSD를 활용하는 방법에 대한 연구로 위주로 진행되었으나, 트랜잭션 데이터의 용량이 커지면서 상태 데이터 용량도 급증하고 있다. 즉, 블록체인 특성을 고려한 기술 연구는 아직 미흡하다.

 

3번째는 대용량 데이터는 주로 IPFS와 같은 별도의 대용량 데이터 스토리지 시스템에 원본 데이터를 저장하고, 이에 대한 해시값을 포함하는 메타데이터만 블록체인에 저장하는 방식을 활용하고 있다. 그러나, IPFS는 기본적으로 데이터 가용성을 보장하지 않고, 또한 별도의 데이터 관리 주체를 사용하기 때문에 무결성 및 소유권 보장이 어려운 문제가 발생한다.

 

고확장성 블록체인 저장 기술 설계

고확장성 블록체인 저장 시스템 구조

1. HW의 데이터 고속 처리

서버 HW 플랫폼: 프로세서, 메모리, 마더보드 등을 구비한 일반적인 HW 시스템

CSD 저장장치: CSD(Computational Storage Drive)는 PCI 버스에 연결된 저장장치로 FPGA나 ARM 코어 등 연산 가속 장치를 내장하고 내부 메모리를 가지고 있어 데이터 처리가 가능하다. 이를 통해 SSD 내에 저장된 데이터를 서버 HW 플랫폼의 메모리에 올려서 CPU로 처리하지 않고, 저장장치 내에서 바로 처리하여 그 결과만을 전송하여 데이터 처리 성능을 고속화하는 역할을 한다.

 

2. Linux 운영체제 사용

다수의 노드로 구성되는 블록체인 네트워크를 사용자가 쉽게 설치하고 관리할 수 있도록 Docker와 Kubernates를 활용하여 블록체인 시스템을 컨테이너 기반으로 운영한다.

 

3. 대규모 분산 노드 관리 (https://janghona.tistory.com/9)

블록체인 네트워크를 구성하는 각 노드의 특성을 수집하고 이를 관리하며, 노드의 특성에 따라 데이터를 동적 저장하는 역할을 수행한다. 또한 노드의 상황이나 특성 변경에 따라 노드 간 부하 분산을 수행하고 노드 간 동적 라우팅을 관리한다.

 

4.대규모 트랜잭션 데이터 고확장성 저장

1/3 노드까지 비잔틴 장애를 허용하고 노드 특성을 고려하면서 스토리지 낭비를 방지한다. ECC(Error Correction Code), 이레이저 코드 등 부호화 기술 기반의 블록 분산 저장 기법을 활용한다.

 

5.대규모 상태 데이터 고성능 저장

key-value 뿐만 아니라 다양한 형태의 맵핑을 지원하고 최적화된 경량 상태 데이터 관리 기능을 제공한다.

 

6.대용량 데이터 온체인 분산 저장

오프체인에서의 대용량 데이터 저장이 아닌 온체인 내에 대용량 데이터를 분산 저장 하게 만든다.

 

7.프라이버시 보호 및 접근 제어

블록체인 네트워크 내에 인가된 사용자만이 접근할 수 있도록 하여 데이터의 프라이버시를 보호하고, 데이터 소유자의 정책에 따라 역할 기반 접근 및 다른 사용자로의 소유권 이전이 가능하도록 하여 데이터 소유자의 주권을 보장한다.