왜 모든 비트코인 사용자들이 “간단 결제 인증의 보안”에 대해 이해해야 할까요?
(Click here for the English version of “Why Every Bitcoin User Should Understand SPV Security”)
자동차를 운전하기 위해 엔진의 원리를 이해하셔야 할 필요는 없습니다. 이와 비슷하게 비트코인을 사용하기 위해서 비트코인의 “기저” 원리를 이해하셔야 할 필요는 없습니다.
그러나 공개적인 토론회에 참여하실 예정이 있으시거나 또는 비트코인의 미래에 대한 의견을 가지고 계신 경우 몇 가지 아셔야 할 것이 있습니다.
규모 확장에 대한 중대한 논의
이미 아시고 계실 수도 있지만 비트코인 개발자, 기업, 채굴자, 투자자들 간에는 일종의 내분이 진행 중입니다. 이 문제는 이 네트워크의 “규모를 확장”하는 방식에 대한 것입니다.
간단한 말로 풀이하면: 한쪽은 개인 간의 화폐 거래라는 개념을 바탕으로 하는 본래의 비트코인의 개념을 추구하고자 합니다; 다른 쪽은 비트코인을 결제 네트워크로 만들면서 동시에 블록을 작게 유지하고자 합니다.
귀하의 의견은 귀하가 생각하시는 것보다 훨씬 중요합니다
비트코인은 수십억 달러에 달하는 가치를 가지고 있는 생태계입니다. 기업들이 그들의 수익창출을 위한 강력한 의지를 바탕으로 가능한 한 모든 방식을 동원해 비트코인을 조종하기 위한 시도를 하지 않을 것이라고 생각하신다면 그것은 너무나 순진한 생각일 것입니다.
그렇다면 귀하는 어떠한 방법으로 기여할 수 있을까요?
이 시점에서 코미디언 조지 칼린이 한 진지한 내용의 발언을 인용하고 싶습니다. 강력한 힘을 가진 이익단체들이 원하는 것은 무엇일까요?
그들은 자신들의 몫이 더 많아지는 것을 원하는 동시에 다른 사람들의 몫이 더 적어지는 것을 원합니다. 하지만 그들이 원하지 않는 것이 무엇인지 알려드리겠습니다. 그들은 모든 시민들이 비판적인 사고를 할 수 있는 능력을 갖게 되는 것을 원하지 않습니다. 그들은 충분한 정보를 가진, 잘 교육된 사람들을 원하지 않습니다. 그들은 이러한 것들에 대해서는 관심이 없습니다. 이러한 것들은 그들에게 도움이 되지 않습니다. 이러한 것들은 그들의 이익에 반하는 것입니다. — 조지 칼린
작은 블록을 원하는 사람들의 ‘하우스 오브 카드’
출처 위키피디아: “하우스 오브 카드”는 1645년까지 거슬러 올라가는 역사를 가진 문구입니다. 이것은 불안정한 기반 위에 성립된 주장 또는 구조물 또는 필수요소가 제거되면 무너지는 체계를 의미합니다.
“결제 네트워크로서의 비트코인”은 다음과 같은 논리사슬에 의존하고 있습니다:
“네트워크 상의 대부분의 이용자들은 풀 노드를 이용해야 한다. 따라서 풀 노드의 이용이 용이해야 한다. 따라서 우리는 대역폭과 저장소 비용을 제한해야 할 필요가 있다. 따라서 블록을 작게 유지할 수밖에 없다.”
대부분의 이용자들은 풀 노드를 이용할 필요가 없습니다
이 근본적인 가정이 틀렸음을 밝힌다면 “하우스 오브 카드”는 무너집니다.
“대부분의 이용자들이 풀 노드를 이용해야 한다”는 내용을 지지하는 쪽의 주장은 크게 2가지 그룹으로 카테고리를 나눌 수 있습니다: a) 이 네트워크에 좋은 영향을 준다 그리고 b) 이용자의 보안을 위해 필수적이다.
별도의 글에서 전자의 그룹의 주장에 대해 다루겠습니다. 지금은 이용자의 관점에서 이 가정에 대해 간단히 논파해 봅시다.
‘간단 결제 인증(SPV)’은 초기부터 존재해 왔습니다
우선 “간단 결제 인증”은 새로운 개념이 아닙니다. 나카토모 사토시의 초기의 백서 — 비트코인: 개인 간 전자화폐 시스템의 제8장에 설명되어 있습니다. 비트코인 지갑은 Electrum이 아무런 문제 없이 수년간 성공적으로 “간단 결제 인증”을 사용해 왔던 예에서 볼 수 있듯이 이용자들이 풀 네트워크 노드를 유지해야 하는 불편함을 겪지 않도록 해 줍니다.
‘간단 결제 인증’의 원리는?
간단히 설명하자면 “간단 결제 인증”은 다른 사람들의 거래에 대해 걱정할 필요 없이 “귀하의” 거래에 대해 유효성 검사를 할 수 있도록 해 주는 것입니다.
“간단 결제 인증”은 2가지 중대한 요소를 제공합니다: a) 귀하의 거래가 블록 내에 머물도록 해 줍니다 그리고 b) 기존의 체인에 블록이 추가된다는 확인(작업증명)을 제공합니다.
이것들이 바로 거래가 유효한지 아닌지 여부에 대해 알기 위해서 귀하가 아셔야 하는 내용의 전부입니다.¹
‘간단 결제 인증’의 보안의 한계는? 풀 노드를 이용하는 이용자들에게 주어지는 이득은?
“간단 결제 인증” 지갑은 블록 내의 다른 거래에 대해서 확인하지 않기 때문에 이론적으로 블록이 유효하지 않는 경우가 있을 수 있습니다. 99.99%의 확률로 이것은 문제가 되지 않습니다. 왜냐하면 우리는 많은 수의 서로 다른 노드들에 연결할 수 있으며 모든 사람들이 반드시 동일한 블록체인에 대해 동의해야 하도록 만들 수 있기 때문입니다.
가끔 일반적이지 않은 상황이 발생할 수 있습니다. 예를 들어 새롭게 합의된 규칙이 적용되고 상대적으로 많은 수의 노드들이 잊어버리고 업그레이드를 완료하지 않음으로 인해 새로운 규칙을 적용하지 않는다고 합시다.
이러한 규칙 미적용 노드들이 기존의 네트워크로부터 분기해 나가는 데는 그리 오랜 시간이 걸리지 않습니다. 그러나 이 과정에서 “간단 결제 인증” 클라이언트는 일시적으로 이러한 규칙 미적용 노드들이 가장 긴 정상적인 체인을 가지고 있다는 잘못된 내용을 믿게 될 수 있습니다. (추가적으로 몇 개의 블록들을 거친 이후에는 가장 긴 유효 체인이 다시 명확해 지게 됩니다.)
이것이 바로 풀 노드를 이용하는 것이 “더 빠른” 보안을 제공한다고 여겨지는 이유입니다 — 왜냐하면 모든 거래에 대해 스스로 유효화 검사를 할 수 있게 되면 이와 같은 종류의 보기 드문 사례들의 해결을 위한 추가 확인을 위해 더 이상 기다릴 필요가 없게 됩니다.
또한 “간단 결제 인증” 클라이언트는 풀 노드들에게만 정보를 전달해야 함은 물론 특정 주소 및 거래에 대해서만 정보를 요청해야 하기 때문에 풀 노드를 이용하는 것은 이론적으로 개인정보에 대한 더욱 강력한 보호를 의미합니다.
‘간단 결제 인증’ 지갑 이용자가 의도적인 공격을 받을 수 있나요?
이것은 실질적으로 불가능합니다(문서로 기록된 사례가 없습니다).
이론적으로 공격자는 대량의 악성 노드들을 구축해야 함은 물론 귀하가 “실제” 비트코인 네트워크 내에서 정상 노드들을 발견할 수 없도록 막을 수 있어야 합니다.
귀하의 “간단 결제 인증” 지갑이 정상 노드를 단 한 개라도 발견하게 된다면 이 정상 노드가 가장 긴 작업증명 체인을 포함하고 있다는 사실을 인증할 수 있게 되므로 공격은 실패합니다.
더욱이 공격의 지속을 위해 공격자들은 그들의 체인을 계속 연장하기 위해 기존의 난이도로 계속 블록을 채굴해야 합니다. 이것은 엄청난 양의 해싱 능력을 필요로 하며 이 능력은 매우 많은 비용을 필요로 하므로 경제적으로 달성이 불가능합니다.
추가적으로 2가지 좋은 소식
- “간단 결제 인증” 지갑이 가장 긴 블록체인인지 여부를 판단하기 위해 단순히 다른 네트워크 노드들에만 의존하지 않아도 된다는 사실을 반드시 알고 계셔야 합니다. 이것은 최고의 헤더 체인(작업증명이 가장 많이 누적되어 있는 유효 블록 헤더의 체인)을 확인합니다. 또한 “간단 결제 인증”이 정상적으로 수행되면 이 작업증명은 적절한 해싱 난이도를 갖게 됩니다. 관심이 있으신 분들은 이것의 실제 동작의 관찰을 위한 Electrum 코드에 대해 더욱 자세히 알아보실 수 있습니다.
- 물론 이와 더불어 귀하가 이용하고 계시는 지갑의 종류는 귀하의 개인 키의 보안에 어떠한 영향도 주지 않습니다.
지속적으로 언급되고 있는 ‘“간단 결제 인증” 사기방지’란 무엇인가요?
“사기방지”를 위한 제안은 위에서 설명되어 있는 대로 규칙 미적용 체인이 규칙 적용 체인보다 더 많은 작업증명을 포함하고 있는 경우에 대비하여 보안성을 향상시키려고 노력하고 있습니다.
그러나 이러한 경우는 매우 드물게 발생하므로 보안성 향상의 효과는 제한적입니다.
이용자들의 보안을 유지하기 위해서 “간단 결제 인증” 사기방지가 필요하다는 주장은 명확히 잘못되었습니다.
“지출 트리를 이용한 최근의 사기방지 제안”의 저자인 토마스 반 데르 웬썸은 이에 대해 다음과 같이 동의합니다:
대중들의 믿음과는 대조적으로 “‘사기방지’ 간단 결제 인증” 및 “풀 노드”는 “간단 결제 인증” 노드와 비교해 엄청난 보안성의 향상을 가져다 주는 것을 의미하지 않습니다. 유감스럽게도 비트코인 본래의 규모 확장 모델의 현시점에서의 정체 및 폐기는 “사기방지”의 부재로 인해 발생하는 것이 아니며 오히려 비트코인의 보안성과 규모 확장 모델에 대한 잘못된 이해로 인한 것입니다.
결론
“간단 결제 인증” 지갑은 높은 수준의 보안성을 제공하며 대부분의 이용자들은 풀 노드를 이용할 필요가 없습니다. 이러한 정보를 숙지하셔서 귀하의 비트코인 지갑에 대해 안심하고 “마음의 안정”을 찾으셔도 됩니다. 또한 잘못된 가정을 바탕으로 도출된 악의적인 주장들을 논파하는 데 도움을 주실 수도 있습니다.
각주:
¹또한 “간단 결제 인증” 지갑은 귀하의 주소로 들어오는 거래에 대한 정보를 “수신”해야 합니다. 이 작업은 블룸 필터를 사용하거나 또는 “미지출 거래 산출량” 세트를 가지고 있는 서버의 도움을 받아 수행하실 수 있습니다.