비트코인 캐시 ABC의 10가지 규칙적인 블록 체크포인트

요약: 저희는 이번 보고서에서 비트코인 캐시 ABC의 새로운 10가지 규칙적인 체크포인트 시스템을 평가할 것입니다. 새롭게 구상된 이 시스템은 “심각한” 공격적인 리오그 (reorg, 블록체인에서 몇 개의 연속된 블록이 변경되었을 경우 발생)로부터 보호해줍니다; 하지만 해당 시스템은 합의된 체인 분할의 위험성을 증가시키고 악의적인 마이너가 되고자 하는 이들에게 새로운 기회를 제공합니다. 또 다른 상충점은 공격적인 성향의 마이너들이 네트워크에 미칠 수 있는 피해를 증가시키지만, 이러한 행동에 대한 잠재적 보상이 감소한다는 것입니다. 비록 이는 시스템의 근본적인 변화이기 때문에 네트워크가 해당 기술을 채택하기 전, 그와 관련된 역학을 평가하는데 더 많은 시간을 투자하는 것이 나을 수도 있지만, 이 변화가 순수한 이득만을 가져다 줄 것인지 현재로써는 불확실합니다.

개요

비트코인 캐시 ABC는 2018년 11월 21일 출시된 소프트웨어 버전 ABC 0.18.5에 새로운 규칙적인 체크포인트 시스템 (rolling checkpoint system)을 추가했습니다. 기본적으로 이 최신 메커니즘은 10번의 승인을 받았을 때 블록을 완결시킴으로써 대규모의 블록체인 리오그 (reorg)를 방지합니다. 따라서 대안 체인에 더 많은 작업 증거 (proof of work)가 있더라도 체크포인트와 충돌하는 경우, 노드가 가장 활발하게 작업 중인 체인으로 전환되지 않습니다.

이 기능은 경쟁사인 비트코인 캐시 SV 체인의 지지자를 포함한 비트코인 캐시 ABC를 공격하려는 잠재적 공격자들에 대응하기 위한 대비책으로 추가되었을 것으로 예상됩니다.

새로운 체크포인트 메커니즘의 보안성 분석 

새로운 규칙적인 체크포인트 메커니즘에는 다음과 같은 상충점이 존재합니다:

  • 심각한 리오그 위험성이 감소합니다.
  • 합의된 체인 분할의 위험성이 증가합니다.

새로운 체크포인트 시스템의 네트워크 위험성 분석

대기시간 지연 문제 공격 시나리오
리오그 위험성 변경 사항 없음

대기시간 지연 문제로 10개의 블록마다 노드 간의 동기화가 이루어지지 않을 가능성은 낮으므로 저희는 이것이 크게 문제가 되지  않는다고 생각합니다. 따라서 새로운 체크포인트 시스템은 이 부분에서 문제를 발생시키지 않을 것입니다.

블록 사이즈가 최대 32MB인 블록이라도 소수의 상황 하에서는 몇 가지의 대기시간 지연 문제가 발생할 수 있으며 노드가 10개의 블록마다 동기화되지 않을 수 있습니다.

체크포인트는 대기시간 지연과 관련된 그 어떠한 문제도 해결하지 못하는 듯 합니다. 만일 대기시간 지연 문제로 인해 10개의 블록 리오그가 발생한다면, 사용자는 가장 작업이 활발한 체인의 뒤를 따르려 할 것입니다.

 

위험성 감소

심각하고 공격적인 리오그의 위험성이 줄어들거나 10개의 블록에 제한됩니다.

합의된 체인 분할 새로 생겨난 작은 위험성

네트워크 연결 상태가 좋지 않아 노드가 서로 10개 블록 이상으로 동기화되지 않는 경우, 상충하는 체크포인트가 합의된 체인 분할을 야기해 두 개 혹은 그 이상의 암호화폐를 생성할 수 있습니다.

새로 생겨난 위험성

리오그 위험성은 이제 감소했지만, 악의적인 마이너들은 새로운 공격 매개체를 갖게 되었습니다. 공격자는 블록 10개 길이의 (혹은 더 긴) 체인을 비밀 리에 채굴한 뒤, 네트워크 상에서 체크포인트가 상충할 수 있는 시간대에 체인을 게시하여 체인 분할을 일으킵니다.

악의적인 마이너: 리오그를 위한 대안적 옵션 

위에서 언급했듯, 악의적인 마이너가 쉐도우 체인 (shadow chain)을 생산하고 있을 경우, 이것이 한 번 “정직한” 체인에서 10개 블록 이상으로 멀어지면 작업량이 더 많더라도 정직한 체인 (honest chain)을 리오그할 수 없기 때문에 본질적으로 쓸모가 없게 됩니다. 따라서 공격자는 이를 포기하고 쉐도우 체인의 연장을 중단할 것입니다.

하지만 이는 “정직한 체인”에서 분할 이후 10번째 블록이 생성되자마자 공격자가 목표에 따라 이 시점에서 쉐도우 체인을 게시할 수도 있음을 의미합니다. (예. 공격자가 아래 다이어그램에 빨간색으로 표시된 블록을 수신하자마자 쉐도우 체인을 게시) 이로 인해 합의된 체인 분할이 발생할 수 있으며, 일부 노드는 빨간색 블록을 먼저 수신하고 다른 노드는 쉐도우 체인을 먼저 수신하여 체크포인트가 충돌하게 됩니다.

(출처: BitMEX Research)

