# Plasma EVM Economics Paper : The Mechanism Design and Economic Philosophy (v.0.9) #### **Onther. Inc (Seoul, Korea)** Danny Her (danny.h@onther.io) Kevin Jeong (kevin.j@onther.io) Aiden Park (aiden.p@onther.io) Carl Park (carl.p@onther.io) ### Abstract 플라즈마 EVM은 이더리움 블록체인의 확장성, ***튜링완전성***, 트랜잭션 수수료, 그리고 데이터 가용성 문제가 완화된 Layer-2 솔루션이다. 플라즈마 EVM의 엔드 유저는 플라즈마 네트워크 토큰(Plasma Network Token;PNT)으로 수수료를 부담하지만, 이 과정에서 트랜잭션 송신자(Transactor)가 이를 직접 부담할 필요는 없고 마이너는 별도의 수수료 수입을 얻지 않는다. 엔드 유저의 트랜잭션 수수료(GAS)는 수수료 피위임자(Delegatee) 계정의 스테미나(Stamina) 잔액 한도 내에서 대납되며, 이에 따라 블록체인의 이용자는 매 트랜잭션마다 일일이 직접 수수료를 지불하지 않을 수 있다. 체인의 마이너는 스테미나로부터 직접적인 수수료 수입을 얻지 않고 플라즈마 체인의 블록 요약값을 루트 체인에 기록할 때마다 경제적 보상으로서 토큰 시뇨리지(Token Seigniorage)를 받게 된다. 플라즈마 체인을 만들기 위해서는 플라즈마 네트워크 토큰을 예치(Deposit)해야 하고, 이는 체인의 안정성을 보장하는 안전 예치금(Security Deposit)이 된다. 플라즈마 체인 내부에서 문제가 발생할 경우, 챌린지 과정에 의해 안전 예치금이 삭감되고 이의 제기자(Challenger)는 삭감된 안전 예치금을 상금으로 분배받을 수 있다. ### TL;DR 플라즈마 EVM의 블록 마이너는 트랜잭션 수수료를 받지 않고 플라즈마 체인의 블록 요약값을 이더리움 메인 체인에 주기적으로 기록할 때마다 시뇨리지 수익을 얻는다. 엔드 유저는 수수료 피위임자(Delegatee)의 스태미너(Stamina) 예치금 한도 내에서 자신들의 가스(Gas) 수수료가 대납되기 때문에 트랜잭션 수수료를 지불할 필요가 없다. 탈출 및 챌린지(Exit and Challenge) 과정은 안전 예치금을 통한 처벌과 상금 메커니즘을 바탕으로 운용된다. ---- # 용어 정의 * **플라즈마 네트워크 토큰(Plasma Network Token : $PNT$)** : 플라즈마 체인 상에서 필요한 모든 예치 행위나 수수료, 그리고 블록 보상 메커니즘에서 거래 단위로 사용되는 토큰. ## 시뇨리지 관련 용어 * **루트 체인(Root Chain)** : 이더리움 메인 블록체인. * **플라즈마 체인(Plasma Chain)** : 루트 체인에 연결된 Plasma EVM 체인. * **오퍼레이터(Operator)** : 플라즈마 체인에서 블록을 생성하여 체인을 이어나가는 주체. * **체인 예치금($D_{chain}$)** : 오퍼레이터가 플라즈마 체인을 열기 위해 메인넷에 예치하는 PNT. 오퍼레이터가 비잔틴 상황이 될 경우 챌린지 과정을 거쳐 체인 예치금은 삭감되어 안전 예치금으로서 기능한다. * **최소 체인 예치금 ($D_{chain}^{min}$)** : 플라즈마 체인을 열때 최소한 예치해야 하는 체인 예치금. * **진입 예치금 ($D_{enter}$)** : 체인 예치금과는 별도의 예치금으로, 플라즈마 체인으로 진입(Enter)할 때 필요한 토큰. 진입 예치금에 예치되는 PNT의 경우 트랜잭션 수수료 대납 목적으로 사용된다. * **플라즈마 예치금 ($D_{plasma}$)** : 특정 플라즈마 체인에 예치된 체인 예치금과 진입 예치금의 합. ($D_{chain}$ + $D_{enter}$) * **플라즈마 패키지($PKG$)** : 오퍼레이터에 의해서 루트 체인 블록에 주기적으로 커밋(Commit)되는 플라즈마 체인 블록 요약본의 최종 단위. 오퍼레이터가 만든 블록의 보상 근거로 활용된다. * **커밋(commit)** : 특정 패키지가 루트 체인에 제출 및 기록되는 것. * **패키지 사이즈($PKG_{size}$)** : 루트 체인의 블록에 커밋되는 패키지 1개당 포함된 플라즈마 블록 해시의 수. * **패키지 시뇨리지 ($PKG_{s}$)** : 1 패키지를 커밋할 때마다 측정되는 블록 보상. * **타겟 예치금($D_{target}$)** : 특정 플라즈마의 총 시뇨리지 수량 산출에 대상이 되는 PNT 예치금 수준. * **체인 예치금 가중치($w_{chain}$)** : 타겟 예치금 산출시, 체인 예치금의 잔액에 곱해지는 비율. * **진입 예치금 가중치($w_{enter}$)** : 타겟 예치금 산출시, 진입 예치금의 잔액에 곱해지는 비율. * **적정 예치금($D_{optimal}$)** : 플라즈마 안전 예치금의 적정수준으로, 오퍼레이터가 안전 예치금을 인출할 수 있는 최소한의 기준치. * **인출 가중치($w_{withdraw}$)** : 적정 예치금을 산출할 때, 진입 예치금과 곱해지는 비율. * **인출 가능 금액($Withdrawal_{allowed}$)** : 오퍼레이터가 플라즈마 체인에 예치한 체인 예치금 중 인출이 가능한 금액으로서, 체인 예치금과 적정 예치금의 차액으로 계산된다. ## 트랜잭션 수수료 관련 용어 * **스태미너(Stamina)** : PNT로 대납되는 트랜잭션 수수료의 단위. 특정 트랜잭션 송신자는 스태미너의 한도 내에서 트랜잭션을 보낼 수 있다. 트랜잭션 수수료의 피위임자는 스태미너 컨트랙트에 PNT를 예치함으로써 스태미너를 충전할 수 있다. * **수수료 수임자(Delegatee Account)** : 수임자(Delegatee)는 자신의 스태미너 잔액 한도 내에서 위임자(Delegator)의 트랜잭션 수수료를 대신 부담한다. * **수수료 위임자(Delegator Account)** : 플라즈마 EVM에서 수수료를 위임시킨 트랜잭션 송신자(Transactor). 피위임자(Delegatee)가 지정하고, 지정된 위임자(Delegator)는 피위임자의 스태미너 잔액 한도 내에서 트랜잭션 수수료를 사용할 수 있다. * **재충전(Recovery)** : 사용된 스태미너의 잔액이 회복되는 것을 의미한다. * **재충전 기간(Plasma Recovery Epoch : $Epoch_{recovery}^{plasma}$)** : 스태미너 잔액이 회복되는 데에 걸리는 기간. 단위는 루트 체인의 블록을 기준으로 한다. * **스태미너 예치(Stamina Deposit)** : PNT를 예치하고 스태미나를 충전하는 행위. 누구나 어느 계정으로 별도의 제약없이 자유롭게 가능하다. * **스태미너 인출(Stamina Withdraw)** : 재충전 기간 이내의 미사용 스태미너 잔액을 줄이고 PNT를 받는 것. 소모된 이후에 재충전 기간이 도래하지 않은 스태미너는 인출할 수 없다. * **최소 가스 가격 (Minimum Gas Price : $MGP$)** : 매우 낮은 Gas Price를 설정하여 트랜잭션을 보내는 행위를 방지하기 위한 트랜잭션당 최소한의 수수료 가격. 각 트랜잭션 송신자들은 MGP 이상의 Gas Price만을 책정하여 트랜잭션을 보낼 수 있다. ## Challenge 및 Exit 관련 용어 * **챌린지 (Challenge)** : 플라즈마 체인에서 오퍼레이터 또는 유저로부터 악의적인 행위가 발생할 경우, 이에 대해 특정 유저가 이의를 제기하는 행위. * **연산 챌린지(Computation Challenge)** : 오퍼레이터에게만 해당되는 챌린지로서, 정해진 연산 작업 이외의 연산을 실행했을 경우 오퍼레이터에게 제기되는 챌린지. * **챌린지 예치금($D_{challenge}$)** : 챌린지를 신청할 때 예치해야 하는 토큰. * **최소 챌린지 예치금($D_{challenge}^{min}$)** : 챌린지를 신청할 때 예치해야 하는 최소 $PNT$ 예치액. * **퇴장 (Exit)** : 특정 플라즈마 체인에서 융통되던 플라즈마 토큰을 인출하여 플라즈마 체인을 빠져나가는 행위. * **퇴장 예치금(Exit Deposit)** : 특정 유저가 플라즈마 체인에서 퇴장할 때 예치하는 금액. * **최소 탈출 예치금($D_{exit}^{min}$)** : 플라즈마 체인에서 탈출할 경우 예치해야 하는 최소한의 $PNT$ 예치금. * **챌린지 상금 ($Prize_{challenge}$)** : 챌린지에서 승리했을 경우, 승리자가 받게 되는 보상 금액. * **챌린지 가중치 ($w_{challenge}$)** : 최소 챌린지 예치금보다 추가로 예치한 금액에 대해 적용하는 가중치. ----- # Seigniorage Mechanism ## 시뇨리지 수익 인식의 기준 : $PKG$ 플라즈마 체인의 오퍼레이터는 개별 플라즈마 블록에서 도출되는 루트 해시들을 루트 체인에 주기적으로 기록(이하 커밋)한다. **이 때, 루트 체인에 커밋되는 플라즈마 블록의 요약본 단위를 $PKG$라고 한다.** 주기적인 커밋 과정을 도식화해보면 다음과 같다. ![](https://i.imgur.com/v7e4Huk.png) 루트 체인에 커밋된 $1$ $PKG$는 오퍼레이터가 $PNT$ 시뇨리지 보상을 받는 근거가 된다. **즉, 오퍼레이터가 $1$ $PKG$를 커밋할 때마다 얻게되는 토큰 시뇨리지($\Delta PNT$)는 $PKG_{s}$ 이다.** 이 모델에서 유의해야 할 것은 1 $PKG$와 $PKG_{size}$를 구분해야 한다는 점이다. $PKG_{size}$는 하나의 $PKG$가 제출될 때, 개별 플라즈마 블록에서 도출된 루트 해시 개수의 총합이다. 즉, 1 $PKG$를 하나의 집합으로 생각했을 때, 원소의 개수에 해당하는 것이 $PKG_{size}$ 이다. 이는 문자 그대로 루트 체인에 커밋된 하나의 $PKG$가 어느 정도의 규모를 갖는지를 의미한다. 예컨대, 상기 그림의 경우에는 $1$ $PKG$ 당 루트 체인에 제출되는 루트 해시는 총 2개로 $PKG_{size}$ = 2 가 될 것이다. 이 때, 최종적으로 루트 체인에서 시뇨리지 비율의 근거로 활용되는 것은 1 $PKG$이다. **다시 한 번 강조하지만, $PKG_{size}$는 시뇨리지 보상에 아무런 영향을 미치지 않는다.** $PKG_{size}$만을 기준으로 경제적 보상이 이루어진다면, 특정 오퍼레이터는 자의적으로 빈 블록들을 만들고 해당 블록들의 루트 해시를 무한정으로 커밋하여 부당한 이득을 취할 수 있다. 이를 방지하기 위해서 플라즈마 체인이 아닌 루트 체인의 블록을 기준으로 시뇨리지가 발생한다. ### 플라즈마 체인의 블록 보상 = 패키지 시뇨리지($PKG_{s}$) Plasma EVM에서의 채굴 보상 금액은 최종적으로 $PKG_{s}$로 표현되고 화폐의 단위는 $PNT$ 이다. 앞서 언급했듯이, 이 금액은 루트 체인에 커밋된 $PKG$ 마다 시뇨리지 토큰으로 인식된 후 오퍼레이터에게 지급된다. 시뇨리지 산출 기간을 1달로 가정할 때, 월별 시뇨리지 토큰의 양($Seigniorage_{month}$)과 1 $PKG$ 당 지급되는 토큰 시뇨리지($PKG_{s}$)는 다음의 요소들을 변수로 하여 계산된다. 최종적으로 산출되는 시뇨리지는 월별 인플레이션 비율($Inflation_{rate}^{month}$)과 타겟 예치금($D_{target}$)이 곱해져 산출된다. 타겟 예치금이란 시뇨리지 산출을 위해서 체인 예치금, 진입 예치금에 서로 다른 가중치를 적용시킨 플라즈마 예치금을 말한다. 우선, 체인 예치금 가중치($w_{chain}$)와 진입 예치금 가중치($w_{chain}$)의 합은 1이다. $$ w_{chain} + w_{enter} = 1 $$ 그리고 각각의 가중치를 시뇨리지 산출 시점의 체인 예치금, 진입 예치금과 곱하여 타겟 예치금을 구한다. $$D_{target} = D_{chain}*w_{chain} + D_{enter}*w_{enter} $$ 월간 발생하는 시뇨리지의 절대량($Seigniorage_{month}$)은 타겟 예치금에 월별 인플레이션 비율을 곱하여 산출한다. $$Seigniorage_{month} = D_{target} * Inflation_{month}^{rate}$$ 커밋되는 $PKG$ 당 발생하는 시뇨리지($PKG_{s}$)는 $PKG_{s}$를 월간 커밋된 $PKG$의 총 개수로 나누어 구할 수 있다. 이 때, 커밋된 $PKG$는 오퍼레이터가 커밋할 수 있는 $PKG$의 최대값이 될 것이다. $$PKG_{s} = Seigniorage_{month} / Max(PKG_{commited}) $$ 최종적으로, $PKG$ 당 시뇨리지를 구하는 수식은 다음과 같이 도출된다. $$PKG_{s} = D_{target} * Inflation_{month}^{rate} / Max(PKG_{commited}) $$ 위 수식을 사용하여 시뇨리지가 발생하는 상황을 시뮬레이션할 수 있다. 파라미터는 다음과 같다. >* 1일 최대 커밋수 = 6,000개 >* $D_{target}$ = 100,000 PNT >* 월별 인플레이션율 = 10% $$PKG_{s} = (100,000 * 0.1) / 6000*30 $$ $$PKG_{s} = 0.055 $$ 즉, 상기의 파라미터들을 기준으로 체인을 운영할 경우 오퍼레이터가 커밋하는 $PKG$ 당 보상되는 시뇨리지는 $0.055$ $PNT$이다. ### $PKG_{size}$와 시뇨리지는 관련이 없다 앞서 언급했듯이, 시뇨리지 보상은 커밋되는 $PKG$마다 발생하는 것이지 $PKG_{size}$와는 무관하다. 즉, 하나의 $PKG$마다 플라즈마 블록의 루트 해시가 몇 개 포함되어 있는지는 시뇨리지와 관계가 없다는 것이다. 아래의 표는 서로 다른 $PKG_{size}$를 갖는 플라즈마 체인 오퍼레이터의 마이닝 수입을 비교한 것이다. $D_{target}$은 모두 100 PNT로 동일하다고 가정하며 서로 다른 3명의 오퍼레이터 모두 하루에 커밋할 수 있는 PKG의 최대값인 6,000 PKG를 30일 동안 커밋했다고 가정하자. (월별 인플레이션율은 1%) | | Operator A | Operator B | Operator C| | -------- | -------- | -------- |---------| | $D_{Target}$ | $100$ $PNT$ | $100$ $PNT$ | $100$ $PNT$| | $PKG_{commited}$ | $180,000$ | $180,000$ |$180,000$ | | $PKG_{size}$ | $1,000$ | $100$ |$10$| |$Seigniorage_{month}$| $1$ $PNT$ | $1$ $PNT$ | $1$ $PNT$ | | $PKG_{s}$ | $0.000006$ $PNT$ | $0.000006$ $PNT$ |$0.000006$ $PNT$ | 결과적으로, 위의 표는 시뇨리지로 보상되는 토큰과 $PKG_{size}$는 관계가 없음을 보여준다. 다른 조건이 모두 동일할 때 최소 1개 이상의 플라즈마 블록만 루트 체인에 커밋되기만 하면 $PKG_{s}$는 모든 오퍼레이터마다 동일하다. 즉, 한 번 커밋되는 플라즈마 블록의 숫자($PKG_{size}$)나 플라즈마 블록 1개당 처리할 수 있는 트랜잭션 처리량(블록의 크기) 자체가 시뇨리지에 영향을 주는 것은 아니다. ### 최소 체인 예치금 ($D_{chain}^{min}$) 우선 $D_{chain}^{min}$의 경우, 플라즈마 체인의 암호경제학적 안정성을 보장하기 위한 챌린지 메커니즘에서 중추적인 역할을 한다. 특정 공격 상황에서 수반되는 비용이 없거나 매우 적은 수준이라면 체인의 안정성이 보장되지 않는다. 따라서, Plasma EVM에서는 $D_{chain}^{min}$을 설정하였고 이는 챌린지가 성공했을 경우 삭감되는 최소한의 삭감액을 의미하기도 한다. ### $D_{chain}$ 추가 예치에 대한 기대 손실 기대 손실의 의미는 간단하다. $D_{chain}$이 높아짐에 따라 오퍼레이터가 챌린지를 당할 경우, 삭감당할 수 있는 $D_{chain}$이 많아져 손실의 범위가 커질 수 있음을 의미한다. 이는 동시에 **체인의 안전성이 확보**되는 것을 의미하기도 한다. 예를 들어, 플라즈마 체인 A에서의 $D_{chain}^{A}$는 32 $PNT$이고 플라즈마 체인 B에서의 $D_{chain}^{B}$은 64 $PNT$인 경우 각 체인의 챌린지 발생 가능성을 비교해볼 수 있다. 이 때 $D_{challenge}$를 $32$ $PNT$를 초과하여 예치할 의향이 있는 챌린저의 표적이 될 수 있는 대상은 오퍼레이터 B 뿐이다. 즉, 더 높은 $D_{chain}$의 수준을 가질수록 더 많은 시뇨리지 수익이 발생함과 동시에 손실에 대한 위험도 부담한다. 다만, 오퍼레이터가 체인을 정상적으로 운영한다면 손실 위험은 0에 수렴할 것이다. ### $D_{chain}$의 인출 조건과 적정 예치금($D_{optimal}$) 플라즈마 체인의 오퍼레이터는 자신이 예치한 $D_{chain}$의 전액을 자유롭게 인출할 수 **없다**. 오퍼레이터는 다음과 같이 적정 예치금($D_{optimal}$) 조건을 만족할 때에만 $D_{chain}$과$D_{optimal}$의 차액만큼을 인출할 수 있다. 여기에서 $D_{optimal}$은 체인의 안정성을 나타내는 지표임과 동시에 $D_{chain}$ 출금의 기준 금액이기도 하다. $D_{optimal}$은 플라즈마 예치금의 적정 수준으로서, 상수인 최소 체인 예치금($D_{chain}^{min}$)과 변수인 진입 예치금($D_{enter}$)을 가지고 구한다. $D_{enter}$는 플라즈마 체인에 진입할 때 필요한 예치금으로서 $D_{chain}$과는 별도로 예치하는 토큰을 의미하는데, $D_{enter}$의 잔액에 인출 가중치($w_{withdraw}$)가 곱해져 최종적으로 적정 예치금을 산출할 수 있다. 인출 가중치는 0보다 크고 1 이하인 값을 갖는다. $$ w_{withdraw} = (0,1] $$ $$ D_{optimal} = D_{chain}^{min} + D_{enter} * w_{withdraw} $$ $D_{Optimal}$이 산출되면, 앞서 언급했듯이 $D_{chain}$과 $D_{Optimal}$의 차액만큼 인출이 가능하며 차액이 음수일 때는 인출이 허용되지 않는다. 즉, $D_{Chain}$이 항상 $D_{Optimal}$보다 커야 인출할 수 있다. $$Withdrawal_{allowed} = D_{chain} - D_{optimal}$$ 만약 $w_{withdraw}$가 1에 수렴하는 값을 갖고 장기간 $D_{optimal}$이 상대적으로 높은 수준에서 측정되었다면, 진입 예치금의 잔액이 높은 수준에서 유지되었음을 의미할 것이다. 이는 일차적으로 해당 체인이 장기간 많은 유저를 확보한 체인이라는 것을 나타낸다. 다만, $w_{withdraw}$가 0에 수렴하는 값이라면 이와 같은 논리는 성립하지 않고 $D_{optimal}$은 $D_{chain}^{min}$과 동일한 수준일 것이다. 나아가, 특정 플라즈마 체인에서 $D_{Optimal}$을 활용하여 해당 체인을 운용하는 오퍼레이터의 신용 등급까지도 산출할 수 있다. $D_{chain}$이 $D_{optimal}$보다 지속적으로 높은 수준에서 유지되었다면, 이는 체인의 안정성을 의미하는 $D_{chain}$이 $D_{optimal}$ 수준을 항상 상회했다고 볼 수 있기 때문에 탈중앙화된 방식으로 각 플라즈마 체인별 신용 등급이 산출할 수 있다. 이는 특정 은행 계좌의 평균 잔액이 장기간 일정 수준 이상을 유지하고 있을 때, 상대적으로 높은 신용 등급을 갖게되는 것과 유사하다. ---- # TX Fee Cryptoeconomics 기존의 이더리움 블록체인에서 발생하던 트랜잭션 수수료 모델에는 크게 3가지의 문제점이 있다. **1. 트랜잭션 수수료의 존재 자체에서 기인하는 엔드 유저의 사용성 저하. 2. First-Price Auction 구조 하에서 암호화폐의 변동성보다 높게 측정되는 Gas Price의 변동성.[(Gas Price Volatility)](https://ethresear.ch/t/fixed-fees-arent-that-bad/935) 3. 마이너의 이윤 극대화 전략에 의해서 Gas Price가 높은 트랜잭션일수록 우선적으로 처리되는 구조.** 우리는 상기의 문제점들을 해결하기 위해서 *제 3자에게 위임이 가능함과 동시에 가스 가격이 고정된 수수료 모델* 을 고안하였다. 트랜잭션 수수료의 메커니즘 디자인과 관련하여 가장 이상적인 조건은 마이너가 여러가지 트랜잭션들을 블록 안에 **무차별하게 담아내는 것**, 그리고 트랜잭션 송신자들이 본인들의 소비 행위에 대해 충분한 예측 가능성을 가져야 한다는 것이다. 이러한 목적을 달성하기 위해서 우선적으로 마이너에게 의무적으로 지불해야 하는 트랜잭션 수수료 로직을 제거했고, 블록체인을 소비할 때마다 변동하는 이더리움의 수수료 모델에서 *고정된 가스 가격 모델* 로 수수료 시스템을 변경하였다. ## Delegated Gas System : 스태미너(Stamina) ### 일대일 매칭 구조 : 공유자원 과소비 방지 Plasma EVM의 Gas 수수료 모델에서 트랜잭션 송신자, 즉 트랜잭션 수수료 위임자(이하 Delegator)는 트랜잭션 수수료 피위임자(이하 Delegatee)에게 Gas 수수료를 위임할 수 있다. 하기 그림에서 임의의 Delegatee는 Delegator를 지정하여 Delegator의 수수료를 대납할 수 있다. 이러한 스태미너 모델에서의 이슈는 공유 자원이 과소비되는 외부 불경제를 만들지 않는 것이고 이를 위해 Delegator와 Delegatee가 1:1로 매칭되는 구조의 스태미너를 디자인했다는 점이다. 예를 들어, 한 명의 피위임자와 다수의 위임자 구조, 즉 일대다 구조의 스태미너 모델을 디자인할 경우 스태미너는 공유 자원이 된다. 이 때 이기적으로 해당 공유 자원을 사용하길 원하는 다수의 위임자들에 의해 도덕적 해이가 발생할 수 있다. 즉, 블록체인 네트워크에서 공유 자원이 과소비될 수 있다는 것이다. 물론, Delegator가 2명 이상 지정되어 하나의 스태미너를 공동 계정으로 사용할 수도 있지만 이 경우 과소비를 방지할 수 있는 자체적인 거버넌스가 필요할 것이다. ![](https://i.imgur.com/qe80X2K.png) ### 스태미너는 트랜잭션 수수료를 발생시키지 않는다. 앞서 언급했듯이, 스태미너에 예치하는 $PNT$는 플라즈마 체인에 '예치'되는 것이지 금전적 대가로서 오퍼레이터에게 '지불'되지 않는다. 반대로 말하면, 오퍼레이터는 스태미너에서 감당되는 트랜잭션 수수료로부터 별도의 이윤을 얻지 않는다. 이와 같은 메커니즘을 설정한 이유는 현재 이더리움 네트워크의 트랜잭션 수수료 모델(First Price Auctioning)의 특징인 **높은 Gas Price일수록 우선적으로 처리되는 절차를 제거**하고, 이에 따라 오퍼레이터가 모든 트랜잭션을 무차별하게 처리하게 만들기 위함이다. 다만, 스태미너를 통해 수수료를 대납하는 것은 선택 사항이기 때문에 기존의 EVM 트랜잭션 수행 모델을 그대로 활용하여 $PNT$로 Gas 수수료를 지불할 수도 있다. ### 재충전 (Recovery) 스태미너는 플라즈마 체인 회복 기간($epoch_{recovery}^{plasma}$)이 도래하면 기존 스태미너에 예치된 총액만큼 재충전된다. 회복 기간은 자식 체인에서 별도로 정해지는 것이 아니라, **절대적인 시간(1일, 1달 등)을 기준으로 하여** 부모 체인의 블록 타임에 의해 결정된다. $$ Epoch_{recovery}^{plasma} = AverageBlockTime_{root} * N$$ 만약 특정 플라즈마 체인에서 **하루를 주기로** 플라즈마 체인에서의 스태미너 잔액이 완충되는 것을 목표한다고 하자. 그렇다면 하루을 기준으로 환산한 루트 체인의 블록 타임과 블록 넘버로 $Epoch_{recovery}^{plasma}$이 정해진다. (루트 체인의 블록 타임은 **15초**라고 가정) $$86,400_{sec}^{day} / 15 = 5,760$$ 즉, 루트 체인에서 블록이 5,760개 만들어질 때마다 특정 플라즈마 체인의 스태미너에서 재충전이 이루어진다. 좀 더 직관적으로 표현하면, 스태미너에 $PNT$를 예치하고 하루가 지나면 스태미너가 재충전된다는 것이다. 자식 체인을 기준으로 이러한 메커니즘을 바라보면, 플라즈마 체인 A와 플라즈마 체인 B의 블록타임이 서로 달라 최종적으로 재충전되는 블록 넘버가 각 체인별로 달라질 수 있다. 그러나 이는 사용자 입장에서 스태미너가 재충전되는 기간이 실질적으로 달라지는 것이 아니다. 왜냐하면 $Epoch_{recovery}^{plasma}$은 **절대적인 시간을 기준으로 하여** 루트 체인의 블록 넘버로 역산되는 값이기 때문이다. 즉, 플라즈마 체인마다 서로 다른 블록 넘버에서 재충전이 되는 것은 아무 문제가 되지 않는다. 참고적으로, $Epoch_{recovery}^{plasma}$이 매우 짧다면 체인의 안전성이 저하될 수 있다. 예를 들어, **하루를 주기로** 재충전되는 스태미너를 채택했을 경우 플라즈마 네트워크에 수 많은 트랜잭션을 보내는 스팸 공격이 상대적으로 쉬워진다. ### 스태미너 예치와 인출 스태미너에 추가로 PNT를 예치하는 행위는 누구나 아무런 제약없이 언제든지 할 수 있다. 다만, 인출의 경우 재충전 기간 이내에서 미사용된 스태미너 잔액만을 인출할 수 있다. 일반적인 Delgatee라면 인출을 해야 할 상황이 왔을 때 다음 재충전 $epoch$까지 기다렸다가, 100% 완충된 스태미너 예치금만을 인출할 것이다. 그러나 , 비잔틴 상황이 발생하는 등 매우 긴박한 상황이라면 특정 Delegatee는 스태미너가 아직 완충되지 않았음에도 불구하고 미사용된 스태미너 잔액을 인출할 가능성도 있다. ## 고정 가스 가격 모델 (Fixed Gas Price Model) 고정 가스 가격 모델의 목적은 엔드 유저의 블록체인 사용성을 개선시키고 변동되는 $Gas$ $Price$로 인해 트랜잭션 송신자의 의사결정이 왜곡되는 현상을 방지하기 위함이다. 우선, 기존의 가스 모델을 고정된 가스 가격 모델로 변경하기 위해서는 트랜잭션 단위당 전송 비용인 Gas Price를 최소 Gas Price인 Minimum Gas Price(이하 $MGP$)로 고정시켜야 한다. 단, 네트워크 전반적으로 사용 규모가 늘어나거나 네트워크가 과열될 경우, 이를 안정화시키기 위해 초기에 설정된 $MGP$ 값은 해당 네트워크의 거버넌스 구조에 의해서 일정 수준 높아질 수 있을 것이다. 이는 경기가 과열될 경우 이를 완화시키기 위해 금리를 인상시켜 통화량을 축소시키는 것과 유사한 맥락으로 볼 수 있다. 
### $Fixed$ $MGP$ 특정 스태미너 잔액 내에서 트랜잭션이 발생할 때마다 책정되는 비용은 $MGP$로 고정된다. 이러한 구조 하에서 $K$번째 스태미너에서 사용된 금액은 아래 식과 같다. $$ Stamina_{used}^{kth}= \sum_{}Gas Used * MGP$$ 몇가지 샘플 파라미터를 통해 $MGP$의 의미를 명확히 파악할 수 있다. $PNT$에서의 Gas Price 계산 단위는 ETH와 wei, Gwei의 관계와 동일하다. EVM에서의 연산 작업량을 나타내는 Gas Used의 경우 일반적인 토큰 전송 트랜잭션의 Gas Limit 수준인 21,000으로 할당했고 Block Gas Limit은 100,000,000이다. 재충전 epoch은 1달로 가정한다. $MGP = 3 Gwei (3*10^{-9} PNT)$, $MGP = 3 wei(3*10^{-18} PNT)$인 2가지 상황을 설정하고 스태미너 잔액 수준은 $1 PNT$로 동일한 경우를 시뮬레이션해보면 다음과 같은 결과가 도출된다. | | Case 1 | Case 2 | | -------- | -------- | -------- | | $Balance_{Stamina}$ | $1$ $PNT$ | $1$ $PNT$ | | $MGP$ | $3$ $Gwei$ | $3$ $wei$ | | $Gas$ $Used$ | $21,000$ | $21,000$ | | $Stamina_{Used}$ | $3 * 21,000 * 10^{-9}$ $PNT$ | $3*21,000*10^{-18}$ $PNT$ | | $Block$ $Gas$ $Limit$ | $100,000,000$ $Gas$ $Limit$ | $100,000,000$ $Gas$ $Limit$| |$Transaction_{Max}$ | $4,760$ $TX$ | $4,760$ $TX$ | | $Total$ $Gas$ $Fee$ | **0.3 PNT** | **0.00000000003 PNT** | 동일한 재충전 기간을 가정했을 때, Case 2에서는 블록 1개 내에서의 트랜잭션 수수료가 Case 1에 비해 $10^{9}$배 더 적다. 이는 곧 Case 2는 Case 1에 비해 스팸 공격이 더 쉬워지게 된다는 것을 의미한다. 즉, Case 2의 경우, 매우 낮은 수준의 $MGP$가 적용된 스태미너로서 특정 위임자의 스태미너 잔액을 모두 사용하는데에 대한 한계비용이 매우 작아 공격 가능성이 크다. 따라서 안정성과 사용성을 고려한 적정 수준의 $MGP$를 결정하는 것이 중요하다. 만약, 오퍼레이터가 사전적으로 스마트 컨트랙트에 정의된 $MGP$ 미만으로 $MGP$를 수용하여 트랜잭션을 처리할 경우, Truebit-타입 검증 게임 등의 연산 챌린지를 당할 수 있다. $MGP$ 미만으로 Gas Price를 책정한다는 것은 무제한으로 트랜잭션을 보내는 스팸 공격의 위험을 내포하기 때문이다. 아래 그림은 MGP의 수준과 스팸 공격 위험의 관계를 나타낸다. ![](https://i.imgur.com/rHTtKDF.png) 따라서, 오퍼레이터는 저비용 및 낮은 안정성의 플라즈마 체인과 높은 고비용 및 높은 안정성의 플라즈마 체인을 선택할 수 있다. 만약, 특정 플라즈마 체인이 초기에 구축된 체인일 경우 초기 $MGP$의 수준은 낮게 책정될 가능성이 높을 것이다. 그러나 추후 네트워크가 확장되고 체인의 안정성이 중요해진다면, 앞서 언급한 것처럼 $MGP$의 수준을 높여 좀 더 높은 안정성을 갖는 체인을 목표할 수 있을 것이다. 이처럼, 오퍼레이터는 네트워크 규모에 맞는 비용 구조를 자율적으로 채택할 수 있다. 참고적으로, 상기의 예시는 Gas Used가 고정되어 있다고 가정하였다. 그러나 스태미너 잔액이 감소하는 것은 $MGP$ 뿐만이 아니라 Gas Used에도 영향을 받는다. 따라서 각 DAPP마다 필요한 Gas Used 값을 추가적으로 고려하여 $MGP$를 설정해야 할 것이다. --- # Challenge and Exit Cryptoeconomics Challenge와 Exit은 루트 체인과 플라즈마 체인 간의 관계를 암호경제학적으로 보장하는 핵심적인 메커니즘이라고 할 수 있다. Challenge와 Exit 메커니즘에 의해 플라즈마 체인의 탈중앙성이 보장된다. ### Challenge 플라즈마 체인 내부에서 특정 유저 또는 오퍼레이터의 행위에 대해 이의를 제기하는 행위를 의미한다. 모든 챌린저는 챌린지를 발생시킬 때마다 최소 챌린지 예치금($D_{challenge}^{min}$)만큼의 $PNT$를 예치해야 한다. ### Exit 특정 유저가 플라즈마 체인에 예치해놓은 자산을 인출하여 루트 체인 또는 다른 플라즈마 체인으로 탈출하는 것을 의미한다. 모든 Exit 유저는 Exit 트랜잭션을 발생시킬 때마다 최소 탈출 예치금($D_{exit}^{min}$)만큼의 $PNT$를 예치해야 하고, Exit 챌린지 기간이 지나야 예치한 $PNT$를 인출할 수 있다. ## Challenge Mechanism : Against Byzantine 챌린지는 챌린지를 당하는 주체에 따라 크게 2가지 경우로 분류된다. 첫번째 경우는 오퍼레이터가 비잔틴 행위를 했을 경우 발생하는 연산 챌린지(Computation Challenge)이고, 두번째 경우는 플라즈마 체인의 유저가 부정한 Exit을 시도했을 경우 발생하는 탈출 챌린지(Exit Challenge)이다. 각 챌린지가 어떻게 진행되는지 살펴보도록 하자. ### 1. Operator에 대한 챌린지 : 연산 챌린지 (Computation Challenge) 오퍼레이터는 Plasma EVM 상에서 정해진 연산 작업을 수행하지 않았을 경우 연산 챌린지를 당할 수 있다. 이는 오퍼레이터의 행위에 대해 이의를 제기하는 챌린저(Challenger)에 의해 발생할 수 있는데, 연산 챌린지의 경우의 수를 단순하게 나눠보면 다음과 같다. > i) NRB에서 Request 트랜잭션을 포함한 경우 또는 Non-Request 트랜잭션을 포함하지 않은 경우 > ii) ORB에서 Non-request transaction을 포함한 경우 또는 Request 트랜잭션을 포함하지 않은 경우 > iii) 이외 NRB에서 올바른 연산 작업을 수행하지 않았을 경우 #### 1) 오퍼레이터가 연산 챌린지에서 패배 : $D_{chain}$ 몰수 상기 나열된 오퍼레이터의 비잔틴 행위에 대해 연산 챌린지가 발생하고 Truebit-타입의 검증 게임에 의해 해당 행위의 비잔틴 여부가 실제로 검증되었다고 가정하자. 그렇다면, 오퍼레이터는 자신이 플라즈마 체인을 열 때 예치한 $D_{chain}$을 전부 잃는다 (Hard Slashing). 이는 비잔틴 행위가 발생할 때마다 투입되는 한계비용을 극대화시켜서 체인의 안정성을 확보하기 위한 처벌 메커니즘 디자인이다. #### 2) 오퍼레이터가 연산 챌린지에서 승리 : 챌린지 예치금($D_{challenge}$) 몰수 만약 특정 챌린저가 비잔틴 행위가 아님에도 불구하고 챌린지를 발생시켰다면 어떻게 해야 할까? 이 경우에는 유효하지 않은 챌린지가 발생한 것이고 챌린저가 패배한 상황일 것이다. 따라서, 오퍼레이터가 챌린지에서 패배했을 때와 마찬가지로 챌린저 역시 자신의 예치금을 몰수당한다. ### 2. 유저의 Exit에 대한 Challenge : Exit Challenge 한 유저가 플라즈마 체인으로부터 탈출하고자 한다면, 해당 유저는 탈출 챌린지 기간이 지나야 최종적으로 자신의 자산을 인출할 수 있다. 앞서 언급했듯이, Exit을 요청한 유저는 $D_{exit}^{min}$만큼의 $PNT$를 예치해야 한다. 만약 $PNT$를 예치하지 않는다면, 이중 지불 등 악의적인 탈출 트랜잭션이 발생했을 경우 이를 처벌할 수 없다. #### 1) 탈출 유저가 연산 챌린지에서 패배 : $D_{exit}$ 몰수 #### 2) 탈출 유저가 연산 챌린지에서 패배 : $D_{challenge}$ 몰수 ## 몰수된 예치금의 분배(Distribution) 앞서 우리는 챌린지의 패배자로부터 예치금을 몰수하는 것이 암호경제학적으로 매우 중요하다는 것을 확인하였다. 하나의 챌린지는 반드시 승패가 갈릴 수 밖에 없는 게임이기 때문에, 챌린지가 한 번 발생할때마다 패배자는 반드시 존재하고 자신이 예치한 금액(오퍼레이터라면 $D_{chain}$, 챌린저라면 $D_{challenge}$)을 100% 삭감당한다. ## 챌린지 상금 메커니즘 ### 챌린지 상금 ($Prize_{challenge}$) 우선, 몰수된 예치금($Deposit_{slashed}$)의 일부 또는 전액은 챌린지 승자에게 분배된다. 챌린지의 승자에 대해 경제적 유인을 보장하지 않으면, 비잔틴 행위를 목격해도 플라즈마 체인의 참여자가 굳이 반응을 보일 필요가 없기 때문이다. ### 상금 분배의 공평성(Equity) 상금 분배 측면에서의 공평성이란 **서로 다른 챌린지 예치금**을 예치한 챌린저에게 동일한 상금을 분배해서는 안된다는 것이다. 직관적으로, 서로 다른 챌린지 예치금을 예치했음에도 불구하고 동일한 상금을 분배받는 것은 공평하지 않다. 이러한 상황이라면 챌린지 상황이 발생할 경우 더 많은 자산을 예치할 유인이 없다. 좀 더 깊이 생각해보면, 이는 챌린지 참여자들이 부담하는 위험에 대해 수직적으로 공평한 정책이 아니다. 예를 들어, 100 PNT를 예치한 A와 1,000 PNT를 예치한 B의 $Prize_{challenge}$가 1,000 PNT로 동일하다고 가정하자. 만약, B가 챌린지에서 패배한다면 B는 A보다 10배의 경제적 손실이 발생한다. 즉, B는 A보다 10배의 손실 위험을 더 보유한 채로 챌린지 과정에 참여하지만, 최종적으로 받을 수 있는 경제적 이득은 서로 동일하다. 이 경우, 손실 위험 대비 $Prize_{challenge}$는 A와 B 사이에서 공평하지 않다. 이와 관련해서, Challenge에서의 상금 모형은 **"추가 위험 보유에는 추가적인 수익을 보장한다"** 는 원칙을 세웠으며 자본자산 가격결정 모형(Capital Asset Pricing Model : CAPM)을 일부 착안하여 Challenge 메커니즘에서의 수익 배분 논리를 발전시켰다. [](https://i.imgur.com/UNbZ3Ua.png) ### CAPM ![](https://i.imgur.com/7xAdEqH.png) $$ R_i = R_f + B_i(R_m - R_f)$$ > $R_i$ = Return on $Asset_{i}$ > $R_f$ = Return on $Risk$ $Free$ $Asset$ > $B_i$ = Systematic Risk of Market > $R_m$ = Return on the Market Portfolio CAPM 모델은 서로 다른 위험을 부담하는 자산에 대해서는 서로 상이한 수익률을 책정해야 함을 설명할 수 있는 모델이다. 이 모델을 참고한 이유를 간단히 요약하면 $(R_m - R_f)$에 해당하는 리스크 프리미엄, **즉 위험을 초과로 부담하는 것에 대해서는 추가적인 수익을 보장해야 한다는 원칙 때문이다.** 챌린지 메커니즘에서 상금을 분배할 때 상기의 논리는 매우 중요하며 우리는 다음과 같은 수식을 도출하였다. $$ Prize_{challenge} = [D_{challenge}^{min}+w_{challenge}(D_{challenge}-D_{challenge}^{min}), D_{chain}] $$ 여기에서, $w_{challenge}$는 추가로 위험을 부담한 금액에 대하여 적용하는 가중치로서 0과 1 사이의 값을 갖는다. $$ w_{challenge} = (0,1] $$ 결과적으로, 오퍼레이터 또는 유저가 챌린지에서 패배했을 경우 $D_{chain}$ 또는 $D_{exit}$이 몰수된다. 그리고 각 챌린지의 승자는 자신이 부담한 위험에 비례하는 상금을 얻게 되고, $D_{chain}$ 중 상금 대상 금액을 제외한 나머지 부분은 소각되어 $PNT$ 통화량 안정에 기여한다. ## 결론 Plasma EVM의 메커니즘 디자인은 플라즈마 네트워크 경제 주체들의 공평한 참여를 목표하고 부의 불공평한 분배 구조를 지양한다. 변동성이 높은 Gas Price로부터 일반적인 블록체인 사용자의 사용성은 개선될 것이다. 오퍼레이터가 배분받는 시뇨리지는 네트워크의 수요 수준에 맞는 토큰의 공급을 목표한다. 탈중앙성의 핵심이 되는 Exit과 Challenge의 상금 메커니즘의 경우, 챌린지 금액에 비례하는 수익을 배분하여 인센티브 구조를 보다 합리적으로 설계하였다. 이러한 메커니즘들은 Plasma EVM의 네트워크 경제가 탈중앙성이 확보된 상태에서 안정적으로 유지되는데에 기여할 수 있을 것이다. ## Reference * EVM Compatible Transaction Fee(GAS) Delegated Execution Architecture for Plasma Chain[1](https://ethresear.ch/t/evm-compatible-transaction-fee-gas-delegated-execution-architecture-for-plasma-chain/3106) * Token Velocity Problem [2](https://www.coindesk.com/blockchain-token-velocity-problem) * Transaction Fee Economics [3](https://vitalik.ca/files/Transaction%20fee%20economics.pdf) * Fixed Fee virsus unit pricing for information goods [4](http://www.dtc.umn.edu/~odlyzko/doc/price.war.pdf) * Microeconomic Analysis of Gas Price Mechanism and Migitation [5](https://hackmd.io/oe-bT8GcRvCc7vBgeOJyLw?both) * Ethereum Gas Price Analysis [6](https://medium.com/onther-tech/ethereum-gas-price-analysis-b70080e2e0d7) * Ethereum Casper 101 [7](https://medium.com/@jonchoi/ethereum-casper-101-7a851a4f1eb0) ----