比特币铭文入门10问
你可能知道比特币可以转账,但如果有人说能用比特币存文字、小图片,甚至发行类似数字藏品的东西,这是怎么做到的?这就是“比特币铭文”——一种在比特币网络上“写备注”的新用法。最近它让比特币网络有点“忙”,今天我们用10个简单问题,带你一步步了解这个新事物。
什么是比特币铭文?
简单说,比特币铭文就是在比特币的最小单位(1聪,即0.00000001 BTC)上“写备注”。这些备注可以是文字、数字,甚至简单的图片信息,通过特定规则让大家都能识别这些备注的含义,相当于给1聪比特币“做标记”。
铭刻是怎么实现的?
“铭刻”的过程有点像给1聪比特币“染色”。具体来说,就是利用比特币的一项技术(Taproot,2021年升级的功能),在转账1聪比特币时,在交易记录里添加一段文字脚本作为备注。比如备注里写“协议:Ord,内容:hello world”,这样就完成了一次简单的铭刻。
打个比方:微信红包本来是用来转账的,现在有人每次只发1分钱红包,却在红包备注里写满文字聊天。比特币铭文就类似这种“用转账备注传递额外信息”的做法。原本比特币交易备注只能写几个字符,Taproot技术让备注容量扩大到最多512字节,才让这种用法成为可能。
这里要注意,备注和智能合约不一样。智能合约像签合同,有明确的执行规则;备注只是附加信息,需要大家共同认可规则(比如Ordi协议)才能生效。比如A给B转账时备注“这个铭文归B”,只有大家都遵守Ordi协议,才会承认B拥有这个铭文。
铭文和NFT是一回事吗?
不是。NFT的数据通常部分存在区块链外(比如图片存在服务器),而铭文的所有数据都直接存在比特币区块链上。这既是铭文的特点,也是比特币网络的“烦恼”:好处是数据永远保存在链上,坏处是会让比特币账本体积变大。
什么是“客户端”?和铭文有什么关系?
客户端就是运行区块链的软件,像你用微信需要下载微信APP一样,运行比特币网络也需要专门的软件,这就是客户端。它主要负责三件事:存储账本、参与挖矿、管理钱包。
因为比特币是开放的,任何人都能开发客户端,只要遵守比特币的规则就行。目前常见的有Bitcoin Core、Bitcoin Knots等不同客户端。这些客户端是否允许铭文交易,会直接影响铭文能否上链。
如果客户端拒绝铭文交易,铭文还能用吗?
取决于拒绝铭文的客户端是否在“出块”。比特币每10分钟左右生成一个新块(记录交易的账本页),如果轮到拒绝铭文的客户端出块,那么铭文交易就无法被记录(无法上链)。
拒绝铭文的客户端出块概率大吗?
目前不大。以2023年12月的数据为例,Bitcoin Core客户端有17000多个,而Bitcoin Knots客户端不到100个(最高时约500个)。客户端数量越多,出块的概率通常越大,所以现在Knots客户端出块的机会比较小。
如果主流客户端都禁止铭文,还有办法交易吗?
有可能。比如Bitcoin Core客户端有很多人在用老版本。目前17000多个Core用户中,9000人用24-25版本,5000人用21-23版本。如果最新版本禁止铭文,但老版本仍支持,那么只要等到老版本客户端出块,铭文交易就能继续上链,只是可能需要更长时间(比如原本10分钟,现在可能要30分钟)。不过矿工通常倾向于升级到最新版本,如果大家都升级了,铭文交易就会变得困难。
铭文是在“利用比特币漏洞”吗?
不算严格意义上的漏洞,更像是“绕开了原有限制”。主观上,铭文开发者没有像黑客那样破坏规则,只是用了交易备注功能;但客观上,这种用法确实占用了更多比特币区块空间(原本备注只能存几个字节,现在能存几百字节),可能造成区块空间的“浪费”。
如果铭文支持者分叉比特币,会成功吗?
技术上很简单,复制比特币代码,用支持铭文的老版本客户端就能运行新链。但共识上很难成功。比特币的价值来自矿工、交易所、用户等各方的共同认可,要让大家都同意“包含铭文的新链才是真比特币”,几乎不可能。而且新链的安全性不如比特币(计算资源少),如果只是想发行数字藏品,现有的其他区块链(比如以太坊)已经能实现类似功能。
铭文未来可能会怎样发展?
或许主动限制交易体积是个方向。Taproot技术原本是为了让比特币支持更灵活的交易脚本,铭文利用它扩大了备注容量,但从几个字节到几百字节的增长,确实给网络带来了负担。如果能控制备注大小,避免“大家都抢着用免费空间导致资源耗尽”(即“公地悲剧”),比特币社区可能会更接受这种“数字小藏品”的玩法。
比特币账本体积对网络去中心化很重要。全节点(完整保存所有交易记录的电脑)越多,网络越去中心化。以太坊曾因账本体积过大而想办法精简,比特币因为区块小,账本体积一直控制得不错,全节点数量也多。铭文如果让账本体积快速变大,可能会减少全节点数量,影响比特币的去中心化特性。当然,铭文也能增加矿工收入,未来比特币挖矿奖励减半后,或许能成为矿工收入的补充——关键在于找到功能和网络负担的平衡点。