위험 경고: '가상화폐', '블록체인'이라는 이름으로 불법 자금 모집 위험에 주의하세요. — 은행보험감독관리위원회 등 5개 부처
검색
로그인
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
시장 동향 보기
Vitalik의 긴 기사: EVM Validiums의 게임 종료 및 Plasma의 복귀
jk
Odaily资深作者
2023-11-15 00:06
이 기사는 약 3992자로, 전체를 읽는 데 약 6분이 소요됩니다
플라즈마를 사용하면 데이터 가용성 문제를 완전히 우회하고 거래 수수료를 크게 줄일 수 있습니다.

컴파일 - 오데일리

정리 - jk

피드백, 검토 및 토론에 기여한 Karl Floersch, Georgios Konstantopoulos 및 Martin Koppelmann에게 특별히 감사드립니다.

플라즈마는 모든 데이터와 계산(예금, 인출 및 머클 루트 제외)을 오프체인 상태로 유지할 수 있는 블록체인 확장 솔루션 클래스입니다. 이는 온체인 데이터 가용성에 의해 제한되지 않는 대규모 확장성의 문을 열어줍니다. 플라즈마는 2017년에 처음 제안되었으며 2018년에 최소 실행 가능 플라즈마(Minimum Viable Plasma), 플라즈마 캐시(Plasma Cash), 플라즈마 캐시플로우(Plasma Cashflow), 플라즈마 프라임(Plasma Prime) 등 여러 차례 반복되었습니다. 불행하게도 플라즈마는 (i) 상당한 클라이언트 측 데이터 저장 비용과 (ii) 결제 이외의 애플리케이션으로 일반화하기 어렵게 만드는 플라즈마의 근본적인 한계로 인해 롤업으로 대체되었습니다.

유효성 증명(일명 ZK-SNARK)의 출현은 우리에게 이 결정을 재고할 이유를 제공합니다. 플라즈마를 결제, 클라이언트 측 데이터 저장에 유용하게 만드는 가장 큰 과제는 유효성 증명을 통해 효율적으로 해결할 수 있습니다. 또한 유효성 증명은 EVM을 실행하는 플라즈마와 유사한 체인을 생성할 수 있는 도구 세트를 제공합니다. 플라즈마 스타일 종료 게임을 많은 복잡한 응용 프로그램으로 확장하는 근본적인 이유가 남아 있기 때문에 플라즈마의 보안 보장은 모든 사용자에게 적용되지 않습니다. 그러나 실제로는 매우 많은 비율의 자산을 확보할 수 있습니다.

아래에서는 플라즈마가 이를 어떻게 달성하는지 자세히 설명하겠습니다.

개요: 플라즈마 작동 방식

이해하기 가장 간단한 플라즈마 버전은 플라즈마 캐시입니다. 플라즈마 캐시는 각 개별 토큰을 독립적인 NFT로 취급하고 각 토큰에 대한 별도의 기록을 추적하는 방식으로 작동합니다. 플라즈마 체인에는 정기적으로 블록을 생산하고 게시하는 역할을 담당하는 운영자가 있습니다. 각 블록의 트랜잭션은 희소 머클 트리로 저장됩니다. 트랜잭션이 토큰 k의 소유권을 이전하면 트리의 k 위치에 나타납니다. 플라즈마 체인 운영자는 새 블록을 생성할 때 Merkle 트리의 루트를 체인에 게시하고 각 사용자에게 사용자가 소유한 토큰에 해당하는 Merkle 분기를 직접 보냅니다.

이것이 플라즈마 캐시 체인의 마지막 세 거래 트리라고 가정합니다. 따라서 이전의 모든 트리가 유효하다고 가정하면 현재 Eve는 토큰 1을 소유하고 David는 토큰 4를 소유하고 George는 토큰 6을 소유하고 있음을 알 수 있습니다.

모든 플라즈마 시스템의 주요 위험은 운영자의 위법 행위입니다. 이는 두 가지 방법으로 발생할 수 있습니다.

1. 유효하지 않은 블록을 게시합니다(예를 들어, Fred가 당시 토큰을 소유하지 않았음에도 불구하고 운영자는 Fred에서 Hermione으로 토큰 1을 전송하는 트랜잭션을 포함합니다).

2. 사용할 수 없는 블록 게시(예: 운영자는 Bob에게 Merkle 포크 중 하나를 보내지 않아 Bob이 자신의 토큰이 여전히 유효하고 사용되지 않았음을 다른 사람에게 증명할 수 없게 됩니다.)

운영자의 행위가 사용자의 자산과 관련된 경우 사용자는 즉시(구체적으로 7일 이내에) 탈퇴해야 합니다. 사용자(exiter)가 종료되면 이전 소유자로부터 해당 토큰을 전송한 트랜잭션이 포함되었음을 증명하는 Merkle 분기를 제공합니다. 그러면 7일간의 챌린지 기간이 시작됩니다.다른 사람들은 세 가지 Merkel 인증 중 하나를 제공하여 철회에 이의를 제기할 수 있습니다.

