요약
KIP-82는 합의 노드들의 수익 원천을 두가지로 세분화하여 보상을 정의하고, 합의 노드들이 비슷한 수익률을 갖게되는 것이 주된 내용입니다. 이를 통해 GC가 스테이킹을 적게하면 수익률이 높아지는 현상이나 스테이킹을 많이 하면 수익률이 낮아지던 현상이 거의 사라집니다. 부가적으로 얻고자하는 것은 1) 합의 노드들의 추가 스테이킹 유도하고, 2) 퍼블릭 스테이킹 서비스의 수수료 등에서 경쟁 요소를 추가하여 사용자들에게 그 혜택이 돌아가도록 유도하기 위한 것입니다.
상세 내용
Gini 계수의 의도는 크게 2가지 였습니다.
(네트워크 안전성) 스테이킹이 많은 노드에 장애가 생겼을 때, 네트워크 위험을 낮추기 위함
과거에 블록 프로포저는 스테이킹 양에 비례하여 선정되었습니다. 때문에 특정 노드가 과도하게 많은 KLAY를 스테이킹하는 상황에서 해당 노드에 장애가 생기면, 블록 제안이 지연되는 횟수가 빈번해져서 네트워크 안정도가 떨어집니다. Gini 계수는 이런 상황에서 블록 생성자를 비교적 고르게 선정하는데 도움을 줍니다 .
(KLAY 과도한 집중 회피) 특정 노드에게 과도한 보상을 받는 것을 억제하기 위함
Klaytn 네트워크에서 KLAY 분포가 고르게 될수록 안전성이 높아집니다. 따라서, 마치 소득이 증가함에 따라 소득세율이 증가하는 것과 같이 Gini 계수를 통해 특정 노드가 과도한 보상을 받아 KLAY 집중되는 것을 억제합니다. 다만, 지금까지의 네트워크 상황을 고려했을 때 이 효과가 의미있게 발휘되진 않은 것 같습니다.
그러나, Gini 계수는 아래과 같은 문제들을 유발하였습니다.
합의 노드의 경우, 스테이킹을 많이 할 수록 이율이 떨어져 스테이킹을 추가로 할 요인이 떨어짐
합의 노드가 운영하는 퍼블릭 스테이킹 서비스의 경우, 서비스를 잘 운영하여 고객의 KLAY를 많이 유치할 수록 경쟁력인 KLAY 이율이 떨어짐
이를 해결하기 위한 Klaytn의 변화는 다음과 같습니다.
Gini 계수가 제공하던 "네트워크 안전성"과 관련된 요소는 블록 제안자 선정을 스테이킹과 상관없이 모든 합의 노드가 동일할 확률로 하도록 변경하는 것으로 대체했습니다. 네트워크 합의과정 안전성 측면에서 모든 합의노드는 스테이킹 양과 무관하게 동일한 중요도를 가집니다.
블록 생성 보상을 두가지로 세분화합니다. 두가지 중 "블록 제안자 보상"은 모든 합의 노드들이 동등한 비율로 받게 됩니다. 이 보상은 CN과 PN을 운영하는 네트워크 유지 비용과 올바른 블록을 생성해내는 기여분에 대한 대가입니다. 따라서, 비슷한 성능의 인프라를 유지하는 GC들에게 비슷한 수준의 보상이 돌아가도록 설계되었습니다. 또한, 의미 있는 블록을 생성하도록 유도하기 위해 블록에 담긴 가스비도 모두 블록 제안자에게 돌아가지만, 각 블록에서 소모된 가스비가 “블록 제안자 보상” 보다 작은 경우에는 가스비를 모두 소각하고 큰 경우에는 “블록 제안자 보상” 대신 가스비만 주어집니다. 즉, 블록 제안자는 "블록 제안자 보상"과 블록 가스비 중 더 큰 하나의 값만큼만 보상받습니다.
블록 생성 보상 중 두번째 보상인 "스테이킹 보상"은 각 노드가 스테이킹한 양에 비례하여 받습니다. 각 노드는 스테이킹을 많이 하면 많은 보상을 받게 되고, 수익률 측면에서는 모두 동일한 수익률을 누리게 됩니다. 스테이킹이라는 행위는 GC들이 KLAY 가격에 대한 이해관계를 일치시키고 네트워크의 보안성을 강화하는 행위입니다. 이에 대한 대가와 스테이킹으로 인한 경제적 기회비용을 이유로 스테이킹 보상이 존재합니다.
추가 기대효과 (Gini 계수가 유발하던 문제점 해결)
GC 스테이킹 보상율은 전체 스테이킹 수량에 영향을 받게되며, 개별 GC의 스테이킹 비율에 영향받지 않습니다. 따라서, GC들은 과거에 비해 부담없이 추가 KLAY를 스테이킹할 수 있으리라 기대됩니다. 또한, 전체 스테이킹 수량이 줄면 수익률이 늘어나기에 스테이킹 양을 일정하게 유지시키데도 도움을 주리라 생각됩니다.
퍼블릭 스테이킹 서비스의 차별화 요소가 늘어납니다. 퍼블릭 스테이킹 서비스의 보상은 GC 스테이킹 보상에서 발생하였기에 경쟁의 요인이 많지 않았습니다. 고객을 모을수록 경쟁력 중 하나인 보상률이 떨어지기 때문입니다. 위 변화를 통해 각 퍼블릭 스테이킹 서비스들은 고객의 자산을 많이 예치할수록 수익이 늘어나기에 경쟁의 요인이 늘어날 수 있습니다. 이 경쟁 요소들이 최종적으로 Klaytn 생태계 사용자들의 혜택으로 전환되기를 바랍니다.
Klaytn은 Cypress 메인넷의 성장과 함께 지속적으로 발전하고 있으며, GC와 같은 생태계 참여자들에 의해 KIP-82는 더 잘 활용될 수 있다고 생각됩니다. 이번에 블록 보상에 대한 원천을 좀 더 세분화하여 정의함으로 KLAY 인플레이션과 같은 정책도 점점 고도화 될 수 있을 것입니다. 예를들어, "블록 제안자 보상"은 고정비에 가까운 인프라 운영 비용이 보상 발생이 이유이기에 가스비가 충분히 늘어나거나 KLAY 가치가 올라가면 신규 발행되는 KLAY 양을 줄이거나 디플레이션도 가능하게 되리라 믿습니다. 이 처럼, KIP-82는 GC를 포함한 생태계 참여자들이 네트워크 상황에 맞게 판단하고 개선할 수 있도록 보상의 원인을 좀 더 세분화하여 정의하고 기술적 선택지를 제공하는 내용입니다.
6.4 Klay 의 20% 와 Tx Fee/2 를 블록 제안자가 가져가고
나머지 6.4 Klay의 80% 를 (블록제안자를 포함한? 혹은 블록제안자를 포함하지 않은?) 노드들이 나눠서 가지게 되는 건가요?
그렇게되면 KGF,랑 KIR은 어떻게 되는건가요? 나머지 80% 를 다시 5:4:1로 나눠서 5를 노드들이 나눠가지고, 나머지를 KGF랑 KIR이 가져가게 되는 건가요?
위 표의 값 중에서 발행량, KIR, KGF, 스테이킹 보상 값은 일정한 수식을 가지지만, 소각량, 인플레이션/디플레이션, 블록 제안자 보상 등은 상황에 따라 다른 값을 가집니다. 그 이유는 블록에 담긴 트랜잭션 수수료에 따라 인플레이션을 조절하는 로직 때문입니다. 다음과 같은 두가지 경우에 따라 "블록 제안자 보상"이 변경되고, 인플레이션이나 소각량이 따라 조절됩니다.
블록에 담긴 트랜잭션 수수료가 큰 경우
"블록 제안자 신규 발행 보상"은 CN/PN 인프라 운영에 대한 대가로 발행됩니다. Klaytn 네트워크가 활성화되어 트랜잭션 수수료가 많은 경우, 블록 제안자는 block.gasFee/2 만으로 충분히 운영비용을 감당할 수 있을 것입니다. 따라서, 이 경우에 "블록 제안자 신규 발행 보상"은 블록 제안자에게 주어지지 않고 그대로 소각됩니다. 따라서, 다음과 같은 수식을 가집니다.
블록 제안자 보상 = block.gasFee/2
소각량 = block.gasFee/2 + MintingAmount * CNRatio * CNProposerRatio
(Kore 이전에도 자동 소각되던 BlockGasFee/2 뿐만 아니라 “블록 제안자 보상” 추가 소각)
블록에 담긴 트랜잭션 수수료가 적은 경우
블록에 담기는 트랜잭션 양이 적더라도 CN/PN 인프라 운영 비용은 비슷하게 요구됩니다. 네트워크의 지속 가능성을 위해 최소한의 인프라 운영비용을 지원하고 위해 "블록 제안자 신규 발행 보상"이 주어집니다. "블록 제안자 신규 발행 보상"이 제공되는 경우에는 block.gasFee/2 은 블록 생성자에게 주어지지 않고 소각됩니다.
블록 제안자 보상 = MintingAmount * CNRatio * CNProposerRatio
소각량 = block.gasFee
(Kore 이전에도 자동 소각되던 block.gasFee/2 뿐만 아니라 전체 트랜잭션 수수료 소각)