베스팅 일정 수정

도구가 있는 키보드

xx labs 팀은 2022년 1월 21일 베스팅 일정 수정을 추진하고 있습니다.

개요

BetaNet Staking Rewards 프로그램의 제정으로 xx network의 대부분의 지갑에 새로운 베스팅 일정이 추가되었습니다. xx labs 팀은 이러한 새로운 베스팅 일정을 계산할 때 발생한 오류를 확인하고 정확한 일정을 복원하는 수정 사항을 개발했습니다.

이 포스트에서 우리는 xx network에서 베스팅이 어떻게 작동하는지에 대해 깊이 파고들면서 시작할 것입니다.

그런 다음 BetaNet Staking Rewards 프로그램이 어떻게 구현되었는지, 제정된 후 발견된 문제점, 잘못된 베스팅 일정을 수정하는 등의 문제를 해결하는 방법에 대해 설명합니다.

마지막으로 모든 수정된 가득 일정을 게시합니다. https://vesting.xx.network 모든 코인 보유자를 위해 JSON 데이터 형식 및 가득 그래프가 포함된 첨부 PNG 파일. 또한 앞서 언급한 문제의 결과로 코인 보유자에게 영향을 미친 다양한 시나리오의 예를 제공합니다.

이러한 수정 사항은 2022년 1월 21일에 적용됩니다.

베스팅 일정이란

베스팅은 전통적으로 스톡 옵션과 함께 사용되는 개념으로, 다수의 스톡 단위의 부여가 부여되지만 단위만 부여됩니다(그들은 조끼) 시간에 따라 부분적으로(예: 분기별 또는 연간).

xx network의 맥락에서 개념은 유사하지만 실행이 다릅니다. 수여된 코인의 전체 금액은 수취인 계정에 직접 제공되지만 베스팅 일정은 다음과 같습니다. 자물쇠 일정 시간 동안 동전. 베스팅을 위해 잠긴 코인은 네트워크의 모든 작업에 사용할 수 있습니다. 예약 된 코인), 다른 계좌로 이체할 수 없습니다. 그러면 모든 블록에서 잠금이 해제됩니다.

xx network의 가득 일정은 세 가지 필드로 구성됩니다.

  • 가득으로 잠긴 금액: 자물쇠NS
  • 각 블록의 잠금을 해제하는 금액: per_block
  • 코인이 잠금 해제되기 시작할 때 블록: 시작_블록


우리는 가득 일정을 사용하여 코인에 두 가지 다른 유형의 제한을 둡니다. 지정된 시간 동안 전체 금액을 잠그거나 지정된 시점에서 지정된 기간 동안 선형 잠금 해제를 시작합니다.

:

BetaNet 노드에 대해 7000의 월간 트랜치로 제공되는 코인에 대한 베스팅 일정은 다음과 같습니다.

  • 자물쇠NS:7000
  • per_block:7000
  • 시작_블록:1123200

이 예에서는 블록 1123200에서 잠금 해제를 시작하고 블록당 7000을 잠금 해제하는 7000의 잠금을 설정합니다. 이것은 7000개의 코인 트랜치가 블록 1123200까지 잠겨 있고 블록 1123201에서 완전히 잠금 해제된다는 것을 의미합니다. 이 특정 예는 1123200 블록이 1123200/(24시간 * 600)과 같기 때문에 2021년 1월 BetaNet 보상을 위한 것입니다. 시간당 블록 수) = 78일, 이는 잠금이 2022년 2월 1일에 종료됨을 의미합니다.

BetaNet 스테이킹 보상을 위해 제공되는 코인에 대한 베스팅 일정은 다음과 같습니다.

  • 자물쇠NS:23812
  • per_block:0.009186728
  • 시작_블록:432000

이 예에서는 블록 432000에서 잠금 해제를 시작하고 블록당 0.009186728을 잠금 해제하는 23812의 잠금을 설정합니다. 즉, 23812개의 코인이 블록 432000까지 잠겨 있고 블록당 0.009186728에서 잠금 해제가 시작됩니다. 잠금을 per_block: 23812/0.009186728 ~= 2592000 블록으로 나누어 가득 기간을 계산할 수 있습니다. 이는 2592000/(24*600) = 180일입니다. 이는 베스팅 시작 후 6개월, 432000/(24*600) = 메인넷 출시 후 30일 후에 가치가 완전히 잠금 해제되었음을 의미합니다.

베타넷 스테이킹 보상

