解读比特币Oridinals协议与BRC-20标准的原理创新与局限性

时间:2024-11-10  分类:电子



TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks.
比特币创世区块



最近BTC上手续费区块收入占比最高到74%,大约4.85BTC手续费,而仅仅两个月前才2%左右,源于数个百倍币的诞生以及大众fomo的情绪,让BRC20的市场迎来爆发,5月7日Bitcoin网络上有超过40万笔交易待确认,虽然他和我们熟知的ERC20虽然都被称为代币标准,但是实现的机制原理差异巨大,本文将从技术视角尝试解读其实现以及价值。


1、Ordinals协议的核心思想


1.1、概述


每一枚比特币都是由一亿个「聪(Satoshis)」构成(1btc=10^8sat),这些sat每一个都有唯一标识且无法分割。


1、根据比特币里面sat的「序数(ordinal)」,


2、赋予每一个聪特定的含义「Inscriptions(铭刻)」


这就是Ordinals协议。


2、聪是如何编号的?


他借由比特币独特的出块流程和UTXO模型,从而让每一个「聪(sat)」具有独特的编号。


比特币是在「挖矿」中产生的,挖矿过程是矿工通过解决复杂的数学问题(POW)获得出块权,来验证新交易并添加到区块链中,比特币网络每10分钟左右会生成一个新的区块,每个区块包含一组新的交易和之前区块的哈希值,其中矿工的收益又被称为Coinbase区块


在以太坊中采用「账户余额模型」,即每个地址有单独的存储结构和空间余额(balance)便是其中的一个字段。


这种模型的优点是:



缺点:会出现双重支出攻击。


但是比特币网络不同,他账户的余额并不是由一个数字表明,而是由当前区块链网络中所有跟当前账户有关的UTXO(未花费的交易输出)组成。


2.1、比特币的UTXO模型


UTXO(UnspentTransactionOutput)是一种账本模型,在比特币系统中,每一笔交易都会产生一些输出,比如转账交易的输出就是接收方的比特币地址和转账金额。这些输出被存储在UTXO集合中,用于记录未花费的交易输出。


每一笔交易都由若干个输入(Input)和若干个输出(Output)构成。每一笔交易都要花费一笔输入,产生一笔输出,而其所产生的输出,就是「未花费过的交易输出」;一个Input指向的是前面区块的某个Output,只有Coinbase交易没有输入,只有凭空输出。


UTXO模型的优点是更加安全和隐私保护,因为它没有中心化的账户记录和传统账户模型可能泄露的账户余额信息。


UTXO模型的缺点是增加了交易的验证成本和存储成本。每次交易时都需要验证交易的支付和接收是否合法,同时也需要存储大量的UTXO信息。


所以任何交易,总是可以由Input溯源到Coinbase交易继而追溯每一个聪被挖矿挖出时的序号。


所以我们说自己有多少比特币(bitcoin)实际上是指的我们拥有所有权的那些UTXO中所指明的比特币(bitcoin)的数量,因此如果我们想要统计一个地址的BTC数量:



2.2、sat和UTXO的关系


注意是每一个sat不是UTXO!由于UTXO是不可再分的最小交易单元,因此sat只能存在于UTXO中,且UTXO包含了一定范围的sats,且只能在花费某一UTXO后产生新的输出中对sats编号进行拆分


比如我在创世块或者CoinBase区块获得了50个BTC的奖励,对应的Input和Output则是


###inputs//为空


###outputs:addr_a:[0->4,999,999,999]sats


如果我进行一笔20BTC的转账给B地址,则UTXO集中会呈现,这里的input是上一笔的output


###inputs


addrA:[0->4,999,999,999]sats


###outputs


#30btctoaddrA,index=0


addrA:[0->2,999,999,999]sats


#20btctoaddrB,index=1


addrB:[3,000,000,000->4,999,999,999]sats


这里的sats消耗顺序,是基于FIFO「先进先出」(First-In-First-Out)原则,在交易费用相同的情况下,较早的UTXO将比较晚的UTXO更优先被用于交易。


这些就是OrdinalNFT的核心技术支撑,非常的简洁但是却能衍生出很多好玩的东西!这个OrdinalNumber甚至可以用来表示域名等。


2.3、Ordinalnumber的表示方法


OrdinalNumber则有很多种表示方式,比如度数表示法(DegreeNotation)


A°B′C″D‴


│││╰─Indexofsatintheblock(每10分钟一个块)


││╰───Indexofblockindifficultyadjustmentperiod(每2016个块调整一次,~2周)


│╰─────Indexofblockinhalvingepoch(每210,000个块减半,~4年一次)


╰───────Cycle,numberedstartingfrom0(减半和难度调整时间重合,~24年一次)


这种表示法有趣的地方在于,它根据比特币自身的周期性特征,人为地为sat创造了一种稀缺性:


common:所有不是区块mint出的第一个sat的sats


uncommon:该sat是某区块挖出的第一个sat(D==0)


rare:难度调整时挖出的第一个sat(C==0&&D==0)


epic:减半时挖出的第一个sat(B==0&&D==0)


legendary:发生Cycle轮换时挖出的第一个sat(B==C==D==0)


mythic:创世区块挖出的第一个sat(A==B==C==D==0)


比如:https://ordinals.net/sat/1°0′0″0‴,所以目前产生Fomo追逐的核心点并非是mint的内容中包含什么东西,而是对应的OrdinalNumber这样的序号值。


如果说序号是结合了比特币原生的诸多技术特性产生的,那么铭刻(Inscriptions)则是注入sat具体内容的方法,所以问题便来到,有了唯一标识的sat如何定义其绑定的任意内容呢?


3、如何Inscriptions(铭刻)任意内容


在讨论铭刻之前,咱们先了解下比特币扩容的两次重大升级:SegWit和Taproot


3.1、SegWit(隔离见证)


-->> 1/2 文章未完,请继续阅读

以上就是解读比特币Oridinals协议与BRC-20标准的原理创新与局限性的全部内容,望能这篇解读比特币Oridinals协议与BRC-20标准的原理创新与局限性可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。