비트코인은 확장성 문제를 가지고 있습니다.
비트코인은 신뢰할 수 있는 제3자에 의존하지 않는 결제를 용이하게 하기 위해 설계되었으며, 이를 달성하기 위해 시스템은 모든 사용자가 결제가 유효하다는 것을 보장할 수 있도록 검증 가능해야 합니다.
이 두 가지는 정반대의 개념입니다.
시스템이 블록체인에서 거래를 원하는 모든 사람을 지원한다면, 이러한 모든 거래를 검증하는 데 드는 비용이 엄청나게 증가하여 대부분의 사람들이 그 비용을 감당할 수 있는 제3자를 신뢰하게 됩니다. 반면, 시스템이 참여자에게 낮은 검증 비용을 유지한다면, 거래를 원하는 모든 사람이 블록체인에서 비용 효율적으로 거래할 수 없게 됩니다.
그렇다면 우리는 레이어 2로 비트코인을 확장할 수 있을까요? 하지만 그게 무슨 뜻일까요? 이 글을 읽고 있는 대부분의 사람들은 ‘확장’이라는 단어를 듣고 즉시 초당 거래 수라는 측면에서만 생각할 것입니다. 비트코인 자산으로 초당 더 많은 거래를 할 수록 우리는 더 많이 확장한 것이겠죠?
저는 그렇지 않다고 주장하고 싶습니다. 그것은 확장의 큰 요소 중 하나이지만, 우리가 확장하려는 유일한 것이 아닙니다. 우리는 비트코인의 검열 저항 시스템으로서의 중요한 속성을 확장하려고 합니다. 만약 우리가 확장의 이 측면을 중요하게 생각하지 않는다면, 우리는 이미 하루를 마무리할 수 있습니다. 우리는 거래소, 은행 및 기타 중앙 집중식 수탁자가 있습니다.
신뢰 없음
우리는 처리량 확장을 위해 구축하는 솔루션이 신뢰 없음(Trustlessness)을 유지하기를 원합니다. 사용자는 자금의 안전을 보장하기 위해 다른 당사자의 정직성에 의존해서는 안 됩니다. 특정 제약 내에서 사용자는 자신 외의 다른 당사자의 행동에 의존하지 않고 자금의 소유권을 보장할 수 있어야 합니다.
이것은 반드시 블록체인과 동일한 보안 모델을 의미하지는 않습니다. 즉, 자금을 주소로 보내고 키를 안전하게 유지하는 것 외에는 다른 행동이 필요하지 않습니다. 사용자는 온라인 상태를 유지해야 하거나, 정의된 시간 내에 주기적으로 온라인 상태를 확인해야 하거나, 결정론적으로 재생할 수 없는 데이터를 저장해야 할 수도 있지만, 그들은 자금을 자신의 통제 하에 유지할 수 있는 능력을 가져야 합니다.
결제 최종성
사용자는 자신이 수행한 거래가 최종적이며 되돌릴 수 없다는 높은 확신을 가져야 합니다. 이것이 블록체인이 시스템에서 수행하는 전체 핵심 기능으로, 거래를 처리하고 결제 최종성을 보장하는 것입니다.
현재 어떤 레이어 2 시스템도 실제로 오프체인에서 결제 최종성을 제공하지 않습니다. 그들이 제공하는 것은 연합, 수탁자 또는 시스템 운영자와 같은 제3자가 뒷받침하는 결제 보장입니다. 또는 사용자가 원하는 경우 미리 서명된 거래 형태로 결제 최종성을 행사할 수 있는 옵션입니다.
이론적으로 이상적인 레이어 2 시스템은 실제 결제 최종성을 오프체인에서 제공해야 합니다. 이것이 실제로 가능하지 않을 수도 있지만, 우리는 제3자가 제공하는 더 강력한 결제 보장을 찾고, 레이어 2의 일방적 종료 계획 형태로 결제 최종성 “옵션”을 위한 더 유연하고 효율적인 설계를 모색해야 합니다.
비용
사용자가 이러한 시스템을 활용하는 데 드는 비용을 최소화해야 합니다. 이는 결제 최종성 효율성과 밀접한 관련이 있습니다. 결제 최종성 옵션을 행사하는 데 비용이 너무 많이 들면, 사용자는 최종성 보장을 제3자에게 위임하는 시스템을 선택할 것입니다.
블록체인을 사용하는 비용은 사용자가 요구하는 데이터 양에 따라 달라집니다. 데이터가 많을수록 비용이 더 비쌉니다. 블록 공간의 수요가 증가하고 수수료가 상승함에 따라, 사용자는 최종성 옵션을 행사할 수 있는 비용을 감당할 수 있어야 합니다.
활성 요구 사항
실제로 결제 최종성 옵션을 제공하는 모든 현재의 레이어 2는 어떤 형태의 활성 요구 사항을 가지고 있습니다. 즉, 사용자는 그 레이어 2의 신뢰 없는 특성과 결제 속성을 보장하기 위해 온라인 상태를 유지하거나 주기적으로 온라인 상태를 유지해야 합니다.
라이트닝과 같은 시스템은 항상 온라인 상태를 유지해야 하거나, 제3자를 사용하여 온라인 상태를 유지하고 블록체인을 모니터링해야 하거나, 채널을 열어둔 사람들을 신뢰해야 합니다. 아크와 같은 시스템은 온라인 상태를 확인하고 코인을 회전시켜야 합니다. 왜냐하면 아크 배치가 만료되면 운영자가 모든 자금을 쓸어갈 수 있기 때문입니다.
이 문제를 해결하는 유일한 방법은 결제 최종성과 자금의 신뢰 없는 보안을 제3자에게 위임하는 것입니다. 우리는 제3자에게 통제를 위임하지 않는 시스템의 활성 요구 사항을 가능한 한 줄여야 합니다.
모든 것을 종합하기
처리량을 확장하면서 유지하고자 하는 이러한 속성에 대해 생각한 후에야 우리는 실제로 그 확장을 촉진하기 위해 비트코인 프로토콜 자체에서 필요한 기능에 대해 생각할 수 있습니다.
현재의 레이어 2가 신뢰 없으려면, 사용자 스스로가 오프체인에서 잔액 업데이트를 승인하는 데 참여해야 합니다. 이는 사용자가 서로 상호작용하여 업데이트를 승인해야 함을 의미합니다. 따라서 사용자가 서로 더 효율적이고 빠르게 상호작용하여 결제 최종성을 강화하는 미리 서명된 거래를 허용하는 모든 opcode나 비트코인 변경은 신뢰성을 유지하면서 확장하는 데 유익할 것입니다.
더 나아가, UTXO의 일부를 한 명의 승인된 사용자가 자유롭게 사용할 수 있도록 허용하고 나머지 잔액은 제한된 상태로 다른 사용자만 접근할 수 있도록 하는 opcode는 신뢰성을 유지하면서 사용자들이 모두 협력할 필요를 없애거나 최소화할 수 있습니다.
우리가 원하는 최종 결과에 대해, 우리가 원하는 특정 속성의 측면에서 생각하는 것이 이 프로토콜을 장기적으로 의미 있게 확장하는 데 필요합니다. 그때야 비로소 우리는 한 걸음 물러서서 원하는 최종 결과가 기술적으로 필요로 하는 구체적인 기능에 대해 생각할 수 있습니다.
비트코인을 확장하는 것은 단순히 초당 처리할 수 있는 거래 수를 늘리는 것 이상입니다. 우리는 지금 수탁자를 통해 그렇게 할 수 있습니다. 비트코인을 확장하는 것은 신뢰 없이, 검열 저항 최종성과 함께, 사용자에게 부담스러운 활성 요구 사항 없이 발생할 수 있는 거래 수를 늘리는 것이며, 더 많은 사용자 집단이 감당할 수 있는 비용으로 이루어져야 합니다.
이러한 속성을 확장할 수 없다면, 비트코인은 실제로 확장되지 않은 것입니다. 비트코인 자산으로 초당 얼마나 많은 거래가 발생하든 상관없이 말입니다.