2021년 3월에 팀은 메인넷 출시 당시 모든 코인 보유자에게 적용되는 BetaNet Staking Rewards 프로그램을 발표했습니다. 이 프로그램의 APY는 50%이며 이자는 2021년 3월 1일부터 메인넷 출시까지 매일 계산됩니다. 3월 1일 이후에 받은 코인은 지급된 날부터 이자가 발생합니다. 보상 금액은 모든 코인 보유자에 대해 계산되어 메인넷 출시 전에 제네시스 블록 스프레드시트에 게시되었습니다. 제네시스 블록에서 보상 금액은 청구 모듈에서 각 코인 보유자에 대해 구성되거나 BetaNet Staking Rewards 모듈에서 직접 구성되었습니다.

이 프로그램은 다음과 같은 보상 옵션으로 설계되었습니다.

  • 베스팅이 없고 2%의 보상이 제공됩니다.
  • 원금 100%에 보상금을 더한 1개월, 보상금 12%가 지급됩니다.
  • 3개월간 90%의 원금과 보상, 45%의 보상이 주어집니다.
  • 80%에 6개월의 원금과 보상을 더한 총 보상이 주어집니다. 선택하지 않은 경우 기본 옵션입니다.
  • 원금 100%에 보상을 더한 9개월, 보상 120%가 주어집니다.


BetaNet Staking Rewards 모듈은 프로그램의 필수 기능을 지원하기 위해 설계되었습니다. 이 모듈을 통해 코인을 xx network 주소에 청구한 사용자가 원하는 옵션을 선택할 수 있습니다. 또한 모듈은 메인넷 런칭 후 30일로 설정된 제정 블록으로 구성되었습니다. 이는 커뮤니티에서 프로그램 승인에 대한 투표를 할 시간을 허용하는 데 필요했습니다. 이 프로그램은 일주일 동안 코인 보유자들이 투표하는 국민투표를 통해 승인되었습니다.

제정 블록에서는 메인넷 스테이킹 보상 풀에서 모든 코인 보유자에게 보상을 제공하고 선택한 옵션에 따라 베스팅 일정이 적용되는 프로그램이 실행되었습니다. 기본 옵션인 6개월 베스팅은 모든 잔여 클레임에 자동으로 적용되었으며 보상 금액이 클레임 값에 추가되고 베스팅 일정이 추가되었습니다.

기존 문제

팀은 BetaNet Staking Rewards 프로그램의 제정에 영향을 미친 3가지 문제를 확인했습니다.

  1. 남은 클레임 – 잠금 금액은 보상이 원금에 추가된 후 계산되었습니다. 즉, 잠금 = 0.8 * 원금 + 보상 대신 잠금 = 0.8 * (원금 + 보상) + 보상입니다. 그 결과 많은 잔여 클레임에서 예상보다 더 많은 잠긴 금액이 발생합니다.
  2. Vesting 계산 – 필요한 잠금을 취하고 제정 블록에서 이미 잠긴 현재 금액을 빼서 잠글 양을 계산했습니다. 이것은 기존 잠금을 유지하면서 필요한 양의 보상을 잠그는 최선의 노력 솔루션으로 결과적으로 항상 이전보다 높은 잠금 잠금을 얻을 수 있습니다. 그러나 많은 시나리오에서 이 솔루션은 프로그램에서 요구하는 것보다 낮은 잠긴 값으로 이어질 수 있으며, 이는 다른 옵션을 선택한 코인 보유자 사이에 불공정한 상황을 만들 수 있습니다. 또한 어떤 경우에는 잠긴 값이 필요 이상으로 높게 시작하여 허용된 것보다 낮게 떨어집니다.
  3. 잘못된 보상 지급 – 가득 일정이 없는 청구(예: 원래 판매)와 있는 청구의 두 가지 개별 청구가 있는 사용자를 고려하십시오. 둘 다 동일한 주소로 청구되면 두 번째 보상 값만 유지됩니다. 이는 첫 번째 클레임의 보상 값이 제정 블록에서 지급되지 않았음을 의미합니다. 이 특정 문제는 3명의 코인 소지자에게만 영향을 미칩니다.

문제 해결

이전에 포럼에서 발표된 바와 같이 게시하다, 팀은 추가 기능을 추가한 블록체인 런타임 업데이트를 제안했습니다. 여기에는 기술 위원회가 만장일치로 클레임 및 베스팅 모듈에서 베스팅 일정을 수정할 수 있는 권한을 부여하는 두 가지 기능이 포함되었습니다. 이 업그레이드는 국민투표에서 승인되었으며 지난 1월 13일 목요일에 제정되었습니다.

