随着Ordinals协议的出现,比特币生态迎来了全新的发展机遇。这一创新性协议通过为比特币提供编号和铭文功能,不仅丰富了比特币的应用场景,更为整个生态系统注入了新鲜活力。本文将全面解析Ordinal协议的技术细节,包括比特币编号机制、聪的追踪方法以及铭文与编号的关联性。为了更好地理解这些前沿概念,我们需要先建立对比特币基础知识的认知框架。
通过阅读本文,您将系统掌握比特币的交易运作原理和支付模型,深入理解Ordinals如何实现聪的编号与追踪,全面了解铭文的创建和交易流程,同时还能清晰把握不同类型钱包的核心差异。
比特币技术基础
比特币采用了一种独特的现金式交易模型(UTXO模型),这与传统的银行账户体系有着本质区别。举例来说,在银行转账过程中,当A向B转账100元时,系统会记录三个关键步骤:首先在A账户中扣除100元(tid1),然后在B账户中增加100元(tid2),最后建立tid1与tid2的关联记录。这种基于账户余额的记账方式与比特币的UTXO模型形成了鲜明对比。
UTXO机制解析
比特币区块链采用了一种创新的余额存储方式——未花费交易输出(UTXO)列表。每个UTXO都包含特定数量的比特币和所有者信息,类似于带有持有人签名的现金支票。当用户需要发起交易时,只需在”支票”上签名即可完成使用权的转移。特定地址的余额就是其所有UTXO金额的总和,而全网流通的比特币总量则是所有UTXO金额的加总。
在比特币交易结构中,每笔交易都包含输入和输出两部分。输入引用现有的UTXO,输出则指定新的接收地址和金额。交易发起后,相关UTXO会被临时锁定,直到交易被打包进区块并获得网络确认。此时,已使用的UTXO会被移除,新生成的UTXO则加入列表。这个过程就像使用旧支票后获得新支票,所有权也随之转移。
值得注意的是,每个UTXO只能被使用一次。当它作为输入被消费后,就会永久退出UTXO列表。同时,新区块的产生会持续更新UTXO列表的状态。通过分析区块链交易历史,我们能够准确重建任意时间点的UTXO快照。
此外,交易输入金额通常会略高于输出金额,这个差额就是支付给矿工的交易费用。费用高低与交易复杂度成正比,包含更多输入输出的交易往往需要支付更高的网络费。
为了更直观理解比特币交易结构,我们可以分析一个具体案例。比特币交易通过vin和vout两个变量分别表示”输入”和”输出”,这与传统账户模型记录余额变化的方式截然不同。
以blockchain.com上的交易0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2为例,该交易包含一个输入和两个输出。
通过bitcoin-cli的getrawtransaction和decoderawtransaction命令,我们可以查看该交易的底层结构:
比特币交易输出包含两个关键信息:地址(公钥哈希)和金额(以比特币为单位)。未被使用的交易输出称为UTXO,只有持有对应私钥的用户才能使用这些UTXO。
观察上述代码中的”vin”部分,可以看到该交易所使用的UTXO来自交易7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a999f6f18的第0个输出。通过查询历史交易,我们可以确认这个UTXO的金额为0.1 BTC。交易的两个”vout”输出创建了新的UTXO,分别对应新的余额和持有人,直到被后续交易消费。
比特币交易的完整流程包括:首先确定用户A可支配的所有UTXO集合;然后A从中选取一个或多个UTXO作为交易输入,这些输入的总金额需大于支付金额;接着设置两个输出,一个支付给B,另一个作为找零返回给A的新地址;最后等待矿工打包确认交易。由于区块大小限制,矿工会优先处理手续费高的交易。用户可以通过mempool.space实时查看矿工费情况,在转账时选择合适的手续费优先级。
聪的编号与追踪机制
比特币总量恒定为2100万枚,每枚可细分为1亿个聪(Satoshi)。Ordinals协议为全网2100万亿个聪建立了唯一的编号系统。本节将详细解析聪的编号原理、追踪方法以及稀有度分类体系。
聪的编号系统
Ordinals协议按照聪的开采顺序进行编号。下图展示了创世区块中第0个聪的表示方式。
聪的表达方式丰富多样:整数符号直接显示挖掘序号;十进制符号标注区块高度和聪的序号;度数符号包含周期、减半纪元等信息;百分比符号表示在总供应量中的位置;名称则采用a-z字符编码。这些多元化的表示方法为聪的识别和交易提供了灵活选择。
以比特币区块795952为例,其第一笔交易3a1f…b177记录了矿工奖励。这笔coinbase交易包含新挖出的比特币,由区块奖励和手续费组成。输入部分的UTXO ID由全0和区块高度构成,输出地址则是矿工钱包,金额为奖励和手续费总和。
深入分析输出部分,可以看到地址、金额及聪的分布情况。其中编号1941220000000000–1941220625000000的聪对应挖矿奖励,其余712条记录则来自交易手续费。以Sat 1941220000000000为例,其区块高度为795952,十进制表示为795952.0,稀有度标记为uncommon。
聪的流转过程
由于所有比特币都源自挖矿奖励,其流转路径完全可追溯。假设用户A通过挖矿获得编号100-110的聪(存储在UTXO abc123中)。当A向B支付5个聪时,会使用abc123作为输入,其中5个聪转给B(UTXO abc789),5个聪作为找零返回A(UTXO abc456)。实际交易中最小发送单位为546聪,UTXO ID的表示方式也更为复杂。
聪的流转遵循”先进先出”原则:挖矿产生的10个聪[100,110)存储在abc123中;转账时若A的输出在前,则A保留[100,105),B获得[105,110)。这种机制确保了聪流转的有序性和可追溯性。
聪的稀有度体系
Ordinals协议引入了基于开采顺序的稀有度分类:普通级(除区块首个聪外的所有聪)、优良级(每个区块首个聪)、稀有级(每个难度调整期首个聪)、史诗级(每次减半后首个聪)、传奇级(每个周期首个聪)和神话级(创世区块首个聪)。这种创新性的稀有度体系为比特币生态增添了收藏价值和市场活力,不同稀有度的聪在市场上呈现出差异化价值。
铭文技术实现
Ordinals与其它链上NFT存在本质区别,其元数据并非存储在特定位置,而是像铭文一样”刻录”在交易的见证数据中。这种独特的铭文方式通过隔离见证(SegWit)和Pay-to-Taproot(P2TR)技术实现,包含提交和揭示两个阶段,能够将任意内容永久铭刻在指定聪上。本节将详细解析铭文的技术原理,包括OP_RETURN的局限性、SegWit和Taproot的关键作用,以及完整的铭文流程。
OP_RETURN的局限性
Bitcoin Core 0.9版本引入的RETURN操作符允许在交易输出中添加80字节的非支付数据。虽然这种明确标记的不可消费输出不占用UTXO集内存,但仍会增大区块链体积。尽管OP_RETURN提供了直接的链上数据存储方案,但其80字节的容量限制、增加区块链负担以及推高交易费用等缺点,使其难以满足铭文存储的需求。
隔离见证技术
SegWit是比特币的重要协议升级,由Pieter Wuille于2015年提出,2017年正式实施。它将交易签名数据(见证数据)从基础交易结构中分离,有效减少了区块存储数据量,提升了网络吞吐量并降低了手续费。从技术角度看,SegWit将脚本签名信息从基础区块结构中移出,放入新的数据结构。虽然见证数据并非专为存储设计,但它意外地为铭文元数据提供了理想的存储空间。
Taproot升级
2021年的Taproot升级引入了P2TR交易类型,使交易条件能够更私密地存储在区块链中。在Ordinals铭文中,P2TR发挥着关键作用:首先,Taproot脚本路径几乎不受内容限制,且享有见证数据折扣,使铭文存储更具经济性;其次,采用提交/揭示两阶段流程,提交阶段创建包含铭文内容承诺的Taproot输出,揭示阶段才公开实际内容;最重要的是,P2TR确保元数据不会进入UTXO集,大幅节省了系统资源。
铭文实现流程
Ordinals协议巧妙利用SegWit放宽的内容大小限制(最大4MB)和Taproot的交易特性,通过重新定义OP_FALSE、OP_IF等操作码创建”信封”结构来存储铭文数据。铭文过程分为两个关键步骤:首先在提交交易中创建包含内容承诺的Taproot输出,使用特定格式存储数据;然后在揭示交易中消费该输出,公开铭文内容。这种设计确保铭文内容与被铭刻的UTXO永久绑定,且根据”先进先出”原则定位到特定聪上。
以一个BTC NFT图片为例:第一阶段交易2ddf9…f585c的输出不包含见证数据;第二阶段交易e7454…7c0e1则显示Ordinals铭文信息,输入地址为前一交易的输出,输出0.00000546BTC(546聪)将NFT发送到自己的地址,同时可在Sat 1893640468329373中找到这个铭文聪。
在比特币钱包中,这类资产可以直接查看和交易。转移NFT实质上就是发送对应的UTXO,完成铭文所有权的变更。
比特币钱包体系
随着Ordinals生态及BRC-20、ORC-20等衍生协议的发展,支持代币和NFT显示的钱包需求日益增长。本节将系统介绍比特币钱包地址的类型特点和生成原理。
比特币地址以1、3或bc1开头,类似于电子邮件地址,可用于接收比特币。从安全角度看,比特币地址不包含敏感信息,可以放心公开。现代钱包通常会为每笔交易自动生成新地址,以增强隐私保护。钱包本质上是地址集合及其对应密钥的管理工具。
密钥生成机制
比特币采用椭圆曲线Secp256k1,私钥是1到n−1之间的随机数(n≈1.15792*10^77)。这个巨大的范围确保了极高的安全性。私钥有多种编码方式:WIF和WIF-compressed形式可直接解码为原始随机数;BIP38采用AES加密,以6P开头,必须输入密码才能导入钱包。
通过椭圆曲线公式K = kG,可以从私钥k生成公钥K。公钥有两种表达形式:非压缩格式(直接连接x,y坐标并添加0x04前缀)和压缩格式(根据y的奇偶性添加02或03前缀)。
地址类型详解
比特币地址主要有四种类型:
1.Legacy (P2PKH)格式:以”1″开头,是比特币最初的地址格式,通过公钥哈希计算得到,代表”付款至公钥哈希”。
2.Nested SegWit (P2SH)格式:以”3″开头,支持更复杂功能,代表”支付至脚本哈希”。它将SegWit地址封装在P2SH地址中。
3.Native SegWit (Bech32)格式:专为SegWit设计,采用Base32编码,具有不区分大小写、错误检测能力强、QR码更小等优势,能有效降低手续费。
4.Taproot格式(P2TR):BIP0350提出的Bech32m地址,以bc1p开头,主要用于存储BRC-20和BTC NFT等资产。它改进了Bech32的安全缺陷,为版本1以上的原生隔离见证地址提供了更可靠的解决方案。
关于我们
Spectrum Labs是由区块链领域的硕士、博士研究人员和行业资深专家组成的专业团队。我们致力于区块链核心技术研究与应用探索,通过高质量的研究报告、专业课程和实用工具,帮助人们深入理解区块链技术。
BTC NFT中文社区是为全球华人打造的比特币NFT交流平台,旨在促进比特币生态的创新与发展。
声明:文章不代表CHAINTT观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险 自担!转载请注明出处:https://www.chaintt.cn/10502.html