파이코인 노드 보상, 공식, 선정방식 총 정리 (pi network node)

작년에 파이코인 노드가 처음 나왔을 때는 베타 단계였고 실질적인 보상안이 발표되지 않았기 때문에 일부 테스터 유저들 빼고는 파이네트워크 노드 시스템이 그렇게 큰 관심을 받지 못했습니다. 하지만 올해 락업보상, 메인넷 체크리스트 등이 새롭게 업데이트되면서 노드에 대한 보상도 발표가 되었습니다. 그렇기에 노드 설치에 대한 수요가 늘은 건 사실입니다. 이전에 노드 설치방법에 대해서는 설명드린 바가 있는데 그때도 노드시스템에 대해 간단히 설명해 드렸지만 이제 파이노드 시스템이 점점 자리를 잡아가는 것 같아서 파이코인 백서와 지금까지 공개된 내용들을 토대로 궁금증을 해결해나가 보도록 하겠습니다.

현 상황


테스트넷에서 노드로 선정되어 부하 테스트에 참여했던 노드의 수는 1.8만 개였지만 가장 최근 공개된 자료에 따르면 2022년 2월, 약 50만 개의 노드가 노드앱을 설치하여 선정 대기 중에 있습니다. 

https://pi-blockchain.net/

위 사이트를 보시면 아시겠지만 지금도 엄청나게 많은 테스트넷에서의 거래가 노드 시스템을 통해 이루어지고 있는 것을 확인할 수 있습니다. 

노드란 무엇인가?

사실 노드라는 것인 암호화폐 등장으로 생긴 개념은 아닙니다. 컴퓨터로부터 시작해 네트워크를 교통 정리하는 루터나 허브, 네트워크 상에 다양한 서비스를 제공하고 있는 서버, 더욱이 네트워크에 연결되어 있는 프린터나 IP 전화기 등에 관해서도 노드라고 부를 수 있습니다. 이렇게 노드와 노드를 연결하고 있는 것을 링크라고 부르는데 이것 모두를 합쳐서 1개의 네트워크가 완성되는 것입니다.

블록체인이 흔히 탈중앙화랑 같이 엮이는 것은 많이 보셨을겁니다. 탈중앙화가 되었다는 것은 모든 정보가 모든 이에게 공유가 된다는 것이죠. 그래서 글 처음에 나온 사진에서도 파이 테스트 넷에서 누가 누구에게 송금을 했는지 확인을 할 수 있었던 것입니다. 위의 설명에서 “모든 이”가 바로 “노드”라고 할 수 있습니다. 해당 블록체인 네트워크에 참여하여 블록 정보를 가지고 있는 사람이나 서버가 될 수 있죠.

블록체인 네트워크 참여자 전원은 모든 블록(정보 데이터)들을 동일한 순서로 저장하여 모두 같은 블록체인 유지하게 됩니다. 이래서 비트코인이 변조가 어렵다고 하는 것입니다. 한명의 정보를 해킹해도 나머지 사람의 정보와 다르기 때문이죠.

파이코인에서의 노드

노드는 블록체인 네트워크의 필수요소로서 보안뿐만 아니라 블록체인의 핵심인 ‘분산 장부’의 유효성을 담보하는 역할을 하고 있습니다. 노드를 단순히 채굴량을 늘려주는 것으로 보는 것이 아니라 파이네트워크 측에서 이 노드 시스템을 어떻게 바라보는지를 같이 알아야 할 필요가 있는데 파이 네트워크 측은 노드에 대해 백서에서 다음과 같이 말하고 있습니다. (백서-공급 모델 파트-노드 보상 내용 인용)

장시간에 걸쳐서 예측 가능하게 실행되는 안정적인 노드를 갖는 것은 블록체인의 상태에 매우 중요하다.
그것은 하나의 기여가 아니다

사실 저 말은 너무 상식적인 말입니다. 백서에서는 For readability, we define as a correctly connected node to be what the SCP paper refers to as an intact node. 라는 말도 나오는데 이는 곧 올바르게 연결된 노드로서 온전한 노드라고 언급하고 있습니다. 온전한 노드란 합의과정에서 올바른 출력 값을 보여주는 노드를 의미합니다. 그러면 우리는 온전한 노드가 곧 파이팀에서 선정하고 싶은 노드라는 것을 알 수 있죠.

노드 선정 기준과 선정 절차

  • Node/super node selection criteria
  • – Uptime (i.e., Online 24/7)
  • – Good internet connection (fast and stable)
  • – (initially) ability to open ports on local router
  • – Adequate processor and memory
  • – Previous contributions to the Pi community
  • – Security circles

위 내용은 파이코인 백서에 나온 내용인데요, 이를 한글로 번역해 한 줄로 정리해 보면 “매일 24시간 가동되며, 높은 인터넷 속도와 안정적 환경 그리고 상시 포트 오픈과 적절한 프로세스 성능, 메모리 확보”로 되어있습니다. 위는 일반적인 노드의 기준이고 슈퍼노드에 경우 2가지의 기준이 추가로 있는데 이는 다음과 같습니다.

