【研报精选】Uniswap Permit2的设计思路

mediumXuất bản vào 2023-01-06Cập nhật gần nhất vào 2023-01-06

Tóm tắt

Uniswap 团队在去年十一月的时候公布了两个新合约,在 DEX 生态中抛出了一个新的组合,试着透过一站式的高度整合提供更好的用户体验,其中 Permit2 合约是达成这个目标的一个重要基础,本文将针对 Permit2 的设计与实作进行探讨。

Uniswap 团队在去年十一月的时候公布了两个新合约,在 DEX 生态中抛出了一个新的组合,试着透过一站式的高度整合提供更好的用户体验,其中 Permit2 合约是达成这个目标的一个重要基础,本文将针对 Permit2 的设计与实作进行探讨。

ERC20 授权痛点

用户在面对新的 Dapp 时,通常会面临以下几个关于 ERC20 代币授权的痛点

每个 Dapp 及每个 Token 都需要独立授权,意味着用户要发送授权交易到区块链,步骤繁琐且消耗手续费

为求方便,每次授权通常都给最大值 (uint256 max)

Dapp 合约若有漏洞被开采,用户需要尽快 revoke 授权,否则可能会丢失资产

为了解决上述问题,开发者提出 EIP-2612 使用 Permit 签名的形式来取代呼叫 approve(),此设计可以有效解决以上痛点,但许多市场主流的代币已经相当古老,而且合约是不可升级的设计,因此该方式并没有办法立即解决眼前的议题。

然而事情其实还是有转圆的馀地,虽然原生的代币不支援 permit,但如果能够先授权给一个独立的新合约,由该合约来做 permit 签章验证,那麽是否就达到了相同的目的?于是有了 Permit2 的诞生。

Permit2 — 外挂式的 Permit

Uniswap 的 Permit2 合约最主要的目是在解决 ERC20 授权的痛点,同时兼容无法升级的老旧代币合约。作法上主要是以一个外挂式的 permit 合约来实现,并具备以下特色

支援任意 ERC20 token,不论该 Token 本身是否支援 permit

支援 EIP-1271,合约钱包能够验证签章

支援 batch 呼叫

透过 nonce 机制允许用户 cancel 已经签出去的 pending permit

Permit2 实作

Permit2 继承了两个子合约,分别为 SignatureTransfer 及AllowanceTransfer。用户最一开始需要先授权代币给 Permit2 合约,而未来的代币转帐就可以由 Permit2 来进行验签及管理。

Permit2 定义了签章内容的各式资料结构,原则上都与 EIP-2612 中所定义的栏位大同小异,因此不另外做介绍。

SignatureTransfer (signature-based transfers)

用户可以提供一次性的转帐 permit 签章给 Dapp 使用,Dapp 合约呼叫 Permit2 进行转帐时夹带用户的 permit 签章,这类的场景即是由 SignatureTransfer 负责。

合约介面主要就是带入 transfer 相关参数以及 permit 签名,值得一提的是 witness 这个栏位,实际作用是一个保留给 Dapp 使用的签章栏位,可用于区分订单 id 或者是 swap hash,避免 permit 被恶意抢跑,例如我签了 100 USDC 的 permit 目的是想要 swap 换成 WETH,结果一个攻击者拿着我的 permit 签章执行了另一个 USDC <-> DOGE 的 swap。这部分主要看串接合约的实作逻辑来决定要如何利用 bytes32 witness 这个栏位。

AllowanceTransfer (signature-based approvals)

transfer with permit 的使用场景需要用户每一次都在线做 permit 签名,不过这样在线的要求对于有些应用场景并不适合,因此 Permit2 仍支援原本 ERC20 授权的使用场景,也就是用户先授权一个额度,拥有授权的合约可以直接呼叫 transferFrom(),而 AllowanceTransfer 作法上的差异主要是用户可以不用发交易呼叫 approve(),而是透过签章验证的方式来做额度授权。

介面的设计其实类似于 EIP-2612 的概念,除了基本的授权与转帐以外,也支援 cancel 以及归零的呼叫。

/// @notice legacy ERC20 approve function

function approve(address token, address spender, uint160 amount, uint48 expiration) external;

/// @notice approve with permit (single/batch)

