공개: 이 기사의 저자는 이더리움 프로젝트의 창립자이자 수석 과학자입니다.
지난주, 아담 백과 오스틴 힐이 Let’s Talk Bitcoin에서 그들의 최신 프로젝트인 “사이드체인”을 발표했습니다. 그들이 설명한 아이디어는 다양한 추가 기능이나 거래 유형을 허용하는 다른 규칙을 가진 대체 블록체인의 존재를 가능하게 하며, 비트코인의 가치에 연동된 통화 단위를 사용합니다. 이는 비트코인 프로토콜에 대한 다양한 확장을 실험할 수 있도록 하여 비트코인 자체에 대한 위험을 피하면서도 동일한 기본 통화 단위를 사용하는 것입니다. 아이디어가 발표되자마자 이 개념에 대한 대중의 관심이 급증하였고, 비트코인 프로토콜이 현재보다 훨씬 더 강력해질 수 있다는 새로운 희망을 가져왔습니다.
내부 구조
사이드체인의 아이디어는 새로운 것이 아닙니다. 이 개념은 적어도 작년 12월부터 존재해 왔으며, 그 이전 몇 년 동안의 전신이 있었습니다. 전신인 일방적 페깅이라는 프로토콜은 “비트코인 1.0”에서 “비트코인 2.0”으로의 전환을 관리하는 데 이론적으로 사용될 수 있는 메커니즘이었습니다. 예를 들어 비트코인 1.0에서 1300만 통화 단위가 이미 채굴을 통해 발행되었고, 800만 개가 남아 있다고 가정해 보겠습니다. BTC2.0의 배포 모델은 그 시점 이후 BTC1.0과 정확히 동일한 일정에 따라 800만 개의 단위를 채굴을 통해 배포하지만, 나머지 1300만 개는 “소각 증명”이라는 메커니즘을 통해 배포됩니다.
본질적으로, BTC1.0의 한 단위를 취하여 사용 불가능한 주소(예: 1111111111111111111114oLvT2)로 보내고, 이 거래가 발생했음을 입증하는 암호학적 증명을 제출합니다. 이 증명은 거래를 보낸 동일한 개인 키로 서명되어 비트코인 2.0의 거래로 제출됩니다. 비트코인 2.0 프로토콜에 따르면, 이는 사용자가 2.0 단위를 받을 수 있는 권리를 부여합니다. 이는 “일방적 페그”라고 불리며, 하나의 BTC2.0의 가치는 최대 하나의 BTC1.0과 같을 수 있습니다. 그렇지 않으면 사람들은 비트코인을 1:1 비율로 변환하여 차익 거래를 할 것입니다. 그러나 BTC2.0을 시장에서 BTC1.0으로 판매하는 것 외에는 돌아갈 방법이 없으므로, 실험이 실패하면 BTC2.0의 가치는 0으로 떨어질 수 있습니다.
비트코인 사이드체인은 “양방향 페깅”이라는 이 시스템의 개선된 버전을 사용합니다. BTC2.0의 한 단위를 받으려면, BTC1.0의 한 단위를 취하여 “스크립트”라는 X로 보내야 하며, 지금은 설명하지 않겠습니다. 비트코인의 스크립트는 개인 키가 소유하지 않는 주소로, 특정 조건을 충족하는 거래가 주어질 때만 비트코인을 해제하는 금고 역할을 합니다. 예를 들어, 3과 5로만 구성된 50자리 소수를 제출하는 첫 번째 사람에게 자금을 해제하는 스크립트를 가질 수 있습니다. 거래를 수행하고 그러한 거래가 이루어졌다는 암호학적 증명을 비트코인 2.0 블록체인에 게시하면 사용자는 BTC2.0의 한 단위를 받을 수 있습니다.
이제,
X의 정의는 간단합니다: X는 발신자가 BTC2.0의 한 단위를 파괴했다는 유효한 암호학적 증명이 주어지면 자금을 해제합니다(기억하세요, 이는 BTC1.0의 한 단위입니다). 따라서 BTC 1.0을 BTC2.0으로 변환하는 메커니즘이 존재하며, 그 메커니즘은 생성된 BTC2.0의 총 수에 제한된 또 다른 메커니즘을 생성하여 BTC2.0을 다시 BTC1.0으로 변환하는 데 사용할 수 있습니다. 따라서 양방향 페그입니다.
이 “암호학적 증명”이 사용하는 메커니즘은 비트코인에서 사용되는 암호학적 구조인 머클 트리에 의존합니다. 비트코인 블록에서는 블록에 모든 거래를 직접 포함하는 대신, 실제로 블록 헤더에 단일 32바이트 해시만 포함됩니다. 이 32바이트 해시는 두 개의 다른 32바이트 해시에서 계산되며, 각 해시는 또 다른 두 개의 32바이트 해시에서 계산되고, 마지막으로 바닥에 있는 값이 거래 자체가 됩니다. 이 메커니즘의 핵심은 특정 거래가 특정 블록에 존재한다는 것을 입증하는 간결한 증명의 존재를 허용하는 것입니다. 필요한 것은 해당 거래에서 루트 노드까지 올라가는 해시의 한 가지 분기이며, 1000개의 거래에 대해 총 10개의 해시 또는 100만 개의 거래에 대해 20개의 해시가 필요합니다. 이는 위조가 불가능합니다. 트리의 단일 거래라도 변경하려고 하면 변경 사항이 해시를 통해 위로 전파되어 루트 노드가 완전히 다르게 됩니다.
그러나 이는 문제를 완전히 해결하지는 않습니다. 이는 단지 어떤 블록이 주어진 거래를 포함하고 있다는 것만을 알려줍니다. 거래가 메인 체인에 있다는 것을 알려주지 않습니다. 실제로 거래에 사용된 동일한 비트코인이 이미 다른 출처로 전송되어 거래가 무효가 될 수 있습니다. 이를 해결하는 두 가지 방법이 있습니다. 첫 번째 접근법은 비트코인 2.0의 증명 메커니즘이 머클 트리 분기뿐만 아니라 블록체인을 여섯 블록까지 거슬러 올라가도록 요청하는 것입니다. 이는 상인이 여섯 번의 확인을 요청하는 것과 유사하며, 유효성을 위해 채굴력을 프록시로 사용합니다. 더 높은 보안을 위해서는 60과 같은 훨씬 더 많은 블록이 필요할 수 있습니다. 이 접근법은 간단하며 필요한 모든 매개변수를 충족하는 것처럼 보입니다.
도전 과제
그러나 위의 메커니즘은 설명된 대로 매우 불완전합니다. 일반 상인이 여섯 번의 확인을 요청할 때, 그 상인에 대한 이중 지출 공격을 수행하려면 나머지 네트워크의 총 해시 파워의 30% 이상이 실시간으로 더 빠르게 여섯 블록을 생성해야 합니다. 그러나 위에서 설명한 양방향 페깅 메커니즘에서는 악의적인 채굴자가 해시 파워의 1%만으로도 여섯 블록, 심지어는 60 블록을 생성할 수 있으며, 이 블록을 사용하여 BTC2.0 잠금 상자에 넣은 모든 BTC1.0을 사기적으로 주장할 수 있습니다(또는 반대 방향으로 무제한의 BTC2.0을 사기적으로 주장할 수 있습니다). 생각할 수 있는 하나의 패치는 잠금 상자를 만든 동일한 사람이 그것을 열도록 요구하는 것입니다. 이렇게 하면 개인당 피해를 제한할 수 있지만, 악의적인 채굴자가 다른 사람과 쉽게 공모할 수 있기 때문에 문제를 해결하지는 못합니다. 블록체인을 검증하는 메커니즘을 시간에 따라 업데이트하지 않고 제시할 방법이 없다는 근본적인 문제는 매우 어렵거나 비트코인의 “정적 잠금 상자” 스크립팅 패러다임 내에서 해결할 수 없을 가능성이 높습니다.
또 다른 접근법은 이 문제를 과도한 어려움 없이 해결할 수 있는 더 복잡하고 침투적인 방법입니다. 이는 본질적으로 비트코인 1.0의 “라이트 클라이언트”를 비트코인 2.0에 포함하는 것을 요구합니다. 라이트 클라이언트는 블록체인에서 실행되는 프로그램으로, 거래가 전송될 때마다 실행되며, 블록을 수락하고 블록 헤더를 확인하는 방식에서 모바일 전화의 비트코인 클라이언트와 정확히 동일합니다. 이 계약은 비트코인 1.0의 모든 블록 헤더의 실행 목록을 유지하며, BTC2.0의 한 단위를 받으려면 BTC1.0에서 필요한 거래를 수행했다는 암호학적 증명을 계약에 제출해야 하며, 0.1 BTC2.0의 보증금도 제출해야 합니다.
계약은 증명이 유효한지 확인하고, 계약의 내부 미니 블록체인에 있는 블록에 도달한 후 두 가지 중 하나가 발생하기를 기다립니다. 첫 번째로, 계약에 여섯 개의 비트코인 1.0 블록이 추가되면 발신자에게 한 단위의 BTC2.0과 보증금을 해제합니다. 또는 누군가가 그 시간 내에 거래가 무효라는 암호학적 증명을 제출하면(예: 존재하지 않는 비트코인을 사용함) 보증금을 받을 수 있습니다.
이것은 보안 문제를 해결하지만 한 가지 중요한 결함이 있습니다: 현재 비트코인 프로토콜 내에서는 수행할 수 없습니다. 이더리움과 같은 프로토콜에서는 계약을 위해 특별히 설계되었기 때문에 구현하기가 비교적 쉽지만, 비트코인의 스크립팅 기능은 내부 상태가 있는 계약의 존재를 허용하지 않으므로 비트코인 내에서 이를 수행하려면 비트코인 1.0 프로토콜에 상당한 변경이 필요합니다. 궁극적으로 아담 백과 오스틴 힐이 취한 접근법은 이러한 전략 중 어느 것과도 정확히 일치하지 않을 수 있지만, 문제의 복잡성은 여전히 많은 도전 과제가 남아 있음을 보여줍니다.
채굴
또 다른 중요한 질문은: 이러한 사이드체인은 어떻게 보호될 것인가입니다? 블록체인을 보호하는 표준 메커니즘은 채굴이지만, 채굴은 해당 체인에서 채굴자에게 보상을 제공하는 메커니즘이 필요합니다. 사이드체인에서는 사이드체인 통화의 모든 단위가 비트코인 블록체인에 있는 BTC 단위를 포함하는 스크립트 잠금 상자에 의해 지원되어야 하므로, 아무데서나 사이드체인 통화 단위를 발행할 수 있는 간단한 기회가 없습니다. 이 문제를 해결할 수 있는 두 가지 가능성이 있습니다: 데마레이지(즉, 사이드체인에 있는 모든 BTC에 대한 연간 세금 비율)와 거래 수수료입니다. 그러나 이 두 가지 모두 수익이 상당히 낮기 때문에 일반적인 독립 채굴이 문제를 해결할 수 있을지 확실하지 않습니다.
이 문제를 해결하기 위한 두 가지 접근법이 있습니다. 하나의 접근법은 사이드체인이 지분 증명으로 보호되도록 하고, 거래 수수료의 작은 수익을 사용하여 참여하는 이해관계자에게 이자율로 보상하는 것입니다. 그러나 이 접근법은 지분 증명을 검증하는 데 필요한 계산이 블록체인에서 직접 구현하기에는 너무 복잡할 가능성이 높기 때문에 사이드체인에 구현하기 매우 어렵습니다. 다른 접근법은 아담 백과 오스틴 힐이 홍보하는 “병합 채굴”이라고 불리며, 본질적으로 채굴자들이 비트코인 블록과 네임코인 블록의 데이터를 비트코인 블록에 포함시켜 동일한 계산 노력으로 두 체인의 보안을 동시에 제공할 수 있게 합니다.
그러나 비트코인 개발자 피터 토드가 주장했듯이, 병합 채굴 개념에는 매우 중요한 보안 결함이 있습니다. 비트코인 채굴자의 대다수가 특정 체인을 병합 채굴하기에 동의하지 않는 한, 그 체인은 전혀 안전하지 않다고 주장할 수 있습니다. 이를 이해하기 위해서는 먼저 SHA256을 사용하는 더 전통적인 알트코인의 경우를 고려해 보십시오(알트코인이 사용자 지정 알고리즘을 사용하는 경우 라이트코인 채굴자가 공격을 수행할 수 있습니다). 알트코인이 비트코인의 해시 파워의 5%를 가지고 있다면, 이중 지출을 통해 체인을 공격하려면 비트코인 네트워크의 해시 파워의 최소 5%가 알트코인 채굴로 임시로 전환되어야 합니다. 이는 가능할 수 있지만 비용이 많이 드는 조치입니다. 공격이 진행되는 동안 비트코인 채굴자는 비트코인 채굴로부터 수익을 잃게 됩니다. 그러나 병합 채굴된 사이드체인의 경우, 사이드체인의 메인라인에서 채굴하거나 공격하는 것은 모두 비용이 들지 않으므로 대체 체인을 공격하는 데 경제적 인센티브가 없습니다. 이는 단순한 추측이 아닙니다. 실제로 병합 채굴된 체인을 공격하는 채굴 풀의 실제 사례가 있었습니다.
보안 외에도 병합 채굴에 대한 의존성은 사이드체인 아이디어의 또 다른 우려스러운 한계를 드러냅니다. 암호화폐의 정신은 허가 없는 혁신이라고 주장할 수 있지만, 사이드체인을 생성하려면 모든 비트코인 채굴 풀 운영자의 50%의 허가와 적극적인 지원이 필요합니다. 이러한 제한은 사이드체인 프로토콜이 많은 사용 사례에 적합하더라도 모든 경우에 이상적이지 않을 것임을 시사합니다.
약속
사이드체인에 대한 기술적 문제를 해결할 수 있다면, 그들이 가져오는 약속은 무엇일까요? 현재 암호화폐 개발은 본질적으로 네 가지 사분면으로 분류될 수 있습니다. 첫 번째 사분면은 비트코인 통화와 비트코인 블록체인을 사용하는 프로젝트로, 본질적으로 비트코인 자체입니다. 두 번째 사분면은 비트코인 블록체인을 사용하지만 비트코인 통화를 사용하지 않는 프로토콜입니다. 마스터코인, 컬러드 코인 및 카운터파티가 이에 대한 훌륭한 예입니다. 세 번째 사분면은 독립 통화와 독립 블록체인을 모두 사용하는 것으로, 리플, 라이트코인 및 NXT와 같은 애플리케이션이 포함됩니다. 이제 사이드체인으로 마지막 사분면도 채워졌습니다: 독립 네트워크를 사용하지만 비트코인을 기본 통화로 사용하는 것입니다.
이 틈새가 어떤 애플리케이션에 가장 적합할지 지켜보는 것이 흥미로울 것입니다. 완전히 새로운 생태계에는 적합하지 않을 가능성이 높습니다. 리플이나 이더리움과 같은 완전히 독립적인 네트워크가 비트코인과 재정적으로 연결되어 서로의 가격 변동에 노출되는 것은 그다지 의미가 없습니다. 이러한 주요 노력의 경우, 종종 다양한 통화 정책을 실험하는 것이 합리적입니다. 이더리움의 이더는 매년 일정한 수의 통화 단위를 지속적으로 발행하는 선형 발행 모델을 가지고 있는 반면, 리플은 XRP의 1000억 개 단위를 리플 조직에 한 번에 모두 발행하고, 조직은 이를 개발자, 투자자 및 분산 컴퓨팅 프로젝트에 참여하는 사람들에게 시간에 따라 배포하고 있습니다. SHA256에서 SHA3로 또는 양자 컴퓨터의 경우 ECDSA에서 램포트 서명 또는 NTRU로 업그레이드하는 것과 같은 주요 프로토콜 변경을 위한 포크의 경우, 이는 확실히 완전히 합리적입니다. 중간의 모든 것에 대해서는 경우에 따라 판단해야 할 것입니다.
이더리움의 경우, 염두에 두어야 할 특별한 고려 사항이 있습니다: 이더리움은 특정 “알트코인”이 아닌 범용 암호학적 합의 플랫폼입니다. 따라서 이더리움 플랫폼에서 많은 다른 통화가 계약으로 공존할 수 있습니다. 기존의 고정 공급 통화, 분산 자율 조직에 의해 관리되는 통화 정책을 가진 통화, 과학 연구를 지원하거나 기본 소득을 제공하기 위해 존재하는 통화, 심지어 사이드체인 역할을 하는 양방향 교환 메커니즘을 갖춘 통화도 있을 수 있습니다. 따라서 이더리움은 사이드체인 사분면이나 리플/라이트코인/NXT 사분면 중 어느 쪽에도 정확하게 분류될 수 없습니다. 두 사분면 모두에 존재합니다.
실제로 이더리움 제네시스 블록이 시작되면 비트코인, 라이트코인 및 도지코인을 위한 사이드체인이 계약으로 구현될 가능성이 매우 높습니다. 사이드체인이 성공적으로 안전하게 구현될 수 있다면, 이는 이더리움이 BTC, LTC 또는 DOGE를 저장하는 선호 수단이 될 수 있음을 의미하며, 여기에는 인출 한도와 같은 기능을 포함하는 강력한 다중 서명 저장 계약이 포함됩니다. 범용 체인의 계약, 고성능 특수 목적 알트코인, 준 중앙 집중식 오픈 트랜잭션 서버, 사이드체인 및 비트코인 자체 간의 관계에서 한 가지는 분명해지고 있습니다: 암호화폐는 이전보다 더 상호 운용할 수 있게 될 것입니다.