宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > PEPE币 > 正文

一文了解两步原子交换协议LiquiDEX

作者:

时间:1900/1/1 0:00:00

注:原文作者是blockstream研究员Leonardo Comandini。

长话短说:LiquiDEX 是一个在 Liquid网络上执行两步原子交换(atomic swaps)的协议,它只需要交换方的单次交互,这极大地改善了用户体验。而使用该协议,我们可以构建出更复杂系统的构建块,例如自动 OTC 交易柜台、拍卖平台甚至去中心化交易所 (DEX)。

注:LiquiDEX的产品还不可用。

Liquid网络是一个具有发行资产和保密交易(CT)的比特币侧链。

Liquid 的原生资产是 L-BTC(Liquid bitcoin),它相当于比特币的一个锚定币。

和以太坊一样,用户也可以在Liquid 网络上发行代表数字资产的token,一个例子就是Tether USD(USDT)。

和比特币一样,Liquid使用了一种UTXO模型,而它们的交易结构也相似。

下面是一笔简化的比特币交易,其中Alice 发送 1 BTC 给 Bob:

下面则是一笔简化的Liquid 交易,Alice 向 Bob 发送 0.5  L-BTC以及1000 USDT:

然而,因为使用了保密交易(CT)技术,Liquid网络的输入和输出是不可见的,因此外部观察者无法看到实际金额和资产。

这对交易者来说特别有用,通常而言,交易者并不想透露他们的操作,因为这些信息可能会影响到市场价格。

在上面的例子中,所有的输入都属于Alice,但情况并非一定如此:一些输入可能属于Alice,而另一些输入可能属于 Bob。

假设 Alice 想用L-BTC交换一些USDT,而Bob 想做相反的事情,则Alice 和 Bob 可以合作构建这样的交易:

交易完成后,Alice 发送了0.5 L-BTC 并收到了600 USDT, 而Bob 发送了 600 USDT,并收到了 0.5 L-BTC。

消息人士:Metalpha已从比特大陆为其基于灰度的投资基金筹集500万美元:5月25日消息,据消息人士报道,香港资产管理公司 Metalpha 已从比特大陆为其基于 Grayscale 的基金筹集了 500 万美元。Metalpha 希望为 Next Generation Fund I 筹集 1 亿美元,该基金是它与 NextGen Digital Venture Limited 合作成立的。截至 3 月底,Metalpha 已为该目标筹集了 2000 万美元。该基金通过结构化衍生品投资于 Grayscale 产品,以符合美国和香港法律的方式授予对数字资产投资组合支柱的访问权。[2023/5/25 10:40:33]

交易要么发生,要么不发生(它不会部分发生),这使得交易是“原子”的,这就是一笔P2P 原子交换交易,Alice 和 Bob 交换了一些资产,他们之间彼此并不信任,也不需要信任一个第三方。

在 Liquid 上支持原子交换的第一个实现是Liquid Swap Tool,它使用了一个三步协议。

其中第一步是 Alice 提出一笔swap交易:

第二步是Bob 接受这个提议:

然而这笔交易还没有准备好被广播,我们需要第三步,其中Alice来最终确定这个提议:

这 3 个步骤是使swap交易与标准交易无法区分的必要步骤。但是,它也存在着一些缺点。

该协议分析起来会更复杂。由于不同的原因,它可能会在不同的步骤失败,也许是提议格式不正确,交易不再有利可图,那么一方可能会中止协议。

Alice 还需要在线才能完成协议。 如果 Alice 花费太多时间来完成,Bob 可能会进行另一次swap交易并使他接受的提议无效。

这使得用户体验变得繁琐,并且很难将这些swap交易集成到其他服务中。

而一个两步协议将解决大多数的问题,事实上,两步协议的用户体验非常类似于“发送交易”:Alice询问她想要交换什么,然后最终交换发生。

在过去的几个月里,我们构建出了LiquiDEX这个想法。

LiquiDEX 是一个在 Liquid 网络上执行原子交换的两步协议。

