이 글은 비트코인 분야의 독학 교육자이자 기술 중심 비트코인 팟캐스트 진행자인 신오비의 의견 기고문입니다.
이 기사는 비트코인을 위한 주요 사이드체인 설계를 다룬 시리즈의 마지막 기사입니다. 이 기사를 읽기 전에 이전 기사를 읽는 것을 강력히 권장합니다: (1) 스페이스체인, (2) 스페이스체인 사용 사례, (3) 소프트체인, (4) 드라이브체인, (5) 연합 체인.
사이드체인이란 무엇인가요? 비트코인 블록체인에서 다른 사이드체인으로 비트코인을 이동할 수 있는 블록체인입니다. 여기서 사이드체인을 설계하는 데 어려움이 있는 이유는 실제로 그렇게 할 수 없기 때문입니다. 비트코인 블록체인에서 다른 블록체인으로 비트코인을 이동할 수는 없습니다. 비트코인이 실제로 존재하는 유일한 장소는 비트코인 블록체인입니다. 비트코인은 다른 곳에서 존재할 수 없습니다. 실제로 가능한 것은 비트코인을 비트코인 블록체인에서 어떤 방식으로 잠그고, 그 비트코인을 나타내기 위해 다른 체인에서 다른 토큰을 생성하는 것입니다. 사이드체인의 가장 높은 목표는 이러한 토큰이 실제 비트코인과 1:1로 존재한다는 것을 검증할 수 있는 방식으로 그렇게 하는 것이며(쉽습니다), 어떤 상황에서도 메인체인에서 비트코인을 잠금 해제하는 유일한 방법은 다른 체인에서 합법적으로 제어하는 토큰을 검증 가능하게 잠그는 것입니다(비트코인을 검증하는 데 더 비싸지 않게 신뢰 없는 방식으로 하는 것은 매우 어렵습니다).
사이드체인 설계와 관련된 거의 모든 어려움은 이 잠금 및 잠금 해제 메커니즘이 어떻게 설계되는지에 달려 있습니다: 잠금이 어떻게 작동하는지, 잠금을 해제하는 데 필요한 조건은 무엇인지, 그리고 그 조건이 어떻게 검증되고 시행되는지입니다. 단방향 메커니즘은 코인을 잠글 수만 있고 잠금을 해제할 수 없는 경우 매우 간단합니다. OP_RETURN으로 비트코인을 소각하고 이를 검증하여 새로운 체인에서 토큰을 발행하면 됩니다. 양방향 메커니즘은 잠금과 잠금 해제를 모두 지원하므로 훨씬 더 복잡합니다. 현재까지 메인 비트코인 블록체인의 검증 비용을 증가시키는 것(소프트체인)이나 “사이드체인”에 잠긴 코인의 보안에 대한 새로운 신뢰 가정을 도입하는 것(드라이브체인 및 연합 체인)을 제외하고는 설계된 양방향 메커니즘이 없습니다.
사이드체인의 성배는 이를 시행하기 위해 어떤 신뢰도 필요하지 않으며, 메인 비트코인 블록체인의 검증 비용을 증가시키지 않는 코인의 잠금 및 잠금 해제 메커니즘입니다(즉, 메인체인과의 단일 사이드체인 상호작용은 단일 비트코인 거래를 검증하는 것보다 더 비싸지 않습니다). 현재로서는 이를 달성하는 것이 없습니다. 이제 단점을 살펴보겠습니다.
채굴 중앙화
제가 살펴본 다양한 설계는 Liquid를 제외하고는 모두 비트코인 채굴자에게 사이드체인의 보안을 제공하는 데 의존합니다. RSK는 연합 페그이지만 여전히 비트코인 채굴자를 사용합니다. 소프트체인은 이론적으로 다른 것을 사용할 수 있지만, 비트코인 채굴자만큼의 작업 증명(PoW) 보안을 제공하지 않으면 비트코인 블록체인이 서비스 거부(DoS) 공격에 노출될 수 있습니다. 따라서 실제로 소프트체인이 배포된다면 비트코인 채굴자를 사용할 것입니다. 스페이스체인의 PoW는 사이드체인을 위한 커밋트 트랜잭션을 확인하는 비트코인 채굴자에 명시적으로 기반합니다. 드라이브체인은 비트코인 채굴자에 의해 병합 채굴을 위해 특별히 설계되었습니다. 순수한 연합 사이드체인 외에 배포되는 것이 없다면 채굴자를 사이드체인에 참여시키는 것은 피할 수 없습니다.
이 위험에 들어가기 전에 명확한 구분이 필요합니다: 채굴자(하드웨어 운영자)와 채굴 조정자(풀; 블록을 구성하는 노드) 간의 차이입니다. 풀은 매우 많은 물리적 채굴 하드웨어가 없고 정당한 중앙화 지점인 경우 보상을 정기적으로 수집하는 데 필요합니다. 채굴 중앙화/탈중앙화는 간단한 주제가 아니며(여기에서 더 많은 내용 확인 가능) 채굴의 다양한 측면이 중앙화되는 방식과 다른 측면과의 상호작용에서 중요한 뉘앙스가 있습니다. 채굴 풀이 없으면 채굴자의 수입은 완전히 불규칙하고 예측할 수 없는 수익 흐름이 됩니다. 이는 미래에 채굴 풀이 규제될 수 있는 매우 현실적인 위험과 결합되어(그들은 사용자 자금을 인출할 때까지 보관하는 수탁 기관입니다), 채굴 풀이 이 공간에서 매우 위험한 중앙화 지점이 됩니다.
채굴자는 채굴을 위해 블록체인을 검증해야 합니다. 이 기능이 아웃소싱되었는지 여부와 관계없이 말입니다. 체인을 검증하지 않으면 자신이 채굴하는 블록이 유효한 트랜잭션만 포함하고 있는지 알 수 없습니다. 단 하나의 유효하지 않은 트랜잭션만으로도 그들이 찾은 블록이 무효가 되어 그들이 벌 수 있었던 모든 돈을 잃게 됩니다. 그러나 검증 요구 사항이 채굴 풀이 사용되는 이유는 아닙니다: 보상의 예측 가능성 때문입니다. 해시레이트의 1%를 가진 채굴자는 블록을 찾고 전체 보상을 수집하는 일이 매우 드물지만, 해시레이트의 1%를 가진 채굴자가 풀을 사용하면 풀 전체가 얻는 블록 보상의 약 1%를 정기적으로 수집할 수 있습니다. 검증 비용은 미미합니다. 보상 예측 가능성이 판매 포인트이며, 그래서 개발자들은 중앙화된 풀 없이도 동일한 혜택을 얻을 수 있는 방법을 찾으려 하고 있습니다. 이는 채굴자가 블록에 어떤 트랜잭션이 들어갈지를 제어하는 중앙화된 실체에 의존하지 않도록 할 수 있습니다.
이제 검증 비용이 더 높다고 상상해 보세요. 생성할 수 있는 사이드체인의 수에는 제한이 없습니다. 그리고 다른 설계처럼 비트코인 가격에 고정되어 있지 않지만, 상당한 가치를 지닌 사이드체인은 채굴 풀이 운영하여 더 많은 돈을 벌 수 있도록 할 가치가 있습니다. 그렇게 하는 채굴자는 그렇게 하지 않는 채굴자보다 더 경쟁력이 있으며, 장기적으로 채굴이 매우 얇은 이익 마진을 가진 산업이 된다면, 이는 다른 체인을 채굴하기 위한 요구가 됩니다. 하지 않으면 수익성이 없습니다. 이를 운영하는 채굴자는 운영하지 않는 채굴자에게 비용을 더 높일 수 있으며 여전히 이익을 얻을 수 있어, 다른 채굴자를 사업에서 몰아낼 수 있습니다.
또한 사이드체인의 검증 비용에 제한이 없다는 점을 기억하세요. 일부 암호화 기능을 검증하는 데 매우 비용이 많이 들 수 있으며, 이더리움과 같은 임의의 복잡성이나 BSV와 같은 전체 기가블록의 어리석음이 포함될 수 있습니다. 소프트체인도 동일한 위험을 가지며, 정규 사용자가 전체 노드를 운영하는 데 검증 비용을 증가시킵니다. 유일한 “구원”은 한 번에 하나의 사이드체인만 활성화해야 한다는 요구 사항입니다. 이는 적어도 각 개별 제안과 그 검증 비용이 활성화되기 전에 철저히 검토될 것임을 의미합니다.
드라이브체인은? 그들은 이 문제를 해결한다고 주장하지만, 현실은 그렇지 않습니다. 드라이브체인의 개념은 블록 생성자가 자신의 블록이 채굴되도록 하기 위해 대부분의 수수료를 채굴자에게 지불하고, 자신을 위해 소량만 남기는 것입니다. 이 소량은 매우 얇은 이익 마진의 세계에서 더 많은 이익을 가져올 수 있으며, 이는 다시 스스로 그렇게 하면 다른 채굴자를 사업에서 몰아낼 수 있다는 점으로 돌아옵니다. 드라이브체인 블록 생성자가 수수료를 전혀 보유하지 않고 100%를 채굴자에게 주더라도, 그들이 그렇게 할 이유는 이 사이드체인에서 수익을 창출할 수 있는 다른 측면이 없기 때문입니다. 이는 채굴자가 돈을 벌 수 있는 Miner Extractable Value (MEV)의 한 형태일 가능성이 있으며, 동일한 중앙화 효과를 가집니다. 장기적으로 모든 유형의 탈중앙화된 채굴 풀은 메인체인 노드 외에 이러한 모든 사이드체인 노드를 운영하는 채굴자를 포함해야 하며, 이는 소규모 채굴자에게 매우 비현실적인 전망이 될 수 있습니다. 이는 채굴이 얼마나 탈중앙화될 수 있는지를 제한하는 인위적인 바닥을 만들 것입니다.
연합 사이드체인만이 비트코인 채굴에 대한 이 중앙화 효과를 피할 수 있습니다. 왜냐하면 그들은 사이드체인에서 코인을 페그 아웃하는 거래에 대한 채굴자 수수료를 지불하는 것 외에는 채굴자와 상호작용하지 않기 때문입니다.
페그 및 합의의 위험
사이드체인이 채굴되는 과정은 채굴 중앙화에 대한 위험을 제시하며, 사이드체인 페그에서 코인을 잠그고 잠금 해제하는 과정은 합의에 대한 위험을 제시할 수 있습니다. 연합 페그와 단방향 페그는 합의에 대한 심각한 위험을 제시하지 않습니다. 연합 페그의 경우, 본질적으로 수탁 거래소와 다르지 않기 때문에 — 사용자가 입금하고 출금할 수 있습니다 — 이는 거래소와의 합의 프로세스와 본질적인 상호작용이 없으므로 새로운 위험을 제시하지 않습니다. 단방향 페그는 단순히 비트코인을 소각하고 복구할 수 없게 만드는 방법입니다. 이는 합의에 대한 위험이나 간섭이 아닙니다. 그러나 소프트체인과 드라이브체인은 각각 다른 방식으로 비트코인 합의에 위험을 제시합니다.
소프트체인은 메인 비트코인 네트워크에 매우 명확한 합의 위험을 제시합니다. 첫째, 이는 메인체인 전용 노드에 추가된 각 소프트체인에 대한 검증 비용을 증가시키며, 블록의 크기나 검증할 규칙의 복잡성에 따라 경미한 증가 또는 상당한 증가가 될 수 있습니다. 둘째, 비결정적 버그로 인한 합의 분열은 메인체인에 영향을 미칠 수 있습니다. 이러한 버그는 2013년에 발생한 체인 분할의 원인이었습니다. 비트코인이 데이터를 읽고 쓰는 데 사용하는 데이터베이스의 작동 방식 때문에 일부 노드는 데이터를 읽고 쓸 수 있는 시간이 “소진”되어 무효 블록을 무효화할 수 있습니다. 이러한 작업은 개별 컴퓨터 자원에 따라 제한되므로, 이를 유발할 수 있는 일관된 상황이 없었습니다. 각 개별 노드의 자원이 다르기 때문입니다.
소프트체인에서 이러한 사건은 메인체인에 대한 합의 위험을 제시합니다. 마지막으로, 소프트체인을 채굴하기 위한 난이도 요구 사항이 어떻게 정의되는지는 메인체인 전용 노드의 검증 비용에 큰 영향을 미칠 수 있습니다. 소프트체인 체인 분할이 감지되면 체인 분할의 뿌리까지 모든 블록을 다운로드하고 검증해야 하며, 특정 소프트체인의 검증 비용에 따라 메인체인 노드에 대한 검증 비용이 대폭 증가할 수 있습니다. 채굴 난이도가 비트코인 해시레이트의 총량에 비해 너무 낮게 설정되거나 허용될 수 있다면, 비트코인을 공격하여 소프트체인에서 체인 분할을 생성하는 것이 매우 저렴해질 수 있습니다. 이는 메인체인 노드 비용을 증가시키기 위해서입니다.
드라이브체인은 합의에 대해 더 미묘한 위험을 제시합니다. 위에서 논의한 바와 같이, 드라이브체인은 채굴을 더욱 중앙화하는 압력을 생성하는 다른 사이드체인 설계와 유사한 동력을 가지고 있습니다. 이는 드라이브체인에 잠긴 코인을 총괄적으로 제어하는 채굴자와의 사실과 매우 나쁜 상호작용을 합니다. 이들 중 다수는 드라이브체인에 잠긴 코인으로 무엇이든 할 수 있습니다. 드라이브체인에 있는 모든 코인의 안전성은 채굴자가 51% 공격을 실용적이지 않게 만들 만큼 탈중앙화되어 있어야 하지만, 동시에 채굴 중앙화를 증가시킬 가능성이 있는 압력을 생성합니다.
만약 드라이브체인에서 이러한 동력이 발생하고 채굴자가 페그에서 코인을 훔친다면, 그 사이드체인 사용자에게는 그 페그를 무효화하기 위한 사용자 활성화 소프트 포크(UASF) 외에 literally 아무런 선택이 없습니다. 이는 마지막 UASF와 매우 다른 동력이 될 것입니다. 2017년 사용자는 포크 양쪽에 코인을 보유한 상태에서 치킨 게임을 했습니다. UASF를 지원하는 사람들에게는 두 가지 옵션이 모두 제공되었습니다. 드라이브체인 도난을 막기 위한 UASF가 발생하면, 사용자는 두 가지 옵션을 모두 사용할 수 없습니다. UASF 쪽 포크에서만 코인을 보유하게 되며, 레거시 체인에서는 아무것도 없습니다. UASF가 실패하고 체인 분할이 발생하면 레거시 체인으로 돌아올 유인이 없습니다.
일부는 채굴자가 특정 “나쁜” 사이드체인을 공격해야 한다고 주장하기도 합니다(사이드체인에서 “나쁜” 것이 무엇인지 확실하지는 않습니다). 드라이브체인이 널리 채택된다면, 이 모든 동력은 비트코인 블록체인을 분열시키고 네트워크 효과를 희석할 수 있습니다. 드라이브체인 도난의 피해자는 포크를 계속 진행할 모든 유인이 있으며, 포크가 사라지면 모든 것을 잃게 됩니다.
마무리
이 글에서 연합 사이드체인을 언급하지 않는 것은 무례할 것입니다. 이들은 다른 설계처럼 비트코인 합의에 직접적인 위협을 제시하지 않지만, 본질적으로 신뢰할 수 있는 시스템입니다. 이러한 시스템의 사용자들은 이러한 시스템이 제공하는 유용성이 보안 모델의 트레이드오프를 감수할 만큼 가치가 있는지, 그리고 시스템을 운영하는 연합이 그들의 자금을 보관할 만큼 신뢰할 수 있는지 깊이 고민해야 합니다.
결국 현재 제안된 사이드체인 설계는 2014년 원래 논문에서 제시된 사이드체인의 원래 약속을 충족하는 데 가까운 것이 없습니다. 이들은 모두 체인 간 이동을 위한 페깅 메커니즘에서 원하는 보안 수준을 제공하지 않거나 메인 비트코인 네트워크 자체에 위험을 제시합니다. 언젠가 제로 지식 증명이 소프트체인처럼 메인체인 노드에 대한 검증 비용을 증가시키지 않거나 드라이브체인이나 연합 체인처럼 사용자 자금의 보안 측면에서 새로운 신뢰 가정을 요구하지 않는 페그를 설계하는 방법을 제공할 수 있기를 바랍니다. 하지만 현재로서는 그러한 구체적인 설계는 존재하지 않습니다. 진정으로 신뢰 없는 사이드체인이 비트코인에 중요한 개선 사항이라고 생각한다면, 언젠가 이를 구현할 기술이 개발되기를 바라지만, 현재 존재하는 것은 그에 가까운 것이 없습니다.
이 글은 신오비의 게스트 포스트입니다. 표현된 의견은 전적으로 그들의 것이며 BTC Inc 또는 Bitcoin Magazine의 의견을 반드시 반영하지는 않습니다.