1. 최신 소유자가 아닌 경우: 퇴출자가 서명한 후속 거래는 퇴출자의 토큰을 다른 사람에게 전송합니다.

2. 이중 지출: 이전 소유자로부터 다른 사람에게 토큰을 전송하는 거래가 토큰을 인출자에게 전송하는 거래보다 먼저 포함됩니다.

3. 유효하지 않은 내역: 지난 7일 이내에 해당 비용 없이 토큰을 전송한 거래입니다. 이탈자는 상응하는 지출을 제공함으로써 대응할 수 있으며, 그렇게 하지 않으면 이탈은 실패합니다.

이러한 규칙에 따르면 토큰 k를 소유한 사람은 누구나 지난 주 동안 모든 히스토리 트리의 k 위치에 있는 모든 Merkle 분기를 확인하여 실제로 토큰 k를 소유하고 종료할 수 있는지 확인해야 합니다. 문제를 처리하고 토큰을 안전하게 종료할 수 있도록 자산 이전이 포함된 모든 포크를 저장해야 합니다.

대체 가능한 토큰으로 확장

위의 설계는 대체 불가능한 토큰(NFT)에 적용됩니다. 그러나 NFT보다 더 일반적인 것은 ETH 및 USDC와 같은 대체 가능한 토큰입니다. 대체 가능한 토큰에 플라즈마 캐시를 적용하는 한 가지 방법은 각 소액 토큰(예: 0.01 ETH)을 별도의 NFT로 처리하는 것입니다. 불행하게도 이렇게 하면 출구에 대한 가스 요금이 너무 높아질 것입니다.

한 가지 해결책은 인접한 여러 토큰을 한 번에 전송하거나 나갈 수 있는 하나의 단위로 처리하여 최적화하는 것입니다. 이를 수행하는 방법에는 두 가지가 있습니다.

1. 플라즈마 캐시를 거의 그대로 사용하지만, 인접한 객체가 동일할 경우 복잡한 알고리즘을 사용하여 다수의 객체에 대한 머클 트리를 매우 빠르게 계산합니다. 이는 놀랍게도 어렵지 않습니다. 여기에서 Python 구현을 볼 수 있습니다.

2. 단순히 인접한 여러 토큰을 단일 객체로 나타내는 Plasma Cashflow를 사용하세요.

그러나 두 접근 방식 모두 조각화 문제로 어려움을 겪습니다. 커피를 구매하는 수백 명의 사람들로부터 각각 0.001 ETH를 받으면 트리의 여러 위치에 0.001 ETH가 있으므로 실제로 해당 ETH를 인출하려면 여전히 커밋이 필요합니다. 많은 별도의 종료가 필요합니다. 가스 비용이 엄청나다. 조각 모음 프로토콜이 개발되었지만 구현하기가 까다롭습니다.

또 다른 접근 방식은 보다 전통적인 미사용 거래 출력(UTXO) 모델을 고려하도록 시스템을 재설계하는 것입니다.토큰을 종료할 때 해당 토큰의 가장 최근 주의 내역을 제공해야 하며, 누구나 이러한 내역 토큰이 종료되었음을 증명하여 종료에 이의를 제기할 수 있습니다.

오른쪽 하단의 0.2 ETH UTXO 출금은 그림에서 녹색으로 표시된 것처럼 해당 UTXO의 출금 내역을 표시하여 취소할 수 있습니다. 특히 왼쪽 중앙과 왼쪽 하단 UTXO는 조상이지만 왼쪽 상단 UTXO는 조상이 아닙니다. 이 접근 방식은 2013년경 컬러 토큰 프로토콜에서 발견된 순서 기반 컬러링 아이디어와 유사합니다.

이를 달성하기 위한 몇 가지 기술이 있습니다. 모든 경우에 목표는 동일한 코인이 두 번 인출되는 것을 방지하기 위해 역사상 서로 다른 지점에서 동일한 코인에 대한 개념을 추적하는 것입니다.

EVM으로 일반화하는 데 따른 과제

불행하게도 이를 결제 이외의 EVM으로 일반화하는 것은 훨씬 더 어렵습니다.주요 과제는 EVM의 많은 상태 개체에 명시적인 소유자가 없다는 것입니다.플라즈마의 보안은 체인에 있는 데이터의 가용성을 모니터링하고 보장하며 문제가 발생할 경우 개체를 종료하는 책임을 맡은 소유자가 있는 각 개체에 달려 있습니다. 그러나 많은 Ethereum 애플리케이션은 이러한 방식으로 작동하지 않습니다. 예를 들어 Uniswap 유동성 풀에는 단일 소유자가 없습니다.

