
Vitalik의 DA 문제 및 검열 저항형 인출에 관한 부정확한 발언을 바로잡기
저자: Faust, 극객web3
2024년 1월 16일, 이더리움 레이어2 프로젝트 Taiko의 창시자 DanielWang이 올린 트윗에서 AA 지갑 Soul Wallet의 창시자 쩡자쥔과 대화를 나누던 중, Vitalik은 이렇게 말했다. "롤업의 핵심은 무조건적인 보안 보장에 있다. 즉, 모두가 너를 겨냥하더라도 여전히 자산을 인출할 수 있어야 한다. 만약 DA(데이터 가용성)가 외부 시스템(이더리움 외부)에 의존한다면, 이를 달성할 수 없다."


Vitalik이 이 트윗 후반부에서 Validium(제로컨클루던스 증명 기반 2단계 네트워크 중 이더리움을 통해 데이터 가용성을 구현하지 않는 방식)에 대한 자신의 견해를 언급했기 때문에 많은 관심을 받았다(그동안 업계에서는 이더리움 재단이 '레이어2 = 롤업'이라고 생각한다고 알려져 왔다).
(강조해야 할 점: 이더리움 커뮤니티가 말하는 DA 개념은 오래 전의 역사적 데이터를 검색할 수 있는지 여부가 아니라, 레이어2에서 새로 생성된 데이터를 확보할 수 있는지를 의미한다. 새로운 데이터를 이더리움 체인 상에 게시하지 않으면, L2 노드는 최신 L2 블록을 제대로 해석할 수 없게 된다)
그러나 "이더리움 레이어2 정의 논쟁" 및 "DA 전쟁(DA War)"은 이미 수없이 논의되어 왔으며, 본문은 그러한 주제에 대해 다루려 하지 않는다. 오히려 Vitalik 발언의 전반부—즉 본문 서두에서 언급된 그 말에 더 집중하고자 한다.
Vitalik은 여기서 롤업이 신뢰 없이 검열 저항형 인출을 실현할 수 있다고 밝혔다. 즉 모든 레이어2 노드가 협조하지 않더라도 당신은 여전히 자산을 L2에서 빼낼 수 있다는 것이다. 그리고 그는 단지 롤업만이 이러한 '무조건적인 안전한 인출'을 가능하게 하며, 다른 DA 데이터 게시 방식에 의존하는 레이어2는 이를 달성할 수 없다고 지적했다.
그러나 사실상 Vitalik의 이 주장은 엄밀하지 않다.
첫째, 레이어1에서 레이어2로 교량된 자산만이 다시 ETH 체인으로 되돌아올 수 있으며, 순수한 레이어2 원생 자산은 레이어1로 이동할 수 없다(단, 해당 레이어2 원생 자산이 레이어1에 브릿지 자산 컨트랙트를 배포한 경우는 예외).

Vitalik이 말한 것처럼 "모든 사람이 너를 겨냥하고 있다면", 당신은 L1-L2 브릿지 자산만을 인출할 수 있고, 자신의 "레이어2 원생 토큰"은 인출할 수 없다. 이때 일반 출금(withdraw), 강제 인출(forced withdraw), 탈출구(Escape Hatch) 어떤 방법을 써도 소용없다.
둘째, "무조건적인 안전한 인출"은 반드시 DA 시스템에 의존할 필요가 없다. 롤업 이전 초기 레이어2 솔루션인, 이더리움 체인 외부에서 DA 데이터 게시를 수행하는 플라즈마(Plasma)는 DA 시스템 장애 발생 시(즉, 데이터 보류 사태가 일어나 정렬기/위원회 외에는 누구도 새 거래 데이터/상태 전환 정보를 받을 수 없는 상황)에도 사용자가 과거 데이터를 활용해 자산 증명을 제출하고 L2에서 안전하게 탈출할 수 있도록 허용한다.
즉, 플라즈마의 안전한 인출은 DA 시스템에 종속되지 않으며, 검열 저항 인출 또한 반드시 DA 시스템에 의존할 필요는 없다(단, 과거 데이터 접근 가능성이 보장되어야 함). 더욱이 이 말은 이더리움 재단의 Dankrad(Danksharding 제안자)가 직접 한 것이며, 동시에 어디서나 통용되는 공리이다.


