이더리움/이더리움과 월드 컴퓨터

[이더리움과 월드 컴퓨터] 4-2. 레이어2와 롤업

라이튼 2023. 4. 15. 00:29

이전글

 

[이더리움과 월드 컴퓨터] 4-1. 오라클

이전글 [이더리움과 월드 컴퓨터] 3-2. NFT 이전글 [이더리움과 월드 컴퓨터] 3-1. 토큰 이전글 [이더리움과 월드 컴퓨터] 2-5. 솔리디티 이전글 [이더리움과 월드 컴퓨터] 2-4. 컨트랙트 계정 이전글 [

kwjdnjs.tistory.com

 

레이어2 소개

 이번 글에서는 레이어2가 무엇인지 알아보겠습니다.

 

I. 레이어1

 이더리움 블록체인은 자체적인 노드를 가지고 다른 블록체인에 의지할 필요 없이 단독으로 존재할 수 있습니다. 이처럼 독립적으로 존재하여 가장 기본이 되는 블록체인을 레이어1이라고 합니다. 대표적인 레이어1 블록체인에는 비트코인, 이더리움 등이 있습니다.

 

II. 레이어2

 몇몇 개발자들은 기존 이더리움 등 레이어1이 가진 한계를 극복하고 싶어 했습니다. 이를 위해 개발자들은 새로운 블록체인을 만드는 대신 기존의 가장 안정적인 블록체인인 레이어1을 확장하여 레이어1의 한계를 극복하고자 하였습니다. 이를 위해 등장한 것이 바로 레이어2입니다.

 

 레이어2는 레이어1에 의존적입니다. 레이어1은 독립적으로 존재할 수 있지만, 레이어2는 레이어1이 존재해야만 유지될 수 있습니다.

 

 그렇다면 레이어2를 통해 개발자들이 해결하고 싶은 문제가 무엇이었을까요? 이를 위해서는 블록체인 트릴레마에 대해 알아야 합니다.

 

 블록체인이 가지는 특징으로는 크게 탈중앙성, 보안성, 확장성이 있습니다. 문제는 모든 블록체인이 이 세 가지 중 한 가지는 어느 정도 포기해야 한다는 점입니다. 예를 들어, 비트코인의 경우 탈중앙성과 보안성이 매우 뛰어난 블록체인입니다. 하지만 확장성 즉, 속도나 범용 스마트 컨트랙트와 같은 부분이 부족합니다. 이더리움의 경우 비트코인보다는 범용적인 스마트 컨트랙트가 가능하지만, 탈중앙성과 보안성을 위해 트랜잭션 처리 속도와 확장성을 어느 정도 희생했습니다. 솔라나의 경우 빠른 처리 속도를 위해 탈중앙성을 일부 희생하였으며, 리플의 경우 트랜잭션 속도와 보안성을 가지는 대신 탈중앙성을 희생했습니다.

 

 

 결론적으로 이더리움이 가진 속도와 확장성이 가진 문제를 해결하기 위해 대부분의 레이어2가 등장했습니다. 레이어2를 이용하면 더 빠른 트랜잭션 처리가 가능합니다.

 

III. 롤업

 레이어2 블록체인을 구성하는 대표적인 방법에는 롤업이 있습니다. 롤업은 레이어1 외부에서 트랜잭션을 발생시키고, 이 과정에서 발생하는 계정의 상태변화를 레이어 1에 정산하는 방식으로 작동합니다.

 

 

 계정의 상태를 묶는 과정은 머클트리 같은 것을 이용합니다. 머클트리는 부모노드가 두 자식노드의 해시값을 가지는 트리구조를 말합니다. 머클트리를 구성하면 루트해시값을 얻을 수 있습니다. 이러한 루트해시가 현재 계정들의 상태를 나타내는 상태 해시가 됩니다. 계정의 상태가 바뀌면, 루트해시의 값도 변경되기 때문입니다.

 

 

 실제로 롤업이 진행되려면 레이어 2에서 트랜잭션을 처리하여 상태의 변화를 기록하고, 이 정보를 레이어1으로 올려주는 별도의 노드가 존재해야 합니다. 이러한 작업을 하는 노드를 시퀀서라고 합니다. 시퀀서는 레이어2 블록체인에서 블록을 생성하고, 블록의 정보를 담은 배치(Batch)를 레이어1에 올립니다. 배치에는 이전 상태의 루트값과 새로운 상태의 루트값, 발생한 트랜잭션들을 압축한 정보가 포함됩니다.

 

 

 배치가 레이어1에 제출되면 레이어1에 존재하는 롤업 컨트랙트는 배치에 담긴 이전 상태 루트 값과 현재 컨트랙트 상의 루트값이 같은지 확인하고 상태 루트 값을 변경합니다.

 

 

 롤업을 사용하면 트랜잭션을 외부에서 처리하기 때문에, 레이어1에 정산하는 과정에서 추가적인 검증작업이 필요합니다. 롤업은 이러한 검증작업에 방식에 따라 옵티미스틱 롤업과 zk 롤업으로 나뉩니다.

 

옵티미스틱 롤업

 옵티미스틱 롤업은 낙관적인 롤업이라는 이름처럼 트랜잭션에 이상이 없다는 가정하에 일단 트랜잭션을 검증하지 않고 처리합니다. 그리고 트랜잭션에 이상이 있다는 이의제기가 들어올 경우 상태를 수정하게 됩니다. 이 과정에서 사용되는 것이 바로 사기증명(Fraud Proof)입니다.

 

 사기증명은 이의제기가 발생하지 않는 이상 검증하지 않는 것이 핵심입니다. 만약 이의제기가 발생하여 트랜잭션의 문제가 있음이 밝혀지면, 상태 루트를 이전 상태로 롤백하고 트랜잭션을 통과시킨 시퀀서를 처벌하게 됩니다.

 

 사기증명을 위해서는 이의제기가 진행될 수 있는 기간이 필요합니다. 따라서 옵티미스틱 롤업은 구현이 쉬우나 이의제기 기간 동안 출금하지 못한다는 단점이 있습니다.

 

ZK롤업

 ZK롤업은 영지식증명(Zero-Knowledge proof)을 사용하는 방식의 롤업입니다. 영지식증명이란 자신의 정보를 노출시키지 않으면서 검증자가 자신이 해당 정보를 알고 있다는 것을 확인시키는 방법입니다. 예를 들어 빨간색 공과 파란색 공을 가진 A가 자신이 가진 공의 색깔을 노출시키지 않으면서, 서로 다른 색깔의 공을 가지고 있다는 사실을 B에게 알리려는 상황을 생각해 보겠습니다.

 

 

 먼저 A는 공을 동일한 상자에 담은 후 B에게 상자를 넘겨줍니다. 이때 상자의 좌우 위치는 변경하지 않고 보내야 합니다.

 

 

 이제 B는 A가 상자를 볼 수 없는 곳에서 두 상자의 위치를 바꾸거나 바꾸지 않습니다. 만약 B가 두 상자의 위치를 바꾼다면 다음과 같습니다.

 

 

 이제 A에게 상자의 위치가 바뀌었는지 바뀌지 않았는지 맞춰보라고 말합니다. A는 상자의 위치가 바뀌지 않도록 상자를 가져와 B가 볼 수 없는 곳에서 상자를 열어봅니다.

 

 

 A는 두 공의 색깔이 바뀐 것을 확인했기 때문에, B에게 두 상자의 위치가 바뀌었다고 말합니다. 위치를 바꾼 사실을 아는 B는 A가 정답을 맞혔다는 것을 알 수 있고, 이는 A가 서로 다른 두 색깔의 공을 가지고 있음을 증명해 줍니다. 물론 공을 섞었을 확률과 섞지 않았을 확률은 각각 50%이기 때문에, A가 색깔이 같은 공을 가지고 있어도 상당히 높은 확률로 정답을 맞힐 수 있습니다. 하지만 이 과정을 n번 반복해서 실행한다면, 무작위로 대답하여 맞출 확률은 1/(2^n)이 됩니다.

 

 이 과정에서 가장 중요한 것은 A가 가진 공의 색깔 정보가 B에게는 노출되지 않는다는 것입니다. 즉, 공에 대한 세부적인 정보를 노출시키지 않고, 공에 대한 정보를 알고 있다는 사실을 증명할 수 있는 것입니다. 이것이 바로 영지식 증명입니다.

 

 이제 ZK롤업으로 되돌아가보겠습니다. 영지식 증명을 이용하면 정보를 노출하지 않으면서 정보를 검증할 수 있다는 사실을 알게 되었습니다. 이를 응용하면 트랜잭션 세부적인 정보를 확인하지 않으면서 트랜잭션을 검증할 수 있습니다.

 

 ZK롤업을 위해서는 시퀀서가 레이어1 스마트 컨트랙트에 배치를 제출할 때 유효성 증명을 함께 제출하여야 합니다. 유효성 증명은 레이어2의 모든 트랜잭션이 문제가 없다는 것을 증명합니다. 레이어1의 스마트 컨트랙트는 영지식 증명을 이용해 유효성 증명을 하고, 문제가 없을 경우 이를 처리합니다.

 

 ZK롤업은 옵티미스틱 롤업과는 다르게 긴 이의제기 기간이 필요하지 않습니다. 즉, ZK롤업을 이용하면 빠른 시간 내에 출금이 가능합니다. 하지만 ZK롤업은 옵티미스틱 롤업보다 구현이 어렵고, 가스비가 더 많이 발생한다는 단점이 있습니다.

 

지금까지 레이어2와 롤업에 대해 간단히 알아봤습니다. 감사합니다.

 

 

다음글

 

[이더리움과 월드 컴퓨터] 5-1. 지분 증명(PoS)

이전글 [이더리움과 월드 컴퓨터] 4-2. 레이어2와 롤업 이전글 [이더리움과 월드 컴퓨터] 4-1. 오라클 이전글 [이더리움과 월드 컴퓨터] 3-2. NFT 이전글 [이더리움과 월드 컴퓨터] 3-1. 토큰 이전글 [이

kwjdnjs.tistory.com