안녕하세요. 오랜만에 들렸습니다.
이더리움 스테이킹 노드의 출금기능이 열심히 개발중인데.
얼마전에 출금 기능 구현한 테스트넷이 나와서 잠시 테스트해보고 결과 공유합니다. 관심있으신 분들은 참고하세요.
참고사이트
https://zhejiang.ethpandaops.io/
노드 설치법
https://github.com/eth-educators/ethstaker-guides/blob/main/zhejiang.md
---------------------------------------------------------------------------------------
2월초 이더리움의 출금기능을 테스트하기 위한 테스트넷 저장이 런칭되었습니다.
2월1일 시작. - 출금기능 활성화 2월8일.
테스트넷 구성후 간단히 테스트해 본 결과를 공유 하고자 합니다.
0. 이더리움 스테이킹을 위해 밸리데이터 키를 생성할때 출금주소를 지정하는 withdrawal credentials 을 옵션으로 지정할수 있는데.
스테이킹 시작 초기에는 해당기능이 없다가 중간에 만들어지다 보니 출금기능이 활성화 안된 밸리데이터들이 있습니다.
해당 밸리데이터는 키를 만들때 사용한 니모닉을 이용하여 해당 밸리데아터의 출금기능을 활성화 (json파일 생성후 네트워크에 브로드캐스팅) 해야 출금기능이 동작합니다.
1. 출금기능
위에서 이야기한 withdrawal credentials 을 미리 설정한 밸리데이터는 출금기능이 활성화 되는 순간부터 출금기능이 동작합니다.
해당 출금기능은 밸리데이터를 유지하기 위한 최소한의 값인 32이더를 제외한 밸런스가 지정한 주소로 자동 출금됩니다.
블럭당 최대 16개의 출금 대기열 처리, (1블럭은 약 12초 간격)
스위핑 방식 ( 밸리데이터를 1번부터 검색해서 출금지정된 밸리데이터를 대기열로 넣고. 불럭제안자가 최대 16개씩 처리 )
누락된 블럭이 없는 경우 하루에 최대 115,200개의 출금처리 가능합니다.
아래사진을 보면 현재는 6 epoch마다 자동출금 됩니다.
1 epoch은 32개의 슬롯(블럭) = 32 * 16 = 512. 1 epoch 6.4분당 약 500명의 출금이 처리됩니다.
현재 저장 테스트넷에는 약 2500명의 출금가능 밸리데이터가 있으니 대략 5-6 epoch마다 32이더를 제외한 잔액이 출금됩니다.
추후 메인넷의 경우 현재 약 51.7만명의 밸리데이터가 존재하고. 해당 밸리데이터가 모두 출금기능이 동작한다고 가정하면
517000 / 500 = 1000 epoch마다 출금이 일어날것이고. 이는 약 110시간. 4.6일 간격입니다.
(밸리데이터가 늘어나면 해당 간격은 더 길어지고. 출금기능 활성화 하지 않은 밸리데이터가 많으면 예상보다 짧아지겠죠.)
그리고 메인넷 스테이킹 평균밸런스는 34이더정도 되니 출금기능이 동작하면 첫 5일간 매도가능한 이더 100만개 정도가 나오겠네요.
밸리데이팅 후 약 5일마다 매도 가능한 이더가 지정한 계좌로 계속 입금되는 구조입니다.
현재 하루에 약 0.003 이더가 증가되고 있으니 5일이면 약 0.015 이더, 한달이면 약 0.1이더가 들어오겠네요.
(블럭보상이나 동기위원회 참여 보상을 합하면 기본보상에 가까우나 보너스에 가까워서 한방에 들어오는거라서...)
2. Exit
밸리데이터를 그만두고 전체 출금을 하고 싶으면 자발적인 퇴장이 가능합니다.
자발적인 퇴장조건은 일단. 밸리데이터가 active되고 256 epoch(약 27시간)이 지나야 가능하고
일단 퇴장을 시작하면 최소 5 epoch이후 퇴장 대기열크기에 따라 최종 퇴장이 결정됩니다.
현재 저장 테스트넷에서는 밸리데이터의 avtive나 exit이 1epoch당 4명으로 되어있는거 같습니다.
(나중에 메인넷의 경우엔 달라질수도 있겠습니다. 제가 기존에 알기로는 6명으로 알고 있었습니다. )
최종 Exit이 되기전까지는 밸리데이터 의무를 수행중이니 가능하면 밸리데이터를 계속 돌리셔야 밸런스 차감이 안됩니다.
대기열을 지나 최종 퇴장이 결정되면 다시 256 epoch을 기다리면 출금주소로 밸런스 이더인 32이더가 자동출금됩니다.
3. 슬래시
테스트넷이어서 슬래시도 한번 해보았습니다. ^^;
같은 밸리데이터를 두개의 노드에서 동시에 돌렸는데. 아무리 돌려도 slash가 일어나지 않아 의아했는데.
알고보니 예전에는 slash조건을 감지하는 slasher가 CL 클라이언트에서 기본동작 옵션이었는데.
최근에는 여러 이유로 해당기능을 끄는 사람이 많아졌고. ( 리소스 문제, 내가 찾아도 블럭제안자가 보상 등)
테스트넷에서도 해당 기능을 켠 사람이 없어서 슬래시가 안일어난거였더라구요. ^^;
해당 기능을 켜니 바로 슬래싱이 일어났습니다.
슬래싱 즉시 스테이킹 이더의 1/32(최대1)이더가 소각되고. 이후 36일동안 계속 뱔런스 차감이 일어납니다.
2월12일 slash exit후 36일이 지난 3월 21일에 나머지 잔액이 출금되는걸로 나오네요.