O’Leary承认FTX向自己支付了1500万美元作为品牌大使:金色财经报道,风险投资家Kevin O'Leary在12月8日的脱口秀节目中表示,除非美国当局和司法系统首先审判他,否则说FTX前首席执行官 Sam Bankman-Fried (SBF) 有罪是不正确的。但O'Leary希望对公司进行适当的审计,并进行调查,以便真相大白。

此外,O’Leary承认FTX向自己支付了1500万美元作为品牌大使,其中拥有价值超过100万美元的FTX股票,由于申请破产保护,这些股票目前一文不值。根据 O'Leary的说法,剩余的资金总额略高于400万美元,据称被税收和代理费吞没了。[2022/12/9 21:32:47]

该协议涉及到了两方:Maker 和 Taker,其中Maker 想要发送一些资产并接收一些其他资产作为交换,它创建 LiquiDEX 提议并发送给 Taker。Taker 接受该提议,并在 Liquid网络上结算swap交易。

版本:数字,可选的非负整数,默认为 0,

tx:字符串,十六进制编码的签名 Liquid 交易,

输入:对象数组,交易输入的非盲信息;item具有以下属性:Asset:字符串,十六进制编码的资产,聪:以聪为单位的整数数量,assetblinder:字符串,十六进制编码的资产盲注,amountblinder: 字符串,十六进制编码的数量盲注,

输出:对象数组,交易输出的非盲信息;item具有相同的输入对象格式。

Asset、assetblinder 和 amountblinder 与 Elements Core 一致地进行十六进制序列化,这与它们的字节序列化相反。

LiquiDEX 提案格式定义了 Maker 和 Taker 必须达成一致的内容。其他一切都可以由双方任意选择以实现所需的行为。

让我们分析一个他们可能选择做什么的例子。

Maker 有一个UTXO U_xA持有x数量的A资产,而他想要将其资产交换成y数量的B资产。

Maker创建了一笔交易,花费单个UTXO U_xA并接收y数量的B资产。

Maker屏蔽(blinds)这个输出。在实践中,这有一些重要的挑战,权衡和实现细节将在下一节中讨论。

加密托管机构BitGo获准在意大利运营:金色财经消息,加密托管机构BitGo已与其他几家加密公司一起在意大利注册运营。根据意大利金融监管机构Organismo Agenti e Mediatori(OAM)的文件,BitGo的德国分公司 BitGo Deutschland GmbH于7月15日注册,在该国提供“数字钱包服务”。(CoinDesk)[2022/7/20 2:24:34]

Maker 使用SIGHASH_SINGLE | SIGHASH_ANYONECANPAY 对(唯一)输入进行签名,这允许 Taker 添加更多的输入和输出,而不会使 Maker 签名无效。

其他Maker按照上述规定创建 LiquiDEX 提议,并将提议发送给 Taker。

Taker 收到提议,并进行一些验证,其中可能包括:

输入和输出数组的长度为 1;

tx 是有效的 Liquid 交易;

tx 有 1 个输入和 1 个输出;

tx 输入未花费;

tx 已签名,并且签名与SIGHASH_SINGLE | SIGHASH_ANYONECANPAY有效;

输出承诺(commitment)匹配输出的非盲信息;

先前的输出承诺匹配输入的非盲信息;

Taker 添加一个输出,该输出接收x数量的A资产。

Taker为交易提供资金,即他为资产B和费用添加输入,根据需要更改输出,以及显式费用输出。

Taker使用提议中的非盲信息来屏蔽交易。

Taker用SIGHASH_ALL对新添加的输入进行签名。

Taker广播交易,一旦这笔交易被纳入一个区块,这笔swap交换交易就被结算了。

LiquiDEX 有一些权衡,我们在这里总结一下。

优点:

更好的用户体验。

对swap交易参与者的要求较低,Maker 提出提议,然后可以离线,然后Taker接受提议,几分钟后完成结算;

协议更容易分析。

