비트코인 역사에 기록될 순간 Brc-20 2 - Ordinals
비트코인 역사에 기록될 순간 Brc-20 1 - 개요
개요 현재 암호화폐 투자는 안하고 있지만 습관이 되어 트위터로 소식은 자주 보고 있다. 최근의 이슈는 Pepe, 그리고 Brc-20이다. Pepe는 사실 바이낸스 상장까지 마친지 꽤 되었으니 이미 끝난 이
uzzam.dev
이전 글에서 Brc-20을 알기 위해 Ordinals 를 알아보기로 했다.
공식 Doc
https://docs.ordinals.com/introduction.html
Introduction - Ordinal Theory Handbook
This handbook is a guide to ordinal theory. Ordinal theory concerns itself with satoshis, giving them individual identities and allowing them to be tracked, transferred, and imbued with meaning. Satoshis, not bitcoin, are the atomic, native currency of the
docs.ordinals.com
Github
GitHub - casey/ord: 👁🗨 Rare and exotic sats
👁🗨 Rare and exotic sats. Contribute to casey/ord development by creating an account on GitHub.
github.com
봐도 잘 이해가 안간다..
영어 단어가 어렵다. 번역을 하자니 어색한 느낌이 든다.
블록체인 지식이 뛰어난 것은 아니기에.. 지금부터 적는 내용은.. 틀릴 수 있다.
공식 Doc 읽기
처음부터 순서대로 읽기보다는 faq를 보면 더 이해가 쉬운 것 같다.
https://docs.ordinals.com/faq.html
FAQ - Ordinal Theory Handbook
Ordinal theory is is a protocol for assigning serial numbers to satoshis, the smallest subdivision of a bitcoin, and tracking those satoshis as they are spent by transactions. These serial numbers are large numbers, like this 804766073970493. Every satoshi
docs.ordinals.com
Ordinal theory가 뭐야?
사토시에 시리얼넘버를 할당해주고, 추적하는 프로토콜.
사토시는 1개의 비트코인을 1억으로 쪼갠 것
즉 0.00000001 BTC == 1 Satoshi
비트코인의 총 발행량은 21,000,000개 (2100만개)
그럼 총 사토시는 2,100,000,000,000,000 개 (2100조)
그니까 2100조 까지의 숫자로 비트코인 네트워크의 모든 사토시의 시리얼 넘버를 정할 수 있다.
간단한 원리이다.
사이트 체인, 토큰, 비트코인 변경이 필요없다.
사토시에 번호만 매기는 건데 딱히...
Ordinal theory가 뭐에 좋아?
모으고, 거래하고, 계략 짜기 (scheming) 에 좋다.
각각의 사토시에 아이덴티티를 주니 추적과 거래가 가능해진다.
또 낙서(inscripiton)를 가능하게 한다.
각각 사토시에 콘텐츠를 붙여서 'bitcoin-native digital artifacts'로 만들어준다.
말이 어렵지만, 500원짜리 동전을 떠올리면 될 것 같다.
1998년 500원 동전이 비싼 걸 생각해보자..
97년 500원이나 98년 500원이나 같은 500원 => 1satoshi == 1satoshi
98년 500원의 가치가 더 높다 => 발행 년도라는 아이덴티티를 주어 98년 500원의 가치를 높게 만든다.
또 예를 들어 기안84가 500원에 낙서하는 것을 생각해보자.
'기안 84의 작품이 담긴 500원 동전' 이 되어 버린다.
ordinal theory는 어떻게 작동하나?
채굴된 순서로 붙여진다.
첫 번째 블록의 첫 번째 사토시 == 0번
첫 번째 블록의 마지막 사토시 == 4,999,999,999번 (첫 번째의 블록은 50 비트코인 이었으므로 50 * 100,000,000 - 1)
근데 트랜잭션은 출력을 없애면서 입력을 만들어준다.
이 때 서수 이론 알고리즘을 사용한다.
알고리즘은 매우 간단한데 FIFO(선입선출) 순이다.
# 왼쪽이 세 개의 입력, 오른쪽이 두 개의 출력, 각각의 알파벳은 하나의 사토시, 물음표는?
[a b] [c] [d e f] -> [? ? ? ?] [? ?]
# 입력 사토시를 순서대로 보고 그 순서대로 넣어주면 된다
정답 : [a b c d] [e f]
# 근데 2사토시를 수수료로 쓴다면?
[a b] [c] [d e f] -> [a b c d]
e랑 f는 수수료로 간다. 수수료는 블록 채굴자에게 간다.
그건 코인베이스 트랜잭션에 대한 추가 입력으로 처리 된다.
자세한 건 아래 계속..
후에 다시 말하겠지만 788,695 블록은 수수료가 블록 생성 보상을 뛰어넘은 몇 안되는 블록이다.
이 블록의 코인베이스 트랜잭션의 입력값을 보자
https://ordinals.com/tx/8174154423ceb97ead7356b8fd2109795edda6444a0e76f13526d2ad9f895e37
참고로 00000~0000:4294967295 는 코인베이스 트랜잭션임을 나타낸다.
4294967295 = 2^32 - 1 이고 코인베이스 트랜잭션의 출력 인덱스로 사용한다.
그럼 채굴자가 얻은 12.95...BTC의 사토시에는 어떠한 번호가 써 있을까?
출력값을 보면 된다.
근데 이상하게 788,695 블록의 코인베이스 트랜잭션의 출력값에는 사토시 레인지가 안보인다.
(https://ordinals.com/output/8174154423ceb97ead7356b8fd2109795edda6444a0e76f13526d2ad9f895e37:0)
내 생각에 일정 시간이 지난 블록은 안보이는 듯 하다.
라고 3시간 전까지 생각했지만, 다시 생각해보니 출력값에 안보이는 이유는 그 출력이 사용되었기 때문인 것 같다.
그러니까 UTXO가 아니기 때문 아닐까?
예로 3번째 블록을 보면
한참 지났으나, Range 가 표시된다.
그리고 채굴자가 Binance Pool 인 699998 블록도
레인지가 남아있다.
어쨌든 그냥 다른 트랜잭션을 예로 들겠다.
아래는 789,369 블록의 코베 트랜잭션의 0번째 출력이다.
(https://ordinals.com/output/9b1b62e9e8a8bd73beb6ee0007849400742a555994eaec2e6ec211f10decb2d6:0)
채굴 보상은 7.12~~~ BTC
그리고 새롭게 생긴 사토시들의 번호는 초록색의 번호로 1937105625000000–1937106250000000
다음 블록은 1937106250000000 부터 1937106875000000 까지 일 것이다.
레인지기 때문에 끝에서 1 빼주면 된다.
그 뒤에는 위에서 말한 것 처럼 수수료로 나온 사토시들이 FIFO로 붙게 된다.
정리 및 요약
내가 썼지만 뭐 이런 글을 썼나 싶다.
글 보다는 노트다...
그래서 간단하게 정리하자면
- Ordinals 프로토콜은 모든 사토시에 번호를 붙여주는 프로토콜이다~
- 번호를 붙여주므로 낙서 (inscription) 이 가능해진다
- 번호는 블록 발행 순으로 붙여지고 전송시에는 FIFO 방식으로 전송된다.
- 수수료 사토시는 발행 블록 뒤에 붙는다.
쉽게 생각하면, 1년에 한 개밖에 발행을 못하는 100원짜리 동전이 있다고 하자.
발행년도는 동전에 기록되어 있다.
그럼 모든 동전을 구별할 수 있게 된다.
거기서 피카소가 낙서를 한다.
예술품이 된다.
이것이 비트코인 NFT이다.
하지만 이건 NFT가 아니다.
이건 비트코인 'Digital Artifacts'이다.
다음 글은 Digital Artifacts와 NFT의 차이에 대해 보는 편이 좋겠다.
혹시 이 글을 보시는 분 중 틀린 개념을 보신다면 말씀 부탁드립니다.