또 다른 과제는 EVM이 종속성을 제한하려고 시도하지 않는다는 것입니다.블록 N에서 계정 A에 보관된 ETH는 블록 N-1의 어느 곳에서나 들어올 수 있습니다. 일관된 상태를 종료하려면 EVM 플라즈마 체인에 종료 게임이 필요하며, 극단적인 경우 블록 N의 정보를 사용하여 종료하려는 누군가가 전체 블록 N 상태를 체인에 게시하기 위해 수수료를 지불해야 할 수도 있습니다. 비용은 최대 수백만 달러입니다. UTXO 기반 플라즈마 방식에는 이러한 문제가 없습니다. 모든 사용자는 데이터가 있는 최신 블록에서 자산을 인출할 수 있습니다.

세 번째 과제는 EVM의 무한한 의존성으로 인해 효율성을 입증하기 위한 일관된 인센티브를 갖기가 어렵다는 것입니다.모든 상태의 타당성은 다른 모든 것에 달려 있으므로, 한 가지를 증명하려면 모든 것을 증명해야 합니다. 이 경우 데이터 가용성 문제로 인해 해결 실패를 인센티브와 호환되게 만드는 것이 불가능한 경우가 많습니다. 특히 짜증나는 문제는 소유자의 동의 없이 객체의 상태를 변경할 수 없다는 UTXO 기반 시스템의 보장을 상실한다는 것입니다. 이 보증은 소유자가 항상 자산의 입증 가능한 최신 상태를 알고 종료 게임을 단순화한다는 의미이므로 매우 유용합니다. 그것이 없으면 종료 게임을 만드는 것이 훨씬 더 어려워집니다.

효율성은 이러한 문제를 완화하는 방법을 보여줍니다.

유효성 증명의 가장 기본적인 기능은 체인에 있는 각 플라즈마 블록의 유효성을 증명하는 것입니다. 이는 설계 공간을 크게 단순화합니다. 이는 유효하지 않은 블록이 아닌 운영자의 사용할 수 없는 블록 공격에 대해서만 걱정하면 된다는 것을 의미합니다. 예를 들어 플라즈마 캐시에서는 역사적 과제에 대한 우려를 제거합니다. 이를 통해 사용자가 다운로드해야 하는 상태의 양이 지난 주 동안 블록당 하나의 포크에서 자산당 하나로 줄어듭니다.

또한 최신 상태에서의 인출(일반적으로 운영자 정직의 경우 모든 인출은 최신 상태에서 이루어집니다)은 최신 상태가 아닌 소유자가 이의를 제기하지 않으므로 유효성이 입증된 플라즈마 체인에서는 이러한 인출이 허용되지 않습니다. 무엇이든 도전할 수 있습니다. 이것은 의미한다,정상적인 상황에서는 즉시 인출이 가능합니다.

EVM으로 확장: 병렬 UTXO 그래프

EVM의 경우 유효성 증명을 통해 우리는 몇 가지 영리한 작업을 수행할 수도 있습니다. 이를 사용하여 ETH 및 ERC 20 토큰에 대한 병렬 UTXO 그래프를 구현하고 SNARK를 사용하여 UTXO 그래프와 EVM 상태 간의 동등성을 증명할 수 있습니다. 이것이 있으면 UTXO 그래프에 일반 플라즈마 시스템을 구현할 수 있습니다.

이를 통해 우리는 EVM의 많은 복잡성을 우회할 수 있습니다. 예를 들어, 계정 기반 시스템에서 누군가가 귀하의 동의 없이 귀하의 계정을 편집할 수 있습니다(토큰을 보내 잔액을 늘림). 이는 플라즈마가 EVM 상태 자체에 구축되지 않기 때문에 중요하지 않습니다. UTXO 상태에서 EVM과 병행하여 귀하가 받는 모든 토큰은 독립적인 개체가 됩니다.

EVM으로 확장: 전체 상태로 종료

Plasma Free와 같은 Plasma EVM을 만들기 위해 제안된 더 간단한 솔루션이 있었고 그 이전에는 이 2019 기사가 있었습니다. 이러한 시나리오에서는 누구나 L1에서 메시지를 보낼 수 있으며, 이로 인해 운영자는 트랜잭션을 포함하거나 특정 상태 분기를 사용 가능하게 만들 수 있습니다. 운영자가 이를 수행하지 못하면 체인은 블록을 되돌리기 시작합니다. 누군가가 전체 상태의 전체 복사본을 게시하거나 적어도 사용자가 잠재적으로 누락된 것으로 표시한 모든 데이터를 게시하면 체인은 롤백을 중지합니다. 인출하려면 포상금을 게시해야 할 수 있으며, 이는 그렇게 많은 양의 데이터를 게시하는 사용자 공유에 대해 누군가에게 가스 요금을 지불하는 것입니다.

