자료 : SoK: Sharding on Blockchain
지난 포스트 - SoK: Sharding on Blockchain 10
8.2 Discussion 본문
Besides the sharding-based blockchain protocols summa- rized in Table 2, there exist other alternatives to deal with scalability issues, which are conceptually similar to the men- tioned sharding-based protocols, e.g., Monoxide [137] and SSChain [42].
Monoxide utilizes the concept of asynchronous consensus zones, in which each zone is conceptually a shard. Instead of utilizing UTXO transaction models, this protocol is based on the account/balance transaction model, which is similar to a bank account model. It proposes an eventual atomicity scheme, by relying on the relay transactions, to ensure the atomicity of transactions across zones. For the consensus protocol, Monoxide builds on the PoW scheme in general, and it uses the Chu-ko-nu mining scheme, which allows a sin- gle PoW solution to create multiple blocks at different zones simultaneously, to ensure the effective mining power in each zone to be at the same level of the entire network. Concep- tually, Monoxide can be categorized as a kind of blockchain sharding scheme.
SSChain utilizes a two-layer architecture to eliminate the data migration overhead in reshuffling scheme. In SSChain, participating nodes can freely join in one or more shards without reshuffling network periodically. In this two-layer structure, the first layer is the root chain network, which has a significantly large portion (e.g., over 50%) of computing power over the whole network, while the second layer is the shard networks, in which each shard maintains disjoint ledgers and independently processes a disjoint subset of transactions. In the words, the root chain maintains security of the system, while shards improve the throughput and decrease storage requirements.
There also a large number of non-peer reviewed block- chain sharding protocols in the literature, e.g., Aspen [71], Blockclique [69], Ethereum 2.0 [28], etc. Due to the page limit, the interested reader are referred to the provided references for their details.
It is necessary to briefly discuss the techniques to handle the blockchain scalability (including sharding protocols) in general. There exists two main-stream solutions: off-chain solutions [114] [63] and DAG solutions [115].
Off-chain Solutions. In this solutions, each node holds its transactions locally, referred as “off-chain", and only sends a description or the eventual outcome of these transactions to the “main chain", referred as “on-chain". However, there is no guarantee on the validity of the “off-chain" transac- tions, either validation node are introduced to validate and endorse these transactions, or economical deposit should be provided for the transactions. And, the validity condition might be compromised due to centralization or the economi- cal constraint. There exist several key chellenges in off-chain solutions, e.g., the way to keep the state consistency (and final conformation of transactions) between “off-chains" and the “on-chain" in real-time (or acceptable time) manner, the centralization and security issues in the “off-chains" which rely on intermediaries to aggregate and settle transactions off-chain.
Directed Acyclic Graph (DAG) Solutions. In DAG, the trans- actions are not structured in a chain, but in a graph. The validity is dependent on the (directly or indirectly) outgoing edges of the transaction, which represents the nodes that have validated it. A scale-out throughput can be achieved if the acquirement of the complete graph is not obligated for all nodes. And, the validity of the transaction might be compromised due to its dependency on the validators. Also, there exist some probability that the valid transactions are appended to the parasite chains [115].
Sharding Solutions. Besides the common issues discussed in this paper, there exist some potential research topics on blockchain sharding, such as horizontal sharding (e.g., Chan- nels [4]) and heterogeneous sharding (e.g., nodes with dif- ferent capacity), and application-specific blockchain shard- ing schemes (e.g., sharding schemes targeted to industrial Internet of Things (IIoT) [136] [138]). Sharding based block- chain systems make trade-offs between the scalability of throughout, storage efficiency, and security [96]. A widely open fundamental question is that Is there a blockchain design that simultaneously scales throughput, storage efficiency, and security?
8.2 Discussion
확장성을 개선하기 위한 다른 프로토콜
테이블 2에 요약된 샤딩 기반 블록체인 프로토콜 외에도, 확장성 문제에 대처하기 위한 다른 대안이 존재한다. 예를 들어, Monoxide 및 SSChain 이 있다.
1) Monoxide
Monoxide는 각 영역이 개념적으로 샤드인 비동기 합의 영역의 개념을 활용한다.
비동기 합의 영역: 서로 다른 시간에 합의에 도달하는 여러 개의 합의 영역
이 프로토콜은 UTXO 트랜잭션 모델을 사용하는 대신 은행 계좌 모델과 유사한 계정/잔액 트랜잭션 모델을 기반으로 한다. 트랜잭션의 원자성을 보장하기 위해, Monoxide는 중계 트랜잭션에 의존하는 최종 원자성 방식을 제안한다.
중계 트랜잭션: 한 샤드에서 다른 샤드로 트랜잭션을 전달하는 트랜잭션 최종 원자성 방식: 트랜잭션이 모두 성공적으로 완료되거나 모두 실패하는 방식
Monoxide는 일반적으로 PoW 방식의 합의 프로토콜을 기반으로 하며, 단일 PoW 솔루션이 동시에 다른 영역에서 여러 블록을 생성할 수 있도록 하는 Chu-ko-nu 채굴 방식을 사용한다. 각 영역의 효과적인 채굴력이 전체 네트워크의 수준과 동일하도록 보장하기 위해. 개념적으로, Monoxide는 블록체인 샤딩 방식의 일종으로 분류될 수 있다.
Chu-ko-nu 채굴 방식: 블록을 생성하는 데 PoW 방식을 사용하지만, 블록을 생성하는 노드 수를 제한
- 블록체인 네트워크는 블록을 생성할 노드를 선택
- 선택된 노드는 블록을 생성하고 네트워크에 전송
- 네트워크의 다른 노드는 블록을 검증
- 블록이 검증되면 블록체인에 기록
2) SSChain
SSChain은 데이터 마이그레이션 오버헤드를 제거하기 위해 두 계층 아키텍처를 사용한다.
데이터 마이그레이션 오버헤드: 데이터를 한 샤드에서 다른 샤드로 이동하는 데 발생하는 비용
SSChain에서는 참여 노드가 주기적으로 네트워크를 재조정하지 않고도 하나 이상의 샤드에 자유롭게 참여할 수 있다.
SSChain의 두 계층 구조
첫 번째 계층: 루트 체인 네트워크
이 두 계층 구조에서 첫 번째 계층은 루트 체인 네트워크로, 전체 네트워크에서 상당히 큰 부분(예: 50% 이상)의 컴퓨팅 파워를 보유하고 있다.
- 즉, 보안을 유지
두 번째 계층: 샤드 네트워크
두 번째 계층은 샤드 네트워크로, 각 샤드가 분리된 원장(ledger)을 유지하고 분리된 트랜잭션 하위 집합을 독립적으로 처리한다.
- 즉, 처리량을 개선하고 저장 요구 사항을 줄인다.
블록체인 확장성(샤딩 프로토콜 포함)을 처리하는 기술
1) 오프체인 솔루션
오프체인 솔루션은 블록체인 네트워크의 외부에서 트랜잭션을 처리하여 확장성을 개선한다. 그러나 오프체인 솔루션은 유효성, 중앙 집중화, 보안 등의 문제에 직면해 있다.
이 솔루션에서 각 노드는 “오프체인”이라고 불리는 지역적으로 트랜잭션을 보유하고 있으며, “메인 체인”이라고 불리는 “온체인”에 이러한 트랜잭션의 설명이나 최종 결과만 보내게 된다. 그러나 “오프체인” 트랜잭션의 유효성에 대한 보증은 없다.
트랜잭션 유효성 검사 방식들
오프체인에서 트랜잭션 유효성 검사는 보안과 비용 등의 문제에 직면해 있다. 다음은 오프체인에서 이뤄지는 여러가지 검증방법이다.
- 중앙 집중식 검증: 하나의 주체가 트랜잭션의 유효성을 검사.
- 분산형 검증: 여러 주체가 트랜잭션의 유효성을 검사
- 토큰 보증: 트랜잭션이 유효하지 않은 경우 토큰을 몰수
- 보험: 트랜잭션이 유효하지 않은 경우 보험 회사가 보상
오프체인에서 염려되는 점
- “오프체인”과 “온체인” 간의 상태 일관성(및 트랜잭션의 최종 확인)을 유지하는 부분
- 중앙 집중화
- 보안 문제
- 유효성은 보장되지 않는다.
2) Directed Acyclic Graph (DAG) 솔루션
Directed Acyclic Graph (DAG)는 방향이 지정된 비순환 그래프이다.
유효성은 트랜잭션을 검증한 노드를 나타내는 트랜잭션의 (직접 또는 간접) 출력 엣지에 따라 달라집니다. 모든 노드가 전체 그래프를 획득할 필요가 없는 경우 확장 처리량을 달성할 수 있습니다. 그러나 트랜잭션의 유효성은 검증자에 대한 의존성으로 인해 손상될 수 있습니다. 또한 유효한 트랜잭션이 기생 체인에 추가될 확률이 있습니다.
Directed Acyclic Graph (DAG)의 트랜잭션의 유효성을 검사하는 방법
- 트랜잭션의 유효성을 검사하기 위해 트랜잭션이 연결된 노드의 유효성을 검사한다
- 예를 들어, 트랜잭션 A가 트랜잭션 B에 연결되어 있고, 트랜잭션 B가 유효하다면, 트랜잭션 A도 유효하다.
- 모든 노드가 전체 그래프를 획득할 필요가 없기 때문에, 블록체인 네트워크의 확장성을 개선할 수 있다
- 예를 들어, DAG에서 10개의 노드가 있고, 각 노드가 1개의 샤드를 담당한다면, 각 노드는 1/10의 그래프만 획득하면 된다.
그러나 트랜잭션의 유효성이 검증자에 대한 의존성으로 인해 손상될 수 있다.
- 예를 들어, 트랜잭션 A가 트랜잭션 B에 연결되어 있고, 트랜잭션 B가 유효하지만, 트랜잭션 A가 유효하지 않다면, 트랜잭션 A는 무효가 된다.
유효한 트랜잭션이 기생 체인에 추가될 확률이 있다
기생 체인은 블록체인 네트워크의 일부가 아닌 체인이다.
- 유효한 트랜잭션이 기생 체인에 추가되면, 블록체인 네트워크의 보안이 손상될 수 있다.
샤딩 솔루션
이 논문에서 논의된 일반적인 문제 외에도, 블록체인 샤딩에 대한 잠재적인 연구 주제들이 존재한다. 예를 들어, 수평 샤딩(예: 채널 [4])과 이질적 샤딩(예: 서로 다른 용량의 노드), 그리고 애플리케이션 특정 블록체인 샤딩 방식(예: 산업용 IoT(IIoT) [136] [138]에 표적화된 샤딩 방식)이 있다.
- 수평 샤딩은 블록체인 네트워크를 동일한 크기의 샤드로 분할하는 방식
- 이질적 샤딩은 블록체인 네트워크를 서로 다른 크기의 샤드로 분할하는 방식
- 애플리케이션 특정 블록체인 샤딩은 특정 애플리케이션에 맞게 블록체인 네트워크를 샤딩하는 방식
샤딩 기반 블록체인 시스템은 처리량, 저장 효율성, 보안의 확장성 사이에서 trade-off를 한다. [96] 한 가지 널리 열려 있는 근본적인 질문은 ‘블록체인 설계가 처리량, 저장 효율성, 보안을 동시에 확장할 수 있는가?’ 이다.