https://dhsimpson-ml-and-sw.tistory.com/78 에서 이어지는 글입니다.
Rollup 외에도 샤딩을 통해서도 확장성 향상이 가능하다.
샤딩은 '여러 체인으로 나누어 Tx 를 분할 처리' 하는 기술이다.
샤딩은 분할처리 통해 처리시간(블록 생성 시간), Tx 처리량 측면의 확장성 문제를 해결한다.
L1, L2 에서 모두 샤딩 기능이 있는데,
L1 의 샤딩은 메인 블록체인을 여러 개의 체인(샤드)으로 나누는 기술이다.
각 샤드 끼리는 동기화를 하지 않고, 상호작용이 필요한 경우 Beacon Chain 이라는 중앙 체인을 통해 상호작용한다.
정리하자면, Dapp 의 Tx 가 각 샤드에 기록 되고, 블록체인의 중심이 되는 Beacon Chain 이 존재하며, 필요한 경우 샤드 간의 상호작용 및 합의를 도모한다.(ex A 샤드에서 B 샤드로 자금 이체)
L2 의 샤딩은 메인체인에서 분할 된 L2 만의 사이드 체인을 생성해 Tx 를 L2 에서 처리하는 기술이다.
즉, L2 의 사이드 체인이 하나의 샤드 이다.
(L1 메인체인 에서 처리해야 할 Tx 를 L2 의 사이드 체인이 일부분 처리한다고 생각하면 되지 않을까.)
대표적인 L2 의 샤딩 솔루션으로는 플라즈마가 있다.
L2 의 사이드체인은 L1 체인과 주기적으로 동기화를 한다.
(L1 체인의 신규 블록에 압축된 Tx를 전달하는 rollup 과는 다르다. 샤딩엔 해당 과정이 없고 동기화를 사용한다.)
동기화는 특정 샤드와 1대1로 할 수도, 여러 샤드와 할 수도 있다.
L1, L2 체인의 동기화 과정에서 아래와 같은 문제점이 발생할 수 있다. (by Chat GPT)
1. 데이터 일관성 문제: L1과 L2 체인 간의 상태 동기화 과정에서 데이터 불일치가 발생할 수 있습니다. 이러한 불일치는 소프트웨어 버그, 네트워크 지연, 악의적인 행위 등 다양한 원인으로 발생할 수 있습니다.
2. 보안 문제: L2 체인은 L1 체인보다 상대적으로 보안 수준이 낮을 수 있습니다. 악의적인 공격자가 L2 체인의 취약점을 이용해 공격을 수행할 경우, L1 체인과의 동기화 과정에서 영향을 미칠 수 있습니다.
3. 합의 알고리즘 호환성 문제: L1 체인과 L2 체인은 각각 다른 합의 알고리즘을 사용할 수 있습니다. 이로 인해 두 체인 간의 상호 작용이 제한되거나 복잡해질 수 있습니다.
4. 트랜잭션 처리 지연: L1 체인과 L2 체인 간의 상태 동기화는 일정 시간이 소요됩니다. 따라서, 이 과정에서 발생하는 지연 시간으로 인해 트랜잭션 처리 속도가 저하될 수 있습니다.
5. 사용자 경험 저하: L1 체인과 L2 체인 간의 동기화 과정은 사용자가 수행해야 하는 추가적인 단계를 필요로 할 수 있습니다. 이로 인해 사용자 경험이 저하될 수 있습니다.
6. 비용 증가: L2 체인을 운영하고 L1 체인과 동기화하는 과정에서 발생하는 비용이 높을 수 있습니다. 이러한 비용은 사용자의 트랜잭션 수수료에 영향을 줄 수 있습니다.
c.f. L2 의 오프체인에서 Tx 를 실행한다는 점에서 L2 의 샤딩(사이드 체인) 또한 비용 측면의 확장성 문제 해결에도 도움을 줄 수 있다.
다음으론 PoS 에 대해 포스팅 할까 싶다.
'소프트웨어 엔지니어링 > 블록체인,WEB3' 카테고리의 다른 글
web3 의 확장성 향상 동향 1. L2 레이어, Rollup (0) | 2023.04.09 |
---|---|
공부 링크들 (0) | 2022.09.09 |