普通交易只能实现两个账户之间的转账,bundle 交易可以实现多个账户的转账,而且这些转账是原子性的,bundle 中有一笔交易失败则整个 bundle 交易进行回滚。
“everPay 为用户提供了实时的代币支付结算。现在我们提供了更比转账更强大的支付原语(opAction)—— bundle 交易。”
普通交易只能实现两个账户之间的转账,bundle 交易可以实现多个账户的转账,而且这些转账是原子性的,bundle 中有一笔交易失败则整个 bundle 交易进行回滚。
bundle 的特性
一笔 bundle 交易可以包含多笔转账,转账以数组的形式进行排序和组装。每个 bundle 交易都有一个唯一的 hash 标识,该标识是将 bundle 交易序列化后计算的 hash。
bundle 交易中的所有转出方都需要对 hash 标识进行签名,以确保资产转出方认同该笔 bundle 交易。缺失任何转出方的签名,交易都无法成功。 一个账户转出到多个账户时,仅需要一次签名;多个账户转到多个账户时,需要所有转出方的签名。
批量转账
bundle 交易常见的应用场景是批量转账。用户使用普通交易向十个地址进行转账需要进行十次签名,使用 bundle 交易向十个地址转账仅需一次签名。
原子兑换
可以使用 bundle 进行两个账户之间相互转账。由于每一笔转账支持不同的币种,因此可以使用 bundle 进行账户之间的原子兑换。
例如 A 账户想要向 B 账户支付 100 USDT 购买 1 个 AR,A 生成一笔 bundle 交易:
A 向 B 转 100 USDTB 向 A 转 1 AR
这笔交易的转出方分别是 A 和 B,需要 A 和 B 同时进行签名交易才能执行。
A 先签署 bundle 之后把 bundle 以及自己的签名发给 B,B 认可 A 的交易规则并进行签署和交易提交。bundle 交易提交 evePay 后会发生:
校验 A 和 B 签名的合法性
将 100 USDT 从 A 转到 B
将 1 AR 从 B 转到 A
步骤 1-3 任何一步失败,整个交易回滚。
everPay Swap 由 everPay 生态合作伙伴 Goblin 团队研发,在 everPay 中进行了深度集成。bundle 交易保证了 swap 交易的原子性和事务性,让用户兑换更加安全和去中心化。 <!--StartFragment-->
<!--EndFragment--> 任何开发者和团队都可以使用 bundle 交易打造自己的 DEX 兑换功能,使用 everpay-js SDK 将兑换集成到您的页面。
everpay-js中文文档:
https://docs.everpay.io/docs/sdk/everpay-js/intro
关于 PermaDAO:Website | Twitter | Telegram | Discord| Medium | Youtube
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!