作者:Anthony Towns

来源:https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-February/021396.html

本文为作者发表在 bitcoin-dev 邮件组中的邮件。“染色” 顾名思义,就是让一个比特币跟其它比特币显得不同。

各位好,

Casey Rodarmor 的 ordinals 协议使用了通过生命历程来跟踪单个聪的身份的技术:

2022 年 2 月 22 日,04:43:52PM -0800,Casey Rodarmor 在 bitcoin-dev 邮件组中说:

简单来说,新挖出的聪因为其挖出的顺序而被赋予连续的编号。这些编号叫做 “序号”,简称 “ordinals”。当聪在交易中花费的时候,输入中的聪的序号会按照简单的 “先进先出” 算法分配到输出中。

这项技术已经作为一项 BIP 提出:https://github.com/bitcoin/bips/pull/1408

当这种身份与关联一些数据或者说权利的标准相结合之后,就可以用来创建非同质代币(或者说准同质的代币),这些代币的所有权可以通过比特币交易来转移。

上述 BIP 提议并没有描述任何为一个 ordinals 附加数据或权利的方法,但 “ord” 工具定义了 “铭文(inscriptions)”,填补了这个空白【0】;它提供了一种在 taproot 输入的 witness 字段包含编码哑剧(mime)的数据的方法。为了制作这样的铭文,需要发起两笔交易:一笔交易将一些聪发送到一个承诺了铭文数据的特殊脚本公钥中,另一笔交易花费这些聪,使之转移给新铭刻的 ordinals 的主人;这样做就会公开完整的铭文。

【0】 https://docs.ordinals.com/inscriptions.html

但是,我认为,我们可以把铭文完全放在链下。我已经在推特上写出了这种想法【1】,但经过一些思考之后,我认为,让更多东西转入链下应该也是可行的。

【1】https://twitter.com/ajtowns/status/1619554871166013441

尤其是,与其将其视为聪的主人在聪上铭刻了一些内容(近似于在 100 元纸币上签名【2】),你可以理解成 “拥有某一聪的就是这个东西的主人”(或者说,它不是 “持有某种股票的就是股东”,而是 “拥有某一序列号的 1 元纸币的就是股东”)。

【2】https://www.espn.com/nfl/story/_/id/14375536/owner-100-bill-autograph-cleveland-browns-qb-johnny-manziel-getting-offers

实现这种想法是非常直接的:你只需要一种协议,创建一种链下的资产并将其与某个序数关联起来 —— 没有任何事情需要在链上发生。也就是说,它可以简单得就像发出一条 nostr 消息:

  {
    "pubkey": <创建者的公钥>
    "kind": 0,
    "tags": [
      ["ord", "txid:vout:sat"]
    ],
    "content": [铭文数据放在这里],
    "id": <上述内容的哈希值>
    "sig": <创建者公钥的签名>
  }

你可以通过展示一个产权的链条 —— 也就是被 “ord” 标签中的 “txid” 指定的交易 —— 来证明这条消息的最新所有权:每一笔花费某一个聪的交易都放在其中,直到你找到一笔还在 UTXO 集中的交易【3】。你不需要提供见证数据或验证这些交易的签名,因为这些都隐含在你最终找到的、还在 UTXO 集中的那笔交易中。只要计算 txid,将它们与包含了你感兴趣的聪的输出相比对,就足够了。

【3】要是某一个聪在某个时间点因为支付手续费而弄丢了,你可以通过在产权链条中包含完整的交易以继续跟踪其所有权。不过,认为它 “已经被抛弃了” 或者 “在公共区域弄丢了” 可能更好。

这种方法可以让所有的 “铭文” 数据全部放到链下,唯一要用到链上交易的就是把所有权转移给别人。这可以让 NFT 的存在完全保持私密(如有必要的话),而且也会让新 NFT 的创建变得更加便宜(因为完全不需要支付任何链上费用);而且,它不会给那些对你的铭文不感兴趣、但对比特币本身或者别的铭文感兴趣的人带来明显的负担。

对那些具有真实内在价值的东西 —— 公司的股权、支持某位艺人的牛皮权,等等 —— 这可能是一种可行的方案:所有者可以 “自己保管” 关于物件的所有信息,无需依赖于第三方;物件的转让也跟其它的比特币交易难以审查(尤其是 NFT 与某一些聪的关联并不为人所知的时候),等等。

而且这种 “铭刻” 方法对于广播可能会受到严格审查的信息来说也是可取的;假定审查的主体不愿意也不能够审查比特币交易本身的话。只不过我们不清楚这种场景下有什么 “权利” 可言 —— 显然你无法买到成为第一个发布它的人的权利,而且信息广泛传播的意义正是让它不至于成为只有少数人知道的秘密。同时,声明对这样的信息的所有权,可能会让你成为审查者目标,虽然你可能也为其他人树立了榜样。所以,我也怀疑在这种场景中将铭文与序数联系起来的价值。

