Blockchain Trilemma, Layer Solution(블록체인 트릴레마, 레이어 솔루션)

Hong·2022년 11월 14일
0
post-thumbnail





📐 Blockchain Trilemma(블록체인 트릴레마)

그리스어 숫자 3을 의미하는 ‘Tri’명제를 의미하는 단어 ‘Lemma’가 합쳐져 만들어진 단어이다. 세 가지 각각의 문제가 서로 영향을 주어 어떤 선택을 해도 남은 두 가지 혹은 한 가지의 문제를 악화시키는 결과를 초래할 때 이를 트릴레마라 한다.


블록체인에서 트릴레마란 확장성(Scalability), 탈중앙화(Decentralization), 보안성(Security)의 세 가지 문제는 한번에 해결할 수 없음을 뜻한다.

예를 들어, 비트코인은 트릴레마 중 탈중앙화와 보안성을 만족시키는 한편 확장성을 놓쳤다.
(비트코인은 초당 약 7개의 트랜잭션만 처리한다.)
반면 Hyperledger Fabric(하이퍼레저 패브릭)은 보안성과 확장성을 만족시키지만 중앙 집중적인 노드로 블록체인 네트워크를 운영하기 때문에 탈중앙화를 포기했다.


🧐 Blockchain Trilemma를 모두 만족시킬 수 있는 방법은 없을까?

지금은 이러한 문제를 해결하기 위해 Layer 1, Layer 2 솔루션이 연구 개발되고 있다.
하지만 아직까지 완벽하게 온체인 상에서 트릴레마를 완벽하게 해결한 블록체인은 존재하지 않으며 트릴레마의 해결책이 Layer 솔루션이 될지 안될지도 불투명한 상황이다.
사실상 이 트릴레마가 완벽하게 해결되지 않으면 블록체인을 쓸 이유가 전혀 없어진다.
사람들이 어떻게 이 문제를 완벽하게 해결할지 기다려진다. 블록체인 산업이 본격적으로 비즈니스화되고 산업에 꽃이 피는 때는 이때가 아닐까.





📚 Layer Solution

퇴근 시간의 서울거리는 항상 차가 막힌다.
교통량이 많아지고(트랜잭션 수 증가) 도로를 지나는데 많은 시간이 걸린다(병목 현상으로 인해 트랜잭션 처리 시간 증가).
우리는 이러한 문제를 해결하기 위해 보통 도로를 넓혀 차선을 증가시키거나(레이어 1 솔루션) 자동차 대신 전동 킥보드 등 다른 교통수단을 추가한다(레이어 2 솔루션)


📄 Layer 1 Solution

기존에 사용되고 있는 블록체인 네트워크 자체를 개선시킨다.

합의 알고리즘 개선

PoW는 비트코인의 합의 프로토콜로써 안전하지만 속도가 느리다는 단점이 있다. 때문에 대부분의 신생 블록체인 네트워크에서는 PoS 합의 메커니즘을 택한다.

PoS 시스템은 채굴자들이 많은 컴퓨팅 파워를 사용하여 암호화 알고리즘을 풀도록 요구하지 않는다. 대신 네트워크 참여자가 가지고 있는 코인의 지분으로 트랜잭션 처리 권한을 부여한다. 이더리움2.0은 탈중앙화를 강화하고 네트워크 보안을 유지하는 동시에 네트워크 용량을 늘리는 PoS 합의 알고리즘으로의 전환을 준비하고 있다.


Shadding (샤딩)

분산데이터베이스에서 쿼리 처리속도를 빠르게 하기 위해 도입된 솔루션이지만 블록체인에도 도입되었다.
현재 가장 인기있는 레이어 1 솔루션이다. 샤딩은 트랜잭션을 더 작은 데이터 세트로 나누고 이러한 데이터는 동시에 병렬적으로 처리되어 동시에 수많은 트랜잭션에 대한 처리를 가능하게 해준다.





📄📄 Layer 2 Solution

사용되고 있는 블록체인 위에 또 다른 네트워크를 만든다.
이더리움 트랜잭션 처리에서 각 Layer 2 처리방식이 차지하고 있는 비중


Rollups (롤업)

'롤업은 L2에서 트랜잭션을 실행한 뒤, 실행한 트랜잭션 데이터들과 변경된 상태의 요약본을 L1에 저장하는 솔루션'이다.


일반적으로 L1에 배포된 롤업 컨트랙트(Rollup Contract)에는 롤업 체인의 상태 요약본인 스테이트 루트가 저장되어 있다. 롤업은 롤업 체인(L2)에서 다수의 트랜잭션들을 처리한 후 각 계정의 상태를 바꾸고, 그 결과로 바뀌게 된 최종 스테이트 루트 값을 L1의 롤업 컨트랙트에 전송하여 L1에 기록된 롤업 체인의 상태도 업데이트하도록 요청한다.
이러한 요약된 트랜잭션 데이터는 L1의 온체인 상에 보관되기 때문에 모든 트랜잭션에 대한 무결성을 쉽게 확인할 수 있다.

🙋‍♂️ 그런데 이때 우리는 질문할 수 있다.

메인 블록체인에서 처리된 트랜잭션이 아닌 트랜잭션의 요약본을 신뢰할 수 있는가?
이더리움 네트워크는 Layer 2로부터 전달 받은 트랜잭션의 요약본을 신뢰할 수 있는가?
이러한 질문에 대한 대답은 옵티미스틱 롤업과 ZK롤업에 따라 달라진다.



