完美的 BTC/USD 兑换。现在就在 Bitcoin 上实现。
BTC/USD 现在是一个在 Bitcoin L1 上清算的市场,使用 USDT 或 USDC。
出售 Bitcoin 一直意味着离开 Bitcoin。
不是在精神层面,而是在机制层面。要把 BTC 换成美元,你得把它发送到交易所,或者跨链到那些已经有稳定币的链上。两者其实是同一个动作换了套衣服:在这笔交易发生的整个过程中,别人正持有你的 Bitcoin,而你拿到的价格是他们决定展示给你的价格。
这笔交易现在就发生在 Bitcoin L1 上。frUSD/frBTC 池已在主网上线,它以 USDT 和 USDC 为 BTC 定价,并在一笔你亲自签名的 Bitcoin 交易中完成结算。
区别在于:没有账户需要开立,没有场所持有你的余额,也没有提现队列:在每一步,你都在自己的钱包里持有资产。
以下截图来自实时应用,针对主网进行交易。
由池子而非交易柜台报出的美元价格
这个市场是一个位于 alkane id 4:1778 的 CryptoSwap 池。一边是 frUSD,即在 Bitcoin 上结算的美元。另一边是 frBTC,始终可与原生 BTC 按 1:1 赎回。两者都是普通的 Alkanes 资产,因此它们之间的市场是一个普通的 Bitcoin 合约,而它报出的价格就是它实际会成交的价格。对最终用户而言,这部分甚至无关紧要,他们只看到 BTC 以及 USDT 或 USDC。
图表从那个池子读取 BTC/USD,而顶栏显示的是池子自身的价格,而不是从别处借来的行情源。你交易所依据的那个数字是由池子本身产生的。
这笔交易就是一次兑换,就在你已经在用的界面上
用 BTC 换美元看起来和 SUBFROST 上的其他每一次兑换一样,因为它本就是。在发送端选择 BTC,在接收端选择 USDT、USDC 或 frUSD,输入金额。面板在你确认之前先给你报价,而它显示的数字就是你这笔规模能拿到的、已含手续费的结果,而不是一个你还得在脑子里打折扣的标称利率。
确认后,你的钱包会要求你签署一笔 Bitcoin 交易。那就是全部承诺:没有账户需要开立,没有充值地址需要先充钱,没有订单被某个场所压着直到它决定成交为止。这笔交易就是那笔交易本身。
USDT 进,BTC 出,一条指令完成
更有意思的方向是从 Ethereum 开始的那个。
把 USDT 或 USDC 存入 SUBFROST 桥接金库,你就可以要求结果以原生 BTC 而不是 Bitcoin 上的稳定币形式到账。底层发生的是三跳:你的存款被铸造为 frUSD,通过这个池子兑换成 frBTC,然后解封成 BTC。
在 Ethereum 上,你的钱包要求两次调用:一次针对确切金额的授权,然后是存款本身。此后一切都是自动化的,应用会逐跳跟踪它,而不是让你猜你的资产在哪里。
100 美元的 USDT 或 USDC 会变成你所控制的 Bitcoin 钱包里的 BTC,而一旦存款确认,你就无需再做任何事。 反方向也一样:把 Bitcoin 上的 frUSD 兑换成 Ethereum 上的 USDC 或 USDT,同一个跟踪器会跨链跟随它。
修复传统 UX:一次签名,否则不发货
用 BTC 换美元要靠一次签名跨越三个合约。把 BTC 封装成 frBTC,通过池子把 frBTC 兑换成 frUSD,再把 frUSD 转成 Ethereum 上的 USDT 或 USDC。
在今天之前,桥会要求你逐个地授权这些步骤中的每一步,否则平台就是中心化的。那是个糟糕的产品:每一次额外确认都是一个用户可能停下来的地方,或者批准了一个他们没看过的东西,或者在资产还跨在桥中间时就走开了。
一条从 Bitcoin 开始的路径可以跨越它需要的任意多个合约,而它仍然只需要一次 Bitcoin 签名。 从 Bitcoin 出发,在你看到确认对话框之前,你的意图就已被编译进那笔交易。
从 Ethereum 出发,approve 和 deposit 就是你钱包要求的那两次调用,而 deposit 已经携带了整个 Bitcoin 结果:目的地、拆分、价格。它之后不会再回来问你任何事。
这也是为什么失败模式会呈现出那种样子。当某一跳无法执行时,它不会卡住并扣着你的钱,也不会回来再要一次签名。它会支付出去并告诉你你拿到了哪种资产。每一条路径的设计都确保:一个失败的跳会让你在钱包里持有可花费的东西,而不是一笔卡在两条链之间的余额。
费用是多少
两项费用完成这些工作,两者都在你确认之前显示。
桥收取 固定 1.99 美元 加上余额的 0.10%,进出各一次。固定部分用于支付 Ethereum 那一侧,因此无论你转移 100 美元还是 10,000 美元都一样,这使得一次较大的往返比多次小额往返便宜得多。
然后池子会收取它自己的兑换费,该费用随你的交易让池子最终有多平衡而变化:当两边最终持平时为 0.2%,当一笔交易把储备推向失衡时最高升至 0.8%。 这正是 CryptoSwap 设计在发挥它应有的作用,它意味着恢复平衡的那笔交易是便宜的那一笔。一条封装或解封 BTC 的路径还要支付 frBTC 自己的 0.1% 费用,而任何 Bitcoin 交易都要付给矿工。所有这些都已经包含在向你展示的报价之中。
让你在退出时更轻松
在如今所有常见的桥接方案中,都有一个糟糕的 UX 会在最后一刻卡住人们:你的 USDT 落到一个全新的 Ethereum 地址,却发现你没有 ETH 来转移它。这些代币是你的,可它们被卡住了。
我们已经修复了这个问题,让用户可以把一部分收益拆分成链上代币来支付 gas。把大部分作为稳定币发出去,再取一小片作为原生 ETH,你到达的那个地址从第一个区块起就能自己支付 gas。
这个拆分标明了它拒绝低于其填充的下限,而 一个它无法执行的转换会以稳定币形式支付出去,而不是让整个销毁失败(拆分部分不会发生)。
今天已上线的内容
这个池子已在主网上线并开始交易。两个桥接方向都已上线:USDC 和 USDT 进,USDC 和 USDT 出,进来时可选 BTC 拆分,出去时可选 ETH 拆分。图表、报价、结算跟踪器和费用明细现在都在应用中,如果你更愿意在交易前自己测算,同一个池子也可从命令行读取。
BTC 对美元有价格已经十五年了,到处都在报价,唯独不在 Bitcoin 上。 现在,报价和结算是同一个事件,在同一条链上,由同一把密钥签名。