채굴 보상 변경에 관하여

AION Korea
아이온(Aion) 공식 블로그
8 min readNov 28, 2020
원문 : https://aion.theoan.com/blog/on-block-rewards-for-miners/

Java Kernal의 1.6 버전과 함께, 저희들은 지난 몇 달간 저희가 지켜봐오며 우려했던 부분을 해소할 수 있는 부분들에 큰 변경을 수행했습니다. 그럼 이제 어떤 일들이 있었고, 앞으로의 업데이트에서 이를 어떻게 해결할 지에 대해서 살펴보도록 합시다.

참조: 이 글에서는 네트워크 상의 채굴자들에 미치는 변경점들만 다루고 있습니다. 이번 하드 포크에는 다른 변경사항도 포함되어 있습니다. 채굴자들과 채굴자 풀이 취해야할 변경점들에 대해서 바로 알아보시려면 이 문서의 아래를 참조해주세요.

출렁이는 난이도

네트워크를 지속적으로 관찰하신 분들이라면, 이번 년의 5월부터 시작된 아이온의 채굴 난이도가 출렁이는 것을 보셨을 것입니다. 저희는 이런 움직임이 왜 발생하는 지 살펴봤고, 주기적으로 네트워크 상의 한 채굴 풀을 통해 엄청난 양의 해시 파워를 기여하는 한 개의 주소가 있다는 것을 발견했습니다. 아래의 그래프를 보시면 몇 시간 마다 해시 파워가 공급 됐다 안됐다 하는 현상을 살펴보실 수 있습니다.

위 그림은 앞에서 언급된 블록 630만 ~ 640만 사이에서 발생한 난이도 변화 패턴입니다.

이 사항을 처음 발견했을 때, 저희들은 일부 채굴자들의 철새 채굴과 같은 행위라 의심했습니다만, 이런 난이도 변동성은 낮은 해시 레이트를 가진 네트워크들에서는 일반적인 상황은 아닙니다. 또한 저희들은 특정 채굴자들의 계정에서 바이낸스 거래소로 AION이 빈번히 옮겨졌기 때문에, 이런 현상이 발생한 이유가 특정 채굴자들의 경제적인 이유라 판단했습니다.

이 공격의 목적이 어떻든 간에, 이 행위로 인하여 채굴자들과 전체적인 네트워크에 손실을 입힌 것은 사실입니다. 어떻게 손실을 입혔는 지에 대해서 한번 살펴봅시다.

작업 증명 블록 타임 스탬프

저희가 살펴볼 수 있었던 다른 현상은 블록 타임 스탬프가 정확하게 찍히지 않았다는 것입니다. 저희들의 평균 블록 타임은 15–20초 였습니다(대시보드를 통해 살펴볼 수 있습니다). 현재 이 글을 작성하고 있는 순간에는 14.6초가 보였습니다. 명백히 뭔가 잘못된 것을 알 수 있습니다. 5월 이후부터의 블록체인 기록들을 살펴봤을 때, 앞서서 언급됐던 해시레이트의 출렁임과 비슷하게 블록 타임에서도 비슷하게 변동이 생기는 것을 찾아볼 수 있었습니다.

위 그림은 블록 630만 ~ 640만 사이에서 발생한 블록타임 변화 패턴입니다. 앞서 언급된 난이도 변화 패턴과 유사합니다.

하지만, 이런 일은 일어나선 안됐습니다. 만약 난이도 조절 메커니즘이 제대로 된 블록 타임을 찍어낸다면, 블록 타임에 맞추어 지속적으로 조정되려해야 합니다. 네트워크에 출렁임이 있다 하더라도 말이죠. 추가적으로, 저희들은 Unity 난이도 조절 메커니즘이 조정에 있어서 괘나 빠르게 적용되어 마이닝 파워에 변동이 있다 하더라도 몇 블록 내로 다시 정상화 됐어야 했죠.

저희들은 타임스탬프 자체에 근본적인 문제가 있다는 것을 발견했습니다. 난이도 조절 메커니즘은 (모든 블록 혹은 PoV 채굴에서의 다른 모든 블록에서) 마지막에 입력된 블록 타임을 기반으로 채굴 난이도를 상향 혹은 하향 조절하여 목표 블록타임 T를 최적화합니다. 여기서 문제는 많은 수의 블록들이 생성될 때, 그들의 타임 스탬프가 잘못 찍혀 있다면 발생합니다. 즉, 난이도 조절 알고리즘이 채굴자들에 의해 제공된 잘못된 정보를 기반으로 조정되고 있다는 소리입니다. 한 채굴자에 의해 다수의 블록들이 짧은 기간 내에 제출된 경우, 난이도 조절 메커니즘은 네트워크의 해시레이트가 실제보다 높다 생각합니다. 이렇게 된 경우, 채굴 난이도는 조작된 해시레이트에 기반하여 조정되며, 블록 타임은 늘어납니다.

문제가 되는 풀의 블록 타임 분배 내역. 명백하게 한 쪽으로 치우쳐져 있는 것을 알 수 있다.

