Axolotl

이더리움 플라즈마의 한계

01 Nov 2023

TL;DR

플라즈마는 이더리움의 과부하 된 트랜잭션 처리량 문제를 해결하기 위해 등장한 초기의 확장성 솔루션이다. 플라즈마는 머클 트리 형태의 구조를 갖고 있어 상위 체인에 대해 무한한 하위 플라즈마 체인을 형성할 수 있다. 상위 체인에서 처리할 트랜잭션들을 플라즈마 체인에서 처리한 후 그 데이터를 모두 각 플라즈마 체인에 보관한다. 샤딩과 사이드 체인의 단점을 해결하기 위해 등장한 플라즈마 체인은 초기에 이더리움 메인넷의 트랜잭션 처리량을 비자(Visa) 수준으로 향상시켜줄 것이라고 기대했지만 고질적인 데이터 가용성 문제로 인해 이후 등장하는 다른 확장성 솔루션에 밀려 점차 잊혀졌다.

플라즈마 간단한 개요

플라즈마(Plasma)는 이더리움 블록체인의 확장성 문제를 해결하기 위해 개발된 확장성 솔루션으로, 블록체인 네트워크의 처리량과 속도를 획기적으로 향상하기 위해 고안되었다. 이더리움 창시자인 비탈릭 부테린과 조셉 푼이 제안한 이 기술은, 이더리움 메인넷(루트 체인) 위에 여러 개의 보조 체인(플라즈마 체인)을 생성하여, 메인 체인의 부담을 경감하고 전체 네트워크의 트랜잭션 처리량을 증가시키는 데 목적을 두고 있다.

플라즈마는 ‘트리 구조’를 갖는 여러 하위 체인을 통해 작동한다. 이 하위 체인들은 메인 체인으로부터 독립적으로 트랜잭션을 처리하며, 각기 다른 규칙이나 로직을 가질 수 있다. 이러한 구조는 네트워크의 부하를 분산시키고, 다양한 애플리케이션 또는 사용 사례에 맞게 최적화된 솔루션을 제공한다. 결과적으로, 사용자는 더 빠르고 저렴한 트랜잭션을 경험할 수 있으며, 개발자는 더 다양한 블록체인 기반 애플리케이션을 구현할 기회를 얻는다.

플라즈마의 중요한 특징 중 하나는 ‘데이터 가용성’이다. 모든 플라즈마 체인의 상세한 데이터가 루트 체인에 저장되지 않음으로써, 메인 체인의 부담을 줄이고 스케일링 효과를 극대화한다. 대신, 각 플라즈마 체인의 요약된 정보만이 루트 체인에 저장되며, 이를 통해 보안성과 데이터 무결성을 보장한다. 또한, 플라즈마 프레임워크는 사용자가 자신의 자산을 메인 체인으로 안전하게 이동할 수 있는 출금 메커니즘을 제공한다. 이는 플라즈마 체인에서의 잠재적인 보안 문제나 오류에 대비한 것으로, 사용자들이 자신의 자산을 보호할 수 있도록 하는 중요한 장치이다.

플라즈마는 이더리움 네트워크의 확장성을 높이는 데 중요한 역할을 하며, 블록체인 기술의 적용 범위를 확장하는 데 크게 기여하고 있다. 그러나 플라즈마 역시 완벽한 솔루션은 아니며, 다양한 기술적 도전과 한계점을 가지고 있다.

플라즈마의 한계

플라즈마의 문제

1. 체인 모니터링 문제

플라즈마 체인 운영에 가장 큰 혼란을 줄 수 있는 요소 중 하나는 바로 악의적인 오퍼레이터 행위다. 체인 사용자는 블록 정보를 공개하지 않거나 블록 정보를 의도적으로 잘못 기입하는 행위를 계속해서 감시해야 한다. 플라즈마 체인은 사이드체인과 다르게 네트워크 오퍼레이터가 악의적인 행동을 하면 사기 증명을 제출하고 체인을 종료할 수 있다. 이를 위해서는 체인의 모든 트랜잭션을 검증해야 한다. 트랜잭션 검증에는 비용이 추가로 발생하고 지속적인 모니터링에 대한 요구 때문에 플라즈마 체인 참여에 부담이 가해질 수 밖에 없다.

