ASERT 해설

ASERT(Absolutely Scheduled Exponentially Rising Targets, aserti3-2d로 구현)는 2020년 11월부터 활성화된 Bitcoin Cash의 난이도 조정 알고리즘으로, Bitcoin처럼 2,016 블록마다가 아닌 모든 단일 블록에 대해 채굴 난이도를 재계산한다.

ASERT(Absolutely Scheduled Exponentially Rising Targets, aserti3-2d로 구현)는 2020년 11월부터 활성화된 Bitcoin Cash의 난이도 조정 알고리즘으로, Bitcoin처럼 2,016 블록마다가 아닌 모든 단일 블록에 대해 채굴 난이도를 재계산한다. 고정된 앵커 포인트 이후 체인의 실제 타임라인이 블록당 10분의 이상적인 일정에서 얼마나 벗어났는지를 측정하고, 2일 반감기로 난이도를 지수적으로 조정한다. 솔로 채굴자에게 중요한 효과: 기회주의적 해시레이트가 체인을 약탈하는 데 사용하는 수익성 있는 창문을 지우는 지속적이고 절벽 없는 조정 — 안정적으로 채굴하는 모든 사람의 확률을 보호한다.

핵심 요점

  • 에포크가 아닌 블록별로.Bitcoin은 ~2,016 블록 동안 난이도를 고정하다가 점프한다; ASERT는 매 블록마다 조정한다. 플래토 없음은 창문 없음을 의미한다 — 채굴자에게 가장 중요한 단일 결과.
  • 공식은 한 줄이다.next_target = anchor_target × 2^((actual_time − scheduled_time) / half_life). 난이도는 체인이 일정에서 얼마나 벗어났는지에 따라 스케일된 앵커의 난이도다.
  • 2일 반감기가 조정 노브다.일정보다 2일 앞서면 난이도가 두 배; 2일 뒤처지면 절반. 실제 해시레이트를 추적하기에 충분히 빠르고, 행운 블록 노이즈를 무시하기에 충분히 느리다.
  • 안정적인 채굴자를 보상하도록 설계되었다.ASERT의 명시적 설계 목표에는 체인 간을 이동하는 스위치 채굴자의 수익 이점 최소화가 포함되었다 — 소수 체인의 솔로 채굴자가 원하는 정확한 보호.
  • 같은 설계가 너무 작은 체인을 가둘 수 있다.짧은 해시레이트 홍수가 난이도를 급등시키고; 떠나면 소규모 체인은 10× 스파이크에서 회복하는 데 ~6.6일이 걸릴 수 있다. 그래서 소규모 체인에서 ASERT의 동작은 기능이자 위험이다.

이 글은 ASERT가 체인의 갑옷인 Bitcoin Cash 프로필과 반대 세계 — 창문이 여전히 존재하고 활용될 수 있는 체인 — 을 탐구하는 BC2 리타겟 창문 가이드와 함께 우리의 난이도 과학 클러스터에 있다. ASERT를 이해하는 것은 왜 일부 체인에는 그런 창문이 있고 다른 체인에는 없는지를 이해하는 것이다.

ASERT가 해결하기 위해 만들어진 문제

모든 작업 증명 체인은 하나의 질문에 지속적으로 답해야 한다: 해시레이트가 합류하거나 떠날 때, 블록이 약 10분마다 도착하도록 어떻게 유지하는가? Bitcoin의 원래 답 — 이전 에포크의 속도로 2,016 블록마다 재계산 — 은 해시레이트가 엄청나고 안정적일 때 완벽하게 작동한다. 더 작은 체인에서는 특정하고 악용 가능한 방식으로 실패한다.

Bitcoin Cash는 이것을 힘든 방식으로 배웠다. 2017년 포크 이후의 첫 번째 난이도 알고리즘과 그 전의 긴급 조정은 격렬한 진동을 일으켰다: 난이도가 떨어지고, 기회주의적 “스위치 채굴자”들이 쉬운 블록을 채굴하러 밀려들고, 난이도가 급등하고, 그들이 떠나고, 체인이 다음 하락까지 멈추는 — 안정적으로 채굴하는 모든 사람을 해치는 톱니파. 패턴에는 이름과 피해자가 있었다: 수익성 있는 창문, 그리고 그 몫이 희석된 충성스러운 채굴자. ASERT는 경쟁 알고리즘에 대한 광범위한 시뮬레이션 후에, 구체적으로 그 톱니파를 평평하게 하기 위해 설계되었다 — 명시적 목표에는 블록 시간을 목표 근처에 유지하고, 확인 시간을 목표 근처에 유지하고, 안정적인 채굴자와 스위치 채굴자 간의 수익성 격차를 줄이는 것이 포함되었다.

aserti3-2d가 실제로 어떻게 작동하는가

전체 알고리즘은 하나의 우아한 공식이다:

next_target = anchor_target × 2((time_delta − ideal_block_time × (height_delta + 1)) / half_life)

