Bitcoin Core 소프트웨어 라이브러리에는 최근 OP_Return 출력 크기에 대한 정책 제한을 제거하자는 제안이 있었습니다. 우리는 이미 이 문제에 대한 우리의 견해를 표명했습니다. 이러한 움직임은 논란을 불러일으켰고, 비트코인 블록체인에서 스팸 거래가 무엇인지, 그리고 이를 어떻게 처리할 것인지에 대한 논쟁이 다시 불붙었습니다. 이 글에서는 10년 전인 2015년 여름에 발생한 비트코인 네트워크 스팸 공격을 되돌아봅니다. 당시의 사건과 현재 상황을 비교하고, 그 과정에서 얻은 교훈이 무엇인지 살펴보겠습니다.
2015년 여름의 스팸 공격은 블록 크기에 대한 논쟁 의 초기 대립이었습니다. 공격자는 블록 크기 제한을 늘리고자 하는 "빅 블로커"입니다. 당시 빅 블록 지지자들의 주요 주장 중 하나는 1MB 제한이 너무 작고 블록은 비용이 거의 들지 않는 쓰레기 거래로 쉽게 채워질 수 있다는 것이었습니다. 빅 블록 지지자들은 이러한 블록 채우기 상황을 매우 나쁜 결과로 보고, 스패머의 승리를 의미합니다. 빅 블록 지지자들의 관점에서 보면, 블록 채우기는 비트코인을 지불 수단으로 사용하는 것을 신뢰할 수 없게 만듭니다. 대규모 블록 지지자들은 스팸 발송자가 블록의 모든 공간을 채우는 데 드는 비용을 높이기 위해 블록 크기 제한을 늘리려고 합니다. 고정 수수료율로 8MB 블록을 쓰레기 거래로 채우는 비용이 1MB 블록을 채우는 비용보다 더 많이 들 것이라는 논리입니다.
이 주장에 대한 "소규모 블로커" 반박은 대규모 블로커의 아이디어가 뒤떨어져 있다는 것이며, 쓰레기 거래가 있을 경우 이를 모두 빠르고 저렴하게 체인에 올리더라도 쓰레기 거래 송신자를 막을 수 없고, 오히려 쓰레기 거래 송신자가 이길 수 있다는 것입니다. 또한, 블록 크기 제한이 늘어나면 수수료가 낮아지고, 스팸 거래가 더 저렴해집니다. 그러나 대규모 블록 지지자들에게 중요한 지표는 블록을 채우는 데 드는 비용입니다. 그들은 이 숫자가 비트코인의 보안을 위해서는 너무 낮다고 생각하고, 블록 크기 제한을 늘리면 이 숫자가 늘어나 비트코인이 더 탄력적으로 될 것이라고 생각합니다.
스팸 공격
첫 번째 라운드
2015년 6월 20일, 런던에 본사를 두고 있다고 주장하는 잘 알려지지 않은 비트코인 지갑 제공업체이자 거래소 인 CoinWallet.eu가 BitcoinTalk 와 Reddit 에서 "비트코인 스트레스 테스트"를 실시한다고 발표했습니다. 우리는 이 법인에 대한 많은 정보, 예를 들어 경영진이나 주주가 누구인지 등을 알아낼 수 없었습니다. 우리는 의미 있는 WHOIS 기록이나 회사 등록 문서를 찾을 수 없었고, 런던 주소(78 York Street)는 가상 주소 인 것으로 보입니다.
런던 요크 스트리트 78번지(구글 스트리트 뷰)
그러나 공격자인 CoinWallet.EU 는 블록 크기 제한을 늘리는 것을 정당화하기 위해 자신의 동기를 분명히 밝혔습니다.
비트코인은 붕괴 직전에 있지만, 핵심 개발자들은 사소한 논쟁에 휘말려 장기적인 지속 가능성을 위해 필요한 변화를 이루지 못하고 있습니다. 아무것도 하지 않는다면, 비트코인은 언제나 값비싼 과학 프로젝트로 남을 것입니다. 시스템에 대한 스트레스 테스트를 실시하여 대규모 스팸 거래로 네트워크를 공격하는 것이 얼마나 쉬운지 보여줌으로써 블록 크기를 늘려야 하는 명확한 근거를 제시하고자 합니다.
공격자는 "5분마다 1MB의 거래 데이터를 생성한다"고 설명했습니다. 공격은 2015년 6월 22일로 예정되어 있었습니다. 계획에 따르면 "거래 백로그는 약 241개 블록, 즉 1.67일에 이를 것"입니다. 그러면 거래 잔고가 241MB가 넘을 것입니다.
당시 루크 주니어는 레딧에서 공격자들에게 다음과 같이 답했습니다.
비트코인은 이러한 유형의 공격을 막기 위해 채굴자와 블록 크기 제한을 두고 있습니다.
출처: https://www.reddit.com/r/Bitcoin/comments/3agk61/comment/cscgipz/
2015년 6월 24일, 공격자들은 예상했던 만큼 공격이 성공적이지 못했다고 발표했습니다. 메모리 풀 크기가 약 12MB에 도달한 후, 약 2시간 후에 서버가 다운되기 시작했기 때문입니다. 공격자들은 "비트코인은 이 규모의 거래를 처리하는 데 적합하지 않다"고 말했습니다. 공격자는 또한 이 실패한 공격에 수수료로 약 2비트코인 또는 434유로를 썼다고 밝혔습니다.
2라운드
같은 날인 2015년 6월 24일, CoinWallet.EU는 두 번째 스팸 공격이 2015년 6월 29일에 발생할 것이라고 발표했습니다 . 마찬가지로, 목표는 메모리 풀을 241MB로 늘리는 것입니다.
위의 차트에서 볼 수 있듯이, 이번에는 공격이 더 효과적인 것으로 보이며, 일부 사용자는 이로 인해 비트코인을 사용할 수 없게 된다는 빅 블록 지지자들의 의견에 동의하는 것으로 보입니다.
누군가 나에게 무슨 일이 일어나고 있는지 설명해줄 수 있나요? 저는 지역 웹 거래소를 통해 0.05 BTC를 구매했고, 그들은 0.0001의 거래 수수료와 함께 해당 금액을 제 지갑으로 보내주었습니다. 이 거래는 226바이트입니다. 확인을 위해 7시간을 기다린 후, blockchain.info 노드에서 거부되었습니다. 거래소에서 거래 수수료 0.0002를 붙여 다시 보내줬습니다. 상태는 "곧"(높은 우선순위)으로 확인될 것으로 예상됩니다. 하지만 벌써 6시간이 지났습니다! BTC로 정확히 무엇을 하셨나요? ! 이게 정상인가요? 이런 방식으로는 BTC를 일상적인 거래에 사용할 수 없습니다. 226바이트 거래의 경우 0.0002 거래 수수료가 충분하지 않나요?
출처: https://bitcointalk.org/index.php?topic=1098263.msg11847265#msg11847265
Luke-Jr.의 마이닝 풀인 Eligius는 당시 스팸 거래를 성공적으로 걸러낸 것으로 보입니다. 공격 중에 Eligius 채굴 풀은 다른 채굴 풀보다 훨씬 작은 블록을 생성했는데, 일반적으로 어떤 제한이 설정되어 있든 그 크기는 1MB 또는 750KB였습니다.
루크의 이전 예측은 정확했습니다. 블록 크기 제한과 채굴자들이 공격의 영향을 완화하는 데 도움이 되었습니다. 하지만 이는 모든 채굴자에게 해당되는 것이 아니고, 자신의 채굴 풀에만 해당됩니다. 저희는 블록 크기 제한이 스팸 거래가 체인에 추가되는 것을 방지하는 데 더 강력한 역할을 한다고 생각합니다. 당시 루크의 스팸 필터링 정책은 논란을 불러일으켰습니다. 일부 사람들은 루크의 "블랙리스트"가 비트코인의 대체성을 해치고 메모리 풀을 더 오랫동안 부풀려 공격이 장기화되었다고 생각합니다. 예를 들어, 카노 채굴 풀 운영자는 BitcoinTalk 포럼에서 스팸 거래에 대해 다음과 같은 주장을 펼쳤습니다.
간단히 말해서, 이는 수수료가 있는 유효한 거래입니다.
Eligius에서 Luke의 동료이자 또 다른 포럼 회원인 wizkid057은 오늘 Ocean Pool에서 Luke의 동료들이 필터링 입장을 지지한 것처럼 필터링을 옹호했습니다.
공격이 장기화된 유일한 이유는 공격자와 다른 채굴 풀/광부들이 사기꾼의 스팸 거래를 걸러내지 않았기 때문입니다. 다른 풀/채굴자들은 전체 비트코인을 보호하기보다는 공격자의 거래 내역으로 블록을 채워 수수료 0.1BTC를 추가로 얻으려 할 것입니다... 아니면 그냥 게으름일 수도 있습니다. 그럼에도 불구하고, 이 공격으로 인한 부정적인 영향은 몇몇 대형 채굴 풀의 참여로 쉽게 100% 상쇄될 수 있습니다. 출처: https://bitcointalk.org/index.php?topic=1098263.msg11760038#msg11760038
우리가 아는 한, wizkid057은 현재 Ocean Mining Pool에서 Luke와 함께 일하고 있습니다. 또 다른 BitcoinTalk 포럼 사용자 "spartacusrex"는 Kano의 의견에 동의하며 다음과 같이 말했습니다.
유효한 거래는 유효한 거래입니다. 기간. 이야기 끝. 정치는 없습니다. 만약 누군가가 시스템을 통해 어떤 거래가 진행될지 "편집"하는 것이 가능하다고 제안하기 시작한다면, 그것은 매우 나쁜 선례를 만들 것이라고 생각합니다.
3라운드
2015년 7월 7일, 세 번째 공격이 발생했습니다. 하지만 우리가 아는 한, 이번에 CoinWallet.EU는 공식 발표를 하지 않았습니다. 하지만 이전의 행동으로 보아 그들이 주요 용의자로 지목되고 있으며, 그들과 관련된 사람들도 있을 가능성이 있습니다. 지난 며칠 동안 사람들은 자신의 메모리풀에 27,000~ 80,000건의 거래가 있었다고 보고했습니다. 이는 지금까지 가장 폭력적이고 다면적인 공격이었으며, 인터넷에 상당한 혼란을 야기했습니다.
마더보드는 이 공격으로 인해 수수료로 8,000달러(비트코인 30개)가 소모되었으며, 이는 이전에 소모된 434유로보다 상당히 많은 금액이라고 보도했습니다. 이번에 공격자는 가능한 한 많은 쓰레기 거래를 생성하기 위해 더욱 다양한 전략을 사용했습니다. 예를 들어, 많은 먼지 거래는 WikiLeaks 지갑과 스타트업 Reddit 경쟁사인 Voat의 지갑과 같은 공개 지갑으로 전송됩니다.
스패머는 또한 "고양이"나 "개"라는 단어로 생성된 브레인월렛과 같이 개인 키가 공개적으로 알려진 주소로 소액의 비트코인을 보냅니다. 공격자의 서버가 직접 이러한 거래를 생성하지 않고도 다른 사용자가 자금을 환수하기 위해 더 많은 스팸 거래를 생성할 수 있으므로, 이로 인해 더 많은 스팸 거래가 생성되기 쉽습니다. 예를 들어, 2015년 7월, 압축되지 않은 키를 사용하여 "cat"이라는 단어에서 생성된 비트코인 주소에는 41,000건 이상의 거래가 포함되어 있었습니다. 해당 주소는 수천 개의 출력을 수신했으며, 각 출력은 0.00001 BTC의 가치를 가집니다. 2015년 7월, 압축되지 않은 키를 사용하여 "password"라는 단어에서 생성된 비트코인 주소 에는 45,000개의 비트코인 거래가 포함되어 있었습니다. "개"라는 단어로 생성된 주소에서는 43,000건 이상의 거래가 이루어졌습니다. 따라서 스패머들은 이 공격을 수행하는 데 있어 독창성과 전문성을 분명히 보여주었습니다.
공격이 절정에 달했을 당시, 비트코인 개발자이자 대형 블록 옹호자인 마이크 헌은 블록 크기 제한을 늘리는 것이 이러한 공격에 대한 최선의 방어책이라고 주장했습니다.
이 공격에 대한 가장 좋은 방어책은 블록 크기 제한을 늘려서 공격 비용을 최대한 높이는 것입니다. 확실히 제가 노력하는 바가 바로 이것입니다.
출처: https://www.reddit.com/r/Bitcoin/comments/3ck5z9/comment/cswda6x/
마이닝 풀 F2Pool은 이러한 불필요한 거래 출력을 통합하고 UTXO 팽창을 줄이기 위해 1MB 거래를 생성하여 혼란을 정리하는 데 도움을 주었습니다. 1MB 거래에는 5,000개가 넘는 입력이 포함되어 있었고, 검증하기 어려운 계산이었으며, 당시 비트코인의 시그해시 연산에 이차적 확장 취약점이 있어 노드가 이를 확인하는 데 최대 20초가 걸렸습니다. 며칠 후, 비트코인 개발자 그레고리 맥스웰은 F2Pool이 모든 입력에 동일한 서명을 사용하도록 도와 거래 검증을 더 쉽게 만들었다고 알려졌습니다. 예를 들어, 이는 7,000개 이상의 입력을 포함하는 또 다른 1MB 거래 입니다. 더 정확히 말하면, 첫 번째 입력은 거래 해시에 서명하는 고유한 서명을 가지고 있는 반면, 다른 모든 입력은 동일한 서명을 가지고 거래 해시에 서명하지 않습니다. Gregory의 보다 효율적인 통합을 통해 각 입력은 SIGHASH_ALL 대신 SIGHASH_SINGLE로 서명됩니다. SIGHASH_ALL은 서명이 모든 입력과 출력에 서명한다는 것을 의미하며, 이는 기본 동작입니다. 이러한 구분은 2025년 5월에 추가된 훌륭한 새 기능인 mempool.space 웹사이트에 잘 반영되어 있으며, SIGHASH_ALL은 녹색 키로, SIGHASH_SINGLE은 파란색 키로 표시됩니다.
4라운드
CoinWallet은 2015년 9월 에 네 번째이자 마지막 스트레스 테스트를 실시했습니다.
내일 발표될 스트레스 테스트에 대해서는 반대 의견이 많습니다. 어떤 사람들은 이를 네트워크에 대한 공격이라고 부르지만, 우리는 누군가가 기차표를 전부 사서 기차 전체를 자기만 차지하려는 것과 다를 바 없다고 봅니다. 저희는 여러 변호사와 협의했고, 일반적인 의견은 이러한 테스트가 EU나 다른 지역의 어떤 법률도 위반하지 않는다는 것입니다.
CoinWallet.EU의 최고운영책임자(COO) 또는 최고상업책임자(CCO)라고 주장하는 "제임스 윌슨"이 해당 언론사에 공격에 대한 정보를 알리기 위해 전자 거래 내역을 보냈습니다 . 윌슨은 이렇게 말했다:
목표는 커뮤니티가 비트코인을 고치는 것입니다. 지금은 고장났어요. 소규모 지갑 스타트업이 네트워크를 무너뜨릴 수는 없습니다.
네 번째 공격에서 CoinWallet.EU는 다른 접근 방식을 취했습니다. 이 회사는 BitcoinTalk 포럼에 개인 키를 직접 게시하면 200개의 비트코인을 나눠줄 것이라고 발표했습니다. 원래 게시물에는 5개의 개인 키가 포함되어 있었고, 각 키의 잔액은 0.53918 BTC였습니다. 지난 며칠 동안 Coinwallet 계정은 잔액이 포함된 수천 개의 개인 키를 스레드에 게시했습니다. 이로 인해 90,000건 이상의 거래가 생성되었는데, 이 중 많은 거래가 상충되는 거래였기 때문에 First Seen Safe(FSS) 원칙을 사용하여 삭제할 수 있었습니다. 이로 인해 네 번째 공격의 영향은 세 번째 공격에 비해 덜 심각했습니다.
이 최근 시도를 통해 회사는 "스트레스 테스트가 공식적으로 끝났다"고 발표했으며, 많은 비트코인 보유자가 승리를 선언했습니다.
CoinWallet.EU의 배후가 누구인지는 여전히 미스터리입니다. 추측에는 다음이 포함됩니다.
- Quadriga의 전 CEO인 제럴드 코튼이 CoinWallet의 창시자일 가능성이 있는데, 고객이 CoinWallet에 돈을 보낼 때 수취인을 Quadriga와 동일한 이름인 1009926 BC LTD 로 설정하라는 안내를 받기 때문입니다. 하지만 이는 CoinWallet이 Quadriga를 결제 프로세서로 사용하는 것일 수도 있습니다.
- CoinWallet의 최고운영책임자(COO)인 제임스 윌슨은 전 크레이그 라이트 동료인 제이미 윌슨과 동일 인물일 가능성이 있는데, 이는 라이트가 스팸 공격에 연루되었을 가능성이 있음을 의미합니다. 혹은 그는 또 다른 가짜 사토시인 필 제임스 윌슨(일명 스크론티 ) 일 수도 있는데, 그의 가족은 종종 그를 제임스 윌슨이라고 부른다고 말했다. (제임스 윌슨은 꽤 흔한 이름이에요)
저희는 위의 이론이 너무 약하고, 현재 단계에서는 CoinWallet이 이 사건의 배후에 있다고 결론 내릴 만한 증거가 충분하지 않다고 생각합니다.
학술 분석
2015년 스팸 공격을 다룬 학술 논문이 발표되었습니다. 발표된 데이터에 따르면, 멤풀의 크기가 두 차례나 급증하여 약 175,000건의 거래에 달했으며, 이는 스팸 공격의 세 번째와 네 번째 라운드와 일치했습니다.
본 논문은 최종적으로 다음과 같은 결론을 도출한다.
우리는 비트코인에 대한 스팸 기반 "스트레스 테스트" DoS 공격에 대한 실증적 연구를 제시합니다. 클러스터링 기반 접근 방식을 사용하여, 스팸 활동이 가장 많았던 10일 동안 총 1,645,667건의 비트코인 거래 중 385,256건(23.41%)이 스팸이었던 것으로 나타났습니다. 또한 이 공격이 스팸이 아닌 거래에 부정적인 영향을 미쳐 평균 수수료가 51%(사토시/바이트당 45에서 68로) 증가하고 처리 지연 시간이 7배(0.33시간에서 2.67시간으로) 증가했다는 사실도 보여줍니다. 이는 더 높은 수수료를 지불하기 위해 소액의 비트코인(최소 49,000달러)을 지출하려는 적대 세력이 비트코인에 대한 DoS 공격을 수행할 수 있음을 시사합니다.
결론적으로
저희는 2015년 스팸 공격이 비트코인에 상당한 영향을 미쳤다고 생각합니다. 이는 비트코인의 릴레이 전략 에 기술적인 영향을 미쳤을 뿐만 아니라, 비트코인의 스팸 거래에 대한 인식을 형성하는 데 도움이 된 일련의 영향력 있는 사건이기도 했습니다. 아마도 이러한 공격으로 인해 네트워크에 다음과 같은 변경 사항이 발생했습니다.
- 채굴자들은 블록 크기 제한 정책을 250KB 또는 750KB에서 1MB로 늘리고 있습니다. 1MB가 합의 한도이고, 채굴자들은 기본값에서 1MB로 전략을 변경했습니다. 이는 합의 규칙을 준수하기 위해 채굴자가 전략 한도를 변경하는 예입니다. 이 아이디어는 블록 용량을 늘려 스패머가 블록을 채우고 사용자 경험을 해치는 것을 어렵게 만든다는 것입니다.
- 2015년 10월, 비트코인 코어의 최소 릴레이 수수료가 5배로 증가하여 5,000사토시가 되었습니다 . 이러한 결정은 스팸 거래를 막기 위해 내려진 것으로 보인다.
- 스팸 공격으로 인해 Bitcoin Core에 메모리 풀 한도 와 기본 메모리 풀 크기 한도인 300MB가 도입된 것으로 보입니다. 대부분의 논의는 2015년 10월 에 이루어졌습니다.
- 스팸 공격으로 인해 블록 크기 제한에 대한 논쟁에서 긴장과 양극화가 고조된 것으로 보입니다. 공격에 참여한 사람들 중 일부가 대규모 블록 지지자인데, 공격 중에 사용자 경험이 저하되었다는 점을 블록 크기 제한을 늘려야 한다는 증거로 지적합니다. 일부 대규모 블록 지지자들은 이 공격으로 블록 크기 제한이 최우선 과제로 떠올랐고, 추가 논의를 촉진하는 계기가 되었다는 점에 기뻐하는 듯했습니다. 회의론자는 이것이 블록 크기 제한을 늘려서 더 많은 대중적 사용자들의 지지를 얻기 위한 조직적이고 의도적인 시도라고 말할 수도 있습니다. 그러나 소규모 블록 지지자들은 확고한 입장을 고수하며 자신들의 입장을 고수했습니다.
물론, 소규모 블로커들이 전쟁에서 승리했습니다. 블록이 가득 차는 것이 이제는 흔한 일이 되었습니다. 이제 이는 해결된 문제입니다. 블록 크기 제한을 늘려서 더 많은 쓰레기 거래가 체인에 추가되도록 하는 것은 좋은 생각이 아닙니다. 그러나 스팸을 구성하는 것이 무엇인지, 그리고 릴레이 및 마이닝 전략 관점에서 스팸을 어떻게 처리할 것인지에 대한 논쟁은 계속되고 있습니다. 2015년을 살아보지 않은 분들을 위해 이 기사에서 가장 중요한 내용 중 하나는 스팸 공격이 새로운 것이 아니라는 것입니다. 우리의 견해로는 2015년 공격자의 악의적 의도는 2023년 이후 JPEG 관련 거래를 생성한 자들의 모호하고 합법적인 의도보다 더 명확했을 가능성이 높습니다. 또 다른 흥미로운 비교는 피해에 쓰인 금액인데, 2015년에는 피해 복구에 쓰인 금액이 약 1만 달러였을 것으로 추정됩니다. 그리고 2023년 이후로 수억 달러가 "쓰레기" 거래 수수료로 지출되었습니다.