이더리움 채굴풀의 패키지 거부 공격 원리 간략 분석

유헝&유이
2021-02-21 17:59:32
수집
이것은 탈중앙화 오라클이 직면한 문제일 뿐만 아니라 이더리움 생태계에 잠재된 단일 실패 지점이기도 하다.

이 글은 NEST 애호가에 게시되었으며, 저자: Yuheng \& Yuyi입니다.

단순히 신뢰할 수 있는 제3자에 기반한 중앙화된 오라클과는 달리, NEST 분산 오라클은 가능한 한 많은 체인 상 사용자들이 가격 변환 관계 결정 과정에 참여할 수 있도록 하여 오라클 출력 데이터 결과의 신뢰성과 전체 오라클 시스템의 안전성을 더욱 향상시키고자 합니다.

바로 이러한 특성 때문에, 분산 오라클은 종종 데이터가 효과적으로 검증되지 않는 문제에 직면하게 됩니다. 예를 들어, 악의적인 채굴자가 악의적인 가격 제안을 제공하여 가격에 영향을 미칠 수 있습니다. 이러한 문제를 해결하기 위해 NEST는 가격 제안 - 주문 체결의 제출 검증 메커니즘을 설계하였으며, 이는 검증자가 가격 제안의 가격에 따라 거래를 수행하여 가격 제안자가 담보한 자산을 얻고, 새로운 가격 제안을 제출하여 수정할 수 있도록 허용합니다. 이러한 방식으로 NEST 분산 오라클은 어느 정도 악의적인 가격 제안을 효과적으로 제한할 수 있으며, 동시에 악의적인 가격 제안을 신속하게 수정할 수 있습니다.

그러나 가격 수정 방식의 원활한 운영은 주문 체결 거래와 새로운 가격 거래가 검증 기간 내에 체인 상의 새로운 블록에 신속하게 나타나는 것에 기반합니다. 잘 알려진 바와 같이, 현재 전체 블록체인 네트워크의 채굴자 집단은 처음처럼 독립적으로 작업하지 않습니다. 수익의 안정성을 보장하기 위해, 채굴자들은 함께 조직하여 채굴 풀을 형성하여 계산 능력을 통합합니다. 작업 증명(PoW) 합의 하에서는 더 큰 계산 능력이 수익을 얻을 확률이 더 높다는 것을 의미합니다.

채굴 풀의 출현이 초래하는 본질적인 문제는 거래 패키징 권한의 독점입니다. 공공 체인에서는 블록을 채굴한 채굴자나 채굴 풀만이 다음 블록에 포함될 거래를 결정할 수 있으며, 채굴 풀은 단일 개별 채굴자에 비해 압도적인 계산 능력 우위를 가지는 경우가 많습니다. 이러한 상황에서 계산 능력이 더 큰 채굴 풀은 자신에게 유리한 거래나 거래 수수료가 높은 거래를 패키징하기로 선택할 수 있으며, 이러한 거래가 체인에 가장 먼저 공개되지 않았더라도 말입니다.

이러한 상황이 NEST 분산 오라클에서 발생하면, 제출된 새로운 가격 제안이 검증 기간 내에 신속하게 검증되지 못하게 되어, 결국 NEST가 잘못된 가격 데이터를 출력하게 됩니다. 이는 일부 채굴 풀이 차익 거래 기회를 포착하게 하여 전체 DeFi 생태계의 환경 안전을 위협하게 됩니다. 이 글에서는 NEST 분산 오라클에 대한 채굴 풀의 패키징 거부 공격에 대한 구체적인 내용을 소개할 것입니다.

공격 프로세스 및 분석

이 공격 방식을 설명하기 위해, 먼저 모든 채굴 참여자가 채굴 풀이라고 가정하겠습니다(단일 채굴자도 계산 능력이 작은 채굴 풀로 간주될 수 있습니다). 각 채굴 풀은 서로 다른 크기의 계산 능력 비율을 가지며, 서로의 계산 능력 비율을 알고 있습니다.

먼저 공격을 시작하기 전에, 악의적인 채굴 풀은 플래시 론 등의 방법을 통해 차익 거래에 사용할 암호화폐를 미리 축적할 수 있습니다. 예를 들어, 악의적인 채굴 풀은 대량의 ETH를 미리 축적한 후, ETH와 USDT 간의 가격 비율을 조작하여 차익 거래를 실현합니다.

그 다음, 악의적인 채굴 풀은 NEST에 가격 제안을 제출합니다. 이 가격 제안은 현재 실제 시장 가격과 큰 차이를 보입니다. 이 가격 제안과 실제 시장 가격 간의 큰 차이는 큰 차익 거래 공간이 존재함을 의미합니다. 따라서 S 블록의 지속 시간 동안 검증 기간 내에 NEST 자체의 주문 체결 검증 프로토콜에 따라, 반드시 검증자가 주문 체결 거래를 제출하고 해당 가격 제안을 최대 수익을 얻기 위해 가장 합리적으로 수정할 것입니다.