평이한 언어로 읽어라. 체인의 과거에서 고정된 앵커 블록을 가져라 — Bitcoin Cash의 경우 ASERT 활성화 직전 블록. 그 난이도가 영구적인 기준선이다. 이제 모든 새 블록에 대해 두 가지를 계산한다: time_delta, 앵커 이후 실제 경과 시간, 그리고 예정된 시간, 앵커 이후 블록 수에 ideal_block_time(600초)을 곱한 것. 그 차이 — 체인이 이상적인 일정보다 앞서거나 뒤처졌는가? — 가 지수에 들어가 반감기로 나누어진다. 체인이 정확히 일정대로라면 지수는 0이고, 20 = 1이며 난이도는 앵커의 것과 같다. 앞서면 지수가 양수가 되어 앞서는 반감기마다 난이도가 두 배; 뒤처지면 음수가 되어 뒤처지는 반감기마다 난이도가 절반.

두 가지 설계 선택이 그것을 견고하게 만든다. 앵커가 절대적이기(슬라이딩 윈도우가 아닌 고정점) 때문에 반올림 부정확성이 몇 달에 걸쳐 누적될 수 없다 — 모든 블록이 같은 기원에서 새롭게 계산된다. 그리고 부동소수점 연산이 다른 프로세서에서 다른 결과를 생성하기 때문에 — 기다리는 합의 재앙 — ASERT는 고정소수점 정수 연산과 3차 다항식으로 지수를 근사하여 모든 머신의 모든 노드가 바이트 동일한 난이도를 계산한다. 세 줄의 정수 코드로 위장한 제어 시스템 피드백 루프다.

2일 반감기: 중요한 숫자

반감기는 ASERT의 성격이다. Bitcoin Cash는 2일(기술적으로 288 블록의 이상적인 시간)을 선택했고, 사람이 읽을 수 있는 버전은 들리는 것만큼 명확하다: 체인이 일정보다 2일 앞설 때마다 난이도가 두 배가 된다; 2일 뒤처질 때마다 난이도가 절반이 된다.

왜 구체적으로 2일인가? 시뮬레이션에서 찾은 균형점이다. 반감기가 너무 짧으면 난이도가 빠른 블록의 모든 운 좋은 연속에서 경련하여 통계적 노이즈에 과잉 반응한다 — 체인이 절대 안정되지 않는다. 너무 길면 실제 해시레이트 변화에 느리게 반응하여 며칠 동안 목표에서 벗어나 닫으려 했던 바로 그 창문을 다시 열게 된다. 2일은 스위트 스팟에 있다: 실제 변화에는 약 하루 만에 반응, 개별 블록의 임의 지터에는 무감각. 이로부터 나오는 실용적인 산수: 2× 난이도 스파이크에서 회복하는 데 2일, 4× 스파이크에 4일, 10× 스파이크에 약 6.6일 — 체인이 작은 순간에 매우 중요해지는 숫자.

ASERT가 솔로 채굴자에게 의미하는 것

중요도 순으로 세 가지 결과.

당신의 안정적인 확률이 보호된다.이것이 헤드라인이다. 에포크 리타겟 체인에서 버스트 채굴자는 난이도 하락을 기다렸다가 쉬운 창문 동안 밀려들어 교정 전에 떠날 수 있다 — 그들이 채굴하는 모든 쉬운 블록은 당신이 채굴하지 못한 것으로, 조작된 구간에서 당신의 몫을 희석시킨다. ASERT는 그 창문을 지운다: 난이도는 그들이 도착하는 순간 오르고 떠나는 순간 내려간다, 블록마다, 그래서 파밍할 지연이 없다. 충성스러운 채굴자의 예상 몫은 깨끗하게 유지된다.

당신이 보는 난이도는 정직하다.Bitcoin에서 오늘의 난이도는 최대 2주 전 네트워크를 반영한다; ASERT 체인에서는 마지막 몇 블록의 네트워크를 반영한다. 확률을 계산할 때 — 계산기에서 또는 손으로 — ASERT 체인의 숫자는 후행 평균이 아닌 라이브 가격이므로 확률 추정이 체인 자체만큼 최신 상태다.

타이밍을 잡을 수 없다 — 다른 누구도 그렇다.보호의 이면은 ASERT가 영리한 진입 지점을 제공하지 않는다는 것이다. 뛰어들 난이도 하락이 없다, 왜냐하면 어떤 하락도 이미 전체 네트워크에 동시에 반영되어 있기 때문이다. 이것은 리타겟 창문 체인의 플레이 가능한 역학과 정반대이며, 공정한 거래다: 당신은 일정을 조작할 기회를 포기하고 아무도 당신에 대해 일정을 조작하지 않는다는 보장을 받는다.

소규모 체인의 역설: ASERT의 가장 날카로운 날

여기서 우아함이 양날이 된다. ASERT의 반응성은 체인이 실제 지속적인 신호를 추적할 수 있을 만큼 충분한 안정적인 해시레이트를 가지고 있다고 가정한다. 매우 적은 해시레이트를 가진 체인을 주면 단 하나의 대형 채굴자가 무기가 된다 — 항상 악의적이지 않고, 때로는 그냥 나타남으로써.