이전 글 참조:《데이터 보류와 사기 증명: Plasma가 스마트 계약을 지원하지 않는 이유》
또한 Celestia 및 Blobstream을 제외하면, 데이터 보류/DA 고장 문제는 ETH를 DA 계층으로 사용하지 않더라도 해결 가능하다. Arbitrum 팀과 Redstone 팀이 현재 개발 중인 "데이터 가용성 도전(Data Availability Challenge)"만 보아도, 정렬기가 체인 상에 DA 커밋먼트(DA Commitment, 즉 datahash) 하나만 게시하고 체인 외부에 데이터를 게시했다고 선언할 수 있다. 누군가 체인 외부에서 새롭게 생성된 데이터를 확보하지 못하면, 체인 상의 DA 커밋먼트에 대해 도전을 제기하여 정렬기에 데이터를 체인 상에 공개하도록 요구할 수 있다.
이 메커니즘 설계는 매우 간결하며, Celestia, Avail 또는 EigenDA 같은 제3자 DA에 의존할 필요 없이, 레이어2 프로젝트팀이 자체적으로 체인 외 DAC 노드를 설정하기만 하면 된다. 이를 두고 마땅히 'Celestia 킬러'라 부를 만하다.
본문에서는 이제 Vitalik이 말한 "무조건적인 안전한 인출"과 그가 언급하지 않은 "데이터 가용성 도전"을 해설하고자 한다. 이를 통해 독자들에게 다음과 같은 점을 설명하고자 한다. Celestia, Avail, EigenDA 등의 제3자 DA 프로젝트가 왜 체인 외부 DA를 사용하면서도 보안을 추구하는 레이어2의 필수 선택지가 아닌지를 말이다.
덧붙여 우리는 이전에 "비트코인 레이어2 리스크 평가 지표"를 설명하는 글에서 검열 저항 인출이 DA 시스템보다 더 기본적이고 핵심적이라고 언급한 바 있으며, 오늘 이 글에서도 해당 관점을 추가로 설명할 것이다.

탈출구(Escape Hatch): Vitalik이 말한 '무조건적인 안전한 인출'

사실 Vitalik의 이 발언은 어렵지 않게 분석할 수 있으며, ZK 롤업의 탈출구(Escape Hatch)에 관한 것이다. 탈출구란 L1에서 직접 실행되는 인출 모드를 말한다. 이 모드가 활성화되면 롤업 컨트랙트는 동결 상태에 들어가며, 정렬기(Sequencer)가 제출하는 새 데이터를 거부하고, 누구라도 머클 증명(Merkle Proof)을 제출해 자신의 L2 자산 잔액을 입증함으로써 공식 브릿지 예금 주소에서 자산을 이체할 수 있게 된다.

더 깊이 들어가면, 탈출구 모드란 사용자의 거래가 레이어2 정렬기에 의해 장기간 거부된 후, 당사자가 L1에서 수동으로 실행할 수 있는 '신뢰 없는 인출 메커니즘'이다.
다만 탈출구 모드를 활성화하기 전, 정렬기로부터 거부당한 사용자는 우선 L1의 롤업 컨트랙트 내 강제 인출 함수를 호출해 강제 인출 요청을 제기하고, 이벤트를 발생시켜 L2 노드에 누군가 강제 인출을 요청했다는 것을 알릴 필요가 있다.


(L2 노드는 모두 이더리움 geth 클라이언트를 실행하므로 이더리움 블록을 수신하며, 따라서 강제 인출 이벤트 발생을 감지할 수 있다)
강제 인출 요청이 장시간 무시될 경우, 사용자는 스스로 탈출구 모드를 실행할 수 있다(Loopring 프로토콜은 기본 대기 시간을 15일로, StarkEx는 7일로 설정). 이후 본문 서두에서 설명한 절차대로, 사용자는 자신 자산에 해당하는 머클 증명을 제출해 L2 상의 자산 상태를 입증한 후 롤업 관련 컨트랙트로부터 자산을 인출할 수 있다.
하지만 머클 증명을 구성하려면 먼저 완전한 L2 상태를 파악해야 하며, 이를 위해 L2 전체 노드에게 데이터를 요청해야 한다. Vitalik이 언급한 극단적 상황이 발생해 어느 L2 노드도 협조하지 않는다면, 자신이 L2 전체 노드를 직접 구동하고 이더리움 네트워크를 통해 L2 정렬기가 이더리움에 게시한 과거 데이터를 얻어, L2 창세 블록부터 하나씩 동기화하여 최종 상태를 산출하고 머클 증명을 구성한 후 탈출구를 통해 안전하게 자산을 인출할 수 있다.

