노드 보너스 0점의 발생 원인
노드 보너스 0점의 발생 원인
어렵지 않아요;; 끝까지 봐주세요
파이 네트워크의 노드는 SCP(Stellar Consensus Protocol), 즉 스텔라 합의 프로토콜을 사용합니다.
SCP는 연합 비잔틴 동의(FBA: Federated Byzantine Agreement) 알고리즘을 기반으로 합니다.
용어만 들어도 머리가 아프실겁니다...
세부 내용과 출현 배경은 생략하고, 원리만 최대한 간단하게 말씀드리겠습니다.
트랜잭션 대조
5명이 서로 거래한 내역을 기록한 장부가 있습니다.
상호 거래한 내역이 동일해야 인정할 수 있겠죠?
똑같이 거래한 내역을 기록했는데 누군가 실수로 내용이 다르다면 다른 장부와 대조하여 진짜 장부를 검증하면 됩니다.
일치하는 장부가 많을수록 신뢰도가 상승합니다.
SCP는 66%가 일치해야 된다는 규칙이 있습니다.
즉 장부가 3명은 일치해야 됩니다. 반대로 33%만 일치하면 장부가 잘못된 것이며 SCP는 합의에 실패했다고 합니다.
여기서 조금 다른 용어 방식은 SCP는 일치하는 장부와 대조 하는 작업을 동의라는 단어를 사용하고,
일치된 장부를 합의라고 합니다.
결국 알고리즘에 의해 채택되기 때문에 증명하는것과 비슷한 맥락입니다.
그리고 SCP는 신뢰할 수 있는 노드를 스스로 선택하는 알고리즘을 사용합니다.
이로 인해 신뢰의 유연성이 대폭 증가합니다.
즉 언제든 신뢰할 수 없는 노드는 배제하고,
신뢰할 수 있는 노드를 선택합니다.
SCP 요약
신뢰할 수 있는 노드를 골라 그룹을 형성한다
그룹의66%가 동의해야 된다.
쉽죠? 딱 이내용만 알면 SCP를 이해하셨다고 할 수 있습니다.
어려운 용어를 써가면서 말해도 결국 내용은 같습니다.
이제 백서를 통해 노드 보너스의 점수가 변동 되는 원인을 말씀드리겠습니다.
백서의 내용을 번역한 자료입니다.
용어만 알면 쉽게 이해 하실 수 있습니다.
지금부터 최대한 쉽게 설명하도록 노력하겠지만 어려운건 맥락만 어느정도 이해하셔도 됩니다.
쿼럼 슬라이스(Quorum slice)
나를 포함하여 내가 신뢰할 수 있는 노드의 그룹
쿼럼(Quorum)
쿼럼 슬라이스들이 동의하는 트랜잭션의 집합, 즉 최종 스텔라 블럭의 후보
SCP 알고리즘
SCP 알고리즘은 내가 신뢰할 수 있는 나의 쿼럼 슬라이스(그룹)가 동의 하는 트랜잭션을
다른 쿼럼 슬라이스와 대조하여 일치하는 트랜잭션(쿼럼 후보)을 선정해
투표를 거쳐 승인하고, 최종 확정하며 이를 통해 신뢰할 수 있는 쿼럼을 일련의 절차를 통해
한번 더 검증 후 하나의 블럭을 생성합니다.
더 쉽게 말하자면
나와 내 그룹의 동의 + 다른 그룹의 동의 = 그룹간 일치하는 결과물 = 스텔라 블록
실제로는 여러 그룹과 투표/승인/확정 총 3단계로 이루어지는 연합 투표로 수행하기 때문에
더 복잡하지만 안정성이 높고 신뢰도가 높은 결과물을 도출 합니다.
어려우니 위 강조한 내용만 이해하셔도 충분 합니다.
쿼럼 슬라이스 선택 알고리즘
쿼럼 슬라이스를 형성할때 내 노드는 신뢰할 수 있는 노드를 우선적으로 선택합니다.
이 신뢰성은 24시간 시스템이 꺼지지 않고 유지되어야 되며 언제든 엑세스가 가능해 대조를 할 수 있어야 됩니다.
신뢰도가 높은 노드
가동률이 높고, 오랫동안 운영해왔다면 합의 과정의 많은 참여로 신뢰도가 쌓입니다.
쉽게 말하면 오래된 노드가 인기가 많습니다.
선택 받기 어려운 노드
운영기간이 짧고,
가동률이 낮으며
자연히 새로운 쿼럼을 생성하지 못하므로
백서에 언급된 트랜잭션을 검증 할 수 없는 사람으로 분류되어,
신뢰도가 낮으므로 선택받지 못할 수 밖에 없는 구조가 SCP 알고리즘입니다.
고인물 우대라니...
0점이 출현하는 이유
신규 노드는 스텔라 합의 참여 자체가 어렵기 때문에 0점이 나올 수 밖에 없습니다.
파이 노드의 개체수가 굉장히 많기 때문에 경쟁률도 높겠죠?
24시간 유지하지 않으면 기본적으로 쿼럼 슬라이스에서 배제 된다고 보시면 됩니다.
그렇게 되면 노드는 켜놨지만
일을 안한게 되고 보너스를 받지 못하는 겁니다.
그리고 시간이 지나면서 점점 점수가 올라가는건 쿼럼 슬라이스로 지명이 되었고,
점차 신뢰를 받아 참여율이 높아지기 때문이며
일정 시간이 지나면 안정적인 그룹에 속하게 되어
점수가 점점 오르게 되는 구조로 보시면 됩니다.
반대로 오래된 노드에서 점수가 하락하는 원인도 비슷한 맥락으로 볼 수 있습니다.
내 쿼럼 슬라이스 노드 중 시스템에 문제가 생겨서 입니다.
이런 경우 빠르게 다른 노드로 대체되기 때문에 점수가 소폭 하락하는 정도로 끝날 수 있습니다.
하지만 여러 노드의 시스템의 문제가 생기거나 트랜잭션의 검증에 대량 실패하는 경우
기존의 쿼럼 슬라이스를 해체하고
새로운 쿼럼 슬라이스를 구성하게 됩니다.
이 경우 다른 쿼럼 슬라이스와의 쿼럼의 합의에 실패하게 되고 일을 한게 없으니 0점을 받을 수 있는겁니다.
안심해도 될것은 오래된 노드는 인기가 많아서
금방 탄탄한 쿼럼 슬라이스가 형성되고 점수를 회복하며
안정화도 빨리 되는 편입니다.
재설치의 경우에도 내 노드의 신뢰를 증명할 로그가 남아 있어서 가동률이 올라가면 금방 지명을 받게 됩니다.
이런 알고리즘을 이해하고 나면 0점이 출현할 수 밖에 없는 이유를 이해하실 수 있으실 겁니다.
이 외에도 서버 자체의 이상이 발생한다면 또한 일을 할 수 없으니 0점이 출현하는것이지요.
정말 많은 용어를 설명해야 되서 내용이 어렵지만 정말 최대한 간추린겁니다...
내용을 이해하고 나면 0점이 출현하는것도