Validium 해고? Danksharding 제안자의 시각에서 Layer2 재해석

극한 웹3
2023-08-18 11:58:58
수집
본 문서는 Dankrad의 시각에서 출발하여 Layer2의 세부 사항을 추가 분석함으로써 Validium이 엄밀한 의미에서 "Layer2"가 아닌 이유를 깊이 이해하고자 합니다.

저자: Faust, 극한의 웹3

서문: 최근 Danksharding의 제안자이자 이더리움 재단의 연구원 Dankrad Feist가 트위터에서 논란이 되는 발언을 했습니다. 그는 ETH를 DA 레이어(데이터 가용성 레이어)로 사용하지 않는 모듈화 블록체인은 롤업이 아니며, 이더리움 Layer2도 아니다라고 명확히 지적했습니다. Dankrad의 말에 따르면, Arbitrum Nova와 Immutable X, Mantle은 ETH 외부에서(자체적으로 DAC라는 오프체인 DA 네트워크를 구축하여) 거래 데이터를 공개하기 때문에 Layer2 목록에서 "제명"되어야 합니다.

동시에 Dankrad는 Plasma와 상태 채널과 같은 체인 상 데이터 가용성(Data Availability)이 필요 없는 솔루션은 여전히 Layer2로 간주되지만, Validium(ETH를 DA 레이어로 사용하지 않는 ZKRollup)은 Layer2로 간주되지 않는다고 밝혔습니다.

Dankrad의 발언은 롤업 분야의 많은 창립자나 연구자들의 의문을 불러일으켰습니다. 많은 "Layer2" 프로젝트가 비용 절감을 위해 ETH를 DA(데이터 가용성) 레이어로 사용하지 않았기 때문에, 이러한 프로젝트를 L2 목록에서 제외하면 상당수의 확장 네트워크에 영향을 미칠 것입니다. 동시에 Validium이 L2로 간주되지 않는다면, Plasma도 L2로 간주될 자격이 없을 것입니다.

이에 대해 Dankrad는 DA가 사용할 수 없을 때(즉, 오프체인 DA 레이어 네트워크가 데이터를 보류하고 거래 데이터를 공개하지 않을 때), Plasma 사용자는 여전히 자신의 자산을 안전하게 L1으로 철회할 수 있다고 말했습니다. 그러나 같은 상황에서 Validium(대부분 StarkEx 솔루션을 사용하는 프로젝트는 Validium)은 사용자가 L1으로 자금을 철회할 수 없게 하여 자금을 동결시킬 수 있습니다.

명백히 Dankrad는 "안전한지 여부"를 기준으로 확장 프로젝트가 이더리움 Layer2인지 여부를 정의하려고 합니다. "안전성"의 관점에서 보면, Validium은 순서 지정기 고장 + DA 레이어에서 데이터 보류 공격(새로운 데이터를 숨기는 경우)의 극단적인 상황에서 사용자 자산을 L2에 동결시킬 수 있습니다. 반면 Plasma는 Validium과 설계가 다르기 때문에 대부분의 경우 Validium보다 안전 보장이 부족하지만, 순서 지정기 고장 + DA 레이어에서 데이터 보류 공격이 발생할 때 사용자가 자산을 안전하게 L1으로 철회할 수 있도록 허용합니다. 따라서 Dankrad의 주장은 무리가 없습니다.

이 글은 Dankrad의 시각에서 출발하여 Layer2의 세부 사항을 추가 분석하여 왜 Validium이 엄밀한 의미에서 "Layer2"가 아닌지를 깊이 이해하고자 합니다.

Layer2를 어떻게 정의할 것인가?

ethereum.org 웹사이트와 대부분의 이더리움 커뮤니티 구성원의 정의에 따르면, Layer2는 "이더리움의 확장 + 이더리움의 안전성을 상속하는 독립 블록체인"입니다. 첫째, "이더리움의 확장"은 이더리움이 수용할 수 없는 트래픽을 분산시키고 TPS 측면의 압력을 분담하는 것을 의미합니다. "이더리움의 안전성을 상속한다"는 것은 "이더리움을 통해 자신의 안전성을 보장받는다"로 해석할 수 있습니다.