Terra社区成员发起0.5% LUNA紧急资金分配的分配方法的新提案:6月6日消息,Terra社区成员发起0.5% LUNA 紧急资金分配的分配方法的新提案,提议有三个群体有资格获得紧急资金分配:在 Terra Classic 上推出并实现产品市场匹配和 TVL 的项目、在 Terra Classic 上推出并实现了产品与市场匹配但没有可衡量的 TVL 的项目、尚未实现产品与市场匹配(pre-PMF)的项目(发布前和上市后),并建议向符合条件的 pre-PMF 团队分配 10 万到 30 万美元的 LUNA 资金。

注,Terra 生态系统复兴计划 2 指定了 LUNA 供应量的 10% 专门用于激励 Terra 2.0 上的开发人员,其中 0.5% 为紧急基金,旨在在网络启动后帮助项目方们构建产品,如果产品在 1 年内未推出,则退还资金。[2022/6/6 4:04:27]

更容易集成到更复杂的系统中。

Maker 不会从 Taker 那里了解到破盲信息(unblinding information)。

缺点:

Maker 发送单个 UTXO,如果金额不是所需的,则需要进行额外的交易。

更少的匿名性,LiquiDEX交换是可识别的,因为SIGHASH_SINGLE | SIGHASH_ANYONECANPAY在交易中可见。

现在,我们来展示一些 LiquiDEX 支持的应用例子。

假设Maker想要把L-BTC卖掉换成USDT或L-CAD,他可以使用相同的 UTXO提出两个提议,一个发送L-BTC 并接收 USDT,另一个发送L-BTC 并接收 L-CAD。由于 UTXO 只能使用一次,所以他要么是收到USDT,要么是收到L-CAD。

Taker可以使用多个提议构建其交易,例如:

我们还可以实现一项服务,它接受用户的提议并负责匹配它们,这种服务既可以使用其他用户的资金,也可以使用自己的流动性资金。

Alice 发行了一种新资产,我们称之为 NFT。Alice 可以为此举行拍卖会,她公布了自己想要发送的输出的资产、数量和盲注(blinder),并将接受交换L-BTC(或她想要接收的任何其他资产)的提议。过了一段时间后,她会接受对她来说更有利可图的提议。

NFT市场Ayoken完成140万美元pre-seed轮融资,Kon Ventures等参投:5月30日消息,NFT市场Ayoken完成140万美元pre-seed轮融资,本轮融资由 Founders Factory Africa、Kon Ventures、Crypto League、R9C Ventures 和 Maximus Ventures 等参投。融资将用于购买独家版权与建立技术团队。据悉,Ayoken 将在未来几个月内发布一些非洲艺术家和世界各地其他艺术家的 NFT。[2022/5/30 3:50:48]

如果她想以一定的价格出售该NFT资产,那么她可以提出提议并希望有人接受它。

一组用户可使用点对点的方式在彼此之间中继提议,以维护一个去中心化的订单簿,这将是一个去中心化的交易所(DEX)。

当我们确信这个想法实际上是可行的之后,我们就开始对越来越复杂的原型进行迭代。

第一次迭代的所有输入和输入都是非盲的。它需要一个 Elements Core 节点以及一个没有额外依赖项的小型 Python 脚本来运行协议。

然后我们增加了对taker使用盲输入和输出的支持。

这需要一个额外的依赖项wally?来执行一些加密操作。

剩下的步骤是允许maker 也使用盲输入,我们这样做了,但不幸的是,实际的实现失败了。

使用保密交易(CT),非盲信息在输出字段之一(范围证明——rangeproof)中加密。当收到交易时,这个非盲信息被解密并用于支出。然而,交易签名不涵盖此类字段。因此,Taker 可以替换其价值,而 Maker 将无法blind这笔交易。

解决这个问题的一个方法,是在本地保存每个提议的非盲信息,而不依赖于rangeproof数据。不幸的是,这与elements-cli 是不兼容的。 因此,我们不得不寻找新的想法来完成我们的实施。