function permit(address owner, PermitSingle memory permitSingle, bytes calldata signature) external;

function permit(address owner, PermitBatch memory permitBatch, bytes calldata signature) external;

/// @notice legacy ERC20 transferFrom function (single/batch)

function transferFrom(address from, address to, uint160 amount, address token) external;

function transferFrom(AllowanceTransferDetails[] calldata transferDetails) external;

/// @notice set allowance amount to zero

function lockdown(TokenSpenderPair[] calldata approvals) external;

/// @notice overwrite nonce to cancel pending permits

function invalidateNonces(address token, address spender, uint48 newNonce) external;

Uniswap 主导优势

其实类似于 Permit2 的设计概念存在许久,也有被一些 DEX 采用,不过 Permit2 在一开始的设定就是希望能成为代币授权的託管合约,并且能够广泛被各个 Dapp 串接使用,要能达成这个目的的前提是能够得到多数用户的信任与授权,而 Uniswap 在行业裡的角色实质上是有能力做到这样的号召力,一同发表的 Universal Router 就已经整合了 Pertmi2 合约,换句话说,用户若要使用新的 Universal Router,就需要先授权 Permit2 合约,拥有越多用户的代币授权,则越能够吸引其他 Dapp 来串接。

除此之外,若要乘载大量用户的代币授权,合约安全势必是一大信任的关键,Permit2 承袭了 Uniswap 的风格,采用不可升级的设计,同时由 Chainsecurity 与 ABDK 完成审计,并且附上完善的文件与 SDK,也发布了 bounty program,是相当成熟的开源合约。

过去 CEX 託管了用户的资产,有鉴于近期 FTX 事件及一连串的连锁效应,许多用户开始对中心化託管产生了不信任,而此时对于握有用户 token approval 的 DEX 则是绝佳的发挥机会,我认为,让用户跳脱传统中心化託管的模式,同时与用户体验及成本取得一个平衡,是 DEX 往下发展的一个重要的基石。

Nội dung Liên quan

Đối thoại với Ray Dalio: Chúng ta đang ở trong bong bóng AI, 1% danh mục đầu tư của tôi là Bitcoin

Ray Dalio, người sáng lập Bridgewater Associates, trong một cuộc phỏng vấn đã chỉ ra rằng thế giới hiện tại đang trong một "AI bubble" (bong bóng AI) cổ điển, với giá tài sản tăng vọt và đầu cơ quá mức. Ông cảnh báo bong bóng có thể vỡ do lãi suất tăng, nguồn cung cổ phiếu dư thừa hoặc khi nhà đầu tư cần tiền mặt trả nợ, dẫn đến suy thoái kinh tế. Đồng thời, Dalio mô tả một "chu kỳ lớn" kéo dài khoảng 80 năm, bao gồm ba động lực chồng chéo: khoảng cách giàu nghèo và xung đột nội bộ, thâm hụt ngân sách chính phủ khổng lồ và thay đổi địa chính trị. Ông nhấn mạnh rằng Mỹ và Anh đang đối mặt với những thách thức trong giai đoạn suy yếu này. Để bảo vệ của cải, Dalio khuyến nghị đa dạng hóa danh mục đầu tư với cổ phiếu, vàng, trái phiếu, bất động sản thay vì chỉ giữ tiền mặt. Ông tiết lộ khoảng 1% danh mục của mình là Bitcoin, nhưng vẫn ưa chuộng vàng vật chất hơn do tính ổn định và vai trò tiền tệ dự trữ. Về tác động của AI, Dalio cho rằng nó không chỉ thay thế lao động chân tay mà còn cả tư duy, làm trầm trọng thêm bất bình đẳng thu nhập. Con người cần phát huy trí tuệ cảm xúc và trực giác - những thứ AI chưa có - và học cách hợp tác với AI. Cuối cùng, ông phân tích những rủi ro của thuế tài sản và xu hướng thế giới có thể trở nên "khu vực hóa" hơn, với các khối như châu Mỹ và châu Á - Thái Bình Dương, trong bối cảnh sự thống trị toàn cầu của Mỹ đang suy yếu.

marsbit1 giờ trước

Đối thoại với Ray Dalio: Chúng ta đang ở trong bong bóng AI, 1% danh mục đầu tư của tôi là Bitcoin