예를 들어, Layer2에서 모든 거래 Tx는 ETH에서 최종 결산(Finalize)을 완료해야 하며, 데이터에 오류가 있는 Tx는 통과되지 않습니다. Layer2의 블록을 롤백하려면 먼저 이더리움 블록을 롤백해야 하며, 이더리움 메인넷에서 51% 공격과 같은 블록 롤백이 발생하지 않는 한 L2 블록은 롤백되지 않습니다.

Layer2의 안전성을 더 깊이 탐구하면, 여러 극단적인 상황을 고려해야 합니다. 예를 들어, L2 프로젝트가 도망가거나, 순서 지정기(Sequencer)가 고장나거나, 오프체인 DA 레이어가 다운되는 경우와 같은 극단적인 사건이 발생했을 때, 사용자가 L2에서 자신의 자금을 안전하게 L1으로 철회할 수 있을까요?

Layer2의 "강제 인출" 메커니즘

L2 계약의 업그레이드/다중 서명 위험 등의 요소를 고려하지 않으면, Arbitrum이나 StarkEx는 사용자에게 강제 인출의 출구를 설정해 두었습니다. L2의 순서 지정기가 검열 공격을 시작하여 사용자 거래/인출 요청을 고의로 거부하거나 아예 영구적으로 다운되면, Arbitrum 사용자는 L1의 Sequencer Inbox 계약의 force Inclusion 함수를 호출하여 거래 데이터를 L1에 직접 제출할 수 있습니다. 만약 24시간 이내에 순서 지정기가 이 "강제 포함" 거래/인출을 처리하지 않으면, 해당 거래는 롤업 장부의 거래 시퀀스에 직접 포함됩니다. 이는 L2 사용자에게 강제 인출의 "안전 출구"를 제공합니다.

비교하자면, 탈출구(Escape Hatch) 메커니즘이 있는 StarkEx 솔루션은 더욱 강력합니다. L2 사용자가 L1에 제출한 강제 인출 요청이 7일의 윈도우 기간이 끝날 때까지 순서 지정기로부터 응답을 받지 못하면, 해당 사용자는 freeze Request 기능을 호출하여 L2를 동결 상태로 만들 수 있습니다. 이때 L2 순서 지정기는 L1에서 L2의 상태를 업데이트할 수 없으며, L2 상태가 동결된 후에는 1년이 지나야 해제됩니다.

L2 상태가 동결된 후, 사용자는 현재 상태와 관련된 Merkle Proof를 구성하여 L2에서 XX 금액의 자산이 있음을 증명하고, L1의 탈출구 관련 계약을 통해 인출할 수 있습니다. 이것이 StarkEx 솔루션이 제공하는 "전액 인출" 서비스입니다. L2 프로젝트가 사라지거나 순서 지정기가 영구적으로 고장 나더라도 사용자는 여전히 자금을 L2에서 철회할 방법이 있습니다.

하지만 여기에는 문제가 있습니다: StarkEx 솔루션을 사용하는 L2는 대부분 Validium(예: Immutable X와 ApeX)이며, DA에 필요한 데이터를 ETH에 게시하지 않기 때문에 현재 L2 상태 트리를 구성하는 정보는 오프체인에 존재합니다. 사용자가 오프체인에서 Merkle Proof를 구성하는 데 필요한 데이터를 얻을 수 없다면(예: 오프체인 DA 레이어가 데이터 보류 공격을 시작한 경우), 탈출구를 통해 인출할 수 없습니다.

이제 글의 시작 부분에서 언급한 Dankrad가 Validium이 안전하지 않다고 생각하는 이유는 명확해졌습니다: Validium은 롤업처럼 DA 데이터를 체인에 게시하지 않기 때문에 사용자가 "강제 인출"에 필요한 Merkle Proof를 구성할 수 없을 수 있습니다.

Validium과 Plasma의 데이터 보류 공격 발생 시 차이점

사실 Validium의 순서 지정기는 L1 체인에 L2 최신 Stateroot(상태 트리의 루트)를 게시하고, 새로운 Stateroot 생성 과정에서의 상태 전환(사용자 자산 변화)이 올바르다는 것을 증명하는 Validity Proof(ZK Proof)를 제출합니다.

(출처: eckoDAO)

하지만 단순히 stateroot만으로는 현재의 상태 트리(world state trie)를 복원할 수 없으며, 각 L2 계정의 구체적인 상태(자산 잔액 포함)를 알 수 없습니다. L2 사용자는 현재의 유효한 Stateroot에 해당하는 Merkle Proof를 구성할 수 없습니다. 이것이 Validium의 불리한 점입니다.

