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 프로토콜 내에서 누가 잘못했는지 결정할 수 없다는 것입니다. 이것은 어떤 노드가 포인트를 잃어야 하는지 증명할 수 없다는 것을 의미합니다.

The second is that in the aggregate, other nodes are not penalized. For example, imagine a network with 15 nodes and 5 node teams where all nodes except for one cause 0% of rounds to fail, with one failing 50%.  What will happen is that given enough rounds, all good nodes will work with the bad node equally and because points are distributed based upon the total ratio of points, not total points, all “good” nodes will get the same number of xx coins, while the bad node will be penalized. In the above case, a node will be in a team with the bad node 1/3rd of the time. It has a 50% failure rate, so all nodes will have an aggregate 16.667% failure rate. Assuming 100,000 rounds, and each participates in 1/3rd, that means that with the current economics, they will earn 10×100,000×⅓×(1-%16.667) =  277,778 points, and lose 20×100,000×⅓×(%16.667) = 111,111 points, making a total of 166,667 points. While in the same scenario, the offending node will earn 10×100,000×⅓×(%50) = 166,667 and lose 20×100,000×⅓×(%50) = 333,333 points, making a total of -166,667. Points cannot go negative, so the offending nodes get 0 points, and as a result all rewards are split between the other 14 good nodes evenly – as if the offending node was never there.

이 솔루션은 노드가 모든 수익을 잃게 되는 실패율을 목표로 해야 한다는 점을 제외하고는 작동합니다. 우리가 매우 높은 신뢰성을 가진 시스템을 원한다는 점을 감안할 때 우리는 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 사용자는 별도로 선별된 다른 목록을 선택할 수도 있습니다.

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

인기있는