Loading...

퀀텀 오프라인 스테이킹 파트 3 - 슈퍼 스테이커

2020-06-25 20:00

오프라인 스테이킹에 관한 이전 글을 통해 슈퍼 스테이커는 위임된 주소에 지분 증명(Proof of Stake) 서비스를 제공하고 퀀텀의 오프라인 스테이킹 프로토콜을 통해 위임된 주소에 대한 블록 보상을 얻기 위해 보유하고 있는 UTXO를 스테이킹해야 한다는 것을 설명했습니다.

이는 슈퍼 스테이커가 자체적으로 스테이킹에 활용할 UTXO를 보유해야 한다는 의미이고 해당 UTXO들은 500 개의 블록 확인 기간 동안 락업된 상태로 스테이킹되어야 합니다. 그렇다면 대량의 UTXO를 위임받아 스테이킹을 진행하는 슈퍼 스테이커는 자체적으로 몇 개의 UTXO를 보유해야 할까요? 슈퍼 스테이커가 보유하고 있는 모든 UTXO를 스테이크에 활용한 경우, 더 이상 스테이크를 진행할 수 없기에 블록 보상 기회를 놓치게 됩니다.

요약: 퀀텀 오프라인 스테이킹의 경우, 슈퍼 스테이커가 위임받아 스테이킹중인 무게에 비례하여 충분한 UTXO를 보유해야 합니다. 시뮬레이션을 통해 적정한 지갑 무게를 확인해볼 수 있습니다. 예를 들어, 전체 네트워크 무게의 5%를 위임받은 경우, 슈퍼 스테이커는 15,000 QTUM을 보유하는 것이 적절합니다.

수학 문제

적정 지갑 무게를 확인하기 전에 확률 계산을 해보겠습니다. 슈퍼 스테이커가 전체 네트워크의 100%를 위임받은 경우, 그는 모든 블록 보상을 획득할 수 있게 되고 이에 따라 모든 블록에 스테이킹을 진행해야 합니다. 한번 스테이킹된 UTXO는 500개의 블록이 지나야 다시 사용할 수 있으므로 최소 500개의 UTXO가 요구됩니다. 그리고 매번 스테이킹되는 UTXO의 크기가 150 QTUM이라고 가정한다면 (첫 번째 블로그에서 스테이킹에 활용되는 적정 UTXO 크기에 대해 다룬 적이 있습니다) 슈퍼 스테이커는 500 x 150 = 75,000 QTUM을 확보하고 있어야 합니다.

블록 보상을 100% 획득할 수 없는 슈퍼 스테이커의 경우, 스테이킹에 필요한 QTUM의 크기는 확률을 통해 알 수 있습니다. 보다 현실적인 수치로 알아보기 위해, 슈퍼 스테이커가 전체 네트워크 무게의 10%를 위임받았다고 가정해 봅시다. 그러면 각 블록에 대한 보상을 받을 확률은 10%가 되고, 이는 확률적으로 10개의 블록마다 보상을 얻게 된다는 뜻입니다. 따라서 500개의 블록에서 슈퍼 스테이커는 50번의 스테이킹, 즉 50 x 150 = 7,500 QTUM이 필요할 것으로 예측할 수 있습니다. 그러나 이것은 과정에 대한 확률적 계산 결과일 뿐이며, 실제 상황에서는 슈퍼 스테이커가 스테이킹에 활용할 UTXO를 모두 소진하여 일부 블록 보상을 청구할 수 없게 되는 상황이 발생합니다.

시뮬레이션

시뮬레이션을 위해 퀀텀 재단은 퀀텀 블록체인 시뮬레이터를 업데이트하여 슈퍼 스테이커가 스테이킹을 실행하고 500 블록이 지난 뒤에 스테이킹에 사용된 UTXO가 반환되도록 설정했습니다. 이는 퀀텀 블록체인이 실제 작동하는 방식과 같습니다.

좀 더 실제적인 상황을 알아보기 위해 지갑 무게를 많음, 적정, 적음 상태로 설정하고 시뮬레이션을 실행한 예시를 살펴보겠습니다. 아래 차트는 전체 네트워크의 1%를 위임받은 슈퍼 스테이커가 30일 동안 스테이킹을 진행했다고 가정한 시뮬레이션입니다.