(Merkle Proof는 실제로 root 생성 과정에서 필요한 데이터, 즉 그림에서 어두운 부분입니다. 해당 Stateroot에 해당하는 Merkle Proof를 구성하려면 상태 트리의 구조를 알아야 하며, DA 데이터가 필요합니다.)

여기서 DAC라는 것을 강조해야 합니다. Validium의 DA와 관련된 데이터, 예를 들어 순서 지정기가 최신 처리한 거래 집합은 데이터 가용성 위원회 DAC(Data Availability Committee)라는 L2 전용 DA 네트워크에 동기화됩니다. DAC는 여러 대의 노드 서버로 구성되며, 일반적으로 L2 공식 및 커뮤니티 구성원 또는 기타 단체가 운영 및 감독합니다(하지만 이는 표면적인 것이며, 실제로 DAC 구성원이 누구인지 외부에서 확인하기는 어렵습니다).

흥미로운 점은 Validium의 DAC 구성원이 L1에 다중 서명을 자주 제출해야 한다는 것입니다. 이는 L2 순서 지정기가 L1에 제출한 새로운 Stateroot와 Validity Proof가 DAC와 동기화된 DA 데이터와 일치함을 증명합니다. DAC의 다중 서명이 제출된 후에야 새로운 Stateroot와 Validity Proof가 유효하다고 간주됩니다.

현재 Immutable X의 DAC는 5/7 다중 서명을 사용하고 있으며, dYdX는 ZKRollup이지만 DAC가 있으며 1/2 다중 서명을 사용합니다. (dYdX는 L1에 State diff 즉 상태 변화를 게시할 뿐, 전체 거래 데이터를 게시하지 않습니다. 그러나 과거 기록에서 State diff를 얻으면 모든 L2 주소의 자산 잔액을 복원할 수 있으며, 이때 Merkle Proof를 구성하여 전액 인출할 수 있습니다.)

Dankrad의 주장은 무리가 없습니다. Validium의 DAC 구성원이 공모하여 데이터 보류 공격을 시작하면 다른 L2 노드가 현재의 최신 데이터를 동기화하지 못하게 하고, 현재 L2의 유효한 Stateroot를 업데이트하지 않으면, 사용자는 현재 유효한 root에 해당하는 Merkle Proof를 구성하여 인출할 수 없습니다(현재 이후의 DA 데이터는 사용할 수 없고, 사용할 수 있는 것은 이전의 DA 데이터입니다).

하지만 Dankrad가 고려한 것은 이론적인 극단적인 상황일 뿐, 현실에서 대부분의 Validium 순서 지정기는 새로운 거래 데이터를 실시간으로 다른 L2 노드에 방송하며, 그 중에는 정직한 노드도 포함되어 있습니다. 단 하나의 정직한 노드가 DA 데이터를 적시에 확보할 수 있다면 사용자는 L2에서 안전하게 철수할 수 있습니다.

그렇다면 Validium에 존재하는 이론적인 문제는 왜 Plasma에는 존재하지 않을까요? 이는 Plasma가 유효한 Stateroot를 판단하는 방식이 Validium과 다르기 때문이며, 사기 증명 윈도우 기간이 존재하기 때문입니다. Plasma는 OPRollup 이전의 L2 확장 솔루션으로, OPR과 마찬가지로 사기 증명을 통해 L2의 안전성을 보장합니다.

Plasma는 OPR과 마찬가지로 윈도우 기간을 설정하고 있으며, 순서 지정기가 발표한 새로운 stateroot는 즉시 유효하다고 판단되지 않습니다. 윈도우 기간이 종료되고 L2 노드가 사기 증명을 발표하지 않아야 합니다. 따라서 Plasma와 OPR의 현재 유효한 Stateroot는 며칠 전 제출된 것입니다(이는 우리가 보는 별빛이 사실 오래 전에 발산된 것과 같습니다), 그리고 사용자는 종종 과거 시점의 DA 데이터를 확보할 수 있습니다.

동시에 사기 증명 메커니즘이 현재 유효하게 작동하기 위해서는 현재 L2의 DA가 가용해야 하며, 즉 Plasma의 Verifier 노드가 현재 DA와 관련된 데이터를 확보할 수 있어야 하며, 그래야 현재의 사기 증명을 생성할 수 있습니다(필요한 경우).

