AlexMC 🦇🔊 Profile picture
May 9 7 tweets 2 min read Twitter logo Read on Twitter
一条🧵 讲讲 #ordinal 协议:
在这个BIP中 github.com/casey/ord/blob… ,描述了一个为BTC每个satoshi分配序号的方案。
你可能非常困惑,同质化的币怎么能像NFT一样分配序号?
我们知道每个BTC最初都是作为区块奖励,写在区块第一笔的coinbase交易中,发放给miner地址。因此每个BTC都能追溯到源头。

1/
就可以定义:每个sat 的序号按照被挖出的顺序依次递增。
问题是,coinbase交易一笔就发放了5000000000个sat,那这么多sat的序号怎么分清是多少号?
答案是暂时不用分清,你只要知道它的序号范围是x~y即可。

第二条定义:在一笔交易中,sat 被按顺序依次从input转移到output中,先入先出。(如图)

2/ Image
继续回答上一个问题,你会发现图中的 output2,始终没有区分这4 sat中谁是谁,但只要你使用它作为input,这4个sat的编号顺序是不变的,你始终能追踪到这4 个sat被拆分/组合,以及分别流向了哪个UTXO。理解到这儿就够了,如果还不理解可以多看几遍上面的图。

那给每个sat编序号有什么用呢?
3/
首先能想到的用途就是,这些sat从此有了高低贵贱。比如创世块的第一个sat 编号#1,神话级,又比如每个减半开始的第一个区块的第一个sat,也是非常稀有的。

这些sat作为有稀有度的NFT可以被很自然地辨别、转移。但这还不够,普通sat太多了,因此需要引入铭文(inscriptions)的概念,来给一般sat铭刻

4/ Image
铭文定义:在BTC交易的解锁脚本里,写一段 "OP_FALSE OP_IF … OP_ENDIF" ,这个... 里写铭文的内容。则这笔交易中,第一个output里的第一个sat,被赋予了一个铭文。

别急,先解释这段代码是什么意思。BTC交易中的input要想能被使用,必须执行“解锁脚本”,一般情况下,解锁脚本是用来验证签名的

5/
签名通过则代表你可以使用这个input,而这段代码则类似于在代码末尾加了一句“if(false) {...}”,也就是说...里的铭文内容永远不会被真正执行(相当于代码注释了😂)。因此它不会对解锁脚本产生副作用,但内容却写在了链上,可以被任何人读取并解析出来。
被if包裹住的被称为“信封”,也就是铭文内容

6/ Image
注意,铭文所赋予的是交易的output中的第一个sat。
(剩下的sat是陪跑的)。并且当这个sat被铭一次文之后,以后再铭它,都是不算数的。

你会发现,这个刻铭文的操作,其本质上就是在链上写了个字。其他所有的约束,都是人们遵守协议的约定去解读。

有很多BTC之上的协议都是如此,比如Omni Layer

7/

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with AlexMC 🦇🔊

AlexMC 🦇🔊 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @alex_metacraft

May 9
一条🧵 讲透 #BRC20 的技术原理:
我们知道BTC是UTXO模型的,而ETH是账户模型的。BTC的一笔交易,并不需要已知你账户的余额,只要保证 input == output 即可。用一个比喻就是:你支付现金的时候,别人并不需要检验你的账户里是否有足够的余额可以扣除,你只需要拿出足够的票据(纸钞)支付即可。

1/ Image
而以太坊的账户模型,你可以想象成一个计算器,当别人给你3块钱,你就在计算器上按下+3,你支付给别人2块钱,就再按下-2。这个计算器始终显示的就是你当前的余额(状态)。
那么很好理解,在以太坊上的ETH和ERC20,你都可以理解为是靠状态账本维护的,每一笔交易都在改变这个账本上的状态。

2/ Image
如果你想知道某一时刻的余额(状态),你只需要把之前所有的计算器加加减减全部按一遍(交易全部执行一遍)。账户模型就是这么容易理解。

接下来就带你理解跑在BTC上的Omni USDT是如何工作的:
BTC虽没有智能合约,但有脚本的概念,其中有一个叫OP_RETURN的语句。你可以简单把它理解为“交易注释”

3/
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(