Universal Router是一个不可升级的、无主的、开源的合约,已经部署在Ethereum、Optimism、Arbitrum、Polygon和Celo。
原文来源:Uniswap blog
原文作者:uniswap team
编译:西早先生,MarsBit
11月18日,Uniswap Labs发布了两个新的智能合约:
1、Permit2允许在不同的应用程序中共享和管理代币审批,创造更统一、更高效和更安全的用户体验。
2、Universal Router(通用路由器)将ERC20和NFT交易统一为一个交换路由器。与Permit2整合后,用户可以在一次交易中交换多个代币和NFT,同时节省gas费。
最初,我们构思Permit2和Universal Router是为了改进自己的产品,优化gas费成本,简化用户交易流程,并加强安全性。在我们构思的过程中,我们意识到其他应用可以从整合这两个合约中受益匪浅。Uniswap致力于建设公共基础设施,推动加密货币的发展,这也是我们设计这两个合约供整个开发者生态系统使用的原因,包括广泛的文档、SDK和为期两周的bug悬赏活动。
Permit2——高效、一致且安全的审批
Permit2是一个代币审批合约,可以在不同的智能合约中安全地共享和管理代币审批。随着越来越多的项目与Permit2融合,我们可以在所有应用程序中实现代币审批的标准化。反过来,Permit2通过降低交易成本来改善用户体验,同时提高智能合约的安全性。
最初在EIP-20中定义的代币审批方式有两个弱点:
1、用户必须为每个新的应用程序发送一笔审批交易。这带来了混乱的用户体验,用户可能需要在使用应用程序之前发送多笔交易,大大浪费了gas费和时间。
2、为了方便起见,应用程序要求用户批准最大限额,使应用程序可以无限期地访问钱包的代币余额。虽然Uniswap从来没有遭受过漏洞攻击,但无限期的审批可以被黑客用来窃取用户的代币。
EIP-2612迭代了代币审批。只要用户在他们的交易中附加一项签名的许可信息,就可以与应用程序合约进行互动,且不需要事先批准。虽然EIP-2612使代币审批更加安全,但在EIP-2612之前推出的代币并不支持该功能,而且并非所有新的代币都采用了该功能。
Permit2如何改善用户体验
Permit2进一步迭代了代币审批机制,无论是否支持EIP-2612,Permit2都为任何ERC20代币引入了基于签名的审批和转账。Permit2还配备了一系列令人兴奋的功能,解锁了更安全的代币审批选项,并实现了更一致的用户体验。完整的功能清单可以在我们的文档中找到,值得注意的是:
1、对任何代币的许可。应用程序可以实现单一的交易流程,原理是为代币发送签名和交易数据,包括那些不支持原生许可方法的代币。
2、过期审批。审批是可以有时限的,消除了对钱包代币余额审批的安全担忧。撤销审批也不一定是一笔新的交易。
3、基于签名的转账。用户可以通过一次性签名将代币转给有权限的支出者,从而完全绕过设置限额。
4、批量审批和转账。用户可以对多个代币设置审批,或在一次交易中执行多次转账。
5、批量撤销限额。在一次交易中取消任何数量代币和支出者的限额。
整合Permit2
Permit2是一个不可升级的、无主的、开源的合约,已被部署到Ethereum、Optimism、Arbitrum、Polygon和Celo的同一个地址上。想要与Permit2进行整合,请查看开发者文档和SDK。
作为强大的智能合约开发标准的一部分,我们还为Permit2合约推出了一个bug悬赏计划。
目前,Permit2只支持ERC20代币。Uniswap Labs会在不久的将来发布一个面向NFT的版本。
Universal Router——统一的代币和NFT交易
我们已经将Permit2整合到正在发布的另一个令人兴奋的合约中。Universal Router是Uniswap的下一代路由器,它将代币和NFT交易统一为一个高度灵活、gas费优化、安全和可扩展的交换路由器。Universal Router大大改善了产品和用户体验,它会在不久的将来成为所有Uniswap交易的默认交换路由器。
交换路由器接收定义的参数(如交易路线、最大滑点和交易接收者),并针对用户所需的场所执行交易(如Uniswap池、NFT市场)。交换路由器经过优化,可以找到最低的价格,并以最低的gas费执行交易。
然而,目前的交换路由器存在两个问题:
l 现有的交换路由器通常只支持NFT或ERC20代币。涉及两者的交易目前需要多笔交易才能完成。例如,用ERC20代币购买NFT需要两笔独立的交易。首先,从DAI到ETH,然后是从ETH到NFT。
l 由于交换路由器负责转移用户的代币,用户必须在第一次使用时批准每一个代币,导致升级的成本居高不下。这对聚合器交换路由器来说尤其成问题,因为每次要支持新协议时,都必须重新部署合约。
Universal Router如何统一交易
有了Universal Router,用户可以在Uniswap V2 和 V3上执行多个代币交易,并在一次交易中从多个市场购买NFT。举例而言,设想一笔交易,即:
使用三种不同的输入代币
在Uniswap V2和V3上使用分割路线进行交易
执行一个ETH到WETH的包裹
在OpenSea上购买NFT
这整个流程可以仅以一笔交易执行。
Universal Router与Permit2整合,意味着用户通过Permit2批准,并将签名传输给Universal Router,从路由器合约中抽象出代币批准流程。开发人员可以部署Universal Router的新版本,无需要求用户每次都发送单独的审批交易。这使得Universal Router——或任何整合合约——能保持不变,同时也允许在未来添加新的功能。
整合Universal Router
Universal Router是一个不可升级的、无主的、开源的合约,已经部署在Ethereum、Optimism、Arbitrum、Polygon和Celo。想要开始整合,请查看SDK。
与Permit2类似,我们正在举办bug悬赏计划,以保持Uniswap合约的最高安全标准。