그럼 왜 타임스탬프에 제한을 두지 않을까요? 거기에는 주로 다음의 두 가지 이유가 있습니다.

  • 작업 증명 타임 스탬프는 강제적으로 제한될 수 없습니다. 프로토콜 단에서 특정한 범위 내에서 타임 스탬프를 찍게 만들 수 있는 확인 수단이 없기 때문입니다.
  • 계층적 확인 방식의 경우 네트워크에서 발생하는 큰 변동성을 수용하기에는 너무 확장성이 떨어집니다. 또한 종종 걷잡을 수 없는 상황들을 야기하곤 합니다.

이와 관련하여 저희들이 원본 Unity Interleave 문서에서 언급한 다른 문제들이 존재하지만, 이번 글에서는 다루지 않을 것입니다.

좌절 공격(Discouragement Attack)

위에서 언급된 현상들이 야기하는 것은 바로 앞에서 암시하기도 했던, 좌절 공격입니다. 저희들의 블록 보상이 변함없이 4.5 AION 이기에, 네트워크의 모든 채굴자들은 더 적은 블록들을 채굴하고 있습니다. 그렇기에 평균보다 더 적은 코인들을 얻게 되는 것이죠 (초당 코인 갯수로 따지는 경우). 한 가지 생각해야 할 것은, 만약 채굴자들이 경제적으로 이성적이게 행동할 경우, 이 결과는 타임스탬프가 제대로 찍힌다는 상황과 비교했을 때, 현 상황은 더 적은 블록을 채굴하고 있는 것이기에 그들에게 순손실일 것입니다.

개선점

저희들은 프로토콜을 강제적으로 수정하는 방식을 배제하고 있습니다. 그렇기에 저희들이 이 문제를 개선하는 데 있어서 중점적으로 고려하는 방식은 인센티브를 기반으로 한 접근법입니다. 바로 위와 같은 잘못된 타임스탬프를 찍는 행위를 처벌하는 방향으로 접근하는 것이죠.

이번 개선에 있어 가장 중요한 부분은 프로젝트 내내 지속되어, 스테이커들이나 채굴자들 모두에게 언제나 갇았던 블록 보상 공식을 업데이트 해야한다는 것입니다. 블록 보상 발행은 현재 블록 타임을 기반으로 진행되고 있습니다만 앞으로는 해당 블록을 채굴하는 데 얼마나 오래 걸렸는 가를 기준으로 동적으로 조정될 것입니다.

새로운 공식과 오래된 공식을 살펴보면, 기존의 공식은 상수 k 가 언제나 0이고, 새로운 공식은 블록 타임을 기반으로 보상을 조정할 수 있게 하게 위해 특정하게 결정된 상수가 적용되어 선형적인 모습을 보여주고 있습니다.

저희들이 선택한 함수는 다음과 같습니다. (Δ는 블록 타임을 의미합니다.)

f(Δ) = (b/T)•k•Δ+b•(1-k)

  • b = 4.5 AION (동적인 블록 발행)
  • T = 목표 블록 타임 (10초)
  • k = 곡선의 기울기, 현재는 k=0.4

공식의 변환으로 발생할 영향들은 다음과 같습니다:

  • 블록타임 조작을 통한 공격자들(타임 스탬프를 더 낮게 찍어낸 이들)은 블록 보상을 줄여 적합한 방식으로 처벌 받습니다. 이를 통해 기존에 받던 보상의 60%만 받게 될 것입니다.
  • 다른 참여자들은 기존의 타임 스탬핑에 있어서 변경된 방식을 적용하여, 채굴에 더 많은 시간이 걸렸으니 각 블록에 대한 보상으로 기존의 4.5 AION 보다 더 많은 보상을 받게 될 것입니다.
  • 장기간 동안 발행되는 발행량은 바뀌지 않을 것입니다.

이러한 변경 사항들이 적용된 후, 저희들이 목표한 바 대로 해당 변경 사항의 효과들이 영향을 비치는 지, 그리고 혹시나 그렇지 않다면 그에 맞추어 또 다른 변경점들을 추가하기 위해서 네트워크를 모니터링 할 것입니다. 저희들이 바라는 목표는 이 인센티브 제도가 타임스탬핑 타임스탬핑을 교정하고, 목표하는 10초의 블록 타임을 이끌어 내는 것입니다.

채굴자분들과 채굴 풀들이 해야하는 조치

저희들은 이번 조치를 위해 사용자 분들이 조치해야 하는 부분을 최소화하려 했으며, 잘 적용될 수 있도록 노력했습니다. 이번 글을 통해 여러분들에게 이번 조치가 어떤 영향을 미치게 될 지를 잘 알려드렸길 바랍니다. 매끄러운 업데이트를 위해,

  • 이번 조치는 하드포크가 필요하기에, 모든 채굴 풀들과 채굴자들은 최신 버전의 Aion Java Kernel implementation (v1.6)을 업데이트해야합니다.
  • 채굴 풀들은 Aion Pool 3 소프트웨어를 최신 버전 (v.0.1.2)로 업데이트해야 합니다.

About Aion

아이온(Aion)은 작업증명과 지분증명 하이브리드 합의 프로토콜인 유니티를 기반으로 한 오픈소스 퍼블릭 블록체인으로서 오픈 앱 네트워크(The OAN)을 통해 기존에 중앙화된 플랫폼들의 문제점을 해결하고자 합니다.

홈페이지 | 미디엄 | 트위터 | 텔레그램 | 공지채널 | 익스플로러

--

--

AION Korea
아이온(Aion) 공식 블로그

3세대 블록체인, 아이온(AION) 한국 공식 블로그