# BNS 的历史

#### Namecoin 上的起源（2014）

比特币命名系统（BNS）可追溯到2014年，当时它作为一个建立在 Namecoin 之上的命名和身份层，通过 OneName 项目发起。

<div data-with-frame="true"><figure><img src="https://629346125-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH74xqoobupBWwBsVMJhK%2Fuploads%2FueZuLv2az0BtDgwNck8x%2Fonename.png?alt=media&#x26;token=7f22c5a2-3768-4f24-bc42-6530194afa70" alt=""><figcaption></figcaption></figure></div>

这个想法简单而有力：允许用户注册与私钥通过密码学绑定的全局唯一、可读的人类名称。早期采用者以类似以下格式认领名称： `u/ryan`，将其用作可携带的数字身份。然而，Namecoin 的局限性——包括垃圾信息、较弱的安全保证和较慢的确认速度——使长期可扩展性变得困难。

#### 迁移到比特币（2015）

2015 年，该项目迁移到比特币区块链本身，通过在一次公开承诺中烧毁大约 40 BTC 来锚定 `.id` 命名空间。此举通过利用比特币的持久性和去中心化显著提升了安全模型。名称注册直接记录在比特币交易中，通常使用 `OP_RETURN`，而更丰富的状态数据则存放在链下。这种混合方法允许 BNS 继承比特币的安全性，同时仍支持灵活的身份元数据。

#### Stacks 时代（2021）

下一个重要篇章始于 2021 年 Stacks 的推出。随着 Stacks 引入锚定比特币的智能合约功能，BNS 在 Stacks 2.0 的创世时作为智能合约部署。所有先前的 BNS 名称都被迁移过来，保留了所有权历史同时启用更具表现力的链上逻辑。像 `.btc` 这样的名称迅速流行起来，BNS 演变为 Stacks 生态系统中的核心身份基元。每个名称变得全局唯一并被私钥强所有，区域文件（zone files）允许大约最多 40KB 的链下数据用于配置文件、地址映射和去中心化标识符（见下文 BNSv2 的变更）。BNS 支持完全链上名称以及锚定到区块链状态的链下子域，为开发者在结构化身份系统时提供了灵活性。

{% embed url="<https://www.youtube.com/watch?v=5IkK5T9NDqU>" %}

#### **BNS 已发展成为比特币生态系统的基石。**

BNS 名称已经带来了大量的市场活动，销售量达到 150 万 STX（估计约 200 万美元）。BNS 市场在 [Gamma.io](http://gamma.io) 于 2022 年 10 月的上线为社区提供了一个专门的空间来购买、出售和交易名称。这有助于巩固 BNS 作为去中心化域名市场领先者的地位。

2024 年 2 月，BNS 庆祝其十周年，标志着在比特币区块链上去中心化命名和身份十年的发展。

#### BNS V1 的局限性

最初在 Stacks 上实现的 BNS，通常称为 V1，工作可靠但存在结构性限制。单个地址一次只能维护一个主要名称，这限制了可组合性并使交易或收集名称更加繁琐。此外，名称并未作为 SIP-09 NFTs 实现，这意味着它们无法自动与更广泛的 NFT 工具生态互操作。随着 Stacks 的成熟和 NFT 标准的巩固，社区开始推动更灵活、更可互操作的重新设计。

#### 走向 BNS V2 的演进

这一重新设计在 2024 年 9 月以 BNSv2 形式实现。从 BNSv1 迁移到 BNSv2 时，迁移快照（2024 年 9 月 11 日）时拥有名称的账户收到了空投的名称。用户无需执行任何操作——他们的 BNSv2 名称会直接出现在钱包中。BNSv1 合约仍然存在链上，但通过 V1 对名称所做的更改不会反映到 V2，反之亦然。

新实现从根本上重构了名称的表示和管理方式。最显著的是，每个顶级名称现在都是符合 SIP-09 的 NFT。此更改允许 BNS 名称直接插入钱包、市场和智能合约，而无需定制处理逻辑。它也意味着名称像标准数字资产一样表现：它们可以被转移、上架、托管或以最小摩擦整合到 DeFi 协议中。

BNSv2 还移除了单一名称的限制，使地址能够同时拥有多个名称。这个看似简单的改变极大地提升了可用性，并解锁了更复杂的应用模式，从身份组合到基于命名空间的品牌策略。命名空间本身在 V2 下也变得更灵活。开发者或社区可以创建无需权限运行的非托管命名空间，或由指定权威控制的托管命名空间，后者可以定义定价规则、验证要求或其他约束。托管命名空间由一个 **合约主体** （不是标准钱包）控制，而且该管理者可以被永久冻结以实现完全去中心化。这种灵活性为策展型身份层、品牌生态系统和实验性命名经济打开了大门。

<details>

<summary><strong>BNSv1 会怎样？</strong></summary>

BNSv1 智能合约将继续存在。但今后通过 BNSv1 合约对名称所做的任何更改都不会反映到 BNSv2，反之亦然。

</details>

BNSv2 中的注册流程仍然使用预订并揭示（preorder-and-reveal）机制以防止抢先注册，其中在实际名称揭示前提交名称的加盐哈希。区域文件仍然是架构的一部分，允许名称引用外部数据，例如钱包地址、配置文件或去中心化身份记录。但 V2 的区域文件与 V1 在根本上不同。在 V1 中，区域文件是通过 Atlas 网络复制的链下数据。在 V2 中，区域文件存储在一个单独的链上区域文件解析合约中。由于名称现在是 NFT，它们更自然地与 Stacks 生态系统的市场和基础设施集成，同时通过 Stacks 的锚定模型继承比特币的安全保证。

如今，BNSv2 既是一个身份系统，也是一个构建在 Stacks 上的数字资产框架。它保留了最初由比特币保护的全局唯一、用户拥有名称的愿景，同时将架构现代化以符合 NFT 标准、多资产所有权和可编程命名空间管理。

***

#### 附加资源

* 更深入的 BNS 历史讲解： <https://mythbtc.xyz/bns-history/>