분명히 이 경우의 '검열 저항성(censorship resistance)'은 이더리움/L1 자체와 동등하다. 오래된 과거 데이터를 제공해주는 이더리움 전체 노드만 있으면 되므로 거의 신뢰 없음(trustless)에 가깝다.
그러나 EIP-4844 이후 이더리움 전체 노드는 일부 과거 데이터를 자동 삭제하게 되어, L2의 18일 이상 된 과거 데이터가 더 이상 이더리움 노드 전역에 백업되지 않게 된다. 그 결과 탈출구 인출의 검열 저항성은 지금처럼 거의 신뢰 없는 수준이 아니게 될 것이다.
EIP-4844 이후에는 비교적 적은 수의, 모든 과거 데이터를 저장한 이더리움 노드가 당신에게 데이터를 제공해주기를 믿어야 한다(일반적으로 L2 자체 노드는 드물기 때문에 고려하지 않는다). 이때, L1 과거 데이터 검색 가능성 / L2 탈출구 인출의 신뢰 가정은 현재의 '신뢰 없음(trustless)' 혹은 0에서 1/N으로 변화하게 된다. 즉 N개 노드 중 하나라도 데이터를 제공해주기를 가정하는 것이다.
EthStorage 팀은 이 N 값을 늘리는 데 노력하고 있으며, 더 많은 노드들이 오래된 과거 데이터를 저장하도록 유도하고 있다. 만약 1/N의 분모가 충분히 크다면 이 값은 여전히 0에 근접하여 신뢰 가정이 거의 존재하지 않는 것과 같다. 이는 EIP-4844 이후 과거 데이터 검색 문제를 어느 정도 해결할 수 있을지도 모른다.

탈출구와 DA의 관계 —— Validium의 인질 공격
여기서 다시 요약하자면, 탈출구란 머클 증명을 통해 자신의 L2 자산 상태를 입증하고, L1에서 신뢰 없이 자산을 인출하는 방식이다.
Vitalik이 인출에 필요한 자산 보안이 DA를 전제로 해야 한다고 언급한 것은 주로 Validium 방식이 "데이터 보류 공격(data withholding attack)"으로 인해 인출 불가능해질 수 있기 때문이다.(거래 데이터는 게시하지 않고 stateroot만 게시함)
구체적인 원리는 이렇다. 정렬기가 거래 데이터를 비공개로 유지한 채 이더리움 체인에 머클 루트(Merkle Root, 즉 Stateroot)만 게시한 후 유효성 증명을 통해 새로운 Stateroot가 검증되도록 하고, 이를 현재의 합법적인 Stateroot로 만들 수 있다.


이때 누구도 합법적인 Stateroot에 대응하는 완전한 상태를 알 수 없으므로 탈출구 인출에 필요한 머클 증명을 구성할 수 없다. 정렬기가 당신에게 데이터를 공개해주기 전까지는 인출할 수 없으며, Arbitrum의 한 기술 책임자는 이를 생생하게 '몸값 문제(ransom problem)'라고 표현했다(나는 개인적으로 '인질 공격(extortion attack)'이라는 표현을 더 좋아한다).

그러나 체인 외부 DA를 사용하는 Validium이 '인질 공격'에 취약한 것은 그 자체 메커니즘 설계가 미흡하기 때문이다. 인출과 관련된 도전 메커니즘 또는 데이터 가용성 도전을 도입한다면, 이론적으로 인질 공격 문제를 해결할 수 있다.
참고로 앞서 언급했듯이 오래된 과거 데이터를 통해 인출을 허용하는 플라즈마(Plasma)는 Validium과 같은 '인질 공격'이 발생하지 않으며, 플라즈마 역시 DA를 체인 외부에 두고 있다(체인 외부 DA + 체인 상에서 사기 증명 검증).
참고자료:데이터 보류와 사기 증명: Plasma가 스마트 계약을 지원하지 않는 이유
따라서 검열 저항 인출/탈출구는 반드시 DA에 의존할 필요가 없으며, 모든 것은 인출 프로세스의 메커니즘 설계에 달려 있다. Vitalik이 검열 저항 인출과 DA를 연결시키는 것은 Validium, 스마트 계약형 롤업 등 기존 방식에서 출발해 이미 일종의 사고 정체에 빠졌기 때문이다.
그러나 이는 모든 체인 외부 DA를 사용하는 레이어2가 Validium과 동일한 문제에 직면한다는 뜻이 아니며, 스마트 계약형 롤업이 모든 진화의 끝점이라는 의미도 아니다. 언제든지 혁신이 발생할 수 있다(예: 뒤에서 언급할 데이터 가용성 도전).
반대로 말하면, 레이어2 솔루션이 처음부터 탈출구, 검열 저항 인출과 같은 설계를 고려하지 않았다면, 그 레이어2는 반드시 신뢰 없음/보안 측면에서 부족하다. 즉, 좋은 DA와 증명 시스템은 검열 저항 인출을 실현하는 충분조건일 뿐이며, 필수조건은 아니다.
그렇기에 우리가 이전 글에서 레이어2 통합 효과에서 검열 저항 인출이 DA 및 증명 시스템보다 더 기초적인 약점이라고 말한 것은 타당한 이유가 있다.
참고자료:《통합 효과 이론으로 비트코인/이더리움 레이어2 보안 모델과 리스크 지표 분석하기》