부정적인 행위에 대한 감시라는 이유 외에도 플라즈마 체인의 구조적인 문제로 체인을 지속적으로 모니터링해야 한다. 참여자들은 정상적인 자금 인출을 위해 플라즈마 체인의 상위 체인을 계속해서 지켜봐야 한다. 거래 당사자들이 인출 신청을 하면 해당 트랜잭션은 상위 체인의 플라즈마 컨트랙트로 기록된다. 상위 체인까지 이 트랜잭션이 기록되어야 UTXO에 대한 인출 신청이 받아들여지기 때문에 사용자는 커밋될 때까지 이를 계속 모니터링 해야 한다. 특히 루트 체인으로 인출을 신청하면 하위 체인부터 상위 체인을 거쳐 루트 체인까지 제대로 커밋이 이루어지는지 계속 확인해야 하는 문제가 있다. 무신뢰성이라는 블록체인의 아젠다를 위해 고안된 플라즈마 체인은 아이러니하게도 신뢰를 위해 노드를 계속해서 모니터링해야 한다는 과중된 업무를 사용자에게 부과한다. 이로 인해 사용자들이 플라즈마 체인을 사용하기에 부담스럽게 만든다.

2. 대규모 탈출 문제

플라즈마 체인에는 챌린지 기간(Challenge Period)라는 것이 있다. 자금을 출금하는 과정에서 발생하는 지연 시간으로 이때 트랜잭션에 대한 이의 제기를 할 수 있다. 챌린지 기간은 최대 7일이며 그 사이에 이의 신청이 끝날 수도 있다. 이는 사용자의 자금 보호를 위해 마련해 둔 장치다. 하지만 많은 사람들이 체인을 트랜잭션을 마치고 체인을 종료할 때 문제가 발생한다. 플라즈마 체인은 선입선출 방식으로 트랜잭션을 처리한다. 챌린지 기간은 외부 공격으로 인해 체인을 급하게 종료해야 하는 상황이나 급하게 자금을 이동해야 할 때 사용자는 긴 시간을 기다려야 하는 문제점을 갖는다.

대규모 탈출 문제는 데이터 가용성 문제를 악용하는 악의적인 오퍼레이터 행위를 방지하기 위해 고안되었다. 정상적인 거래 사이에서 자금을 갈취하려는 오퍼레이터의 행위를 늦추고자 체인에서 사용자를 대량 이탈시키는 방법을 사용한다. 위 챌린지 기간을 이용하면 오퍼레이터의 악의적 행위를 지연시킬 수 있고 이때 출금 요청에 대한 검토를 진행한다.

그러나 이 방법은 위에서 설명했듯이 정상적인 사용자의 자금 인출 시간까지 늦추는 부작용을 낳는다. 게다가 이 방법은 이상적인 해결책도 아니다. 플라즈마 체인의 모든 사용자가 트랜잭션을 종료할 경우 해당 체인의 상태와 데이터를 메인넷에 모두 넘겨야 한다. 임의의 플라즈마 체인 크기와 이더리움 메인넷의 처리 속도의 제약을 고려하면 대규모 탈출 문제를 통한 악의적 오퍼레이터 행위 방지는 비현실적이다. 추가로 순식간에 많은 데이터가 상위 체인으로 몰릴 경우 병목현상이 발생하여 네트워크의 정체가 유발된다. 이때 외부 공격과 같은 보안에 취약해지며 메인넷이나 다른 플라즈마 체인을 사용하는 사용자의 자금 인출에도 지연이 발생하는 문제가 생긴다.

3. 데이터 가용성 문제

사기 검증은 플라즈마 체인 운용에 가장 중요한 행위다. 유효하지 않은 블록을 생성하거나 거래 내용을 숨기는 등, 오퍼레이터의 악의적인 행동을 막기 위해서는 일반 사용자의 사기 검증이 필수이기 때문이다. 사기 검증에는 트랜잭션 정보와 상태가 필요하다. 메인넷에는 블록 루트만 기록하고 자세한 트랜잭션 데이터는 플라즈마 체인이 저장한다. 따라서 사기 검증을 실시할 때는 플라즈마 체인에 기록된 데이터를 확인할 수 있어야 한다. 여기서 플라즈마 체인의 데이터 가용성 문제가 나타난다.

