이오스 스테이킹 (staking) 이해하기
안녕하세요, 위즈페이스의 로날드입니다.
오늘은 이오스의 스테이킹(staking) 개념에 대해 간단히 알아보도록 하겠습니다.
EOS 코인은 다음과 같은 상태와 기능을 가집니다.
기본 상태 : 언스테이킹(unstaking) 된 상태라고도 하며, 유동성을 가지고 있어 거래 및 전송이 가능합니다.
락업 상태 : 스테이킹(staking) 된 상태라고도 하며, 유동성이 없어 거래나 전송이 불가능하지만 EOS 코인의 기능을 사용할 수 있습니다. 스테이킹 된 EOS 코인은 다음의 기능을 가집니다.
- 자원 할당 : 스테이킹 된 만큼 할당된 CPU와 네트워크 자원을 사용할 수 있습니다.
- 투표 : 1 EOS 당 30 개의 BP에 투표할 수 있습니다.
(투표와 BP에 대한 설명은 다음 글을 참고 해주세요)
이 때문에 스테이킹할 경우 자원 사용파워와 봇팅 파워가 생긴다고 합니다.
여러 BP와 Dapp 개발자들이 스테이킹/언스테이킹 툴을 개발해 제공하고 있으며,
이오스툴킷 https://eostoolkit.io , 덱시오스 https://dexeos.io 등이 있습니다.
언스테이킹 : CPU와 네트워크 자원에 할당된 스테이킹 상태에서 유동성을 가진 기본 상태로 복귀하는 과정으로 기본 상태가 되기까지 3일(72시간)이 소요됩니다.
리펀드 상태 : 언스테이킹할 경우 즉시 기본 상태가 되지 않고 72시간 동안 리펀드 상태로 있게 됩니다.
그렇다면 EOS 는 왜 이러한 스테이킹/언스테이킹 개념을 만들었을까요?
이에 대해서는 복잡하고 깊은 설명을 필요로 하지만, 쉽게 이해할 수 있는 이유로
(1) 안전 (2) 자원 사용 (3) 투표 세 가지를 들 수 있습니다.
- (1) 스테이킹된 상태에서 거래 및 전송을 위한 언스테이킹 상태가 되기 위해서는 72시간을 필요로 합니다. 그러므로 누군가 본인의 프라이빗 키를 해킹하여 보관하고 있던 자산을 훔치고자 하더라도 리펀드 상태의 72시간을 꼭 거쳐야만 합니다.
이 때 언스테이킹 트랜잭션은 https://eosflare.io/ 등에 계정명이나 eos 퍼블릭 키 입력을 통해 확인할 수 있으며, 언스테이킹이 완료되기 전에 언제든지 언스테이킹 철회를 할 수 있습니다. 따라서 해킹 등의 위험으로부터 좀더 안전하다고 할 수 있습니다.
잦은 거래를 필요로 하지 않을 경우 스테이킹 해둘 경우 자산을 보다 안전하게 보관할 수 있습니다.
- (2) EOS 코인을 스테이킹 한 만큼 이오스의 CPU와 NETWORK 자원을 활용할 수 있는데요, 이오스의 CPU와 네트워크 자원의 개념은 다음과 같습니다.
A. CPU : 연산을 처리하는 하드웨어로, EOS 전송, 계정 생성, 투표 등의 EOS 상의 모든 액션을 수행하기 위해서 필요로 하는 자원입니다. 스테이킹(staking) 된 EOS의 양만큼 비례해서 사용할 수 있으며, 이오스에서는 이 자원 얼만큼 사용했는지를 몇 초, 몇 시간 등 시간 단위로 측정하여 EOS 블록체인상에 기록됩니다. 사용한다고 해서 사라지는 것이 아니며 24시간 뒤에 CPU 할당량이 다시 복구되어 재사용이 가능합니다.
B. NETWORK 자원 : EOS 서버 상에서 EOS 전송, 계정 생성, 투표 등의 데이터를 전송하기 위해서 사용되는 네트워크 자원으로 스테이킹 된 EOS의 양 만큼 비례해서 데이터를 처리할 수 있습니다. 마찬가지로 사용한다고 해서 사라지지 않으며 24시간 뒤에 복구됩니다.
참고로 사용자는 자신들이 사용하지 않는 CPU와 네트워크 자원을 DApp 개발자 등에게 대여해줄 수 있는 서비스가 개발되고 있다고 합니다.
- (3) 보유하고 있는 EOS 코인을 스테이킹한 경우에만 투표 기능을 갖도록 하여, EOS의 DPoS(지분위임방식)을 충실히 따를 수 있게 하였습니다. 즉, EOS 코인을 보유한 만큼 투표권의 지분을 갖게 됩니다. 또한 72시간의 언스테이킹 시간을 두어 단기 투기 및 단순 거래 목적을 가진 이들이 투표에 미치는 영향력을 최소화하였습니다.
이상으로 이오스의 스테이킹 개념에 대해서 알아보았습니다.
내용상의 오류나 궁금하신 내용은 댓글에 달아주세요. 감사합니다.
Hi @dexeosio , it would be great if you could write this in English.
Regards, @gold84
Thanks! I wrote this in English.
Please check it :)