BRC-20의 인기는 금방 식었지만, ORC-20, SRC-20 등 다양한 실험적인 토큰 표준들이 생겨나고 있다.
ORC-20은 BRC-20의 업그레이드 버전으로, 업그레이드 기능과 UTXO 모델이 추가되었다.
SRC-20은 Bitcoin Stamps를 사용해 텍스트를 기록하여 BRC-20과 완전히 다른 방식으로 토큰을 구현하였다.
오랫동안 좋지 않은 시장 상황속에도 2023년 5월, 비트코인 네트워크는 BRC-20이라는 실험적인 토큰 표준으로 인해 굉장히 뜨거운 관심을 받았다. BRC-20은 Ordinals를 활용하여 특정 형태의 Text를 비트코인의 가장 작은 단위인 사토시(Sat)에 기록함으로써, 비트코인 네트워크에서도 FT(Fungible Token)를 발행하고 전송할 수 있도록 하는 토큰 표준이다. 하지만 엄밀히 말해서, ERC-20과 달리 BRC-20은 실제 토큰은 아니며, 단지 토큰이 존재하는 것처럼 보이게 만드는 표준이다. 더 자세한 내용은 “BRC-20, 비트코인 네트워크에 활력을 불어넣다.”를 읽어보는 것을 추천한다.

BRC-20의 인기로 인해 비트코인 네트워크의 수수료는 천정부지로 치솟았지만, 이 추세는 금방가지 못하고 현재 소강 상태로 접어들고 있는 상황이다. 그런데, 여기서 또 새로운 토큰 표준이 등장한다 — ORC-20 & SRC 20. 5월 13–15일엔 ORC-20 토큰과 관련된 트랜잭션이 전체의 약 10%를 차지할 정도로 유의미한 점유율을 보여주기도 했으며, 최근에는 SRC-20 토큰도 관심을 받기 시작했다. 저번 글에서 BRC-20에 대해 알아본 것에 이어, 본 글에서는 ORC-20, SRC-20에 대해 알아보려고 한다.

ORC-20은 BRC-20 표준의 단점들을 개선한 업그레이드 버전이다. ORC-20은 BRC-20과 backward-compatible하기 때문에 기존의 BRC-20 토큰들과 호환된다는 장점이 있다.
BRC-20은 비트코인 네트워크에서 Ordinals를 활용해 새로운 방식으로 FT를 다룰 수 있는 길을 열어주었지만, 굉장히 초기의 프로젝트이기 때문에 반대로 많은 단점들을 가지고 있었다.
첫 번째로 BRC-20 토큰은 맨 처음에 배포할 때 총 공급(Supply)과 발행(Mint) 당 최대 토큰 개수가 정해져있으며 이는 변경할 수 없다. 이는 장점이기도 하지만 반대로 토크노믹스적으로 다양한 시도를 하는 것이 원천적으로 차단되어있다는 뜻이기도 하다.
두 번째로 BRC-20 토큰의 이름(ticker)은 4글자로 밖에 설정 못한다는 단점이 있다. ERC-20 토큰의 경우 다양한 길이의 이름이 존재하는데, 마찬가지로 토큰 이름 길이에 제한이 없어진다면 더욱 다양한 이름을 가진 토큰을 생성해낼 수 있다.
세 번째로는 BRC-20 토큰의 전송(Transfer)이나 부기(Bookkeeping)를 전적으로 외부의 중앙화된 인덱서(Indexers)들에게 의존한다는 단점이 있다. Inscription 과정 자체는 그저 임의의 데이터를 Sat에 기록하는 것이기 때문에, BRC-20 표준에 어긋나는 inscription의 경우 비트코인 네트워크가 이를 컨센서스 단에서 방지할 수 있는 방법은 전혀 없다.
예를들어 최대 공급량이 21,000,000개인 Ordi 토큰의 경우, 이미 21,000,000개가 모두 발행된 상태인데, 여기서 mint function을 활용하여 Ordi 토큰을 추가 발행하는 행위는 BRC-20 토큰 표준에 따르면 타당하지 않지만, 어찌됐든 비트코인 네트워크에 수수료를 내고 트랜잭션을 발생시킨 것이기 때문에 이는 기록되게 된다. 따라서 어떤 Inscription이 옳고 그른지를 판단하는 것은 전적으로 외부의 중앙화된 인덱서들에게 달려있다. 이러한 특성 때문에 실제로 공격자들이 UniSat 마켓플레이스의 취약점을 이용해, BRC-20 토큰의 이중지불 공격을 진행하여 금전적인 손해를 끼친 사례가 존재한다.
2.2.1 토큰의 구분