이 공격은 합의된 체인 분할을 야기해 공격적인 리오그를 지속함으로써 네트워크에 손상을 입힐 수 있습니다. 또한 이는 악의적인 마이너가 공격을 더 일찍 멈출 수 있기 때문에 심각한 리오그를 지속하는 것보다 경제적입니다. 따라서 저희는 새로운 체크포인트 방어책이 실질적인 개선안이라고 확신하지 않습니다. 이 부분의 위험성이 실제로 발생하지 않는다 해도 (또한 공격자에게 해시래이트의 대부분을 차지하도록 요구할 수 있더라도), 최소한 새로운 체크포인트 시스템이 완화하려고 하는 문제만큼이나 발생할 가능성이 높다고 생각합니다.

체크포인트 시스템의 장점

  • 새로운 체크포인트 메커니즘이 10개의 블록 윈도우 내에서 보안성에 제한적인 영향을 미칠 수 있지만, 현재의 체인 끝에서 전반적으로 체인을 되돌아 볼 때 보안성은 더 긴 기간 동안 강화될 수 있습니다. 이는 사용자 계정에 입금을 하고 더 높은 수준의 보장성을 확보하기 전에 블록 10개 이상을 기다릴 수 있는 일부 거래소 또는 판매자에게 매우 유용할 수 있습니다. 하지만 비트코인 캐시의 핵심 초점은 거래 속도를 높이는 것이므로 비트코인 캐시 커뮤니티에서 이러한 이점의 가치는 높지 않습니다.
  • 위에서 설명했듯 새로운 공격 매개체가 해당 메커니즘에 의해 공개되어 공격적인 마이너들이 합의된 체인 분할을 일으킬 새로운 길을 열어주었지만, 이에 대한 인센티브는 “정상적인 (normal)” 심각한 리오그 보다 명확하지 않습니다. 정상적인 리오그 공격 (normal reorg attack)은 거래소를 상대로 한 이중 지불 공격 (double spend attack)에 이용될 수 있습니다. 새로운 체인 분할 관련 공격 매개체를 이용하여 이중 지불 공격을 시도할 수 있지만, 어느 쪽 (만일 있다면)이 승자가 될 것인지 또는 각 거래소가 어떤 체인을 따를 것인지 분명하지 않기 때문에 그 결과는 확실하지 않습니다.

다른 쟁점들

중앙화와 개발자의 권한 

체크포인트에 대한 또 다른 흔한 비판은 새 버전의 소프트웨어를 출시할 때, 일반적으로 개발자가 체크포인트를 수동으로 삽입하기 때문에 그들에게 더 많은 권한이 부여되고 중앙화가 심화된다는 것입니다 (비트코인이 그러했듯). 하지만 저희는 체크포인트가 개발팀에 의해 직접 생성되는 것이 아닌 노드 소프트웨어에 의해 자동으로 생성되기 때문에 이 경우에는 앞서 말한 쟁점이 문제가 되지 않는다고 생각합니다.

장거리 공격과 초기 동기화

Eric Wall이 트위터에 설명했듯, 새로운 체크포인트 메커니즘을 통해 가장 최근 생성된 체인의 끝이 아닌 노드에 시빌 공격 (sybil attack, 계정 무한생성)을 가할 수 있게 되었습니다. 예를 들어, 이는 초기 동기화 (initial sync) 상태에 있는 노드이거나 노드를 며칠 동안 일시적으로 중지한 사용자와 관련된 노드입니다. 공격자는 자신만의 릴레이 노드 (relay node)를 만들고 과거의 어느 시점에서든 블록 10개 길이의 새로운 체인을 생성해야 합니다.

작업이 활발하지 않은 해당 체인 (the lower work chain)은 노드 (현재 체인 끝에 있는 노드가 아닌 다른 특정 노드를 대상으로)로 전파될 수 있으므로 잠재적으로 이러한 노드는 대안 체인 상에서 너무 이른 시기에 체크포인팅을 할 수 있습니다. 이는 앞서 말한 노드를 다른 체인 상에 남겨둘 뿐만 아니라, 해당 체인을 공격자의 통제 하에 두게 합니다. 이것은 체크포인트 시스템의 중대한 결함인 듯 합니다.

사토시가 구상했던 “본래의 비전”은 노드가 꺼져있을 때 일어난 일을 확인하는 기능이 향후 중요해질 것이라는 그의 생각을 나타내는 듯 합니다:

노드는 자유롭게 네트워크를 떠날 수도 있고 다시 합류할 수 있으며, 작업증명방식 (POW, proof-of-work)의 체인을 노드가 꺼져있는 동안 일어난 일에 대한 증거로 받아들입니다.
(출처: 비트코인 백서)

비트코인 캐시 ABC 업그레이드를 위해서는 앞서 언급한 철학을 어느 정도 포기하고, 노드를 항상 온라인 상태로 유지해야 합니다.

결론 

새로운 비트코인 캐시 ABC 체크포인트 시스템의 핵심 네트워크 및 합의 역학에 대한 근본적인 변화로 많은 상충점이 생겨났습니다. 이러한 변화들은 업그레이드 전에 제대로 발견되지 않았을 수 있습니다. 저희는 이런 변화가 즉각적인 위기를 초래할 것이라고 생각하지 않지만, 위기 발생 시 이를 막기는 힘들 것이라 생각합니다.

체크포인트 시스템의 영향에 관한 전반적 요약

장점:

  • 마이너가 체인 공격 시, 그에 대한 인센티브 감소
  • 10개 이상의 승인이 있을 경우, 거래와 관련된 판매자 및 거래소에 더 많은 보증을 제공

단점:

  • 마이너가 네트워크에 치명적인 공격을 가하는 기능이 향상됨
  • 메인 체인과 동기화 중인 노드에 대한 새로운 공격 매개체 제공