이와 같은 계획의 한 가지 약점은 항상 최신 상태를 롤백해야 할 가능성이 있기 때문에 일반적인 상황에서는 즉각적인 인출을 허용하지 않는다는 것입니다.

EVM 플라즈마 솔루션의 한계

이러한 솔루션은 강력하지만 모든 사용자에게 완전한 보안을 보장할 수는 없습니다.가장 명백한 실패 사례는 특정 국가 개체에 명확한 경제적 소유자가 없는 상황입니다.

사용자가 부채를 상환한 후에만 해제될 수 있는 토큰을 사용자가 잠그는 스마트 계약인 CDP(담보 부채 포지션)의 경우를 고려해 보겠습니다. 사용자가 CDP에 1 ETH(작성 당시 약 $2,000)를 보유하고 있고 1,000 DAI의 부채를 가지고 있다고 가정해 보겠습니다. 이제 플라즈마 체인은 블록 게시를 중단했으며 사용자는 종료를 거부하고 있습니다. 사용자는 절대로 종료할 수 없습니다. 이제 사용자에게는 무료 옵션이 있습니다. ETH 가격이 $1,000 미만으로 떨어지면 CDP를 포기하고, ETH 가격이 $1,000 이상으로 유지되면 결국 CDP를 청구하게 됩니다. 평균적으로 이러한 악의적인 사용자는 이를 통해 돈을 벌고 있습니다.

또 다른 예는 Tornado Cash 또는 Privacy Pools와 같은 개인 정보 보호 시스템입니다. 5명의 예금자가 있는 개인정보 보호 시스템을 생각해 보세요.

개인 정보 보호 시스템의 ZK-SNARK는 시스템에 들어오는 토큰 소유자와 시스템을 숨기는 토큰 소유자 간의 연결을 유지합니다.

오렌지만 추출되었다고 가정하면 플라즈마 체인 운영자는 데이터 게시를 중단합니다. 선입선출 규칙이 있는 UTXO 그래프 접근 방식을 사용하여 각 토큰이 그 아래의 토큰과 일치한다고 가정합니다. 그런 다음 Orange는 사전 혼합 및 사후 혼합 토큰을 인출할 수 있으며 시스템은 이를 두 개의 별도 토큰으로 처리합니다. Blue가 사전 혼합 토큰을 인출하려고 시도하는 경우 Orange의 업데이트된 상태가 이를 대체하며, 동시에 Blue는 사후 혼합 토큰을 인출할 정보가 없습니다.

이 문제는 다른 예금자 4명이 개인정보 보호 계약 자체를 철회하고(예치금을 대체함) L1에서 토큰을 출금하도록 허용하면 해결될 수 있습니다. 그러나 실제로 이러한 메커니즘을 구현하려면 개인 정보 보호 시스템 개발자의 추가적인 노력이 필요합니다.

개인 정보 보호 문제를 해결하는 다른 방법으로는 롤업 스타일로 체인에 몇 바이트를 추가하는 Intmax 방법과 개별 사용자 간에 정보를 전달하는 플라즈마와 유사한 연산자가 있습니다.

Uniswap LP 포지션에도 비슷한 문제가 있습니다. Uniswap 포지션에서 ETH를 USDC로 거래한 경우 거래 전 USDC와 거래 후 ETH를 인출할 수 있습니다. 플라즈마 체인 운영자와 결탁할 경우 유동성 공급자 및 기타 사용자는 거래 후 상태에 접근할 수 없으므로 거래 후 USDC를 인출할 수 없습니다. 이를 방지하려면 특별한 논리가 필요합니다.

결론적으로

2023년에도 플라즈마는 여전히 과소평가된 디자인입니다. 롤업은 최고의 표준으로 남아 있으며 타의 추종을 불허하는 안전성 특성을 가지고 있습니다. 이는 개발자 경험 관점에서 특히 그렇습니다. 앱의 소유권 그래프와 인센티브 흐름에 대해 생각할 필요조차 없는 앱 개발자의 단순함보다 더 좋은 것은 없습니다.

그러나 플라즈마를 사용하면 데이터 가용성 문제를 완전히 우회하고 거래 수수료를 크게 줄일 수 있습니다. 플라즈마는 밸리디움이 될 체인의 주요 보안 업그레이드가 될 수 있습니다. ZK-EVM이 올해 마침내 결실을 맺게 되면서 우리는 이 설계 공간을 재탐색하고 개발자 경험을 단순화하고 사용자의 돈을 보호하는 보다 효율적인 구축 방법을 제시할 수 있는 완벽한 기회를 얻었습니다.


Vitalik
Odaily 공식 커뮤니티에 가입하세요