실패 모드: 대형 채굴자가 몇 시간 동안 소규모 체인에 심각한 해시레이트를 향한다. 블록이 날고, 체인이 일정보다 훨씬 앞서가고, ASERT가 충실하게 난이도를 올린다 — 아마도 10×. 그런 다음 대형 채굴자가 떠난다. 이제 체인의 정상적이고 적당한 해시레이트는 10배 크기를 위해 만들어진 난이도에 직면하고, 블록이 기어가는 속도로 느려진다. 표준 2일 반감기로는 10× 스파이크에서 회복하는 데 약 6.6일이 걸린다 — 체인이 사실상 동결되고, 확인이 멈추고, 알고리즘이 보호하려 했던 충성스러운 채굴자들이 갈아대고 있는 거의 1주일. 난이도 알고리즘 버전의 스트레스 부상이다: 건강한 체인을 강하게 만드는 근육이 약한 체인을 찢을 수 있다.

이것이 ASERT를 채택하는 더 새롭고 작은 SHA-256 체인들이 자주 단축된 반감기로 출시하는 이유다 — 며칠 대신 몇 시간 만에 스파이크에서 회복 — 생존 가능성과 교환으로 약간 더 많은 노이즈 민감성을 받아들인다. 또한 매우 작은 체인이 그들의 매력적인 확률이 시사하는 것보다 더 위험하게 채굴되는 큰 이유이기도 하며, 사다리 하단에 해시레이트를 향하기 전에 완전히 이해할 가치가 있는 트레이드오프다.

결론

ASERT는 작업 증명의 조용한 걸작 중 하나다: 한 줄의 공식, 지수의 정수 근사, 그리고 2일 반감기 — 함께 격렬한 난이도 톱니파를 부드럽고 절벽 없는 곡선으로 변환한다. Bitcoin Cash의 솔로 채굴자에게는 보이지 않게 그리고 당신에게 유리하게 작동한다 — 스위치 채굴자로부터 당신의 몫을 보호하고, 당신의 확률을 분 단위로 정직하게 유지하고, 어차피 결코 이길 수 없었던 게임 기회를 포기하도록 요청할 뿐이다.

그리고 가장 날카로운 날 — 소규모 체인의 스파이크 함정 — 에서는 난이도 과학 클러스터에서 가장 깊은 교훈을 가르친다: 같은 메커니즘이 그 뒤에 얼마나 많은 해시레이트가 있는지에 전적으로 달려 갑옷이나 위험이 될 수 있다. 어떤 체인에 있는지 알면 어떤 ASERT를 채굴하는지 안다.


안정적인 채굴자를 보호하는 체인을 채굴하라

SoloFury는 자체 노드에서 Bitcoin Cash를 운영한다 — ASERT 보호, 블록별 난이도, 버스트 채굴자가 당신의 몫을 약탈할 창문 없음. 비수탁형 coinbase 지급, 1% 수수료, 모든 지역의 TLS 엔드포인트, 계산기의 라이브 난이도.안정적인 해시레이트는 정확히 이 알고리즘이 보상하도록 설계된 것이다.

BCH 솔로 채굴하기 →라이브 난이도 확률 보기 →

다음으로 읽기

자주 묻는 질문

ASERT란 무엇이고 Bitcoin의 난이도 조정과 어떻게 다른가?

ASERT(aserti3-2d)는 고정된 앵커 포인트 이후 블록당 10분 일정에서 체인이 얼마나 벗어났는지를 측정하여 각 블록에 대해 난이도를 재계산한다. Bitcoin은 2,016 블록마다 재계산한다. 결과: ASERT에는 플래토도 창문도 없다 — 스위치 채굴자들이 악용하는 쉬운 채굴 기회 — 반면 Bitcoin은 각 에포크 끝에 악용 가능한 창문이 있다.

ASERT의 2일 반감기란 무엇인가?

반감기는 ASERT의 응답 속도를 결정한다. 2일의 경우: 체인이 일정보다 2일 앞서면 난이도가 두 배가 되고, 2일 뒤처지면 절반이 된다. 실제 해시레이트 변화를 추적하기에 충분히 빠르고, 행운 블록의 통계적 노이즈를 무시하기에 충분히 느리다.

ASERT는 어떻게 솔로 채굴자를 보호하는가?

스위치 채굴자들은 난이도 하락을 기다렸다가 쉬운 창문 동안 밀려들어 교정 전에 떠난다 — 그들이 채굴하는 모든 쉬운 블록은 당신이 채굴하지 못한 것으로, 조작된 구간에서 당신의 몫을 희석시킨다. ASERT는 그 창문을 지운다: 난이도는 그들이 도착하는 순간 오르고 떠나는 순간 내려간다, 블록마다.

ASERT에서 소규모 체인의 역설이란 무엇인가?

ASERT의 반응성은 충분한 안정적인 해시레이트를 전제로 한다. 몇 시간 동안 소규모 체인에 심각한 해시레이트를 향하는 대형 채굴자는 난이도를 10×까지 올리고 떠날 수 있다. 표준 2일 반감기로는 10× 스파이크에서 회복하는 데 약 6.6일이 걸린다 — 체인이 사실상 동결된 1주일.