长推:如何构建基于BTC的UniSwap?

原文作者:@0xjingle

原文来源:Twitter

注:原文来自@0xjingle发布长推。

昨天 @unisat_wallet 抛出了公告,宣布不久将要推出BRC20 Swap。根据公告的内容,BRC20 Swap不同于桥、二层、侧链,是基于BTC和Ordinals原生的Swap,瞬间点燃BRC20生态的热情并得到了中西方ordinals社区的广泛好评。

看上去,BRC20 SWAP的推出,将为BTC一层代币的自由流通提供了重要的支持。但是推特上对于技术上如何实现这个问题,本文将常识着去探讨如何在技术上实现BTC一层上的UniSwap。

就在不久前在某个space讨论过这个问题,记得当时挺多嘉宾觉得不可行。而我的观点是技术上是可行的,无非是以何种方式实现,是否去中心化,是否安全,用户体验是否舒适,Swap效率是否高效等等。早期方案不一定完美精巧。我不是技术专家,但是达到SWAP的目的的方案其实有很多种,我这里就算抛砖引玉,尝试描述一下可能的BRC20上的Uniswap的实现路径,也欢迎更多的技术大咖给Ordinals社区做一些基础的技术普及。

Uniswap是建立在独特的AMM 自动做市机制之上,其核心是由两个ERC20 token组成池子成为LP即流动性提供商。交易获得的费用则成为流动性提供的奖励来源,也称为流动性挖矿。因为交互在链上进行,因此每次在swap的时候会产生交互Gas,因此uniswap也称为ETH gas的最大贡献者。

以此思路类推,我们看看BRC20上可能实现原生swap的可能路径。

来看一下BRC20生态最为核心的构成要素

1,BRC20标准(包括原生和后续衍生的标准)

2,索引器indexer

未来BRC20所有产品的开发,恐怕都离不开上面两个核心要素。因此BTC SWAP应该也不例外,必须需要上述两个基本要素的配合和改进才可以实现。

路径一、Uniswap的BTC版本?

假如和Uniswap一样,有LP池子,当下BRC21 (MAPO @MapProtocol 最近和trustwallet合作集成跨链桥包含brc20系列)、 BRC20S(OKX)大致都支持组LP的Jason语法。

1,用户将钱包里的BRC20Token 比如 ordi – punk 组对 ,通过铸造新铭文在链上记录 LP:20 ordi -1 punk;

2,铸造成功后indexer 将用户钱包 brc20 余额ordi -20 ,punk -1,增加 ordi-punk LP 1个;

3,组LP完成;Indexer 会在ordi-punk LP下记账 ordi+20 punk +1 ;

解开LP实际上也是同样的过程,将ordi-punk pair 下面池子的比例,返回余额度。按照固定乘积公式决定价格,按照比例计算出indexer下计算的两种资产数量然后解开LP。

这里indexer既要计算钱包地址的所有余额,也要计算新代币LP下面的流动池余下额度。理论上,indexer也可以实现两种资产间的定价。

这种AMM依赖LP池子的大小,价格波动剧烈时产生无常损失Impermanent Loss,同时交易时候将产生滑点。

按照BRC20交易市场的逻辑,为了防止双花抢跑,转账/组LP铭文需要等待3个区块确认后才可以交易,因此按照传统的AMM逻辑似乎效率极低:用户组和indexer通讯确认需要10*3 min,收到swap后10min,一笔swap起码40min。组拆LP也是如此。几乎是uniswap慢动作版。

所以如果是Uniswap的BTC版本,那么:

1,大概率是需要更新BRC20协议,在brc20s和brc21的基础上,推出支持brc20swap的协议;

2,会更新unisats开源版本的indexer以支持pairing;

可能存在的问题:

1,效率问题,一次完整的SWAP可能需要半小时到一小时时间;

2,其他交易所如果不同步更新,就可能存在在A交易所组队的token可以在B交易所仍然可以交易的情况;

3,其他可能存在的安全隐患和问题,譬如双花等;

4,复杂程度比较高

路径二 、基于PSBT的自动化撮合交易?

brc20swap有没有可能是订单簿的自动化撮合形式?

似乎也有可能,这样只需要在现行的brc20 market place上改进bidding功能,和卖方的psbt撮合,这样既不需要更新brc20协议,也不需要在indexer上做更多的改进,完全可以实现交易的撮合。

用户创建transfer inscription给出brc20转账权限,用psbt以一定价格挂单卖出,买方创建买入价格psbt挂单买入(bidding),在价格范围内(滑点)撮合完成交易。

这里的价格就是根据市场交易情况决定的。在现有的brc20市场增加买家bidding功能,对现有的brc20似乎改动最小。这种方式本质上并未创建流动性挖矿的机会,因此更像是brc20市场的改进版。

能力所限,只能想到两个可能实现的路径,甚至不一定对。有没有其他路径 ?围绕BRC20建设的技术路径有无限可能,欢迎头脑风暴,转发讨论!

再问个开放式的问题:如果BRC20的 Defi Summer,你觉得最可能的brc20的本位币是什么呢?对我而言,原生satoshi就是本位币,一切围绕satoshi的建设才是有意义的。不会是ordi,也不会是btc稳定币。那么,你同意我的观点吗?

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年7月17日 下午6:31
下一篇 2023年7月17日 下午6:31