합의과정에 참여하며 블록체인의 최신상태를 유지하기 위해 다른 노드나 슈퍼노드를 지원할 수 있어야 한다.

라고 되어있기는 하나 사실 저 문장에 대한 구체적인 적용 안이 나와있는 것은 아니라서 아직까지 크게 구분할 필요는 없어 보입니다. 저의 글을 보고 노드 설치와 설정을 완료하신분은 처음부터 바로 노드가 된 것이 아니라는 것을 알 수 있으셨을 텐데요, 노드의 선정은 위의 기준에 따라 프로그래밍적으로 결정되는 것이므로 노드를 상시 가동해 포트를 오픈해 놓았다면 어느 날 선정이 되어있는 것을 확인할 수 있을 실 겁니다.

선정이 완료되면 좌측의 Consensus container가 absent에서 running으로 변경이 되게 됩니다. 이때부터 노드 보상에 대한 데이터가 계정에 쌓이게 됩니다. 그리고 우측 Consensus 화면을 통해 현재 블록이 잘 처리되고 있는지도 확인할 수 있습니다.

노드 보상 그리고 공식

최종 노드 보상 공식

N(I) = node_factor • tuning_factor • I

Node_factor = Percent_uptime_last_1_days • (Uptime_factor + Port_open_factor + CPU_factor)


여기서의 • 은 곱하기를 의미합니다.

percent_uptime_last_1_days는 직전 하루동안의 가동율을 의미합니다

uptime factor는 가동시간계수를 의미합니다

port open factor는 포트개방계수입니다

CPU factor는 CPU계수입니다

tuning factor는 타 보상과의 비교를 위한 조정요소입니다

I 는 파이오니아의 기본채굴률이며 락업보상을 포함합니다

N(I)가 노드 보상을 통해 추가로 채굴되는 채굴량이므로 정리해보면 위의 노드 보상에 기본 채굴률을 곱하여 산출됨을 확인할 수 있습니다.

가동시간 계수와 노드의 활성화 공식

Uptime_factor = (Percent_uptime_last_90_days + 1.5*Percent_uptime_last_360_days(360-90) + 2* Percent_uptime_last_2_years + 3*Percent_uptime_last_10_years)

가동이라는 것은 지난 하루 동안 노드가 활성 상태인 경우를 의미하는데, 활성상태는 노드포트가 열려있고 인터넷에 연결된 상태를 의미합니다. 앞서나온 uptome factor 즉, 가동시간계수는 하루동안 노드가 활성상태인 시간을 24시간으로 나누어서 구하게 됩니다.

포트 오픈 계수, 노드 간 통신과 블록

Port_open_factor = 1 + percent_ports_open_last_90_days + 1.5*_ports_open_last_360_days + 2* percent_ports_open_last_2_years + 3*percent_ports_open_last_10_years

백서에 따르면 위 공식에 대해 아래와 같이 설명하고 있습니다.

“주어진 기간 동안 노드의 포트 개방 계수는 해당 기간 동안 노드의 특정 포트가 인터넷에서 액세스 가능한 것으로 감지된 시간의 비율입니다. Pi의 합의 프로토콜은 노드 간에 일련의 메시지를 보내는 데 의존합니다.”

즉, 노드 간 유효한 블럭을 쌓으면서 합의점에 도달하기 위해서는 앞서 말씀드린 바와 같이 노드간 정보를 교환하는 과정이 필요하므로 이것이 포트를 오픈하는 것에 대한 목적이 될 것이라는 것을 알 수 있습니다.

CPU 계수와 처리속도

CPU_factor = (1 + avg_CPU_count_last_90_days + 1.5*avg_CPU_count_last_360_days + 2* avg_CPU_count_last_2_years + 3*avg_CPU_count_last_10_years)/4.

백서에는 “주어진 기간 동안 노드의 CPU 계수는 해당 기간 동안 컴퓨터에서 사용할 수 있는 평균 CPU 코어/스레드 수이다. 더 높은 CPU 요소는 블록당 더 많은 트랜잭션을 처리하거나 초당 더 많은 트랜잭션을 처리할 수 있는 기능과 같이 향후 확장성을 위해 블록체인을 준비합니다”라고 적혀있는 것을 확인할 수 있었습니다.

테스트 노드와 선정 대기 중인자들을 위한 보상은?

처음에 파이코인 백서의 질문/답변 코너에서는 테스트넷 단계 상태에서의 노드에 대한 보상은 없을 것이라고 말하였는데요, 최근 수정된 백성의 내용을 보면 “채굴 보상과 관련된 이력 데이터의 경우, 노드 앱이 열려 있고 기능적으로 실행되지 않더라도 인터넷에 연결되어 있으면 노드가 활성으로 간주한다”라는 말이 추가된 것을 확인할 수 있었습니다. 이 말을 통해 우리는 테스트넷에서 실행한 노드의 이력 데이터를 노드 보상에 필요한 이력 데이터에 포함시키겠다고 이해할 수 있습니다. 

Leave a Comment