차트에서 파란색 선 ( 적정한 지갑 무게 )은 최소한의 지갑 무게(스테이킹에 사용할 수 있는 UTXO 수)에 대한 시뮬레이션 내용입니다. 이 무게조차도 15,000번째 블록에서 스테이킹이 가능한 UTXO가 한 개밖에 남지 않은 상황이 발생했습니다. 노란색 선(적은 지갑 무게)은 지갑 무게가 0이 되는 순간들이 발생했습니다. 즉, 보유한 UTXO가 부족하여 스테이킹 기회를 4번 유실(빨간색 "X"로 표시) 했다는 의미입니다. UTXO 여유가 있어 스테이킹을 통해 블록 보상을 받을 수 있었을 것입니다.

시뮬레이션 결과

퀀텀 블록체인 시뮬레이터의 장점은 일단 한번 설정해놓으면 수백만 개의 블록이 지난 이후의 결과값을 얻을 수 있다는 것입니다.

이번 시뮬레이션에는 총 1,000 개의 지갑을 사용하여 총 무게가 2천만 QTUM인 네트워크를 설정하여 실행해봤습니다. 이 시뮬레이션의 목적은 슈퍼 스테이커가 사용하는 지갑의 무게별로 UTXO가 소진되는 시기를 알아보는 것입니다.

이 표는 360일을 시뮬레이션한 결과이며 각 데이터 포인트는 해당 기간 동안 슈퍼 스테이커가 블록 보상을 놓치지 않는 UTXO 최소값을 네트워크 비중별로 표시한 것입니다.

앞 부분에서 확률적인 계산을 통해 전체 네트워크 무게의 10%에 대한 스테이킹은 50 UTXO가 필요하다는 답을 얻었습니다. 하지만 시뮬레이션 결과는 79 UTXO가 최적값임을 알려주고 있습니다. 블록 보상 배포의 무작위성으로 인해, 슈퍼 스테이커는 위임받은 무게 보다 더 많은 UTXO를 추가적으로 준비해야 합니다.

이런 데이터 포인트들은 슈퍼 스테이커가 보유해야 하는 최소한의 UTXO 값을 나타냅니다. 보유량이 해당 값보다 적을 경우 슈퍼 스테이커는 블록 보상을 놓치게 됩니다. 블록 보상을 놓치지 않기 위한 보다 안전한 방법은 아래 표와 같이 최소값의 두 배를 보유하는 것입니다.

스테이킹을 위한 UTXO의 적정 크기는 150 QTUM입니다. 그러므로 전체 네트워크의 5%를 위임받은 슈퍼 스테이커는 100 UTXO를 보유해야 하고 이를 지갑 무게로 환산하면 15,000 QTUM이 됩니다.

주석

  1. 시뮬레이션은 몇 가지 가정을 포함합니다. 예를 들어, 블록 보상의 재결합 또는 고아 블록에 대한 부분은 계산되지 않았습니다.

  2. 시뮬레이션은 전체 네트워크에 대한 비율을 기반으로 진행되었고 시간에 따라 네트워크 무게가 변화되게끔 설정했습니다. 네트워크 무게는 시간에 따라 늘어남으로 위임받은 내역이 변화하지 않는 한 슈퍼 스테이커가 블록 보상을 획득할 수 있는 기회는 줄어들게 됩니다. 이런 경우 보유한 UTXO가 소진될 리스크는 더 줄어들게 됩니다.

  3. 슈퍼 스테이커가 추가적으로 위임을 받을 경우, 위임받은 무게가 늘어나는 만큼 스테이킹에 사용할 UTXO도 늘려야 합니다.

  4. 슈퍼 스테이커는 스테이킹 규모를 상시적으로 확인해야 합니다. 새로운 UTXO가 스테이킹 자격을 얻기까지 500개의 블록 확인이 소요됨으로 스테이킹 규모가 늘어난다면 빠르게 UTXO를 추가해 줘야 합니다.

참고자료:

  1. 퀀텀 오프라인 스테이킹 파트 1 - UTXO의 역할

  2. 퀀텀 오프라인 스테이킹 파트 2 - QIP 25

  3. 퀀텀 슈퍼스테이커 시뮬레이터

퀀텀 공식 커뮤니티

Naver Blog

Telegram

Kakao Talk

Facebook