6월 10일, RGB++ 프로토콜의 저자이자 CELL 스튜디오의 창립자인 사이퍼, 닷스왑의 공동 창립자인 린, 쉘 파이낸스의 공동 창립자인 팀시, 튜링비체인(TBC) CMO. NIGO가 UTXO 스택의 트위터 스페이스에 출연해 UTXO 모델이 비트코인 생태계에 새로운 패러다임을 가져올 수 있을지에 대해 이야기를 나눴습니다.
UTXO 스택은 프로젝트 개발자가 원클릭 발행으로 UTXO 아키텍처 기반의 비트코인 L2를 발행할 수 있는 모듈형 비트코인 L2 원클릭 발행 플랫폼으로, 기본적으로 RGB++ 프로토콜을 통합하고 있습니다. 보안 측면에서 UTXO 스택은 비트코인, CKB, 비트코인 L1 자산을 담보로 L2를 보호합니다. 간단히 말해, 비트코인 생태계의 OP 스택 + 아이겐 레이어
UTXO 스택은 ABCDE와 SNZ Capital이 주도하는 시드 라운드 펀딩을 마감했으며, OKX Ventures가 리드 투자자로 참여했습니다. Capital, 그리고 비트코인 매거진의 모기업인 BTC Inc의 벤처 캐피털 부문인 OKX 벤처스, 워터드립 캐피털, 매트릭스포트, y2z 벤처스, DRK 랩, UTXO 매니지먼트가 그 뒤를 이었습니다.
오디오를 기반으로 한 주요 내용은 다음과 같습니다:
1. 디자인 측면에서의 UTXO 모델과 계정 모델 철학, 보안, 효율성 등 본질적인 차이점과 장점은 무엇인가요?
Cipher: 디자인 철학과 효율성 측면에서 약간의 차이가 있다고 생각하며, 보안은 계정 모델과는 거의 관련이 없는 합의 메커니즘에 더 가깝다고 생각합니다.
설계 철학상, UTXO는 실제로 계산보다는 검증에 더 중점을 둡니다. 우리는 이더리움의 계정 모델을 알고 있는데, 프로그램을 작성하거나 트랜잭션을 보낼 때 액션이나 함수 호출을 보내고 트랜잭션이 블록으로 패키징되기 전까지는 그 결과를 알 수 없습니다.
일반적인 예로, 계정에 0.1ETH가 있다고 가정했을 때 0.2ETH를 송금하는 트랜잭션을 보낼 수 있을까요? 예, 전송할 수는 있지만, 아마도 풀로 들어가서 포장되어 오류가 반환될 것이며, 그만큼의 금액이 없기 때문에 가스 수수료는 여전히 공제됩니다. 하지만 송금과 동시에 누군가 계좌로 돈을 이체하여 계좌 잔액이 0.2 이더를 초과하면 거래가 성공적으로 실행되고 당연히 가스 수수료가 공제됩니다.
하지만 UTXO 모델의 경우 계좌에 돈이 충분하지 않아 송금할 수 없고, 송금을 실행하기에 충분한 돈을 마련할 수 없기 때문에 송금을 할 수 없게 됩니다. UTXO 모델에는 거래 실패 상태가 없으며, 거래 성공 또는 전송 실패의 두 가지 상태 만 있으며, 이는 소위 거래 실패는 검증 실패이며 수수료를 공제하지 않음을 의미합니다. UTXO는 블록 체인을 컴퓨팅 기계가 아닌 검증 기계라고 생각하며 계정 모델을 채택한 이더는 "세계의 컴퓨터"라는 별명을 사용하기도했습니다. 계산을 목적으로 하는 세계 컴퓨터와 설계 철학이 완전히 다른 것입니다.
효율성 측면에서도 큰 차이가 있는데, UTXO는 이전에 사용했던 상태를 명시적으로 명시한 다음 이를 파괴하고 새로운 상태로 업데이트합니다. 반면에 이더넷은 함수 호출 시점에 어떤 상태에 액세스할지 알 수 없기 때문에 모든 상태를 사전 처리하지 않는 최악의 경우에 대비해 처리해야 합니다. 그 결과 이더는 각 트랜잭션을 연속적으로만 실행할 수 있습니다. 평균적인 데스크톱 컴퓨터에는 최소 6코어 12스레드의 CPU가 있지만, 표준 EVM의 경우 여전히 단일 스레드로 실행됩니다. UTXO와 달리 UTXO는 자연적으로 병렬적이며 모든 트랜잭션이 충돌하는 트랜잭션과 자동으로 구분되고 충돌하는 트랜잭션도 트랜잭션 풀로 전송되지 않으므로 계정 모델보다 UTXO 블록체인의 효율성이 훨씬 더 높습니다. 물론 현재 어떤 형태로든 이 문제를 해결하려는 병렬 EVM이라는 이야기가 있지만, 방금 설명한 내용에서 알 수 있듯이 이것이 근본적으로 이 문제를 해결하지는 못할 것입니다.
Tim Xie: "비트코인의 UTXO 모델은 검증 지향적이며, 이더리움의 계정 모델은 계산 지향적이라는 Cipher의 말에 동의합니다. ". DeFi 서머에서 스왑을 하러 갔을 때 이더리움의 가스 수수료는 매우 높았고, 이더리움이 비트코인에 비해 블록에서 더 빨리 나오고, 더 큰 블록과 더 나은 성능을 가지고 있지만 이더리움의 확장 필요성은 실제로 비트코인보다 훨씬 높습니다. 왜일까요? 그 이유는 이더리움이 계산 모델이기 때문입니다. 디파이를 할 때 가스비를 지불하는데, 이 중 98%는 계산에 사용되고 검증, 전파, 계정 상태 저장에는 거의 사용되지 않습니다. 비트코인은 검증 네트워크이며 계산을 하지 않기 때문에 같은 시나리오에서 비트코인의 두 번째 레이어에서 대출이나 스와핑을 할 경우 이더리움보다 수수료가 더 저렴합니다.
두 번째는 동시성인데, 왜 EVM이 직렬인지, 방금 사이퍼가 아주 명확하게 설명했는데 UTXO는 동시성을 할 수 있는데 비즈니스에 어떤 차이가 있을까요? 이더리움에서 대출을 할 때, 돈을 빌리려면 담보가 있어야 하고, 담보 거래가 확정되고 상태가 고정될 때까지 기다려야 순담보 가치와 청산 임계값을 계산해서 돈을 빌릴 수 있다는 비즈니스 로직이 있기 때문에 돈을 예치해야 하고, 그게 모두 직렬식입니다. 반면 UTXO는 동시성이 가능하기 때문에 모든 트랜잭션을 최대한 압축할 수 있으며, 즉, 사용자의 예금 거래와 대출 거래를 병합하여 효율성을 높일 수 있습니다.
우리의 경험에 따르면, 비트코인에서 DeFi에 UTXO 모델을 사용하는 것이 사람들이 생각하는 것만큼 사용자에게 나쁜 경험은 아니지만, 이더나 Arbitrum의 앱처럼 매끄러운 경험은 아니지만, 그렇게 나쁘지는 않습니다. 너무 나쁘지 않고 여전히 사용할 수 있습니다.
Lin: 한 가지 덧붙이겠습니다. 기존 기술은 진화하고 있고,UTXO는 계산을 하지 않는다고 생각하지 않고 똑같이 계산할 수 있다고 생각합니다. 예를 들어, 최근 우리 모두가 이야기하고 있는 비트코인 옵코드 OP_CAT을 활성화하면 비트코인의 UTXO에 상태를 유지할 수 있습니다. 비트코인의 다양한 네이티브 제한을 제거하면 비트코인의 UTXO에서 무한한 수의 이더리움을 에뮬레이션할 수 있으며, 각 이더리움은 이더리움 상태가 될 수 있고, 해당 상태에서 데이터와 실행을 계속하여 상태를 끝까지 추론할 수 있지만 이것이 반드시 EVM과 완전히 호환되는 것은 아닙니다.
그래서 비트코인도 마찬가지로 연산을 할 수 있다고 생각하고, 비트코인의 로직은 언제든지 새로운 스레드를 시작할 수 있고, 언제든지 새로운 UTXO를 분할할 수 있으며, 새로운 UTXO는 원래의 것과 완전히 단절되는 것이 비트코인 UTXO의 연산 특징 중 하나입니다.
OP_CAT의 추가는 매우 영리한 애플리케이션 시나리오로 이어질 것입니다. 예를 들어, 이더 ERC-20 토큰은 어떤 계좌에 얼마나 많은 돈이 있는지 목록을 유지하는데, OP_CAT을 추가하면 이더와 비슷한, 어쩌면 더 나은 작업을 비트코인에서 할 수 있습니다.
UTXO에서 데이터 공유는 사실 미지의 영역입니다. 예를 들어, 컨벤트는 여전히 진행 중인 작업이며, 이것이 진전되면 UTXO 간에 데이터를 공유하는 방법, 트랜잭션 외부의 데이터를 트랜잭션에서 참조하는 방법 등에 있어 획기적인 발전이 있을 수 있습니다.
NIGO: 저는 항상 이더가 비트코인의 UTXO 모델에서 계정 기반 모델로 변경한 것이 문제를 더하고 동시성이 가능했던 시스템을 탠덤 시스템으로 전환한 전형적인 사례라고 생각했습니다. 이더는 세계의 컴퓨터라고 불리는데, 왜 일반인의 계산 작업을 전 세계 채굴자들이 엄청난 양의 에너지를 사용하고 비용이 많이 들지만 실질적인 이득은 없고 오히려 전반적인 효율성을 떨어뜨리는 과정을 통해 계산해야 하나요? 이더가 지분 증명으로 전환된 후, 전체 네트워크의 채굴자(노드)는 진화 동력을 잃었습니다. 사토시 나카모토가 설계한 UTXO 모델은 자연스럽게 높은 동시성과 고성능에 적합하며, 더 많은 웹3.0 사용자들이 UTXO 모델의 잠재력을 보게 될 것이라고 믿습니다.
2. UTXO 모델 때문에 비트코인에 스마트 컨트랙트 기능이 없는 건가요? 스마트 콘트랙트 기능을 UTXO 모델 위에 구현해야 한다면 일반적으로 어떤 메커니즘을 사용하나요?
Cipher: UTXO 모델 위에 스마트 콘트랙트 기능을 구현하는 방법에는 여러 가지가 있으며, 제가 가장 잘 알고 있는 CKB가 어떻게 하는지 설명해드리겠습니다.
CKB는 비트코인의 잠금 스크립트와 동일한 잠금 스크립트를 도입했는데, 이는 현재 트랜잭션뿐만 아니라 위트니스에 입력으로 있는 데이터를 기반으로 UTXO가 소비될 때 자동으로 실행됩니다. 잠금 스크립트는 UTXO가 소비될 때 자동으로 실행됩니다. 비트코인의 잠금 스크립트와 다른 점은 비트코인의 매우 제한된 스크립팅 환경과 달리 완전한 튜링 완결형 가상 머신을 지원하므로 잠금 해제 프로세스의 이 단계에서 튜링 완결형이라는 점입니다.
동시에 CKB는 입력과 출력 모두에서 실행되는 유형 스크립트 필드를 도입했으며, 이는 자산 클래스 또는 동일한 자산에 대해 동일한 유형으로 더 많이 실행됩니다. 예를 들어, 거래 전후의 대체 가능한 토큰의 총량이 동일하게 유지되거나, 거래 전후의 대체 불가능한 토큰의 양이 동일하게 유지되거나, 콘텐츠가 동일하게 유지되거나, 새로운 자산을 발행하는 방법에 대한 권리를 가진 사람을 결정하는 데 사용되는 등 다양한 용도로 사용됩니다. 또한 그 자체로 튜링 완전형 VM입니다.
CKB의 VM은 RISC-V 하드웨어 명령어 집합을 기반으로 하며, 모든 조정에는 칩의 리플로우가 포함되므로 RISC-V 명령어 집합은 매우 간소화되고 효율적이며 잘 설계된 것입니다.
요약하자면, CKB는 튜링 컴플리트인 RISC-V VM을 사용하며, 스마트 컨트랙트 스크립트를 위한 잠금 스크립트와 유형 스크립트, 스마트 컨트랙트 상태를 위한 데이터 필드를 가지고 있습니다. 컨트랙트 상태를 위한 데이터 필드가 있어 완벽한 컨트랙트 실행 환경입니다.
Tim Xie: 쉘 파이낸스 제품을 구축하는 과정에서 대출 프로토콜과 청산을 수행하기 위해 고급 컨트랙트 기능이 필요했습니다. 저희는 라이트닝 네트워크와 같은 수준의 확장 기술이자 오프체인인 DLC(Discreet Log Contracts)를 선택했지만, 라이트닝 네트워크는 주로 결제용이고 DLC는 주로 오라클용이라는 차이점이 있습니다. 아직 튜링이 완성되지 않았고 많은 한계가 있지만, 이러한 한계에도 불구하고 DLC를 통해 대출을 할 수 있게 되었습니다.
비트코인에는 많은 OP 코드가 있고, 도트스왑의 린이 언급한 OP_CAT이나 다른 OP 코드들을 활성화하거나 잠금 해제할 수 있다면 라이트닝 네트워크와 DLC의 연장선상에서 더 많은 가능성을 만들 수 있고 스마트 계약은 분명히 가능할 것입니다. 스마트 컨트랙트는 분명히 가능합니다. 핵심은 수요가 있는지, 사용자가 있는지, 시장이 있는지, 그것을 개념화하고, 사용하고, 사용자의 요구를 충족시키기 위해 시간과 에너지를 투자할 사람이 더 많은지 여부에 달려 있습니다. 사용하는 사람이 있고 시장이 있는 한 새로운 아이디어와 새로운 개념은 자연스럽게 나올 것입니다.
비트코인 생태계는 EVM 측면에서는 완전히 달라질 것이라고 확신합니다. 비즈니스 측면에서 보면 사용자 경험은 비슷하고 스왑과 대출도 같고 오라클도 같지만 그 뒤에 있는 시스템과 최종적으로 사용할 수 있는 도구는 크게 다를 수 있습니다. 메인 비트코인 네트워크에 있다면 그 차이는 훨씬 더 커지므로, 저는 비트코인 생태계의 잠재력을 훨씬 더 크게 발휘할 수 있는 더 나은 UTXO 구조를 가진 L2에 기대를 걸고 있습니다.
Lin: 튜링 완전성을 갖추도록 설계하는 것은 정말 어렵지 않다고 생각하지만, 오히려 튜링 불완전성이 어렵고 튜링 불완전성이 아닌 스크립트를 설계하는 것은 매우 고도의 기술 작업이라고 생각합니다.
비트코인의 원래 스크립트는 튜링 완전형이었지만 지금은 많은 기능이 차단된 것뿐입니다. 예를 들어 앞서 언급한 OP_CAT은 매우 중요한 기능이지만 운영자에 의해 비활성화되어 버렸죠. 비트코인은 처음에 이러한 연산자 없이 설계되었습니다. 비트코인은 많은 연산자들과 함께 시작했지만, 소위 보안 문제, 또는 연산자가 무엇인지, 어떻게 작동하는지에 대한 명확성 부족 등의 이유로 특정 연산자들이 비활성화되었습니다. 게다가 스마트 콘트랙트에 사용될 수 있었던 많은 기능이 소위 표준 트랜잭션에 의해 필터링되고 있습니다. 우리는 모두 비트코인이 탈중앙화된 시스템이라고 말하지만, 이 탈중앙화된 시스템에는 놀랍게도 특정 기관에 의해 결정되는 표준 거래라는 것이 존재합니다. 표준 거래는 채굴자가 합법적인 거래를 포장할 수 있기 때문에 채굴자 공간에는 존재하지 않으며, 이는 사용자 측면에 기반한 정책 문제입니다.
요약하자면, 원래 비트코인의 이러한 능력은 그 자체로 매우 강력했다고 생각하지만, 현재 비트코인은 도용당했고, 관심이 있으시다면 Roger Ver의 저서 Hijacking Bitcoin: The BTC의 숨겨진 역사를 읽어보시기 바랍니다. 비트코인의 원초적인 힘이 봉인되어 있기 때문에 우리는 온갖 곳에서 길을 찾아야 하고 , 그것이 지금 우리가 직면하고 있는 현 상황이지만 비트코인의 미래와 비트코인의 미래는 분명히 더 나아질 것입니다.
저는 지금 나와 있는 소위 비트코인 L2라고 불리는 많은 프로토콜이 실제로는 비트코인에 가치를 기여하지 않는 기생 프로토콜이며 채굴자들이 더 높은 수입을 올릴 수 있는 방법이 없다고 말했지만 비트코인은 매우 제한적이기 때문에 실제로 그럴 수 있는 방법이 없습니다. 비유를 들어 말씀드리자면, HTTP 프로토콜은 실제로 TCP/IP 프로토콜 위에 구축된 L2이고, 저희의 HTML 프로토콜은 HTTP 프로토콜 위에 구축된 것입니다. 트랜잭션 데이터가 TCP/IP에서 완전히 분리되어 상위 계층의 프로토콜과 분리되어 다른 곳에서 실행되고, 다시 돌아가서 사람들에게 이것이 레이어 2 프로토콜이라고 말하는 것이 아니라 레이어별 개념이라고 생각합니다. 진정한 레이어 2 프로토콜은 실제로 한 레이어 위에 다른 레이어가 쌓여 있기 때문에 우리가 구축하려는 L2는 상위 레이어 내부에서도 합법적인 트랜잭션으로 받아들여져야 합니다. 이것이 바로 우리가 지금 스왑 레이어를 모색하는 가장 큰 이유 중 하나입니다. 자산 브릿지를 만들어서 모든 사람의 자산을 다른 곳으로 옮기겠다고 말하는 것이 아니라, 하나의 레이어 위에 많은 검증과 합의 보유자를 두는 방식으로 정착할 것으로 생각하며, 이는 특별히 좋은 방법이 아닐 수도 있습니다.
NIGO: UTXO 모델이 복잡한 스마트 컨트랙트 기능을 지원할 수 있나요? 물론 가능합니다. 컨트랙트 로직과 데이터를 UTXO에 저장한 다음, 컨트랙트 호출과 파라미터를 입력으로 사용하여 컨트랙트의 잠금을 해제하고, BVM(블록체인 가상 머신)을 통해 컨트랙트 로직을 실행하고, 궁극적으로 잠금 해제 기능을 통해 참 또는 거짓을 반환하여 계약 상태를 제어하려는 목적을 달성하는 것이죠. 이러한 패턴은 이더리움 스마트 콘트랙트 개발자에게는 다소 생소할 수 있지만, 사실 함수형 프로그래밍 아이디어와 몇 가지 개념적 변형을 결합하면 UTXO 스마트 콘트랙트는 매우 복잡한 로직을 구현할 수 있습니다.
UTXO 모델은 글로벌 상태가 없기 때문에 컨트랙트의 상태와 로직을 UTXO에 저장한 다음 UTXO 트랜잭션 호출 체인을 통해 상태를 전달하고 변환해야 하므로 각 UTXO 트랜잭션은 이전 UTXO를 소비하고 새로운 UTXO를 생성합니다. 이러한 방식으로 컨트랙트의 체인 상태 전송이 이루어질 수 있습니다. 따라서 UTXO의 잠금 해제 가능 여부는 컨트랙트의 실행 결과에 따라 상태 전송이 가능한지 여부에 따라 달라집니다. 컨트랙트가 송금, 데이터 수정 등 상태 변경을 허용하지 않는다고 판단하면 거짓을 반환하고, UTXO는 잠금 해제되지 않으며 컨트랙트 실행이 실패합니다.
컨트랙트를 데이터 상태를 전송하는 상태 머신으로 생각하면 UTXO 컨트랙트와 계정 기반 컨트랙트의 차이점을 알 수 있습니다. 계정 기반 컨트랙트의 EVM은 글로벌 상태를 유지하며, 단일 트랜잭션으로 인해 EVM이 여러 번의 상태 전송을 수행하여 컨트랙트가 실행되거나 가스가 소진될 때까지 상태 데이터를 자주 수정할 수 있습니다. 반면 UTXO 컨트랙트의 트랜잭션은 입력 컨트랙트로서 한 번만 상태 전송을 트리거하며, 컨트랙트의 내부 로직이 아무리 복잡하고 상태가 전송되는 횟수가 많아도 BVM은 최종 상태 전송 결과만 체인에 기록합니다. 따라서 UTXO 컨트랙트에는 글로벌 상태가 없고 실행 대기 중인 함수만 존재합니다.
UTXO는 다중 입력, 다중 출력이며, 모나드를 포함하여 이더코프가 원하는 병렬 EVM은 실제로 UTXO를 통해 구현할 수 있습니다. 상태를 전송해야 하는 경우 상태가 위치한 함수를 찾은 다음 함수 호출을 통해 상태를 수정하고 새로운 함수를 생성해야 합니다. 이 패턴은 UTXO 컨트랙트의 상태 전송을 훨씬 더 명확하게 만듭니다.
UTXO 컨트랙트는 외부 상태에 의존하지 않으므로 컨트랙트 호출은 몇 번을 호출해도 항상 일정한 결과를 가져오므로 단위 테스트는 물론 컨트랙트의 분석과 디버깅이 매우 편리합니다. 반면, EVM 컨트랙트는 글로벌 상태에 의존하기 때문에 외부 환경에 따라 컨트랙트의 실행 결과가 영향을 받을 가능성이 높으며, 예를 들어 잔액이 충분하면 한 결과가 나오고 부족하면 다른 결과가 나오는 등 컨트랙트의 실행 결과에 불확실성이 존재합니다. 따라서 이는 EVM 계약의 보안과 예측 가능성을 위해 중요한 문제입니다. 물론 매번 상태를 전달하는 데 비용이 드는 것은 아닙니다. 추적성이 필요한 일부 시나리오에서는 추적성을 위해 체크섬이 필요하고, 점점 더 많은 데이터가 전달될수록 상태 자체가 무한대로 부풀려지기 때문에 UTXO가 전달되는 체인이 늘어날수록 상태가 커질 수 있습니다. TBC는 해싱과 데이터 추출과 같은 다른 기술과 암호화 수단을 통해 상태 확장이라는 주요 문제를 해결했습니다. 따라서 다른 UTXO 체인과 구별되는 TBC 스마트 컨트랙트의 중요한 특징은 UTXO 모델이 TBC가 무한 확장을 수행할 수 있는 기반이 되며, UTXO 모델에서 표준 전송 거래를 매우 간단하게 수행할 수 있다는 것입니다.
요약하면, TBC는 UTXO 모델의 장단점을 충분히 고려했으며, 이더리움 및 기타 UTXO 퍼블릭 체인의 본질을 바탕으로 진정한 원 레이어 UTXO 스마트 컨트랙트를 구현하기 위해 BVM 및 기타 기술의 개념을 도입한 다음 보다 사용자 친화적인 스마트 계약과 결합했습니다. 개발 도구와 결합하여 BVM 스마트 컨트랙트 작성 및 배포의 문턱을 낮췄습니다.