이러한 권한이 부여된 기능은 팀에서 잘못된 베스팅 일정을 수정하는 데 사용되며 추가 런타임 업그레이드에서 가능한 한 빨리 제거됩니다.

새로운 베스팅 일정

모든 코인 보유자를 위한 Vesting 및 BetaNet Staking Rewards 프로그램 정보는 다음에서 찾을 수 있습니다. https://vesting.xx.network.

각 코인 홀더에 대해 다음 정보가 포함된 JSON 파일이 있습니다.

  • principal: 제네시스에 존재하는 코인의 양
  • 보상: 주어진 보상, 선택한 옵션에 따라 조정
  • 옵션: BetaNet Staking Rewards 프로그램 선택 옵션
  • 베스팅: 베스팅에 관한 모든 정보
    • 원본: 제네시스에 존재하는 베스팅 일정
    • betanet_rewards: 베타넷 스테이킹 보상에 필요한 베스팅 일정
    • on_chain: 현재 체인에 있는 베스팅 일정
    • 계산: 고정 가득 일정
  • wrong_on_chain: 온체인 베스팅에 지정하는 플래그가 올바르지 않습니다.


각 코인 홀더에 대해 블록 번호의 함수로 잠긴 코인의 양에 대한 세 개의 그래프가 포함된 PNG 파일이 있습니다. 다음은 시간 경과에 따른 다양한 가득 일정에 의해 잠긴 금액을 비교하는 더 쉬운 방법을 제공합니다.

  • 원래 베스팅(왼쪽): 이 그래프는 원래 베스팅 일정(파란색)과 BetaNet Staking Rewards(주황색)에 필요한 일정을 보여줍니다. 프로그램 제정 후 잠긴 금액은 항상 가장 제한적인 금액이어야 합니다. 즉, max(original, betanet_rewards)
  • 온체인 베스팅(가운데): 이 그래프는 이전 것과 동일한 정보를 보여주지만 온체인 베스팅 일정이 중첩되어 있습니다(녹색). 여기에서 코인 보유자는 현재 베스팅이 유효하지 않은지, 그리고 더 많거나 적은(또는 둘 다) 코인을 잠그고 있는지 즉시 확인할 수 있습니다.
  • 새로운 베스팅(오른쪽): 이 그래프는 첫 번째 것과 동일한 정보를 표시하지만 새로운(고정) 베스팅 일정이 겹쳐져 있습니다(녹색). 여기에서 코인 보유자는 발견된 문제를 수정하기 위해 팀에서 설정할 베스팅 일정을 볼 수 있으며, 이는 볼 수 있듯이 항상 원래와 베타넷 보상 베스팅 사이의 최대값을 따릅니다. 이 그래프가 중간 그래프와 같다면 온체인 베스팅이 이미 정확하다는 의미입니다.


각 JSON 및 PNG 파일의 파일 이름은 코인 보유자의 xx network 주소이거나 블록 870000에서 코인이 청구되지 않은 경우 ETH 주소입니다. 우리는 모든 커뮤니티 구성원이 각자의 정보를 찾고 문제가 발견되면 팀에 연락할 것을 권장합니다.

방법론

필요한 모든 정보는 제네시스 블록과 다양한 블록의 온체인 상태에서 직접 수집되었습니다. 모든 파일을 생성할 때 문제를 감지하고 수정하기 위해 여러 번 확인했습니다. 고정된 가득 일정의 계산은 원래 일정을 조정하고 필요에 따라 BetaNet 보상 일정의 일부를 추가하여 재귀적으로 수행되어 결과 합계가 모든 블록에서 필요한 잠금과 일치하도록 했습니다. 이는 두 가지 유형의 일정 사이에서 정확히 최대값입니다.

다양한 상황의 예

원래 자물쇠가 없는 남은 소유권 주장, 문제 1 표시

문제 1과 2를 모두 보여주는 원래 잠금 장치가 있는 남은 소유권 주장

원래 잠금 장치가 있지만 올바른 베스팅이 있는 남은 소유권 주장

예상보다 높은 잠금을 유발하는 문제 2를 보여주는 원래 잠금 장치가 있는 홀더

원래 잠금 장치가 있는 홀더, 문제 2를 표시하여 초기에 더 높은 잠금을 유발한 다음 예상보다 낮음

원래 잠금 장치가 있지만 올바른 베스팅이 있는 홀더

원래 잠금 장치가 없지만 올바른 베스팅이 있는 홀더

원래 잠금 장치가 있는 홀더, 버그 1이 표시됨, 제정 후 청구로 인해

인기있는