ORC-20 표준은 BRC-20 표준에서 많은 것들을 개선했다. 첫 번째로 토큰을 배포할 때부터 특정 토큰을 인식할 수 있는 인식자(Identifier)을 추가했다. 기존 BRC-20 토큰의 경우 똑같은 이름(tick)을 가진 토큰이 배포될 경우 외부의 인덱서가 판단하길 먼저 배포된 토큰이 타당한 토큰이라고 판단했다면, ORC-20 표준에선 똑같은 이름을 가진 토큰이 만들어져도 처음 배포될 때의 inscription number가 “id”의 형태로 들어가기 때문에 구분될 수 있다.
2.2.2 자유로워진 토큰 이름
두 번째로 4글자의 단어만 이름(tick)으로 사용할 수 있었던 BRC-20 표준과 달리 ORC-20에서는 어떠한 길이의 단어도 “tick”에 작성할 수 있다. 제일 처음으로 배포된 ORC-20 토큰인 ORC는 3글자의 단어를 띠고 있는 것을 확인할 수 있다.
2.2.3 업그레이드 가능
세 번째로 토큰의 공급(supply)나 발행(mint) 당 최대 토큰 개수를 배포 이후에도 변경할 수 있는 기능이 추가되었다. ORC-20 토큰의 배포 당시 “ug” 항목(key)에는 업그레이드 가능성 여부를 표현할 수 있는데, “ug”: “false” 라고 작성하지 않는 이상 기본적으로 모든 ORC-20 토큰은 추후에 업그레이드 가능하도록 배포된다. 이는 갑자기 맨 처음 ORC-20 토큰을 배포한 사람이 악용할 수 있다는 여지도 분명히 있으나, 반대로 발행 당 최대 토큰 개수를 점차 줄여서 마치 비트코인 반감기의 토크노믹스를 흉내낸다던지, 이미 발행이 모두 끝난 토큰의 최대 발행 개수를 늘려서 커뮤니티 멤버들에게 계속 보상한다던지 등 다양한 토크노믹스적 시도를 할 수 있는 길을 열어준다.

업그레이드 가능한 ORC-20 토큰에 한해서 “tick”과 ‘id”를 잘 명시해주고, upgrade function을 Sat에 inscribe하면 여러 파라미터들을 변경할 수 있다. 위 그림은 공급을 21,000,000에서 2,100,000으로, 발행 한도를 10,000에서 1,000으로 변경하며, 추후에 업그레이드가 불가능하도록 “ug” 항목도 “false”로 바꾼 경우이다. 참고로 “v”의 경우 ORC-20 토큰의 버전을 나타낸 것으로 업그레이드할 때마다 자동적으로 1씩 올라가기 때문에 꼭 기입할 필요는 없다.
2.2.4 UTXO 모델
네 번째로 가장 중요한 것은 토큰의 전송에 있어서 UTXO 개념을 추가했다는 것이다. UTXO 모델은 비트코인 네트워크에서 사용되는 트랜잭션 방식으로 이더리움의 account 모델과 흔히 비교된다. 예를들어 B가 $1을 가지고 있는 상태에서 A가 B에게 $2를 보냈다고 가정해보자. Account 모델일 경우 B의 잔고는 $1과 $2가 합쳐진 $3 상태로 보이지만, UTXO 모델일 경우 B의 잔고 내부는 $1에 해당하는 UTXO와 $2에 해당하는 UTXO가 따로따로 존재한다. 여기서 B가 C에게 $2.5를 보낸다고 가정한다면 $1과 $2에 해당하는 UTXO가 합쳐져 $2.5와 $0.5에 해당하는 UTXO로 나뉜 후에 $2.5는 C에게, $0.5는 B 자기 자신에게 전송된다. UTXO는 한 번만 사용될 수 있기 때문에 기본적으로 이중 지불이 방지된다는 장점이 있다. ORC-20은 토큰 전송에 있어 UTXO의 개념을 추가하였고, 이는 BRC-20과 대비되는 가장 큰 차이점이다.

ORC-20 토큰을 전송하기 위해선 위와 같은 텍스트를 Sat에 inscribe하면 되며, 마지막에 꼭 전송하고 남은 잔고를 다시 sender 본인에게 전송하는 inscription이 필요하다. 이는 UTXO의 방식과 동일한 과정이며, 만약 마지막 inscription을 진행하지 않은 경우 중간에 트랜잭션을 취소하는 것도 가능하다. 따라서 ORC-20을 도입한 지갑이나 마켓플레이스는 ORC-20의 전송 트랜잭션이 끝까지 완료될 때까지 기다리는 것이 필수적이다 (만약 위 그림에서 1번 inscription만 보고 이를 반영할 경우 중간에 취소될 수 있기 때문에 꼭 2번 inscription까지 수행되는 것을 확인해야한다).