也有可能 NFT 的感知价值并不来源于其铭文,而来源于铭刻铭文的区块空间的稀缺性(例如【4】)。这不同于比特币的稀缺性 —— 到 2100 年以后,总共就只有 2100 T 个聪可以使用 —— 而在于同一时间最多只有 4T vbyte 可以使用,所以也许按比例对消耗的 vbyte 估价也是有意识的,消耗掉的 4 个 vbyte 价值 2100 聪。如果是这样,如果你花费 50k vbyte 来铭刻一张图片,也许这张图片的 “权利” 就值得 50k / 4 * 2100 聪,即 0.26 BTC。这个说法对我来说不是很有意义 —— 因为总会有更多区块空间可以创建出来,但还能铭刻的聪会越来越少,而且序数会越来越难以处理;但我认为这依然是可以想象的,至少有人相信它。如果这种说法是真的,那么它意味着今天的区块空间的价格应是 2488 聪/vB(19.28M BTC/774700 MvB),而不是 1 聪/vB。

【4】https://twitter.com/vnprc/status/1619876888687820801

不管怎么说,抛开与 ordinal 铭文方法的比较不谈,我认为还有另一个有趣的地方。

假设你有一种工具,可以实现上述的 nostr 序数分配方法:也就是说,它是对 “ord” 工具的小小修改,它可以(像上面说的一样)跟踪一个 nostr 事件所指定的序数的产权链条。这意味着,你将可以完全秘密地制作 NFT —— 你不需要在区块链上发布任何东西,而且转移你的 NFT 的所有权时也只需提交看起来跟普通交易没有区别的交易。对你来说,这种方法让你的 NFT 交易变得更难审查;同时,对比特币来说,我认为这意味着染色比特币在很大程度上是不可避免的,就是一个必须处理的动力,而不是一些我们应该花时间来 阻止/避免 的东西。对比:

我个人的观点是,(可能有争议),染色币协议建立在比特币链上并不能获得更多好处,可能只有一个好处是可以承诺偶尔发生的批量状态更新。这既是因为这些代币已经有受信任的发行者,所以好处不大;也是因为它跟让比特币区块链为 BTC 服务的用法相竞争 —— 这些代币需要为其安全性支付(至少,在区块补贴还没用光之前是这样)。

当然,个人的观点,不是规定人们应该怎么使用一条链、可以将链用在什么地方的理由。但我确实认为,这是我们向导致系统的可扩展性恶化、仅仅有利于我认为是错误用法的应用表达怀疑的理由。

—— https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019500.html

不过,我不认为这会导致重大的激励错配:在 nostr-nfts-on-btc 的世界里,每个人都依然为相同的东西 —— 转移价值 —— 而优化比特币交易。仅仅是某些情况下,一些聪的估价方式会跟别的聪有所区别 —— 也许我的没有铭文的聪只值 0.025 元,而你的某个聪价值 10 万元。但我们都仅仅是花费一些 UTXO 然后创建一些新的 UTXO,生成签名以及处理时间锁或者哈希原像检查。而且,你的转移 10 万元的交易依然有可能不会被收取比我的转移 50 元的交易更高的手续费 —— 因为重要的是交易的体积,而不是其中转移的价值。如果仅仅是因为某人想要你的某个聪,而使你更在乎你的交易,这跟今天你的 UTXO 价值 4 BTC,而我的只值 0.002 BTC,有什么分别呢?

我认为,唯一一种阻止这类 NFT 构造的办法就是让每一笔交易都使用某种奇妙的零知识证明,使我们不可能将接收比特币的人跟花费它的人关联起来 —— 即使 双方都希望联手揭开其中的信息。我认为,实现这种技术,同时让比特币的供给量依然易于审计,是很难做到的。但我也有可能是错的。

注意,链下染色也意味着别人可以创建一个你不想要的 NFT,然后将它分配给已经在你的钱包中的聪。但是,他们也可以用别的方式做到,例如先创建一个 NFT,然后发送到你的钱包地址。不同之处在于,在链下染色方案中,他们可以创建一个 NFT,然后分配给你所珍视的 NFT 所在的同一个聪,这样一来你(可能)就没法只丢掉其中一个了。但还是那句话,这只是他们用别的方法也能做到的事,只需给 ord 打一个补丁,或者组装一条 nostr 消息,就行了。这是你就算不喜欢也没法完全防止的事。

尤其是对一些 准同质化 的代币来说,这种办法可能不如 Liquid 的多资产模式 —— 如果你有一个携带有 100 万聪的 UTXO,其中 500 个聪被铭刻了,而且每个都代表着对价值 1 美元的 USDT 的权利,那么,预期说它是一种稳定币,价值 500 美元,不如说它价值 500 美元 + 0.01 BTC,也就是更像 750 美元,并且其价值会随着比特币价值的改变而改变。

谢谢,

aj