데이터 가용성 문제는 트랜잭션과 이를 기록하는 블록을 검증하기 위해 필요한 거래 정보에 투명하게 접근하지 못할 때 발생한다. 보통 두 가지 이유에서 해당 문제가 발생한다.

  1. 정직하지 못한 풀 노드의 정보를 받은 라이트 노드가 검증 못하는 경우
  2. 오퍼레이터가 블록을 만든 후 데이터를 공개하지 않는 경우

첫 번째 문제는 체인의 라이트 노드 구현에 관한 문제다. 두 번째 문제는 플라즈마 체인의 운영에 관한 직접적인 문제로 자금 인출과 거래에 관련된 치명적인 문제다. 플라즈마 체인에 공개되는 트랜잭션 데이터는 사기 검증을 위해 필수적이다. 사기 검증 방식은 메인넷에 제출된 의심되는 블록 루트에 대한 플라즈마 체인의 트랜잭션 데이터를 블록 루트와 함께 다시 계산하여 타당성을 검증하는 식으로 진행된다. 이것이 검증되면 자금은 다시 회수되고 오퍼레이터의 토큰은 슬래싱되며 검증자는 보상받는다. 이는 현재 폴리곤(Polygon)의 전신인 매틱 네트워크 (Matic Network)가 실제로 사용했던 방식이다.

이때 블록루트와 함께 자세한 트랜잭션 데이터를 플라즈마 체인에서 확인해야 한다. 그런데 만일 오퍼레이터가 블록의 데이터를 공개하지 않는다면 어떻게 될까? 혹은 공개하더라도 전후 상태가 다른 유효하지 않은 블록을 공개한다면 어떻게 될까? 거래 당사자를 포함해서 네트워크 사용자는 사기 검증을 할 수 없는 상태가 된다. 데이터로 역계산을 못 해보니 부정행위를 증명할 수 없다. 블록은 거래 당사자들에게 전파되지 않으니 자신들의 자금 상태를 확인할 수 없어 이의 제기를 할 수 없다. 설령 블록이 전파되더라도 오퍼레이터가 데이터를 공개하지 않으면 이를 검증해 볼 수 없고 오퍼레이터가 의심되더라도 블록이 전파되기 전까진 사기 검증을 하지 못해 이의 제기를 할 수 없다.

블록 인질 공격이라고도 부르는 이 데이터 가용성 문제는 사용자들의 자금을 오프체인에 묶어버리는 위험성을 만든다. 오퍼레이터의 악의적인 행동은 사람들의 자금이 거래 중간에 탈취당할 가능성을 만든다. 그리고 이런 플라즈마 체인의 구조로는 이에 대한 사기 검증을 할 수 없다. 해당 문제를 해결하기 위해 다양한 방법이 고안되었다. 플라즈마 MVP의 확인 서명 방식은 UTXO 모델에서 이중 서명을 통해 오퍼레이터의 부정행위를 방지한다. 혹은 연산 과정의 복잡성을 늘려서 검증 과정을 치밀하게 만드는 방법도 있다. 다만 이 대안들은 UTXO 모델에서만 적용되어 이더리움 EVM으로 구현되는 DApp 개발에 제약을 가한다.

4. 스마트 컨트랙트의 한계

플라즈마 체인은 이더리움 스마트 컨트랙트를 지원할 수 없다. 앞서 설명한 데이터 가용성 문제의 해결 방안은 UTXO 모델에만 적용되기에 플라즈마 체인에서는 이더리움 메인넷에서 사용하는 일반 상태 연산 모델(계정 모델)을 사용할 수 없다. 실제로 구현되었던 플라즈마 체인은 데이터 가용성 문제로 UTXO 모델로 구현되었는데 이에 따라 플라즈마 체인에서는 스마트 컨트랙트를 사용할 수 없다.

단지 데이터 가용성 문제 해결을 위한 UTXO 모델 채택으로 스마트 컨트랙트를 이용하지 못하는 것은 아니다. 일반 상태 연산 모델을 플라즈마 체인에 구현할 시 사용자는 자신의 자산을 온전히 보존하지 못할 가능성이 존재한다. 또한 오퍼레이터에 의해 계좌의 잔고에 오류가 발생할 수 있다. 플라즈마 체인 개발자들은 일반 상태 연산 모델을 도입했을 때 자금 인출 과정을 제대로 구현하지 못했다. 결과적으로 플라즈마 체인에서는 단순한 트랜잭션과 UTXO 모델 기반의 자금 이동만이 구현되었으며 ERC-20 토큰에만 호환되는 네트워크가 만들어졌다. 스마트 컨트랙트도 부재하고 ERC-20 토큰만 구현할 수 있는 플라즈마 체인은 DApp 개발의 확장성을 낮췄다. 이런 상황에서 영지식 증명이라는 대안이 등장했고 사람들은 플라즈마 체인보다 zkSNARK과 zkSTARK 등에 더 관심을 갖게 된다.