옵티미스틱 롤업(Optimistic Rollup)

옵티미스틱 롤업은 그 이름에서 알 수 있듯이 Layer 2가 제출하는 상태에 문제가 없을 것이라는 낙관적인 가정 아래 실행된다.

따라서 누군가 그 데이터가 잘못되었다고 이의를 제기하지 않는 한 롤업 컨트랙트는 트랜잭션이 올바르게 실행되었는지 실제로 검증하지 않고 일단 사실로 받아들여 새로운 스테이트 루트를 업데이트하게 된다.

ZK롤업(Zero Knowledge Rollup, 영지식 롤업)

ZK롤업은 이름 그대로 영지식 증명(Zero-Knowledge Proof)을 통해 생성되는 유효성 증명(Validity Proof)을 사용하여, Layer 2가 제출하는 상태가 옳다는 것을 증명하는 방법을 사용한다.

제출된 상태를 일단 반영한 이후 필요시 사기 증명(Fraud Proof)을 통해 정당하지 않은 상태변화를 잡아내는 옵티미스틱 롤업과 달리, ZK롤업은 상태를 반영하기 전에 미리 유효성 증명을 검증하여 올바르지 않은 상태를 걸러내는 방식으로 이해할 수 있다.





🖇️ 중첩 블록체인(Nested Blockchains)


중첩 블록체인 : 중첩 블록체인은 블록체인 내부에 있는 또 다른 블록체인이다. 원래의 메인넷 블록체인에 중첩된 블록체인은 데이터를 처리하여 메인넷 네트워크에 전달한다.

메인넷 체인과 중첩 블록체인은 부모-자식 노드 관계를 이루고 있다.


Plasma

대표적인 중첩체인에 대한 예시로 OMG Plasma 프로젝트가 있다.
Plasma(플라즈마)는 이더리움 창시자인 Vitalik Buterin씨와 라이트닝 네트워크를 만들어낸 Joseph Poon씨에 의해 제안된 이론이다. 암호자산(가상통화)의 확장성 문제 해결로 주목받고 있는 Plasma(플라즈마)란 별도의 블록체인을 만들어 여러 겹의 블록체인을 겹친 뒤 본체인(이더리움 블록체인)에 연결하여 부담을 줄이고자 하는 이론이다. 본체인(이더리움 블록체인)이 레이어 1이라고 한다면 Plasma(플라즈마)는 레이어 2의 영역이다.

  • *Plasma(플라즈마)는 몇 층씩 겹칠 수 있으므로 실제로는 세컨드 이상의 레이어 형성도 가능하다.

라이트닝 네트워크는 데이터를 오프체인으로 처리하지만 Plasma는 온체인으로 처리한다.

Plasma(플라즈마)는 이더리움의 블록체인을 본체인으로 보았을 때 계층적인 Tree 구조로 이루어져 있다. 기존의 이더리움에서는 트랜잭션 처리를 레이어 1에서만 진행했었는데, Plasma(플라즈마)에서는 각각의 Plasma(플라즈마) 체인에 의해 블록이 추가될 때마다 그 블록의 헤더를 상위 계층인 Plasma(플라즈마) 체인에 전해서 각각의 Plasma(플라즈마) 체인의 최종적인 상태만을 본체인에 송신하여 부담을 경감시킨다.





📡 상태 채널(State Channels)

상태 채널이란 두 거래 당사자 간에 생성되는 채널을 통해 서로 즉각적이고 저렴하게 거래를 할 수 있는 솔루션이다.

여기서 채널(Channel)이란 거래 당사자들의 서명으로 관리되는 다중 서명(MultiSig) 계정으로, 참여자의 잔액을 관리하고 이러한 자금이 사용될 수 있는 조건을 정의하는 스마트 계약으로 이해할 수 있다.

따라서 채널을 생성하는 참여자는 스마트 계약에 자금을 예치하며 채널을 열고, 채널을 연 사람들 간 양방향으로 거래를 진행한다.
정리하면, 메인넷과 떨어져 스마트 컨트랙트로 두 사용자가 이용할 수 있는 채널을 열고 미리 작성된 스마트 컨트랙트의 규칙에 따라 채널 위에서 거래를 진행한다.





🤸‍♀️ 사이드 체인(Side Chains)

사이트 체인은 말 그대로, 레이어1 블록체인 옆에서 대신 트랜잭션을 처리힌다.
예를 들어, 기존에는 레이어1 에서 발행된 코인이나 토큰은 무조건 레이어1 체인을 통해서 거래할 수 있었다. 하지만 사이드 체인은 이러한 문제를 해결한다.

사이드 체인은 output주소와 input주소를 가지고 있다.

거래 당사자가 사이드 체인의 output주소로 자신의 코인을 보내면, 레이어1 체인에서 해당 코인은 사용할 수 없도록 잠긴다. 대신, 동일한 양의 코인이 사이드 체인의 거래 당사자 주소로 보내진다.
코인을 받은 거래자는 받은 코인을 레이어1 체인에 올리고 싶다면 그것도 가능하다(input주소로 보내면 됨).

사이드 체인은 레이어1 체인보다 확장성이 좋은 네트워크를 사용하기 때문에 트릴레마의 확장성을 일정부분 해결한다.









레이어 솔루션 전반적인 참고는 여기.

롤업은 여기를 참고했다.

중첩 블록체인은 여기를 참고했다.

profile
Notorious

0개의 댓글