我们需要一个让我们能以最少的开销进行实验的钱包。我们选择从使用 Electrum 服务器的Blockstream GDK Rust? 实现开始。这个想法是去除所有不需要的功能,以获得一个非常简单但有效的 Liquid Electrum 钱包。经过了数个月的努力之后,我们搞出了BEWallet。

然后我们添加了 LiquiDEX 支持,在这样做的同时,我们试图最大限度地减少用户应该备份的数据量。Electrum 钱包(单签名)备份通常包含一个BIP39助记词,但LiquiDEX还需要其他的东西。琐碎的办法是坚持所有提出的提议,但我们可以做得更好。

首先,我们可以确定性地推导出资产blinder以及金额blinder 。此外,交易有一个 Maker 不使用的字段,即 nonce commitment。此字段已签名,因此可用于存储一些有用的数据。我们想为资产存储 32 个字节,为数量存储 8 个字节,但我们只有 32 个字节(和 1 个位)可用。

我们选择使用 AES GCM IV 加密 nonce 字段中的金额,因为我们已经将其作为加密本地数据库的依赖项。

相反,资产将被迫违背资产承诺。当提出提议时,钱包将保留它可能在本地收到的资产。在揭盲时,它会尝试所有先前保留的资产,直到找到匹配项为止。

如果我们在另一台设备上恢复钱包呢?我们可以导出上一个钱包中的资产列表,如果丢失了,我们可能会记住它,因为我们可能只交易最受欢迎的资产,或者我们甚至可找到在 Liquid 上发行过的所有资产并尝试所有这些资产。

不管怎样,这可能会在未来进行一些改进,我们只是想要一些现在有效的东西。BEWallet 在早期仍然是一个附带项目,它可能会存在漏洞,因此要测试的话,请使用少量的资金。

安装BEWallet钱包:

Maker 列出其代币以选择要交换的代币:

然后制作提议:

并将该提议发送给接受它的Taker:

$ bewallet-cli --mainnet --electrum-url blockstream.info:995 --data-root $PWD --mnemonic "$MNEMONIC" liquidex-take --proposal '{"version":0,"tx":"02000000010123e4f67aaf6fb5eebc35512e030f23ccbfdd9fc1a0edb42e8044595fc0757caa00000000171600149fec391992ea13a5e29fd55bd38050bfef83d5c4feffffff010aa630e1848d2c5853a6aaef9a36ab0e5f677ed3c9642825acc3f3e3cd2d5e2f63098af87f31f095ce416a8a32bac2a715f2d3920f511a93d9295fbf149010b1a38702d30da456e26ff055f8d69ea5cd144aaffc3e36314d1dea552b0c217d6ecb04f817a914b9eab96318ef4f7b60858a0586ff474a7024061b8700000000000002483045022100a91c9d744d19fe22231561b9ee89aa0674b6b876d63835fb807a441a041c0c5b02201e336469acad3ee94b0a73b609d1e73f5de93e6068a93e44a08720fb1bc6f6948321034a6c4485c1b5a26f61225f575a3ff0dda62bfb52c7008e9c592e68aa87d557f2000000","inputs":[{"asset":"beebee1a548fbb20280e539b697de076d87859a25c2983ebc55f2d8bec40abc3","asset_blinder":"299999a36875bdb950a232de77f4d81fecf7fc073bb93e28940929e4b130edbc","amount_blinder":"c44f9bdb17a0754231305b36fcd046de567210689cc6de1eb11778a51b921d52","amount":5}],"outputs":[{"asset":"8026fa969633b7b6f504f99dde71335d633b43d18314c501055fcd88b9fcb8de","asset_blinder":"ee390be3dd1e53d1f723e1007234fa3074691a7d5f1cfdbd75e0255284ee40b1","amount_blinder":"70b0d48bc015e4930d4688ca67379e4a637a78c70f573fc009cf1cc1bfe32e3a","amount":5}]}' --broadcast