그렇다면 모든 것이 간단해집니다: Plasma가 정상적으로 작동하기 위한 전제는 현재 L2의 DA 데이터가 가용해야 합니다. 만약 지금부터 L2의 DA가 사용할 수 없게 된다면, 사용자는 안전하게 자금을 철회할 수 있을까요?

이 문제는 분석하기 어렵지 않습니다. Plasma의 윈도우 기간이 7일이라고 가정할 때, 만약 특정 시점 T0부터 새로운 DA 데이터가 사용할 수 없게 된다면(DAC가 데이터 보류 공격을 시작하여 정직한 L2 노드가 T0 이후의 데이터를 확보하지 못하게 한다면), T0 및 그 이후의 유효한 Stateroot는 T0 시점 이전에 제출된 것이며, T0 시점 이전의 역사적 데이터는 추적 가능하므로 사용자는 Merkle Proof를 구성하여 강제 인출할 수 있습니다.

비록 많은 사람들이 즉시 이상을 감지하지 못할 수 있지만, 윈도우 기간이 존재하기 때문에(ARB는 3일, OP는 7일), T0 시점에 제출된 Stateroot가 아직 유효화되지 않았고 T0 이전의 DA 데이터가 추적 가능하다면 사용자는 안전하게 L2에서 자금을 철회할 수 있습니다.

결론

이제 우리는 대략적으로 Validium과 Plasma의 안전성 차이를 정리할 수 있습니다:

Validium의 순서 지정기가 Stateroot를 발표한 후, 즉시 Validity Proof와 DAC 다중 서명을 발표하면 이를 유효하게 만들어 최신 유효한 Stateroot가 됩니다. 사용자가 정직한 L2 노드와 함께 데이터 보류 공격을 당하여 현재 유효한 Stateroot에 해당하는 Merkle Proof를 구성할 수 없다면, L1으로 인출할 수 없습니다.

반면 Plasma는 새로운 Stateroot를 제출한 후 윈도우 기간이 종료되어야 유효합니다. 이때의 유효한 Stateroot는 과거에 제출된 것입니다. 윈도우 기간(ARB는 3일, OP는 7일)이 존재하기 때문에, 새로 제출된 Stateroot의 DA 데이터가 사용할 수 없더라도 사용자는 현재 유효한 Stateroot의 DA 데이터(유효한 root는 과거에 제출된 것)를 확보하고 있으며, 충분한 시간 내에 L1으로 강제 인출할 수 있습니다.
따라서 Dankrad의 말은 일리가 있습니다. 데이터 보류 공격이 발생할 경우 Validium은 사용자 자산을 L2에 가두는 가능성이 있지만, Plasma는 이러한 문제가 존재하지 않습니다.
(아래 그림에서 Dankrad가 말한 것은 약간 틀렸습니다. Plasma는 구식 유효한 Stateroot에 해당하는 Merkle 증명을 구성하여 인출하는 것을 허용하지 않아야 합니다. 이는 이중 지불을 초래할 수 있기 때문입니다.)

따라서 오프체인 DA 레이어의 데이터 보류 공격은 많은 안전 위험을 초래할 수 있지만, Celestia는 바로 이 문제를 해결하려고 시도하고 있습니다. 또한 대부분의 Layer2 프로젝트는 L2 노드와 순서 지정기가 오프체인에서 동기화될 수 있는 서비스 포트를 제공하므로, Dankrad의 우려는 종종 이론적인 것이지 현실적인 것이 아닙니다.

우리가 계란에서 뼈를 찾는 태도로 더 극단적인 가정을 제기한다면: 모든 Plasma 오프체인 노드가 사용할 수 없게 된다면, L2 노드를 한 번도 사용하지 않은 일반 사용자들은 L1으로 강제 인출할 수 없게 됩니다. 그러나 이러한 일이 발생할 확률은 공공 블록체인의 모든 노드가 집단적으로 영구적으로 다운되는 확률과 같으며, 아마도 영원히 발생하지 않을 것입니다.

따라서 많은 경우, 사람들은 실제로 발생하지 않을 일에 대해 이야기하고 있는 것입니다. 마치 HBO 드라마 "체르노빌"에서 KGB 부의장이 주인공에게 한 유명한 대사처럼: "왜 결코 발생하지 않을 일을 걱정해야 합니까?"

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
banner
체인캐처 혁신가들과 함께하는 Web3 세상 구축