marsbit1 giờ trước

Hơn 7.2 nghìn tỷ won trong một ngày, ngoại hải nước ngoài mua ròng kỷ lục vào thứ Sáu! Phố Wall: Cơn gió ngược về mặt vốn của thị trường chứng khoán Hàn Quốc đã tan biến

Dòng vốn nước ngoài đổ mạnh vào thị trường chứng khoán Hàn Quốc (KOSPI) với mức mua ròng kỷ lục 7,2 nghìn tỷ won chỉ trong ngày 31/7, đánh dấu sự đảo chiều rõ rệt sau nhiều tháng bán ròng mạnh. Theo báo cáo từ Citigroup, áp lực bán từ dòng vốn nước ngoài đã giảm đáng kể, với mức bán ròng tháng 7 thu hẹp còn 9,8 nghìn tỷ won so với mức 48,4 và 44,5 nghìn tỷ won trong tháng 6 và tháng 5. Đồng thời, các quỹ hưu trí và quỹ đầu tư trong nước cũng chuyển sang vị thế mua ròng 1,0 nghìn tỷ won trong tháng 7. Một yếu tố hỗ trợ khác là quy định mới từ Ủy ban Dịch vụ Tài chính Hàn Quốc (FSC), có hiệu lực từ 31/7, siết chặt điều kiện đầu tư vào các ETF có đòn bẩy đối với nhà đầu tư cá nhân. Quy định này đã ngay lập tức làm giảm khoảng 50% khối lượng giao dịch của các ETF này, góp phần kỳ vọng giảm bớt biến động cho thị trường. Citigroup duy trì mục tiêu chỉ số KOSPI ở mức 10.000 điểm, dựa trên các yếu tố thuận lợi như ngành chip bán dẫn ổn định, định giá thị trường thấp, nền tảng kinh tế vững mạnh và các chính sách hỗ trợ. Họ nhận định áp lực dòng vốn ngược chiều đang giảm dần, tạo điều kiện cho các yếu tố cơ bản và chính sách tích cực phát huy tác dụng.

marsbit1 giờ trước

Hơn 7.2 nghìn tỷ won trong một ngày, ngoại hải nước ngoài mua ròng kỷ lục vào thứ Sáu! Phố Wall: Cơn gió ngược về mặt vốn của thị trường chứng khoán Hàn Quốc đã tan biến

marsbit1 giờ trước

Làm thế nào để khiến bản thân trở nên không thể bị thay thế bởi trí tuệ nhân tạo

**Tóm tắt: Làm thế nào để trở nên không thể bị thay thế bởi AI** Bài viết phản đối việc than vãn về AI và thay vào đó đề xuất một giải pháp căn cơ: trở thành một "siêu cá nhân" không thể bị thuê mướn. Mối đe dọa thực sự không phải là AI, mà là tình trạng "nô lệ lương thưởng" – phụ thuộc hoàn toàn vào người khác để sinh tồn, làm công việc nhàm chán mà không có mục đích. Để thoát khỏi vòng luẩn quẩn này và phát triển mạnh trong kỷ nguyên AI, bạn cần trau dồi 5 yếu tố then chốt: 1. **Tính tự chủ:** Khả năng hành động mà không cần chờ chỉ thị. 2. **Khiếu thẩm mỹ:** Khả năng nhận biết điều gì thực sự có giá trị. 3. **Khả năng thuyết phục:** Thu hút sự chú ý và sự công nhận. 4. **Sự kiên trì:** Không sợ thất bại, xem đó là bài học. 5. **Khả năng lặp:** Điều chỉnh dựa trên phản hồi để tiến tới mục tiêu. Giải pháp là đầu tư vào sự nghiệp của chính mình. Trong khi AI giỏi tạo ra "tài sản" (nội dung, code), nó không thể thay thế được khả năng phân biệt thứ gì đáng để tạo ra, làm cho mọi người quan tâm và kiên trì theo đuổi. Trong hai kỹ năng đòn bẩy mạnh mẽ là **Code (Lập trình)** và **Media (Nội dung)**, bài viết nhấn mạnh **Nội dung** quan trọng hơn. Giá trị của nội dung là chủ quan và đòi hỏi sự am hiểu, trải nghiệm mà AI khó có được, tạo không gian cho các cá nhân sáng tạo thực sự. **Cách bắt đầu (Bài tập 15 phút):** 1. **Khai thác nguyên liệu thô của bạn:** Xác định chủ đề bạn am hiểu sâu, vấn đề bạn tự giải quyết được, hay sở thích đặc biệt từ nhỏ. 2. **Xác định "trục phản biện" của bạn:** Tìm ra quan điểm độc đáo của bạn – những điều bạn tin là đúng nhưng số đông lại sai trong lĩnh vực của mình. 3. **Xuất bản ý tưởng đầu tiên:** Kết hợp câu trả lời từ bước 1 và 2, tạo ra một nội dung (bài đăng, video) và đăng nó lên. Hành động này mang lại phản hồi thực tế, bắt đầu quá trình học hỏi, lặp lại và phát triển kỹ năng thuyết phục. Bằng cách xây dựng một sự nghiệp xoay quanh con người thật, trải nghiệm thật và góc nhìn độc đáo của mình thông qua nội dung, bạn có thể tạo ra giá trị mà AI không thể sao chép, từ đó trở nên không thể thay thế.

