소개
비트코인의 스크립트 언어에 대한 잠재적 업그레이드로 OP_CAT의 재활성화에 대해 들어보셨을 것입니다. 소식의 출처에 따라 OP_CAT은 “단 10줄의 코드”, “계약 실험을 가능하게 하는 최고의 방법”, “너무 강력하다”, “위험하고 채굴자 중앙집중화를 초래한다”, 또는 “논란의 여지가 있는 소프트 포크로 이어질 것이 보장된다”고 불려왔습니다. 저는 이러한 모든 관점이 잘못되었다고 주장할 것입니다. OP_CAT은 매우 유용하며, 계약으로 사용될 수 있고, 비트코인에 대한 다음 단계로는 최선의 선택이 아닙니다. 그 이상도 그 이하도 아닙니다.
그 주장을 하기 위해, 저는 몇 가지 (명백히 분리된) 주제를 탐구할 것입니다. 그 중 일부는 불과 몇 달 전 저에게는 새로운 것이었습니다. 저는 이 내용을 한 곳에서 필요한 배경을 제공하는 방식으로 정리해 보겠습니다.
OP_CAT의 작동 방식
CAT을 통한 내성
많은 사람들이 OP_CAT에 처음 노출될 때 가지는 불타는 질문을 다뤄보겠습니다. 스택에서 두 항목을 하나로 결합하는 몇 줄의 코드(A B CAT -> AB)가 어떻게 흥미로운 것을 가능하게 할 수 있을까요? Andrew Poelstra는 최근 인터뷰에서 이를 명쾌하게 설명했으며, 저는 간단하고 짧은 설명을 게시했습니다:
비트코인은 약간 이상하므로, 물건을 나눌 수도 있습니다. 그런 다음 SHA256은 해시를 되돌릴 수 있게 해줍니다. 그리고 암호학이 수학에 불과하고 우리는 이를 처리하는 방법을 알고 있기 때문에, CAT은 서명 검증에서 해시를 추출할 수 있게 해줍니다. 결과적으로 우리는 서명 내부에서 해시된 모든 것을 검사할 수 있습니다…
— Rearden 🍯🦡 🦢 | embrace forks (@reardencode) May 17, 2024
비트코인 스크립트는 엄격히 검증 언어이기 때문에, 각 연산자는 정방향 또는 역방향으로 사용될 수 있습니다. 스크립트는 해시를 제공받고 사전 이미지를 요구하거나, 사전 이미지를 제공받고 OP_SHA256을 사용하여 해시를 요구할 수 있습니다. 이 통찰력은 OP_CAT 계약이 작동하는 방식의 첫 두 부분을 제공합니다.
비트코인 스크립트가 검증하고 있는 거래의 해시에 접근할 수 있다면, 지출 스택이 해시 사전 이미지를 제공하도록 요구하고, 스크립트가 요구하는 방식으로 나누고, 그 사전 이미지의 특정 부분을 검증할 수 있습니다. 이것이 바로 계약의 정의입니다 – 일부 비트코인을 지출하는 거래의 일부를 검증하는 것입니다.
좋습니다, 하지만 비트코인에는 스크립트가 거래의 해시에 접근할 수 있도록 해주는 OP_TXHASH와 같은 연산자가 없습니다. 여기서 우리는 BIP340 Schnorr 서명 검증 방정식을 활용하여 사용자가 해시를 제공하도록 요구합니다. 사용자가 스크립트가 0x00 바이트를 끝에 추가할 경우 유효한 거래 해시가 될 값이 제공된다면, 그 값은 스크립트가 0x01 바이트를 추가할 경우 유효한 BIP340 서명의 일부가 됩니다 (특정 다른 매개변수가 고정된 경우).
이 기술들을 결합하면 OP_CAT은 서명할 수 있는 지출 거래의 어떤 부분도 확인할 수 있게 해주며, 제한된 방식으로 부모 거래를 되돌아볼 수도 있습니다. 신중한 코드 제작으로 Purrfect Vaults, CatVM 등을 구축할 수 있습니다.
CAT의 다른 용도
하지만 우리는 그렇게 해서는 안 됩니다. OP_CAT으로 이러한 것들을 구축하는 것은 유지 관리가 어려운 괴물을 초래합니다. 대신, 우리는 OP_CAT이 잘할 수 있는 용도로 사용해야 하며, 그 용도는 많습니다: OP_CHECKSEPARATESIG의 동등한 기능을 가능하게 하고, 머클 포함 증명을 확인하며, OP_CHECKSIGFROMSTACK으로 서명 검증을 위한 데이터를 결합하는 등의 작업을 수행할 수 있습니다.
CAT의 문제점
이제 CAT이 무엇을 하는지 알았으니, 문제는 무엇일까요? 왜 사람들이 (저를 포함하여) 그것이 위험한 존재라고 말했을까요? 위에서 설명한 내성 기술을 사용하면, CAT은 두 가지 특정 구조를 가능하게 합니다: 해시레이트 에스크로와 (소문에 따르면) 자동화된 시장 조성자(AMM)입니다. 최근까지 이 두 가지는 비트코인에 중앙집중화된 MEV를 가져오는 중요한 위험으로 간주되었습니다.
MEV, MEVil 및 채굴자 중앙집중화
MEV(채굴자 추출 가능 가치)라는 용어는 다소 혼란스럽습니다. 가장 단순한 해석으로는 거래 수수료를 포함하는데, 이는 물론 비트코인의 보안을 보장하기 위해 채굴자에게 지급되기를 원합니다. MEV는 일반적으로 채굴자가 공공 릴레이 네트워크에서 볼 수 있는 수수료 외에 블록에서 추출할 수 있는 추가 가치를 의미하는 데 사용됩니다. 이는 비공식적인 지불 형태로, 채굴자가 계약에 참여하고 거래를 자신에게 유리하게 재정렬하거나, 심지어 확인된 상인에 대한 지불을 재조정하고 이중 지출하는 블록을 채굴하는 채굴자에 의해 상품과 서비스를 outright 도난하는 형태로 나타날 수 있습니다. 이러한 모든 형태의 MEV는 네트워크의 참가자들에게 일반적으로 나쁜 것으로 간주될 수 있습니다. 채굴자는 자신의 이익을 위해 네트워크에서 자신의 위치를 이용하고 다른 네트워크 참가자에게 손해를 끼치기 때문입니다. 그러나 MEV 자체는 채굴자 중앙집중화를 초래하는 시스템적 문제를 제기하지 않으며, 특정 영향을 받는 참가자에게만 국한된 문제입니다.
MEVil은 채굴자 중앙집중화를 초래하는 MEV를 지칭하는 용어입니다 – 저는 중앙집중화된 MEV라는 용어를 선호하며 앞으로 그렇게 사용할 것입니다. MEV를 중앙집중화된 MEV로 전환하기 위해서는 몇 가지 조건이 필요합니다:
- 오픈 소스 블록 템플릿 빌더가 합리적으로 추출할 수 없을 만큼 충분히 어려워야 합니다.
- 추출 가능한 총 가치는 채굴자의 비트코인 해시레이트와 함께 증가해야 합니다.
- 추출 가능한 가치는 추출 비용을 정당화해야 합니다.
이 모든 요구 사항이 충족되면, 충분히 큰 채굴자만이 MEV를 추출할 인센티브를 가지게 됩니다. 그들이 그렇게 하면, 추가 수익을 통해 더 작은 동료들의 성장 속도를 초과할 수 있습니다. MEV를 추출하는 데 드는 비용이 클수록(어떤 채굴자에게도 가치가 없을 정도까지) 더 나쁜 중앙집중화 압력을 생성합니다.
따라서 중앙집중화된 MEV를 피하는 것은 (어떤 의미에서는) 간단합니다: 비트코인에서 존재하는 MEV 기회가 모두가 쉽게 추출할 수 있을 정도로 쉬워지거나, 가치가 없을 정도로 추출 비용이 더 많이 드는 것을 보장해야 합니다 (작거나 비용이 많이 드는 경우).
자세한 내용은 @TheBlueMatt의 최근 게시물을 참조하십시오.
해시레이트 에스크로 (구 드라이브체인)
많은 세월 전 (라이트닝 네트워크나 아크, 타임아웃 트리, 롤업, 비트VM 또는 CatVM과 같은 아이디어 이전에) 사이드체인은 비트코인을 위한 궁극적인 확장 솔루션으로 간주되었습니다. 개념적으로 간단한 아이디어였습니다: 비트코인 블록은 모든 일반적인 분산화 이유로 크기가 제한되어야 하지만, 우리는 비트코인에 사이드체인을 연결할 수 있으며, 이는 더 빠른 블록, 더 큰 블록, 더 많은 계산 등을 가질 수 있습니다. 그러나 실제로 사이드체인을 구현하는 것은 그렇게 쉽지 않았습니다. 비트코인의 최종 정산은 근본적으로 작업 증명에 연결되어 있으며, 거래를 재정렬하는 데 드는 비용을 부정할 수 없기 때문에, 사이드체인이 이를 어떻게 상속받을 수 있을까요? 또한, 비트코인을 사이드체인으로 전송하는 방법은 무엇일까요? 이 두 가지 질문에 대한 가장 잘 알려진 제안은 드라이브체인(BIPs 300 및 301)이라고 불립니다. 드라이브체인의 세부 사항을 지루하게 설명할 필요는 없지만, 이러한 사이드체인 시스템의 결과는 두 가지뿐입니다: 상대적으로 사용되지 않거나 (따라서 쓸모가 없거나) 널리 사용되어 비트코인에 대한 사실상의 블록 크기 증가가 되는 것입니다. 이러한 형태의 사실상의 블록 크기 증가는 중앙집중화된 MEV의 한 형태로, 오직 더 큰 채굴자만이 잠재적으로 크고 복잡한 사이드체인 블록이 제공하는 추가 수익 기회에 비용 효과적으로 참여할 수 있게 됩니다.
OP_CAT으로 구축할 수 있는 해시레이트 에스크로는 드라이브체인 제안의 작은 부분입니다. 이는 채굴자만이 변경할 수 있는 카운터를 사용하여 사이드체인에서의 인출을 제한하는 시스템으로, 카운터의 값은 처음에 높은 값으로 시작하여 사이드체인 인출이 처리되기 전에 0에 도달해야 합니다. 이는 사이드체인에서의 “신뢰할 수 없는” 전송이라고 주장되지만, 실제로는 사이드체인에 보관된 모든 비트코인을 통제하는 채굴자 연합을 생성합니다.
드라이브체인 제안이 개발된 이후, 채굴자 제어 카운터에 기반한 인출을 생성하는 데 사용할 수 있는 모든 제안을 “드라이브체인”이라고 지칭하는 것이 일반화되었습니다 (우리에게는 불행한 일입니다). 이제 이 부적절한 약어가 도움이 되지 않는 이유가 분명해졌기를 바랍니다 – 드라이브체인은 쓸모가 없거나 위험하지만, 해시레이트 에스크로는 단순히 일부 거래의 결과에 대한 통제를 암묵적인 채굴자 연합으로 이전하는 방법일 뿐입니다.
토큰과 AMM
토큰
저에게는 결코 완전히 명확하지 않은 이유로, 인간은 좋은 토큰(혹은 나쁜 토큰 또는 정말로 단순히 토큰)을 좋아합니다. 비트코인의 시작부터 다른 토큰을 프로토콜에 포함시키는 방법에 대한 이야기가 있었습니다. Colored Coins와 Counterparty에서부터 최근의 Taproot Assets와 Runes에 이르기까지, 이러한 모든 프로토콜은 하나의 공통점을 가지고 있습니다: 외부 데이터에 대한 지식이 있거나 비트코인 거래의 순서에서 데이터를 처리하여 프로토콜 내에서 토큰의 변환을 결정하는 외부 인덱스가 필요합니다. 이 기사에서 중요한 점은 비트코인 잠금 스크립트가 토큰의 존재를 완전히 인식하지 못하며, 거래를 검증하는 비트코인 노드조차도 토큰을 인식하지 못한다는 것입니다 (즉, 비트코인 잠금 스크립트가 비트코인 UTXO 세트에 완전히 접근할 수 있다 하더라도, 이러한 토큰의 상태를 발견할 수 없습니다).
자동화된 시장 조성자 (AMM)
다른 블록체인 시스템에서는 AMM으로 알려진 계약이 두 토큰 간의 비율을 고정 가격으로 사고팔기 위해 사용되는 것이 일반적입니다. AMM에 인코딩할 수 있는 규칙은 이 기사의 범위를 넘어섭니다. 간단히 말해, AMM은 MEV에 대한 거대한 기회를 창출하며, 그 MEV의 수익을 극대화하기 위해 필요한 사적 교환 관계 때문에 중앙집중화된 MEV도 생성합니다. 이는 더 표현력이 풍부한 비트코인 스크립트를 구축하는 것에 대한 반대 주장을 하는 데 자주 사용되었습니다 – 우리는 정말로 비트코인 네트워크를 중앙집중화된 MEV의 변동성에 노출시키는 것을 피하고 싶습니다. 그러나 제가 위에서 설명한 바와 같이, 비트코인 스크립트가 얼마나 표현력이 풍부하든 간에 비트코인 외의 어떤 토큰의 상태를 평가할 수 있는 실용적인 방법은 없습니다. 비트코인 스크립트는 희귀한 사트를 찾을 수 없습니다. Rune 잔액을 찾을 수 없습니다. Taproot Asset을 식별할 수 없습니다.
비트코인 외 자산의 처분에 대한 정보에 접근할 수 없으면, 비트코인 스크립트 기반 AMM의 전체 개념은 의미가 없어집니다. 토큰 위치는 오라클의 서명으로 증명될 수 있지만, 오라클 증명은 AMM을 생성하지 않습니다. 이는 특정 수동 거래를 촉진하는 데 사용될 수 있지만, 지속 가능한 자동화 시스템은 아닙니다. 더욱이, 그러한 오라클 기반 시스템은 비트코인에 대한 변경 없이 오늘날에도 구축될 수 있습니다.
결론
여러분이 볼 수 있기를 바라지만, CAT은 그렇게 두려운 존재가 아닙니다. 사실, 그것은 전혀 두려운 존재가 아닙니다. 그것은 무한한 능력이나 마법의 힘이 없습니다. 단지 매우 유용할 수 있는 작은 연산자일 뿐입니다. 우리가 아마도 피하고 싶은 유일한 것은 OP_TXHASH, OP_TX 또는 둘 다와 같은 거래 내성을 수행할 다른 방법 없이 OP_CAT을 활성화하는 것입니다. LNHANCE와 함께 활성화하는 것조차 OP_CAT 단독보다 개선된 것입니다. 이는 많은 OP_CAT 내성 프로토콜을 달성하는 데 필요한 스크립트의 크기와 복잡성을 줄이기 때문입니다.
이 시점에서 “CAT은 무한한 모든 것을 도입한다”는 주장은 ~아무것도 아닌 것으로 줄어들었습니다.
그것은 아무도 사용하지 말아야 할 형편없는 방식으로 유용한 내성을 도입합니다. 사람들이 사용하지 않도록 돕기 위해, 우리는 CAT을 TXHASH 또는 유사한 것과 함께 활성화해야 합니다.https://t.co/nvnxYn66Um https://t.co/1Ag5TwjuUw
— Rearden 🍯🦡 🦢 | embrace forks (@reardencode) May 17, 2024
이 글은 Brandon Black의 게스트 포스트입니다. 표현된 의견은 전적으로 그들의 것이며, BTC Inc 또는 Bitcoin Magazine의 의견을 반드시 반영하지는 않습니다.