NFTs

原子数字对象或简称为 "atom"

什么是原子数字对象?

原子数字对象(或者称为 Atomical)是一种新的非同质化代币(Non-Fungible Token, NFT),可以在 Bitcoin 区块链上被铸造、转移和更新。主要的区别是不需要使用集中服务或中间人作为可信的索引器。它目前就可以工作,不需要对 Bitcoin 进行任何更改,也不需要侧链或任何辅助层。是时候永远收回我们对数字生活的控制权了(It is time to take back control of our digital lives - forever)。

Atomicals 是可自证、易于验证的,这使得它们非常适合数字收藏品、社交媒体、游戏、身份验证以及任何需要建立所有权和真实性的地方。协议的规则极其简单,但是同时可以提供军事级安全和验证,不容忍任何的错误。

原子协议是自由、开源的,它可以永远地被任何地方的任何人使用。我们的数字未来取决于强大的数字对象格式来优雅地处理每个可能的使用情况,同时最大限度地减少实现软件时会出现错误的可能性。

原子数字对象是如何被创建的??

一个 Atomical 是通过使用 Taproot(P2TR)支出脚本的两步提交和揭示方案来铸造的,使用 Atomicals Envelope 和由字母 "m" 表示的铸造操作。交易输出承诺了被提交的数据或文件,然后数据被包含在一个支出脚本中,以揭示内容,这可以是一个或多个文件,包括任何类型的内容,如图像、文本或任何媒体。

只需使用现有的比特币钱包,即可使用命令行界面铸造您的第一个 Atomical。

一旦被创建,Atomical 将永远地被存储在区块链上,并且可以根据熟悉的 Bitcoin 规则使用任何地址类型转移给任何新的所有者。

原子数字对象如何被更新?

除了不可变的内容和文件之外,Atomicals 数字对象支持在使用由字母 "u" 表示的更新操作后的任何时间附加任意数量的文件和状态。类似于铸造操作,更新遵循一个两步提交和揭示方案,以承诺一个更新,然后一个 P2TR taproot 支出脚本揭示更新的内容。

在单个更新中,支持任何文件或内容类型。数字对象的所有者可以覆盖或更新任何文件的内容。这使得 Atomicals 具有作为不断发展的数据对象的独特能力,非常适用于社交媒体、游戏等场景。

由于不可变存储的特性,每个文件的修订历史都被永久存储,以便能够准确回放状态变化。

原子数字对象如何被转移?

一旦铸造完成,Atomical 可以像普通比特币一样通过任何地址格式类型进行转移,包括 Taproot (P2TR)、SegWit、Multisig 和传统地址 (P2PKH)。

不需要特殊的钱包支持,尽管强烈建议使用支持 Atomicals 的钱包,以便安全地识别和转移 Atomicals。尽管不可能意外销毁 Atomical,但在使用不支持 Atomicals 识别的钱包时,用户如果不小心可能会将其发送给错误的接收方。幸运的是,该实现采用了最简单的协议,使得钱包和服务可以在正确操作并避免错误的情况下轻松处理。

由于我们依赖于使用本机比特币转移机制将 Atomical 的身份从输入流(或印记)到输出流,因此没有单独的明确的 "转移操作"。

转移规则很简单,可以通过以下段落总结:

Atomical 的身份从交易中的第 i 个输入流向第 i 个相应的输出。如果交易中的输出少于 i 个,则 Atomical 的身份总是流向该交易中的第一个输出。

如果在同一笔交易中花费了多个 Atomicals,并且每个 Atomical 花费都没有足够的相应输出(例如,有2个输入,但只有1个输出),那么会发生这样的情况:这些多个 Atomicals 将流向第一个输出,从而在同一UTXO上印刻了多个 Atomicals!这并不是一个大问题,实际上,这是一个有用的特性,可以将多个 Atomicals 关联到单个 UTXO 上。

然而,我们必须提供一种方法来"分裂"或提取任何单个 Atomical,通过 Atomical Id 进行引用。以下是为此目的提供的 'Splat' 协议操作。提取操作接受一个数组:将当前输入中的 Atomical Id 强制放入第一个输出。这就是能够从单个 UTXO 中拆分出任意数量的 Atomicals 所需的全部操作。如果携带的输入与 Atomical Id 不相关(由于开发者错误),那么它被视为"无操作"。

请注意,转账规则也适用于最初铸造的 Atomical。例如,如果在输入位置 i 处铸造了一个 Atomical,那么该 Atomical 的标识将被印在第 i 个输出上,除非输出较少,在这种情况下,标识始终将被印在第一个输出上。请注意,可以在单个交易中铸造多个原子,如果输出数量少于相对于输入数量所需的数量,则在没有匹配的第 i 个输出的情况下,原子的身份将分配给第一个输出。

动态数字对象状态

这一个如何更新一个 Atomical 状态的概述。每一个原子数字对象在铸造时候嵌入了不可变的静态文件,而且能够在其整个声明周期中附加任何数据或文件。由于 Bitcoin 是不可变的审计跟踪,所以每个字段的每次更改都会被永远地记录,并且可以回溯以验证是否正确达到了最新状态。这也就意味着我们有办法创建取决于将数据附加到 NFT 上的复杂交互、游戏和其他服务。Atomical 的有效负载格式直观且简单:将一个或多个文件或变量添加到数字对象 UTxO 的每一笔支出中,最新状态会被传播到所有节点,并立即在索引器中生效。用户和程序员只需要一个简单的指令就可以设置任何类型数据甚至更大的文件(例如 PDF 和图像)的键值对。例如,用户可以将他们的 BTC 钱包地址托管在路径 "/btc/address",并将他们的头像图片托管在 Atomicals 中的 "/profile/photo" 并轻松地更新。Atomicals 的理念是“非数字对象历史的资产不是你的数字资产”,这意味着我们“信任,但验证”,并且通过回溯历史记录可以轻松验证对象状态是否正确。不用担心,我们提供了一整套工具和库,基本上可以在发布当天自动为您完成所有这些工作。

⚡ 开始铸造你的第一个原子数字对象

下载并安装 Atomicals Javascript CLI 工具,然后按照快速入门说明在两分钟内创建您的 NFT、合集或 Realm 名称。

Last updated