相关推荐

长推:如何构建基于BTC的UniSwap?

星期一 2023-07-17 18:31:11

注:原文来自@0xjingle发布长推。

昨天 @unisat_wallet 抛出了公告,宣布不久将要推出BRC20 Swap。根据公告的内容,BRC20 Swap不同于桥、二层、侧链,是基于BTC和Ordinals原生的Swap,瞬间点燃BRC20生态的热情并得到了中西方ordinals社区的广泛好评。

看上去,BRC20 SWAP的推出,将为BTC一层代币的自由流通提供了重要的支持。但是推特上对于技术上如何实现这个问题,本文将常识着去探讨如何在技术上实现BTC一层上的UniSwap。

就在不久前在某个space讨论过这个问题,记得当时挺多嘉宾觉得不可行。而我的观点是技术上是可行的,无非是以何种方式实现,是否去中心化,是否安全,用户体验是否舒适,Swap效率是否高效等等。早期方案不一定完美精巧。我不是技术专家,但是达到SWAP的目的的方案其实有很多种,我这里就算抛砖引玉,尝试描述一下可能的BRC20上的Uniswap的实现路径,也欢迎更多的技术大咖给Ordinals社区做一些基础的技术普及。

Uniswap是建立在独特的AMM 自动做市机制之上,其核心是由两个ERC20 token组成池子成为LP即流动性提供商。交易获得的费用则成为流动性提供的奖励来源,也称为流动性挖矿。因为交互在链上进行,因此每次在swap的时候会产生交互Gas,因此uniswap也称为ETH gas的最大贡献者。

以此思路类推,我们看看BRC20上可能实现原生swap的可能路径。

来看一下BRC20生态最为核心的构成要素

1,BRC20标准(包括原生和后续衍生的标准)

2,索引器indexer

未来BRC20所有产品的开发,恐怕都离不开上面两个核心要素。因此BTC SWAP应该也不例外,必须需要上述两个基本要素的配合和改进才可以实现。

路径一、Uniswap的BTC版本?

假如和Uniswap一样,有LP池子,当下BRC21 (MAPO @MapProtocol 最近和trustwallet合作集成跨链桥包含brc20系列)、 BRC20S(OKX)大致都支持组LP的Jason语法。

1,用户将钱包里的BRC20Token 比如 ordi – punk 组对 ,通过铸造新铭文在链上记录 LP:20 ordi -1 punk;

2,铸造成功后indexer 将用户钱包 brc20 余额ordi -20 ,punk -1,增加 ordi-punk LP 1个;

3,组LP完成;Indexer 会在ordi-punk LP下记账 ordi+20 punk +1 ;

解开LP实际上也是同样的过程,将ordi-punk pair 下面池子的比例,返回余额度。按照固定乘积公式决定价格,按照比例计算出indexer下计算的两种资产数量然后解开LP。

这里indexer既要计算钱包地址的所有余额,也要计算新代币LP下面的流动池余下额度。理论上,indexer也可以实现两种资产间的定价。

这种AMM依赖LP池子的大小,价格波动剧烈时产生无常损失Impermanent Loss,同时交易时候将产生滑点。

按照BRC20交易市场的逻辑,为了防止双花抢跑,转账/组LP铭文需要等待3个区块确认后才可以交易,因此按照传统的AMM逻辑似乎效率极低:用户组和indexer通讯确认需要10*3 min,收到swap后10min,一笔swap起码40min。组拆LP也是如此。几乎是uniswap慢动作版。

所以如果是Uniswap的BTC版本,那么:

1,大概率是需要更新BRC20协议,在brc20s和brc21的基础上,推出支持brc20swap的协议;

2,会更新unisats开源版本的indexer以支持pairing;

可能存在的问题:

1,效率问题,一次完整的SWAP可能需要半小时到一小时时间;

2,其他交易所如果不同步更新,就可能存在在A交易所组队的token可以在B交易所仍然可以交易的情况;

3,其他可能存在的安全隐患和问题,譬如双花等;

4,复杂程度比较高

路径二 、基于PSBT的自动化撮合交易?

brc20swap有没有可能是订单簿的自动化撮合形式?

似乎也有可能,这样只需要在现行的brc20 market place上改进bidding功能,和卖方的psbt撮合,这样既不需要更新brc20协议,也不需要在indexer上做更多的改进,完全可以实现交易的撮合。

用户创建transfer inscription给出brc20转账权限,用psbt以一定价格挂单卖出,买方创建买入价格psbt挂单买入(bidding),在价格范围内(滑点)撮合完成交易。

这里的价格就是根据市场交易情况决定的。在现有的brc20市场增加买家bidding功能,对现有的brc20似乎改动最小。这种方式本质上并未创建流动性挖矿的机会,因此更像是brc20市场的改进版。

能力所限,只能想到两个可能实现的路径,甚至不一定对。有没有其他路径 ?围绕BRC20建设的技术路径有无限可能,欢迎头脑风暴,转发讨论!

再问个开放式的问题:如果BRC20的 Defi Summer,你觉得最可能的brc20的本位币是什么呢?对我而言,原生satoshi就是本位币,一切围绕satoshi的建设才是有意义的。不会是ordi,也不会是btc稳定币。那么,你同意我的观点吗?