이때, 각 검증 기간의 블록을 조립할 때, 모든 채굴 풀은 두 가지 동일한 선택에 직면하게 됩니다. 해당 거래를 자신이 조립하는 다음 블록에 패키징할 것인지(또는 해당 가격 제안에 대해 주문 체결하고 새로운 가격 제안을 제출할 것인지) 아니면 해당 가격 제안을 다음 블록에 패키징하지 않을 것인지(또는 이 주문 체결 거래를 제출하지 않을 것인지)입니다. 각 채굴 풀은 서로의 계산 능력 비율과 서로가 취할 수 있는 전략 선택을 알고 있기 때문에, 검증 기간 내에 각 채굴 풀이 해당 가격 제안을 수정할지 여부는 사실상 모든 채굴 풀이 함께 진행하는 여러 번의 상호 독립적인 완전 정보 정적 게임으로 볼 수 있습니다. 이 게임의 최종 결과를 결정하는 것은 소위 내쉬 균형점이며, 이는 각 참여자가 다양한 결정 조합 상황에서의 수익을 의미합니다. 각 참여자는 다양한 상황에서 자신의 수익을 최대화하는 결정을 선택합니다. 죄수의 딜레마는 전형적인 완전 정보 정적 게임입니다.

분석 | 이더리움 채굴 풀의 패키징 거부 공격

만약 한 채굴 풀이 해당 가격 제안을 수정하기로 선택한다면, 그 채굴 풀은 즉시 수익을 얻을 수 있습니다. 우리는 수정된 가격 제안에 대한 수익을 a라고 가정합시다. 그러나 한 채굴 풀이 가격 제안을 수정하지 않기로 선택한다면, 그 채굴 풀은 즉시 수익을 얻지 못하는 것처럼 보이지만, 해당 악의적인 가격 제안에 관련된 암호화폐를 축적할 수 있으며, 결국 가격 제안이 성립된 후 차익 거래를 할 수 있습니다. 우리는 이 최종 수익을 b라고 설정하며, 일반적으로 b > a입니다.

그러나 우리는 블록체인에서 새로운 블록을 채굴한 채굴자만이 장부 기록 권한을 얻을 수 있다는 점에 유의해야 합니다. 즉, 한 채굴 풀이 악의적인 가격 제안을 즉시 수정하기로 선택하더라도, 그 채굴 풀은 일정 확률 하에만 a의 수익을 얻을 수 있으며, 이 확률은 해당 채굴 풀의 계산 능력에 비례합니다. 따라서 우리는 한 채굴 풀이 가격 제안을 수정하기로 선택할 때의 수익을 Pia로 나타낼 수 있습니다. 마찬가지로, 가격 제안을 수정하지 않을 경우, 가격 제안이 성립된 후 한 채굴 풀이 얻을 수 있는 수익도 Pib입니다. 그러나 가격 제안이 수정되면 이후의 게임은 더 이상 존재하지 않으며, 이는 모든 채굴 풀이 b 수익을 얻지 못하게 됨을 의미합니다. 따라서 실제로 검증 기간 동안 채굴 풀이 각 블록의 거래 내용을 결정할 때 고려하는 두 가지 수익은 다음과 같습니다:

분석 | 이더리움 채굴 풀의 패키징 거부 공격

여기서 T는 채굴 풀의 결정, Y는 해당 가격 제안을 수정하는 것, N은 해당 가격 제안을 수정하지 않는 것을 나타냅니다. Pn은 이후 모든 검증 기간 블록에서 수정된 가격 제안이 나타나지 않을 확률입니다.

검증 기간 내에 해당하는 각 블록을 조립할 때, 모든 채굴 풀은 이 두 가지 수익을 비교하여 자신의 결정을 선택합니다. 마지막으로 자신의 계산 능력 비율과 두 가지 수익 a, b 간의 비율 관계에 따라 해당 가격 제안을 수정할지 여부를 선택하여 최종적으로 내쉬 균형 상태에 도달합니다.

분석 요약

위에서 언급한 바와 같이, 채굴 풀은 자신의 계산 능력 우위를 이용하여 가격 수정 업데이트를 지연시키고 방해할 수 있으며, 이를 통해 NEST 오라클을 이용한 차익 거래를 할 수 있습니다. 하지만 이는 NEST 오라클이 직면한 문제만이 아닙니다. 실제로 전체 블록체인의 탈중앙화 이념은 채굴 풀 현상에 의해 타격을 받고 있으며, 따라서 채굴 풀이 초래하는 문제를 해결하는 것은 우리가 진정한 탈중앙화의 길로 나아가는 데 있어 피할 수 없는 도전입니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축