1980adeb659579e3d5fca673ab00e2f9a4fb933bfcabc0d52946ad3260552882

这导致了这笔交易?,它可以被maker 部分揭盲,而被taker完全揭盲。

请注意,可以使用 taker-cli.py 和一个Elements 节点执行 Taker 步骤。

BEWallet LiquiDEX 实现现在已经可以工作了,但它远非完美,我们削减了一些内容,在不久的将来,我们还会实施很多可能的优化和界面改进。其中有几个改进是我们很想去实现的,但我们必须要多等待一点时间。

我们想摆脱自定义JSON 格式以使用部分签名Elements交易,但是这还没有准备好。

那么我们宁愿降低 Maker 及其揭盲程序的复杂性,这可以使用 SIGHASH_RANGEPROOF? 来完成,这是一种新的sighash类型,其也涵盖了范围证明(rangeproof),但是,我们需要等待它的部署。

一旦我们同时拥有两者,任何支持 PSET 的钱包都可以以最少的更改实现LiquiDEX。

Liquid网络是具有原生资产的区块链,它允许两方或多方合作构建交易。这种交易可能包括双方之间的资产交换,换言之即一笔P2P原子交换。

这个swap交换协议的初始实现分为3个步骤。然而,它有几个问题,主要是用户体验会变糟。

LiquiDEX 是一种执行两步 P2P 原子交换的协议。这通过要求 Maker 和 Taker 之间的单次交互来改进用户体验,并做出合理的妥协。

LiquiDEX 更容易集成到其他系统中,并且可以成为实施 OTC 交易柜台、拍卖系统、DEX等的构建块。

而BEWallet则是一个支持LiquiDEX的可用Liquid Electrum 钱包。

致谢

我要感谢 Riccardo Casatta,是他提出了最初的想法,Luca 和 Valerio Vaccaro 帮助我进行了测试,特别是 Valerio 建立了liquidex.it,这是一个上传提案的网站,此外他还提出了拍卖系统的想法。

标签:QUOLIQQUIDUIDQuotientCLIQ币QUID价格SQUID

PEPE币热门资讯
Venus收取提款费 机池Belt如何处理用户损失问题?

由于4月20日晚上8:20(GMT+8)Venus的VIP-12的实施——收取0.01%的提款费,Belt Finance等机池中Venus池资产的提取和复利受到了影响,造成了用户的资金损失.

1900/1/1 0:00:00
Mercurial Finance:Solana上一个有潜力的空投机会

HI~,小伙伴们! 相信之前跟着咱们链金攻略做过Raydium IDO的小伙伴们都知道RAY平台的两个打新项目,一个是MEDIA,另外一个就是Mercurial.

1900/1/1 0:00:00
数据说话:网红以太坊扩容方案 Polygon 的链上数据表现究竟行不行?

Polygon?拥有一个较小的 DeFi 应用程序生态系统,而且这些应用程序也都已经在以太坊上进行了实战测试。Polygon 链上交易增长稳定且有机.

1900/1/1 0:00:00
Reality Cards真钱测试版上线

很高兴今天与大家分享Reality Cards(现实卡)发展的里程碑,也就是我们的真钱测试版的发布!如果你从一开始就一直在玩,你可能会记得我们有一个非常早期的私人MVP,以及我们的开放测试网版本的趣味金钱(已有大量更新).

1900/1/1 0:00:00
Acala和 Karura:经济模型须知与防指南

Acala 作为目前 Web3 DeFi 最具影响力的项目之一,越来越受到媒体、社区等关注,随着市场不断的拓展和生态的发展,参与者也涌现出良莠不齐的态势.

1900/1/1 0:00:00
HECO每日快讯:4月13日-4月23日

致力于挖掘HECO公链潜力项目,促进HECO生态繁荣。共同抵制无审计、合约代码无开源的、虚假宣传项目,维护良好HECO生态环境。对于故意宣传抹黑友商项目、HECO品牌的读者还请多担待.

1900/1/1 0:00:00