Celestia 킬러: Arbitrum과 Redstone의 데이터 가용성 도전
탈출구와 DA의 관계를 설명한 후, 다시 DA 자체로 돌아가 보자. 레이어2가 반드시 DA 데이터를 이더리움에 게시해야만 정렬기의 '데이터 보류'를 피할 수 있는 것은 아니다.
Redstone, Arbitrum, Metis 등은 모두 '데이터 가용성 도전' 메커니즘을 개발 중이며, 정렬기가 체인 상에 DA 커밋먼트(DA Commitment, datahash)+Stateroot만 게시하고 체인 외부에 상태 전이 매개변수(거래 데이터)를 게시했다고 선언할 수 있도록 한다. 누군가 체인 외부에서 새로 생성된 데이터를 확보할 수 없다면, 체인 상의 DA 커밋먼트에 대해 도전을 제기하여 정렬기에 데이터를 체인 상에 공개하도록 요구할 수 있다.

정렬기가 도전을 받은 후 ETH 체인에 데이터를 적시에 게시하지 않으면, 그가 이전에 게시한 datahash/commitment는 무효로 간주되며, 함께 연결된 stateroot도 무효가 된다. 분명히 이것은 데이터 보류 문제(Stateroot는 게시하지만 대응하는 거래 데이터는 게시하지 않음)를 직접 해결한다.
명백히 이것은 Validium, Optimium 등 체인 외부 DA를 사용하는 레이어2보다 '데이터 가용성 도전'이라는 기능을 추가한 것이다. 하지만 이렇게 간단한 설계만으로도 Celestia, Avail, EigenDA 등에 강력한 경쟁을 가할 수 있다. 자체 DAC를 설정하고 데이터 가용성 도전을 도입하면 더 이상 Celestia에 의존할 필요가 없다.
반면에 데이터 가용성 도전은 해결해야 할 경제적 문제가 있다. ZkSync 창시자는 Arbitrum 기술 책임자와 논쟁하면서 데이터 가용성 도전이 이론상 Dos 공격에 쉽게 노출될 수 있다고 지적했다. 예를 들어 정렬기가 체인 상에 수천 개의 DA 커밋먼트를 빠르게 게시한 후 대응하는 완전한 데이터는 공개하지 않고 보유할 수 있다. 이런 방식으로 모든 도전자들의 자금을 고갈시킨 후 무효 블록을 게시해 사용자 자산을 훔칠 수 있다.

물론 이 가정은 너무 극단적이며, 본질적으로 공격과 방어 측 간의 게임 이론 문제이며, 실제로는 오히려 정렬기가 악의적인 도전자에게 DoS 공격을 당할 가능성이 더 높고, 연속적인 도전을 받은 후 롤업으로 후퇴하게 될 수도 있다. 데이터 가용성 도전을 둘러싼 공격과 방어 사이의 게임 상황은 매우 흥미롭고, 그에 따른 메커니즘 설계는 Arbitrum, Redstone, Metis 프로젝트팀의 지혜를 충분히 시험하게 될 것이다(이 주제는 별도의 글로 다뤄질 수 있다).

어쨌든 데이터 가용성 도전은 레이어2의 DA 설계에 더 많은 혁신을 가져올 것이며, 이 방식은 비트코인 레이어2 생태계에도 중요한 영향을 미칠 것이다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News









