无论铭文还是符文,这些创新的资产发行方式已经非常成熟,从部署到 mint 、转账等平台和工具也十分全面,而流动性一直以来最想解决的问题,目前除了已经上所的铭文符文代币外,其他的都还是只可以在 UniSat 、 OKX 以及 MagicEden 等平台进行订单簿式进行购买或者销售,只可以买卖固定数量的代币,同时如果想购买多个,则需要多笔交易费用。 如果之后这些代币需要有更多的应用场景,Swap 则是最需要先解决的技术。

什么是 BRC-20 Swap

BRC-20 Swap 是 UniSat 推出的新产品,旨在无需中间商的情况下,让用户能够快速轻松地交换 BRC-20 代币。从2023年10月到2024年5月,UniSat 持续推动 BRC-20 Swap 的发展。2023年10月,UniSat 宣布了BRC-20 Swap 的发布时间表,并在主网上线初期支持的初始可用资产。2024年4月,在比特币减半期间,UniSat 更新了BRC-20 Swap 并推进了标准化工作。到2024年5月,UniSat 宣布 BRC-20 Swap 的标准化状态更新已经开源,并定义了相关规范。

BRC20 的主要维护者 @unisat_wallet 和 @bestinslotxyz 在6月6日与 @domodata 和 @isabelfoxenduke 一起讨论新的 BRC20 “Swap 模块” 升级,该升级将使得在 BRC20 协议内创建流动性池成为可能。相信很快我们就可以看到这个功能产品的出现了。

技术详情

BRC-20 Swap 是一个基于 AMM 的 DEX,它使用 x * y = k 公式来维持流动性池中两种代币的平衡。在该平台上,交易者不需要等待对手方,而是与流动性池进行交易,并根据预设的数学公式获得计算出的价格。和 DeFi 中的 AMM 基础概念一样,slippage 滑点是指实际交易价格与预期或报价价格之间的差异,通常在市场波动性高或流动性低时发生。不平衡的交易可能导致交易成本高于或低于预期。

每次交易都会收取 0.3% 的交易费用,其中 1/6 归平台所有,剩余部分归 LPs。LP 代币代表池中资产的份额,随着池中费用的积累,LP 代币背后的 BRC-20 资产价值会自动增长,但需要考虑暂时性损失对盈利性的影响。

用户余额分为三类:BRC-20 余额、模块余额(module balance)和授权余额(approved balance)。其定义了一组操作码(OPs)来促进这些类别之间的余额转移。

  • deposit 允许用户将BRC-20余额转移到批准余额。

  • approve 和 conditional-approve 允许用户将模块余额转移到批准余额。

  • withdraw 允许用户将模块余额提取到BRC-20余额。

一旦用户的余额进入授权余额,他们就可以执行交换操作,这些操作将通过一个提交操作由排序器执行。其定义了一组子操作码(Sub-OPs),允许用户创建和操作交易对,包括 DeployPool、AddLiquidity、RemoveLiquidity 和 Swap。由于排序器负责最终的脚本生成和链上执行,排序器将对每个子操作码收取一定数量的 sats 以覆盖其成本。

UniSat 的模块化提案

模块化机制提供了一种新的方式,在现有的 BRC-20 框架内支持各种基于铭文的应用。模块之间独立运行,每个 Indexer 只需要解析与自己感兴趣的模块相关的数据,同时仍保持与其他 Indexer 的BRC-20 平衡一致性。BRC-20 的模块化扩展是通过以下方式实现的:

无许可开发:开发 BRC-20 的新模块是一个无需许可的过程,新模块作为黑模块开始,天然与核心协议及其他模块分离。

隔离执行:如果任何模块的实现出现问题,黑模块之间的隔离确保它不会影响核心协议和其他模块的运行。

共识升级:当大多数索引器认可并实现对某个特定模块的索引时,该模块可以转变为白模块,成为 BRC-20 协议的自然组成部分。