아직 ORC-20이 출시된 지 얼마되지 않았기 때문에 BRC-20만큼의 큰 인기를 누리고 있진 않지만, 현재까지 ORC-20과 관련된 총 트랜잭션이 약 260,000개이고 수수료가 약 19.5 BTC나 사용될 정도로 나름 높은 인기를 누리고 있는 것을 확인할 수 있다.
커뮤니티 프로젝트로는 bitPunks에서 ORC-20 익스플로러를 제공하고 있으며, ORC 토큰을 활용하는 OrcDAO가 존재한다.
ORC-20 표준이 BRC-20의 단점들을 개선한 업그레이드 버전이라면, Bitcoin Stamps를 사용해 텍스트를 기록한 SRC-20 표준은 이들과는 완전히 다른 시스템이다. Ordinals의 경우 임의의 데이터를 비트코인 트랜잭션의 witness data에 기록되는데, 이는 분산원장의 용량에 큰 부분을 차지하기 때문에 노드들은 witness data를 잘라내거나 할 수 있다. 또한, witness data의 경우 모든 노드들이 저장하고, 모든 노드들에게 전파될 필요가 없다.

(Bitcoin Stamps | Source: rarestamp)
하지만 Stamps의 경우 정보가 spendable outputs, 즉 UTXO에 저장되기 때문에 모든 풀노드가 이를 저장할 수 밖에 없어서 ordinals보다 훨씬 더 영속적이고 블록체인의 특성을 가지고 있다고 평가할 수 있다. 이는 분명한 장점이지만, 데이터를 저장하는 공간의 종류가 다르기 때문에 이미지의 경우 24x24 픽셀, 8-color-depth PNG or GIF 정도가 허용되는 수준이다.
SRC-20 토큰을 deploy, mint, transfer할 때 사용되는 텍스트도 마찬가지로 json 형식으로 BRC-20과 굉장히 비슷하다. SRC-20 토큰의 스펙에 대해선 다음 깃허브 링크에서 참고할 수 있으며, 어떠한 SRC-20 토큰들이 존재하는지는 https://stampsrc.github.io/ 웹사이트에서 확인할 수 있다.
2023년 1월, Ordinal theory가 나온 이래로 비단 이미지 파일뿐만 아니라 텍스트를 활용한 시도들이 굉장히 많이 일어나고 있다. 이전 글에서 살펴본 Sats Names부터 시작하여 최근에 굉장히 많은 관심을 받은 BRC-20, 그리고 본 글에서 살펴본 ORC-20과 SRC-20이 바로 그것들의 예시이다. 심지어는 BRC-20 토큰에 스테이킹 기능을 추가하려는 시도들도 있다. 비트코인 네트워크에서 이렇게 다양한 실험들이 이루어지는 이유는 무엇일까?
첫 번째로 비트코인 네트워크의 강력한 보안 수준에 비해 가지는 매우 낮은 활용도이다. 스크립트 언어 특성상 비트코인 네트워크에선 복잡한 스마트 컨트랙트를 구현할 수 없기 때문에 굉장히 제한적인 용도로밖에 활용될 수 없지만, 그에 비해 보안 수준이 매우 높기 때문에 개발자 및 사용자들은 이러한 보안 수준을 레버리지하기 위해 끊임없이 새로운 시도들을 하고 있다. 물론 화폐의 저장, 전송 기능만을 위해서라도 굉장히 높은 수준의 보안이 요구되긴 하지만, 이에 더 나아가서 강력한 보안 수준을 다양한 곳에 활용할 수 있다면 더 좋을 것이다.
두 번째로 텍스트가 표현할 수 있는 무궁무진함이다. 마치 PC가 처음나온 시절에 많은 게임들이 텍스트로만 구동되었던 것 처럼, 텍스트는 사람들의 상상력을 자극하여 굉장히 많은 것들을 표현할 수 있다. Sats Names를 비롯하여 BRC-20, ORC-20, SRC-20 토큰들도 무형의 존재를 그저 텍스트 하나만으로 표현하고, 외부의 인덱서를 사용하여 실제 존재하는 것 처럼 취급하고 있다. 이러한 방식들은 아직 미성숙하고 한계점이 분명히 있겠지만, 이 위에서 새로운 실험들이 끊임없이 이루어질 것이라고 믿어 의심치 않는다.
이 글의 비주얼을 제공해주신 Kate에게 감사의 말씀을 전합니다.