플라즈마의 몰락

플라즈마 체인은 암호화폐 시장이 한창 상승 가도를 달리던 2017년에 처음 등장했다. 상승하는 가격에 더불어 네트워크 사용량이 증가했고 개발진들은 이더리움의 확장성에 대해 고민하기 시작했다. 이때 비탈릭 부테린과 조셉 푼은 Visa 수준의 거래량을 처리할 수 있는 레이어2 확장성 솔루션에 관한 논문을 발표한다. 이것이 플라즈마 체인이다.

플라즈마를 공개하는 비탈릭 부테린, 2017년 8월 9일

플라즈마 체인은 처음에는 맵 리듀스를 사용하는 머클 트리 형태로 고안되었고 데이터 처리의 복잡성을 해결하기 위해 트랜잭션 처리 과정을 단순화한 UTXO 모델 기반의 MVP(Minimal Viable Plasma)가 등장했다. 당시에 플라즈마 체인은 사이드체인의 무 신뢰성 결여 부분을 해결할 수 있다는 점에서 큰 주목을 받았다. 특히 MVP는 플라즈마 체인의 고질적인 데이터 가용성 문제도 일부분 해결할 수 있는 구조를 갖고 있었고 이는 사이드체인의 문제점을 모두 해결할 수 있을 것만 같았다.

플라즈마 체인은 보안과 안정성 그리고 이더리움의 확장성을 약속했지만 결국 위에서 살펴본 문제점들을 온전히 해결하지 못했다. 오퍼레이터의 악의적인 행동을 감시하기 위해 사용자들은 여전히 24시간동안 네트워크를 모니터링 하고 있어야 했다. 악의적인 블록 생성을 막기 위해 고안된 대량 탈출 문제는 플라즈마 MVP에서도 여전히 문제가 되었다. 7일이 걸리는 챌린지 기간은 사용자들이 플라즈마 체인에서 자금을 인출하는데 어렵게 만들었다. 사용자들은 더 즉각적인 인출을 원했다. 체인 전체가 종료되는 상황에서 메인넷으로 전송되는 플라즈마 체인 전체의 데이터로 인해 이더리움은 트랜잭션 부하에 시달렸다.

확장성은 이더리움 메인넷에 비해서 크게 향상되었지만 약속하던 Visa 수준의 거래량은 처리할 수 없는 정도였다. 이더리움의 TPS(Transaction Per Second, 초당 거래량)는 10~20 정도이고 플라즈마 체인은 이를 개선하여 1000TPS 이상으로 트랜잭션을 처리할 수 있게 되었다(플라즈마 EVM 기준). 하지만 Visa의 TPS가 약 24000인 것을 생각하면 플라즈마의 TPS가 턱도 없이 부족하다는 것을 알 수 있다.

주요 암호화폐 네트워크의 TPS

이후 플라즈마 캐시(Plasma Cash)가 등장했다. 플라즈마 캐시는 UTXO 모델이 아닌 대체 불가능한 토큰(NFT)을 활용했다. 네트워크의 자산이 모두 NFT 형태로 표시된다. 따라서 사용자는 자산 증명을 기존 UTXO 모델보다 훨씬 쉽게 할 수 있다. 악의적인 트랜잭션 생성도 방지할 수 있으며 사용자는 네트워크 전체가 아닌 자신이 소유하고 있는 토큰만 모니터링하면 된다. 플라즈마 캐시는 오퍼레이터가 악의적인 행동을 감행할 때 쉽게 자금 인출을 할 수 있도록 대화형 챌린지 시스템도 도입했고 새로운 머클 트리 구조를 도입해서 토큰 증명을 더욱 쉽게 할 수 있게 됐다.