黑模块:模块作为黑箱

当一个模块是黑模块时,模块化扩展模型存在一个缺点,即无法实现自由提取,如下图所示:

这是因为当一个模块作为黑模块运行时,主要的索引器不承认其操作的可靠性。对其来说,这个模块是一个黑箱,其内部状态不被认为是有效的 BRC-20 状态。因此,计算的余额不被视为有效的 BRC-20 余额,该模块内的资产不能自由提取到 BRC-20。

如果黑模块可以任意扩展 BRC-20 协议,开发者可能会创建类似 BRC-20 的 100x 的模块,允许用户接收存款金额的一百倍。例如,如果你存入 5 个 $ordi,你将收到 500 个 $ordi,这样的无限制通胀对于核心 BRC-20 协议来说是不可接受的。因此所有未经验证的黑模块及其内部机制都被视为不可信任的。

白模块:共识升级

当一个模块在现实世界中被执行后,其行为逐渐变得可靠。随着更多索引器逐渐接受该模块的行为,它最终被认为是可靠的,并转变为白模块,成为升级共识的一部分。转换为白模块意味着其计算的余额被广泛认可,并可以与 BRC-20 主网络安全地交互。也就是说用户可以安全、自由且随时地提现到 BRC-20 主网络(如图所示)。黑模块和白模块的根本区别在于是否允许用户自由提取。

从黑模块中提取资产

从功能角度来看,只允许存款而不允许提现的系统是不可接受的。受到了 UniSat Marketplace 活动中匹配机制的启发。动态匹配用户 A 的提现请求和用户 B 的存款请求,使系统能够利用存款交易来满足提现需求。该过程如下图所示:

用户 A 提出 80 个 $ordi 的提现请求,而用户 B 提出 20 个 $ordi 的存款请求。此时,系统动态匹配他们的需求,使用用户 B 的 20 个 $ordi 存款来满足用户 A 的部分提现请求(20/80)。用户 B 可以继续等待其他用户的存款以实现更多的提现。

去中心化

在 BRC-20 开发的早期阶段,UniSat 为用户提供了完整的交易和余额查询索引服务,这引发了中心化担忧:如果系统依赖 UniSat 进行规则解释和执行,UniSat 是否会拥有某种形式的集中权力,可能导致 BRC-20 协议被单一开发团队控制?关于这个问题,有三个层面的理解:

非强制性:索引主要涉及对链上数据的分析和组织,使其更易于被用户理解,并依赖于协议的预定义规则。它操作的是不可变数据,无法更改过去的交易。UniSat 的索引和执行代码是开源的,任何人都可以检查它以确保其符合 BRC-20 规则。

竞争和稳健性:随着多个索引服务提供商的出现,增加了可靠性。一个索引提供商的结果错误更容易被其他提供商识别出来。如果任何一个索引器停止运行,不会影响整体结果。实际上,即使所有索引器都停止工作,brc-20 也能继续稳健运行,用户仍然可以照常 DEPLOY / MINT / TRANSFER。没有关键操作仅仅依赖于索引支持。

治理和共识:鉴于多个索引器参与系统,实施的模块机制允许不同的服务提供商有效学习如何以可管理的方式治理和扩展 brc-20 协议。

在模块架构中,服务提供商索引数据的门槛进一步降低。过去,索引器需要准确处理所有网络交易才能被视为有效索引器。现在,只需要在他们自己的黑模块中索引数据即可开始提供索引服务,这比处理网络上所有 brc-20 数据所需的努力要少得多。因此,随着模块的广泛采用,预计索引数量将显著增加,一些服务可能逐渐演变为提供全面的数据索引。

最近 UniSat 的空投第一个五字符的 BRC-20 铭文 $pizza 在市场上引起了fomo 情绪,可能会对整个铭文市场有着促进的作用,期待之后 Swap 功能板块的上线,使比特币生态更加繁荣和有着更多的应用场景。