marsbit3 giờ trước

Làm thế nào để khiến bản thân trở nên không thể bị thay thế bởi trí tuệ nhân tạo

marsbit3 giờ trước

Nhờ việc tung xúc xắc, chìa khóa Bitcoin được lưu trữ offline, nhưng không phải ai cũng muốn làm điều này

Cảm biến từ cuộc tranh cãi gần đây xung quanh lỗ hổng trong ví phần cứng Coldcard, bài viết thảo luận về phương pháp tạo seed (cụm từ khôi phục) cho ví Bitcoin bằng cách xúc xắc vật lý. Mỗi lần xúc xắc công bằng cung cấp khoảng 2,6 bit entropy (thước đo tính ngẫu nhiên). Để đạt mức entropy an toàn cho một seed 12 từ (128 bit), cần khoảng 50 lần xúc xắc; Coldcard khuyến nghị 99 lần để đạt mức bảo mật cao hơn. Lợi thế chính của phương pháp này là tách biệt hoàn toàn với bất kỳ lỗi phần cứng hoặc phần mềm nào trong trình tạo số ngẫu nhiên của thiết bị, từ đó bảo vệ seed chính của ví. Tuy nhiên, bài viết cảnh báo rằng trong sự cố Coldcard, các chức năng phụ khác của thiết bị (như tạo ví giấy, khóa đa chữ ký, mật mã phiên USB) vẫn có thể bị ảnh hưởng nếu chúng dựa vào trình tạo số lỗi, ngay cả khi seed chính được tạo an toàn bằng xúc xắc. Nhược điểm lớn của việc dùng xúc xắc là quá trình thủ công, dễ xảy ra sai sót, tốn thời gian và không thực tế cho đa số người dùng mới. Người dùng có thể ghi chép sai, sử dụng xúc xắc gian lận, hoặc để lộ chuỗi kết quả. Do đó, mặc dù có nền tảng toán học vững chắc, phương pháp này đòi hỏi sự tỉ mỉ cao và không phải là giải pháp khả thi cho việc áp dụng Bitcoin rộng rãi. Bài viết kết luận rằng mục tiêu dài hạn vẫn là phát triển phần cứng/phần mềm tạo số ngẫu nhiên mạnh mẽ và đáng tin cậy, trong khi vẫn giữ phương pháp thủ công như một tùy chọn cho người dùng có kinh nghiệm. Cuối cùng, bài viết đưa ra khuyến nghị cho chủ sở hữu Coldcard: cập nhật firmware, kiểm tra các chức năng phụ đã sử dụng và xem xét các biện pháp bảo mật bổ sung như ví đa chữ ký kết hợp nhiều nhà sản xuất để giảm thiểu rủi ro từ một điểm yếu đơn lẻ.

cryptonews.ru6 giờ trước

Nhờ việc tung xúc xắc, chìa khóa Bitcoin được lưu trữ offline, nhưng không phải ai cũng muốn làm điều này

cryptonews.ru6 giờ trước

Giao dịch

Giao ngay
活动图片