하지만 플라즈마 캐시도 플라즈마 체인의 기본적인 문제에서 벗어나지는 못했다. 먼저 자산을 계속 모니터링 해야 한다는 문제다. 트랜잭션에 이의 제기를 하고 사기 검증을 하는 기존 방식과 다르게 사용자는 자신의 토큰에 대한 잘못된 혹은 악의적인 출금 신청이 발생할 시 직접 토큰 증명을 해야한다. 챌린지 기간을 넘어서지 않고 토큰 증명을 해야 했기에 잘못된 인출이 발생했는지 안 했는지를 확인하기 위해 주기적으로 온라인 상태를 유지해야 한다. MVP보다는 개선된 구조였지만 여전히 레이어2 솔루션으로 사용하기에는 문제가 많았다.

결국 데이터 가용성 문제를 해결할 수 있는 롤업 솔루션이 등장함에 따라 플라즈마 체인에 대한 관심도는 2020년을 이후로 현저히 줄어들게 된다. 현재는 오미세고 네트워크(OMG Network) 등 극소수의 프로젝트에서만 사용하고 있으며 이더리움 개발자 커뮤니티에서도 19년 이후로는 논의가 거의 이뤄지지 않고 있다.

올해 올라온 글 하나를 제외하고 2019년 이후로는 개발자 커뮤니티에서는 플라즈마에 대한 논의가 진행되지 않고 있다. 사진: ethresear.ch

대체 솔루션의 등장

새로운 확장성 솔루션으로 등장한 롤업(Rollup)은 플라즈마의 문제점을 해결할 수 있었다. 특히 비탈릭 부테린이 영지식 증명과 롤업을 결합하여 제시한 zk-Rollup (영지식 롤업)은 플라즈마 체인의 데이터 가용성 문제를 해결하면서 위에서 이야기한 문제를 풀 수 있었다.

롤업은 오프체인에서 트랜잭션을 모아서(batch) 처리한다. 이 개념은 플라즈마 체인과 동일하지만 거래 데이터를 이더리움 메인넷에 직접 기록한다는 점에서 차이가 있다. 오프체인에서 처리한 트랜잭션 데이터를 모아서 롤업 네트워크에 전송하면 이에 대한 요약본(state root)을 메인넷 블록에 저장한다. 이 요약본은 메인넷에서 접근할 수 있으므로 데이터 가용성 문제가 해결된다. 트랜잭션의 검증 방식도 플라즈마 체인에 비해 확실하다. 옵티미스틱 롤업의 경우 플라즈마 체인과 같이 사기 증명을 통해 입증하고 영지식 롤업의 경우 트랜잭션 묶음을 롤업 네트워크에서 처리할 때마다 영지식 증명으로 입증한다. 데이터 가용성 문제가 해결되어 사용자들은 계속 네트워크를 감시하고 있지 않아도 되고 챌린지 기간 같은 지연 기간 없이 자금을 인출할 수 있게 된다. 추가로 데이터 가용성 문제가 사라져 대량 탈출 문제도 해결된다.

그러나 롤업은 플라즈마 체인에 비해 확장성이 떨어진다. 트랜잭션 묶음들의 요약본을 직접 이더리움 메인넷에 기재하는 방식이다 보니 결국 이더리움 네트워크에 부하를 준다. 반면 플라즈마 체인은 트리 형태로 계속 확장할 수 있기 때문에 롤업에 비해 확장성이 좋다. 이론적으로 롤업은 최대 800~1000TPS를 가질 수 있는데 플라즈마 체인은 파생된 체인 개수에 따라 계속 증가할 수 있다는 점에서 확장성에 차이가 있다.

또한 롤업이 이더리움에 트랜잭션 데이터를 저장하는 중에 비용이 발생한다. 롤업으로 처리한 트랜잭션은 메인넷에 calldata라는 형태로 업로드되는데 이 calldata를 사용하는 비용이 그 용량에 비례해서 커진다. (1바이트 = 16gas) 영지식 롤업의 경우 영지식 증명할 때마다 계산 비용이 발생하고 zk-SNARK의 경우 검증 당 최대 350,000 gas가 소요될 때도 있다. 옵티미스틱 롤업도 사기 증명 과정에서 온체인 증인 확인 등에 비용이 추가로 소모된다. 그러나 앞으로 이더리움 네트워크에 댕크 샤딩(Dank Sharding)과 PBS가 적용된다면 롤업을 이용한 확장성과 함께 검증인 비용처리 문제도 해결될 것으로 보인다.

원문: 이더리움 플라즈마 톺아보기