xx 네트워크 경제 조정 – 실시간 장애 공제

계산기를 가진 사람

커뮤니티 피드백을 기반으로 팀은 경제에 대한 제안을 가지고 있으며 최종 결정에 도움이 될 커뮤니티를 찾고 있습니다.

xx 네트워크 MainNet의 출시와 함께 밝혀진 문제는 네트워크에서 실행 중인 성능이 낮은 노드가 있다는 것입니다.

AlphaNet, BetaNet 및 ProtoNet과 같은 네트워크의 이전 구현에서 이러한 문제는 단순히 성능이 떨어지는 노드를 비활성화하여 팀에서 처리했습니다. 이것은 분명히 nPoS에 의해 제어되는 MainNet에서는 불가능합니다.  

커뮤니티는 MainNet 출시 이후 이 문제에 대해 논의해 왔습니다(#MainNet-chat 채널에서 매우 사려 깊은 스레드를 찾을 수 있습니다 불화). 벌금의 차등화와 관련된 솔루션이 제안되었습니다. 전반적으로 클라이언트 측 수정과 함께 기존 솔루션에 대한 조정이 올바른 접근 방식이라는 것이 팀의 의견입니다.

현재 솔루션을 이해하려면 경제성에 대한 몇 가지 세부 사항을 검토해야 합니다. 각 에포크(24시간 기간)에서 일정량의 코인이 수여됩니다(이 결정에 대한 메커니즘은 xx 경제학 논문) 모든 노드에 배포됩니다. 주어진 노드에 수여된 이러한 코인의 부분은 획득한 총 코인의 부분과 같습니다. 예를 들어, Epoch 보상이 총 50,000xx이고 특정 노드가 총 10,000,000 중 10,000 포인트를 얻은 경우 (10,000/10,000,000)×(50,000xx) = 500xx(지명자 사이에서 분할)를 얻습니다. .

하지만 이 포인트는 어떻게 적립됩니까?

xx 네트워크 내에서 블록 만들기와 cMix 라운드 실행의 두 가지에 대해 포인트가 적립됩니다. 인센티브 체계가 있는 것은 cMix 라운드 실행 메커니즘 내에 있습니다.

라운드가 완료될 때마다 팀의 5개 노드가 모두 10점을 획득하고 실시간 단계에서 라운드가 실패하면 노드가 20점을 잃습니다. 이 점수 상실은 나쁜 행동의 동기를 없애기 위한 것입니다. 처음에는 매우 불공평해 보입니다. 하나의 노드로 인해 라운드가 실패하면 왜 모든 노드가 패널티를 받아야 합니까?

두 가지 이유가 있습니다.

첫 번째는 BFT(Byzantine Fault Tolerance)에서 cMix 프로토콜 내에서 누가 잘못했는지 결정할 수 없다는 것입니다. 이것은 어떤 노드가 포인트를 잃어야 하는지 증명할 수 없다는 것을 의미합니다.

두 번째는 총합에서 다른 노드는 불이익을 받지 않는다는 것입니다. 예를 들어, 15개의 노드와 5개의 노드 팀으로 구성된 네트워크에서 한 노드를 제외한 모든 노드가 0%의 라운드에 실패하고 한 노드가 50%를 실패하는 경우를 가정해 보겠습니다. 충분한 라운드가 주어지면 모든 좋은 노드는 나쁜 노드와 동등하게 작업하게 되며, 포인트는 총점이 아닌 총 포인트 비율에 따라 분배되므로 모든 "좋은" 노드는 동일한 수의 xx coin를 얻게 되고 나쁜 노드는 불이익을 받게 됩니다. 위의 경우, 한 노드는 나쁜 노드와 1/3의 시간 동안 한 팀에 속하게 됩니다. 50%의 실패율을 가지므로 모든 노드의 총 실패율은 16.667%가 됩니다. 100,000라운드가 진행되고 각 노드가 1/3씩 참여한다고 가정하면, 현재 경제학에서는 10×100,000×⅓×(1-.667) = 277,778 포인트를 얻고 20×100,000×⅓×(.667) = 111,111 포인트를 잃게 되므로 총 166,667 포인트를 잃게 되는 셈입니다. 같은 시나리오에서 공격 노드는 10×100,000×⅓×() = 166,667을 획득하고 20×100,000×⅓×() = 333,333 포인트를 잃게 되어 총 -166,667이 됩니다. 포인트는 마이너스가 될 수 없으므로 위반 노드는 0점을 받게 되며, 결과적으로 모든 보상은 위반 노드가 처음부터 없었던 것처럼 다른 14개의 선량한 노드에게 균등하게 분배됩니다.

이 솔루션은 노드가 모든 수익을 잃게 되는 실패율을 목표로 해야 한다는 점을 제외하고는 작동합니다. 우리가 매우 높은 신뢰성을 가진 시스템을 원한다는 점을 감안할 때 우리는 50%보다 훨씬 높은 수치를 목표로 삼고 싶습니다.

일반적으로 목표고장률과 포인트에 대한 방정식은 다음과 같다.

포인트 성공이 항상 10이라는 점을 감안할 때 이것은 다음을 제공합니다.

이것은 지역 승수, 노드가 실패한 라운드에서 복구하는 데 걸리는 시간, 다양한 노드 하드웨어 및 인터넷 구성이 라운드 시간에 미치는 영향을 고려하지 않기 때문에 근사치이기도 합니다. 그러나 현재로서는 분석에 충분합니다.

남아 있는 가장 큰 문제는 적절한 "타겟 실패"가 무엇인지입니다. 일반적으로 노드가 이를 충족하지 못하는 높은 실패율을 가질 때 포인트와 그에 따른 수입이 여전히 상당히 감소하기 때문에 예상보다 높을 수 있습니다.

지난 12시간 동안 가장 높은 실시간 실패율은 다음과 같습니다.

27.22%, 3.79%, 3.58%, 1.64%, 1.19%

평균 실패율은 0.5%(중앙값 0.35%)입니다. 

이 데이터를 감안할 때 팀은 33%의 실패율을 목표로 하는 것에서 5%로 하향 조정해야 실시간 실패당 포인트 공제를 190으로 가져와야 한다고 생각합니다.  

앞으로 며칠 동안 커뮤니티 토론을 위해 이 문제를 공개하고 2021년 12월 6일 응답을 기반으로 다시 방문합니다.

팀이 작업 중인 보조 임시 해결책도 있습니다. 경제적인 솔루션의 궁극적인 결점은 시간이 걸릴 수 있다는 것인데, 이는 xx 메신저와 xxDk의 다른 사용자가 메시지를 적극적으로 삭제하는 경우에는 그다지 좋지 않습니다. 결과적으로 팀은 xxDK 사용자가 선택적으로 해당 노드가 포함된 라운드에서 메시지를 보내지 않도록 선택할 수 있는 현재 성능이 저조한 노드 운영자 목록을 게시할 것입니다. xxDK 사용자는 별도로 선별된 다른 목록을 선택할 수도 있습니다.

팀은 또한 더 많은 정보가 곧 제공될 예정인 최소 성능에 따라 팀 승수를 만드는 방법을 조사할 것입니다.

인기있는