SquirRL — 강화 학습을 이용한 블록체인 네트워크 채굴 수익 상승 전략 찾기
- 코멘트 (2021–01–21) : 본 포스팅에서 소개된 논문은 NDSS 2021 게재되었습니다.
이더리움과 비트코인을 비롯한 많은 퍼블릭 블록체인은 네트워크 생태계를 안전하게 유지하기 위해서 실증적으로 검증된 작업 증명 알고리즘을 사용하고 있다. 여기서 실증적으로 검증되었다는 말은 2008년 부터 운영중인 비트코인이 큰 사건 사고 없이 잘 운영되고 있기 때문에 블록체인 개발자들이 어느 정도 믿고 사용한다는 의미이다.
이더리움은 현재 이 글을 쓰고 있는 시점에서는 해시-퍼즐 문제를 풀어서 가장 먼저 문제를 푼 채굴자에게 보상을 주는 Proof-of-Work(이하 PoW) 알고리즘을 사용하고 있다. 이런 상황에서 오늘 소개 할 SquirRL 논문의 저자인 Charlie Hou는 다음과 같은 질문을 던진다.
- PoW 알고리즘이 학술적으로 혹은 수학적으로 안정적인 합의 알고리즘이라고 증명되었는가?
- 만약 그렇지 않다면, 현재 100조 이상의 시장을 가진 비트코인은 알려지지 않은 공격(Unknown Attacks)에 의해 언제든지 무너질 수 있는 위태로운 프로토콜인지도 모른다.
그래서 이 논문의 저자는 강화 학습을 이용해서 블록체인 네트워크를 공격할 방법을 찾는 기법을 소개하는데 이 공격법을 찾는 알고리즘은 역설적이게도 블록체인 네트워크의 보안성을 검증하는 방법을 제시하기 위해 사용된다.
구성
- 이기적 채굴 전략 [다수의 정직한 그룹으로는 부족하다]
- SquirRL의 연구 배경
- SquirRL의 강화 학습 모델링
- 실험 결과
- 결론 및 시사점
이기적 채굴 전략 [다수의 정직한 그룹으로는 부족하다]
블록체인은 네트워크에 참여한 정직한 다수가 담합하지 않고 프로토콜을 준수해야 금융 거래의 안정성이 보장받는 독특한 시스템이다. 초기에는 그랬다. 시간이 지나 전문 채굴 장비가 등장하면서 이제는 정직한 다수가 아니라 정직해야 하는 소수에 의해 네트워크가 유지되고 있다. 캠브리지 대학교에서 조사한 내용에 의하면 [그림 1]과 같이 비트코인의 채굴 파워는 중국이 65.08%를 차지 하고 있다[2].
[그림 1] 캠브리지 대학교 비트코인 마이닝 맵
블록체인 연구분야에서 가장 많이 인용된 논문은 이 연구를 탄생시킨 사토시 나카모토의 비트코인 논문이다[3]. 그러면 두 번째로 많이 인용된 연구는 무엇일까? 정답은 Ittay Eyal의 “Majority is not enough: Bitcoin Mining is Vulnerable”이다[4]. 사토시 나카모토가 블록체인이라는 큰 분야를 발전시킨 인물이라면 I. Eyal은 비트코인 네트워크의 공격과 보안 분야의 연구를 촉진 시킨 인물이다.
I. Eyal의 논문에서는 전체 네트워크의 연산력의 절반(50%) 이하를 가지고 있는 경우에 블록체인 프로토콜을 완벽히 따르지 않으면서 정직한 다수 보다 더 많은 채굴 보상을 얻는 전략에 대해 설명하고 이를 이기적 채굴 전략(Selfish-Mining)이라고 이름 지었다.
비트코인 네트워크의 참여자는 해시-퍼즐 문제는 답을 찾기 위해 Nonce값을 변경시켜서 특정 값(Target)보다 작은 Nonce값을 찾아야 한다. 이런 특징 때문에 채굴은 로또와 비슷한 랜덤성의 성향을 가진다. 따라서 내가 전체 네트워크의 1%의 연산력을 가지고 있는데 우연히 2개의 블록의 Nonce값을 한 번에 찾아내서 1억원이 넘는 돈을 꺼-억 할 수도 있다.
이 때, 정직한 참여자라면 발견한 2개의 블록을 바로 네트워크에 전파하여 거래를 성립시키고 다음 단계로 넘어갈 테지만 이기적 채굴 전략을 수행하는 그룹은 이 블록을 숨겨서 다시 한 번의 운을 노려 3개 블록 보상을 꺼-억 할 수 있는 전략을 취할 수 있다. 아래 [그림 2]는 이기적 채굴 전략이 어떻게 동작하는지 대략적으로 보여준다.
[그림 2] 이기적 채굴 전략의 동작 과정
이기적 채굴 전략 그룹은 발견한 블록을 바로 네트워크에 전파시키지 않고 일단 숨겨 놓는다. 정직한 참여 그룹의 입장에서는 높이가 3인 블록(h=3)이 최신 블록이기 때문에 h=4’ 블록을 채굴하려고 연산 능력을 사용한다. 그러는 와중에 이기적 채굴 그룹은 사전에 채굴에 성공한 h=4’’와 h=5’’가 존재한다.
만약 정직한 채굴 그룹이 h=4’ 블록 채굴에 성공하면 이기적 채굴 그룹은 곧바로 자신이 발견한 블록을 공개 시켜 네트워크의 다수는 가장 길게 생성된 블록을 유효한 거래로 인정한다는 규칙에 의해 정직한 참여 그룹의 연산 능력을 낭비 시킨다. 이 과정에서 이기적 채굴 그룹이 h=6’’블록 채굴에 성공한다면 추가적으로 수천만원의 수익을 챙길 수 있다.
단순해 보이지만 이 전략도 자세히 보면 많은 경우의 수가 존재한다. I. Eyal은 자신의 논문에서 [그림 3]과 같이 이기적 채굴 그룹의 상태를 마르코프-체인(Markov-Chain)으로 표현한다.
[그림 3] 이기적 채굴 그룹의 상태 머신
이기적 채굴 그룹은 채굴에 성공하거나, 채굴하지 못하거나 숨겨 놓은 블록이 1개인 경우 정직한 채굴 그룹이 채굴에 성공하는 등등 다양한 경우의 수가 있는데 논문의 저자는 이런 경우를 총 8가지로 정의하고 각 상태로 이동 할 확률을 계산하였다. 그리고 이기적인 그룹의 연산 능력 α를 0부터 0.5(절반)까지 조정하면서 정직한 그룹 보다 얼마나 많이 수익을 챙길 수 있는지 계산하여 논문을 발표하였다.
이 논문이 처음 발표된 시기는 2013년으로 비트코인이 이제 막 성장하려던 시기였고, 많은 블록체인 추종자들이 탄생하는 시기이기도 했다. 그런 와중에 논문 제목에 “비트코인 채굴은 취약하다" 라니? 추종자들이 가만히 있을리가 없다. 그래서 학계에서는 이 논문의 가설은 틀렸다. 실증적으로 동작하지 않는 전략이다 등등 다양한 반박과 재반박이 이어지면서 유명해지는 계기가 되었다.
이런 이야기를 왜 이렇게 길게하나? 라고 생각이 들 수 있지만 이제 본격적으로 소개하려는 논문이 바로 I. Eyal이 정의한 용어와 개념을 많이 차용했기 때문에 이를 이해하려면 이기적 채굴 전략 논문을 알 필요가 있었고 SquirRL 연구가 시작하게 된 배경과 깊게 연결되어 있기 때문에 지면을 할애해서 길게 서술하였다.
SquirRL의 연구배경
실제로 블록체인은 네트워크의 공격 방법이 제안되고 이를 보완하는 과정에서 점점 견고해지고 있다고 볼 수 있다. 위 [그림 2]에서 비트코인 같은 경우에는 메인 체인에 선택되지 못한 블록의 채굴자는 아무런 보상을 받을 수 없기 때문에 이런 공격이 유효하지만 이더리움에서는 분기가 발생한 두 블록 모두에게 보상을 주는 방법으로 이기적 공격 전략을 어느 정도 보완했다. 즉, 공격에 대한 연구와 보안에 대한 연구는 동전의 양면처럼 항상 따라다닌다.
[그림 4] 현재 블록체인 연구는 공격과 보완이 이어지면서 네트워크의 안정성을 추가해 가고 있다.
문제는, 블록체인 시스템이 안정되기 까지의 과정이 너무 느리다는 것이다. 하나의 공격 방법이 연구 성과로 발표되기 까지는 많은 시간이 걸리기 때문에 보완되기 까지는 긴 시간이 걸리고 아직 밝혀지지 않은 공격 방법이 존재 할 가능성이 있기 때문에 이 거대한 규모의 금융 자산을 다루는 시스템이 불안정 상태에 존재한다. SquirRL은 이 점을 주된 문제점으로 들면서 이렇게 말한다.
“사람이 공격 전략을 찾는 것은 너무 오래 걸리니 AI에게 공격 패턴을 찾게 하면 설계된 블록체인 프로토콜의 문제점을 빠르게 알아낼 수 있지 않을까?”
지금까지 제시된 공격 논문들은 제시하는 공격법의 실현 가능성을 평가하기 위해 시뮬레이션 혹은 게임-이론을 이용해서 분석한다. 본 연구의 저자는 이런 분석법은 다음과 같은 오류를 가지고 있기 때문에 현실을 반영하지 못한다고 지적한다.
- 상태 공간이 굉장히 크기 때문에 현실의 실제 모습을 반영하기 어렵다.
- 게임이 계속 반복되기 때문에 아직! 공격에 성공하지 못한 걸 수도 있다.
- 대다수의 논문이 정직한 참여자 다수와 단 한명의 악의적인 그룹을 상정해서 시뮬레이션 한다. 실제로는 다양한 공격법을 가진 그룹이 존재할 수 있다.
- 기존의 공격법을 보완해서 인센티브-기반의 새로운 블록체인 프로토콜이 계속하여 탄생하고 있는데 대다수가 공격자와 정직한 채굴자 사이의 내시-균형을 이룬다고 가정하는데 이는 약한-가정(weak-guarantee)이다.
그래서 SquirRL 논문의 저자는 강화 학습(Deep Reinforcement Learning)을 이용해서 블록체인의 공격 패턴을 탐지 하는 방법을 제시하면서 위에서 나열한 기존 연구의 문제점을 해결한 프레임워크를 설계 하고자 했다.
SquirRL의 강화 학습 모델링
강화 학습(Reinforcement Learning)은 특정 상태가 졌을 때 행동 주체인 행위자가 특정 행위 At를 수행해서 환경으로 부터 받는 보상이 최대가 되게 행동을 교정하는 알고리즘이다. 강화 학습이 딥러닝을 만나기 이전에는 마르코프 결정 프로세스(Markov Decision Process)를 이용해서 상태에 따른 행동을 결정하는 정책(Policy) 함수를 최적화 했다.
최신 연구에서는 정책 함수를 결정짓는 부분에 심층 신경망을 이용하는데 이 심층신경망이 정책(Policy) 함수를 자동으로 학습해서 최적화 해주기 때문에 실제로 강화 학습을 이용할 때는 아래 [그림 5]에서 보이는 것 처럼 4가지 파라미터만 정의해주면 된다. 본 연구에서는 기본적으로 이기적 채굴 전략에서 취할 수 있는 행위만을 정의했기 때문에 실제 복잡한 블록체인의 모든 행위를 대변하지는 않는다.
[그림 5] 강화학습 기본 모델
- 환경 (Environment)
본 논문에서는 블록체인의 환경을 제한해서 정의하였다. 본 강화학습에서 정의하는 블록체인은 이산 시간 과정과 같으며 특정 시간 단위 i 마다 새로운 블록이 생성되고 생성된 블록은 지연 시간 없이 즉시 전파된다고 가정한다. 그리고 각 행위자는 특정 시간 단위 i 마다 연산 능력 α를 모든 시간 단위에서 보유하고 있다. 이 때 α는 전체 네트워크의 연산 능력 대비 해당 행위자의 연산 능력 비율로 정의한다. 그리고 모든 네트워크 참여자 중 공격자가 채굴한 블록을 따르는 비율을 *γ (follower fraction)로 정의한다. (1-γ)는 정직한 노드가 채굴한 블록을 따르는 비율이다. 이 정의는 이기적 채굴 전략에서 정의한 용어를 그대로 차용한 것이다. - 보상 (Rewards) 보상은 블록체인과 동일하게 채굴에 성공하였고 메인체인으로 등록되었을 때 얻는다. 실험의 편리성을 위해 트랜잭션 수수료는 없다고 가정하였다. Ba(t,p)와 Bh(t,p)는 각각 악의적인 행위자(a)와 정직한 행위자(h)가 특정 시간 t에서 전략 p를 가지고 얻은 보상을 의미하며 전략 p는 정직한 채굴이 될 수도 있고 이기적 채굴 전략이 될 수 있다. 채굴자의 총 보상은 블록체인 채굴의 누적 보상이며 코인 가격과 전력 비용의 증가는 보상의 패널티로 평가하지 않는다. 본 논문에서는 통제할 수 없는 변수는 전부 존재하지 않는다고 가정하고 오직 블록 채굴 보상만을 취급했다. 전략 p를 평가하는 주요 지표로는 전체 채굴 보상 대비 행위자가 얻은 채굴 보상 비율을 사용한다.
[그림 6] 공격자의 상대적 보상율 (relative reward)
- 행위(Action) 블록체인에 참여한 각 행위자는 순응(Adopt), 무효화(Override), 대기(Wait) 그리고 경쟁(Match) 이 네가지 행위를 시간 단위 i마다 해야한다. 순응은 공격자가 longest public fork를 따르는 것을 말한다. 이 행위는 언제나 유효하다. 무효화는 본인의 private fork를 공개함으로써 이전에 공개된 fork를 무력화 하는 행위다 이 행위는 행위자의 private fork가 public fork보다 길게 형성되어 있을 때만 가능하다. 대기(Wait)는 아무것도 하지 않고 대기하는 것을 말한다. 본 논문에서 정의한 환경이 이산 시간으로 흐르기 때문에 대기 라는 행위가 없으면 다수의 행위자가 이전에 생성된 블록 위에 채굴하게 된다. 대기는 언제나 유효하다. 경쟁(Match)은 private fork와 public fork의 길이가 동일할 때 공격자가 블록을 즉시 공개함으로써 경쟁상태로 진입하는 것을 말한다. 이 때 공격자는 γ (follower fraction) 비율에 따라 보상을 얻는다.
- 상태(State) 모든 행위자는 특정 시간 t에서 {a, h, fork} 로 정의된 이 세 가지 변수를 상태로 가진다. a는 공격자가 본인의 private fork에서 생성한 블록의 개수를, h는 정직한 노드가 생성한 블록의 개수를 말한다. 그리고 fork는 현재 블록체인의 상태를 나타내는 변수이다. 만약 상태가 {a, h, relevant} 라면 t-1의 시간에서는 상태가 {a, h-1,·}라는 의미로 시간 t에서 h가 1 증가했기 때문에 정직한 노드가 채굴에 성공했다는 것을 의미한다. {a, h, irrelevant} 상태는 위에서 서술한 그 반대의 상황을 의미하며 {a, h, active}는 경쟁 상태임을 말한다. a, h가 무한히 증가해서 상태 공간이 계속 증식할 수 있기 때문에 a, h의 최대값을 20으로 제한했다.
본 연구에서는 위와 같이 네가지 파라미터를 정의했다. 이제 우리는 여기서 특정 상태와 보상을 받아 행동을 결정하는 정책 함수를 학습 할 알고리즘을 선택해서 실행시키기만 하면 원하는 결과를 얻을 수 있는데 본 논문에서는 이 모델의 이름을 SquirRL이라고 붙였다. 아래 [그림 7]은 SquirRL의 전체 모델의 구조도이며 사용한 알고리즘을 각 하이퍼 파라미터를 보여준다.
[그림 7] SquirRL 모델의 구조도
실험 결과
SquirRL의 저자는 위에서 정의한 정보를 강화 학습을 수행 할 때 사용하는 강력한 도구인 OpenAI Gym에서 이를 구현하여 평가하였다. 각 실험은 비트코인, GHOST 프로토콜, 이더리움 환경에서 100번씩 진행하였으며 최소 5000개의 메인 체인 블록을 생성하고 10,000번 이상의 상태 전이가 발생하였다. 또한 SquirRL의 모델, 즉 AI가 정말로 공격법을 잘 탐지하는지 평가하기 위해 기존에 알려진 이기적-채굴(Selfish-Mining)과 최적화된 이기적-채굴(Optimal Selfish-Mining)전략을 같이 비교하였다.
[그림 8] SquiRL 모델의 실험 결과
사실 실험 결과만을 두고 보면 강화학습을 기반으로 한 모델이 월등히 성능이 높은 것은 아니다. 하지만, 흥미로운 점은 SM과 OSM은 각각 특정 조건이 발생 했을 때 취해야 하는 행위가 사전에 결정되어 있지만 RL 모델은 스스로 판단해서 결정한다는 것이다.
[Fig. 3]에서 SM전략을 따르는 경우에 연산 능력이 25% 이하로 가지고 있다면 오히려 정직하게 채굴하는 것보다 낮은 보상을 얻는다. RL 모델에서는 25% 이하의 채굴 능력을 가질 때 스스로 프로토콜에 순응하고 25% 이상 보유하고 있을 때는 즉시 악의적인 행위를 수행한다. 여기까지 논문을 읽다가 살짝 피 — 식하게 되었는데 [Fig. 3]에서 RL이 기존 OSM모델보다 성능이 낮게 나온게 못마땅했는지 조건을 다시 설정해서 재실험을 하였다.
여기서 추가한 조건은, 각 행위자의 채굴 능력은 시간에 따라 랜덤하게 변한다는 것이다. 이는 현실 블록체인 노드의 상황에서도 부합하는데, 블록체인 네트워크는 참여와 이탈이 자유롭기 때문에 각 행위자가 가진 연산 능력은 계속 변화하게 된다. 아래 [그림 9]는 이 조건을 추가하여 다시 실험한 결과이다.
[그림 9] 채굴 능력이 동적으로 변하는 상황에서 각 모델이 얻은 보상
이제 더욱 흥미로운 결과가 나오는데 본 연구에서 초기에 말했듯이 기존 연구는 절대적으로 정직한 다수의 단 한명의 악의적인 참여자를 상정하였는데 SquirRL의 실험에는 OSM과 RL모델을 각 경쟁시켜보는 실험이 존재한다. 아래 [그림 10]은 경쟁을 붙였을 때 각 모델이 얻은 보상과 [그림 11]은 각 모델의 상태 전이 횟수를 보여준다.
[그림 10] OSM과 RL 모델의 연산 능력에 따른 성능 비교표
[그림 11] 각 모델의 상태 전이 횟수
[그림 10]을 보면 연산 능력이 30% 이상일 때 부터 두 모델이 경쟁하는 모습을 볼 수 있다. 실험에 의하면 강화학습에 의해 최적화된 모델이 경쟁에서 우위를 점하여 꾸준히 보상을 챙기는 것을 볼 수 있다. [그림 11]은 상태 전이 횟수를 나타내는데 Override는 위에서 정의한 것과 같이 더 긴 블록을 생성하여 공개하는 행위를 나타내기 때문에 이 횟수가 많은 에이전트 일수록 더 많은 보상을 챙긴다고 해석할 수 있다.
결론 및 시사점
위 실험결과는 논문에서 일부분만 가져온 것이고 실제로는 이더리움, Block Withholding Attack에서의 실험과 RL모델 두개가 서로 경쟁하는 실험 등 흥미로운 지표가 많이 등장한다. 그리고 이 논문의 마지막에서는 강화학습에 의해 공격이 잘 되지 않는다고 해당 블록체인이 안전하다고 보장받는 것은 아니다라고 결론지으며 더 정교한 실험이 필요하다고 언급하고 있다.
필자가 느낀 것 또한 실험과정에서 가정이 많이 들어가 있어 100% 현실을 반영하지 못한다고 느꼈기 때문에 추가적인 연구가 필요하다고 생각한다. 하지만, 본 논문에서 짚은 문제점이 흥미로웠고 그 과정에서 강화학습을 도입해 문제를 해결하려는 과정이 잘 서술되어 있으며 기본적으로 글이 깔끔하게 잘 쓰여져 있기 때문에 다른 연구자들에게도 이 논문을 추천하고 싶다.
Reference
[1] SquirRL: Automating Attack Discovery on Blockchain Incentive Mechanisms with Deep Reinforcement Learning
[2] Cambridge Centre for Alternative Finance* — Mining Map
[3]* Bitcoin: A peer-to-peer Cash System
[4] Majority is not enough, Bitcoin Mining is Vulnerable