Một Phân Tích Toàn Diện về ERC-4626 và DeFi

Nâng cao2/22/2024, 5:56:11 AM
Bài viết này phân tích các nguyên tắc cơ bản của ERC-4626 và ứng dụng của nó trong DeFi một cách toàn diện.

01 ERC-4626 là gì

ERC-4626 là một hầm chứa token hóa với một token EIP-20 cơ bản duy nhất.

Trước hết, nó là một đề xuất dựa trên ERC-20 và hoàn toàn tương thích với nó.

Thứ hai, hiểu rõ khái niệm về một hòm, đó không phải là kho bạc. Kho bạc hiện tại trên thị trường hầu hết là ví hợp đồng, hầu hết là Gnosis Safe, chủ yếu cung cấp các chức năng nhập và xuất quỹ an toàn. Nhưng đối với một tổ chức, ngoài việc tiền vào và ra, dòng tiền cũng có thể tạo ra thu nhập.

Động lực của đề xuất này: Sự thiếu chuẩn cho các hầm tiền mã hóa đã dẫn đến các chi tiết thực thi khác nhau của nhiều hầm trên thị trường, chẳng hạn như các thị trường cho vay, bộ tập hợp, token mang lại lợi suất, v.v. Điều này làm cho việc tích hợp bộ tập hợp và plugin ở cấp độ giao thức trở nên khó khăn, dễ gặp lỗi và lãng phí tài nguyên phát triển.

Khi tình trạng hiện tại của đề xuất này là Cuối cùng, điều đó có nghĩa là nó là một tiêu chuẩn tương đối ổn định.

02 Specification

Các token theo chuẩn ERC-4626 phải triển khai đầy đủ chuẩn ERC-20, được sử dụng để đại diện cho cổ phần. Dưới đây là một số khái niệm đơn giản.

  • Tài sản: Token cơ bản được quản lý bởi kho, tuân thủ tiêu chuẩn ERC-20.
  • Chia sẻ: Token Kho, còn được biết đến với tên gọi vToken. Nó có mối quan hệ tỷ lệ với tài sản.
  • Phí: Số tiền được tính bởi vault khi một tài sản hoặc cổ phiếu thay đổi. Nó có thể là tiền gửi, thu nhập, quản lý tài sản, rút tiền, v.v.
  • Trượt giá: Chênh lệch giữa giá công bố của tiền gửi và rút cổ phiếu và nền kinh tế thực tế. Dưới đây là giải thích thêm về khái niệm trượt giá trong lĩnh vực DeFi.

Trượt giá là chênh lệch giữa giá dự kiến của giao dịch và giá thực hiện thực tế. Trượt giá xảy ra khi có sự chậm trễ giữa việc đặt giao dịch và thực hiện giao dịch và giá của tài sản được giao dịch thay đổi.

Ví dụ, nếu bạn tìm thấy 20 ETH và 80 USDT trong hồ bơi AMM, giá ETH dự kiến của bạn là 4 USDT/ETH. Tuy nhiên, nếu bạn dự định chi 20 USDT để đổi trong hồ bơi, bạn sẽ chỉ nhận được 4 ETH thay vì 5 ETH dự kiến, điều đó có nghĩa là bạn gánh chịu một mất mát do slippage là 1 USDT/ETH. Giá mua thực tế của bạn sẽ là 5 USDT, không phải là 4 USDT dự kiến.

Slippage đặc biệt phổ biến trong các thị trường di chuyển nhanh hoặc tài sản biến động cao, cũng như các tài sản dài đuôi có thanh khoản bị hạn chế. Bất kể thế nào, nó có ảnh hưởng đáng kể đến hiệu suất giao dịch và quan trọng khi xem xét slippage khi đặt lệnh giao dịch.

03 Phân tích hợp đồng

Mã hợp đồng đến từ thư viện mã hợp đồng thông minh OpenZeppelin:

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626.sol

Hợp đồng ERC-4626 kế thừa từ ERC-20. Phần này sẽ không được tóm tắt. Nó cũng là một hợp đồng trừu tượng chính nó. Các giao diện mà hợp đồng phải thực hiện như sau:

Giao diện khá phong phú, hầu hết chúng đều khá đơn giản và có thể chia thành hai loại: đọc và viết.

Viết

Các giao diện chính để viết dữ liệu là gửi tiền, đúc, rút và đổi.

  • Deposit xác định số lượng tài sản và chuyển chúng vào két. Nó đồng thời phát hành cổ phần. Bạn có thể sử dụng phương thức previewDeposit để xem trước số lượng cổ phần có thể được phát hành.

  • Rút (rút tiền) xác định số lượng tài sản cần chuyển ra khỏi két, và đốt cháy cổ phần đồng thời. Bạn có thể sử dụng phương thức previewWithdraw để kiểm tra trước số lượng cổ phần đã được đốt cháy.
  • Mint sử dụng tham số cổ phần. Trên thực tế, phương pháp này tương đương với việc gửi tiền, xác định số cổ phần được đúc để tính toán tài sản cần phải gửi. Bạn có thể sử dụng phương pháp previewMint để kiểm tra trước số tài sản sẽ được rút ra.
  • Redeem sử dụng tham số cổ phần, tương đương với rút, xác định số cổ phần đã đốt để tính toán tài sản cần chuyển đi. Bạn có thể sử dụng phương thức previewRedeem để kiểm tra trước số lượng tài sản sẽ được đổi trả.

Trong thực tế, do sự tồn tại của slippage, việc sử dụng phương pháp xem trước để xem số liệu dự kiến có thể không chính xác, đây cũng là một vấn đề phổ biến trong ngành và có thể gây ra một số vấn đề về an ninh, điều này sẽ được thảo luận sau.

Đọc

Các phương pháp xem trước được đề cập trước đó, cũng như các phương thức public convertToShares và convertToAssets, thực sự gọi các phương thức _convertToShares và _convertToAssets nội bộ.

Hai phương pháp cốt lõi này là để tính toán mối quan hệ tỷ lệ thuận giữa tài sản và cổ phần. Các biến liên quan bao gồm cung cấp cổ phần, tổng tài sản hiện tại, số lượng điểm thập phân và các phương pháp làm tròn điểm thập phân.

Bên trên là việc thực hiện cơ bản của hợp đồng trừu tượng ERC-4626. Hợp đồng két thực tế phức tạp hơn nhiều so với điều đó.

Đối với hợp đồng kho bạc, có hai chức năng tương đối quan trọng cần thực hiện. Một là chức năng gửi và rút tiền, chuyển đổi tài sản và cổ phần; hai là cách để thu nhập, sẽ được giải thích thông qua ví dụ bên dưới.

04 Sinh thái và Ứng dụng

Tương tự như một số EIP phổ biến khác, ERC-4626 cũng có một hệ sinh thái liên minh (https://erc4626.info/) được duy trì bởi nhân viên chuyên nghiệp, thu thập một số giao thức cho vay và ứng dụng hiện đang có trên thị trường tương thích với ERC-4626, cũng như tin tức, thư viện mã nguồn mở, bảo mật và thông tin khác. Nếu kho của bạn được điều chỉnh cho ERC-4626, bạn cũng có thể nộp đơn ở đó.

Dưới đây chúng tôi phân tích một ví dụ ứng dụng, kho AladdinCRVV2 của Aladdin DAO https://concentrator.aladdin.club/vaults/). Aladdin DAO có nhiều hợp đồng hầm, và đây chỉ là một trong những hợp đồng hoạt động nhiều nhất.

AladdinCRVV2 Vault

Kho bảo vệ kiếm thu nhập bằng cách đặt cọc cvxCRV tokens.

  • Hợp đồng két là một hợp đồng có thể nâng cấp

(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884). Và bạn có thể kiểm tra qua mã nguồn trên github rằng phiên bản trước không tương thích với ERC-4626

  • Trên thực tế, có rất nhiều tùy chọn vận hành cho việc gửi và rút tiền, rất thuận tiện và tiết kiệm gas. Có quá nhiều code, nên tôi sẽ không đăng ở đây.
    • Khoản gửi: token cvxCRV sẽ được gửi vào két mặc định. Hơn nữa, có depositWithCRV, rất tiện lợi cho CRV và cũng có thể được gửi vào
    • Khi rút tiền, token cvxCRV sẽ được rút ra và cổ phần sẽ bị đốt mặc định. Ngoài ra, bạn cũng có thể tự trở lại khi rút tiền, chuyển đổi cvxCRV thành CVX, và chuyển đổi cvxCRV thành ETH.

Trên đây là những phân tích cơ bản về hợp đồng vault với các chức năng tương đối phong phú. Bản chất của nó là đặt cọc tài sản để kiếm lãi. Tại sao nó được thiết kế như thế này? Lý do chính nằm ở việc thiết kế hợp đồng cvxCrvStaking . Mô tả thu nhập từ việc đặt cọc cvxCRV là "Bằng cách đặt cọc cvxCRV, bạn sẽ kiếm được phần thưởng thông thường từ veCRV (phân phối phí quản trị 3crv từ Curve + bất kỳ airdrop nào), cộng với một phần 10% thu nhập CRV được tăng cường của Convex LP và mã thông báo CVX trên đó. " Số lượng mã thông báo càng lớn, lợi ích càng lớn.

An toàn

Đối với các kho ERC-4626, vấn đề bảo mật chính là bảo vệ chống lại các cuộc tấn công lạm phát.

Khi người dùng gửi token, theo công thức tính cổ phần (cổ phần = tài sản * tổng cung / tổng tài sản), kết quả tính toán có dấu thập phân và thường được làm tròn xuống.

Như bạn có thể thấy từ hình dưới đây, khi người dùng gửi 500 mã thông báo vào tài sản, số lượng tài sản bị mất do làm tròn thập phân phụ thuộc vào tỷ lệ hối đoái (tương ứng giữa mỗi cổ phần và mã thông báo tài sản). Nếu tỷ lệ hối đoái là của đường cong màu cam, chúng ta nhận được ít hơn 1 cổ phần và mất 100%. Tuy nhiên, nếu tỷ lệ hối đoái là của đường cong màu xanh và nhận được 5000 cổ phần, thì mất mát làm tròn được giới hạn tối đa là 0.02%.

Nếu chúng ta tập trung vào việc giới hạn thiệt hại tối đa là 0.5%, chúng ta cần ít nhất 200 cổ phiếu. Tỷ lệ xanh chỉ cần 20 mã thông báo, nhưng tỷ lệ cam yêu cầu 200,000 mã thông báo.

Thông qua một số ví dụ, có thể phân tích rằng các đường cong màu xanh và màu xanh lá cây an toàn hơn so với các đường cong màu vàng và màu cam, và được thiết kế để là những két an toàn hơn.

Do đó, phương pháp chính của cuộc tấn công lạm phát là sử dụng các phương tiện nhất định để di chuyển đường cong lãi suất sang phải, gây ra một số lượng nhỏ người gửi tiền mất phần của họ, từ đó đạt được mục đích của cuộc tấn công.

Phương pháp tấn công

Các cuộc tấn công lạm phát chủ yếu thông qua các khoản quyên góp.

  1. Kẻ tấn công đầu tiên gửi 1 token vào hợp đồng kho báu. Lúc này, số cổ phần mà anh ấy nhận được là 1 và totalSupply là 1.
  2. Kẻ tấn công gửi 1e5 token trực tiếp vào hợp đồng hầm. Lúc này, tổng tài sản đã thay đổi thành 1e5 + 1, nhưng tổng cung vẫn giữ nguyên.
  3. Khi nạn nhân gửi số lượng token ít hơn 1e5 (x), số lượng cổ phần nhận được là: x * 1 / (1e5 + 1), tức là, miễn là x nhỏ hơn 1e5, theo nguyên tắc làm tròn xuống số thập phân, số lượng cổ phần mà nạn nhân nhận được là 0. Ngay cả khi số lượng token gửi vào lớn hơn 1e5, vì cổ phần trước đó của kẻ tấn công là 100%, dẫn đến sự giảm đáng kể trong số lượng cổ phần mà nạn nhân nhận được.

Phòng thủ chống lại các cuộc tấn công

Có ba cách để phòng thủ chống lại các cuộc tấn công:

  1. Đặt độ trượt. Trước đó, chúng tôi đã giới thiệu khái niệm về độ trượt, bằng cách thiết lập một phạm vi dung sai độ trượt, nếu không nhận được số lượng mong đợi trong một phạm vi dung sai độ trượt nhất định, giao dịch sẽ bị đảo ngược. Điều này là mô hình tiêu chuẩn để xử lý các vấn đề độ trượt.
  2. Thêm đủ tài sản ban đầu vào kho tiền để tăng chi phí tấn công. Tôi đã thấy phương pháp này trong hợp đồng đặt cọc Blast. Khi bắt đầu đặt cược, hợp đồng yêu cầu số lượng ETH và USD không được nhỏ hơn 1.000.
  3. Thêm “thanh khoản ảo” vào két để việc tính toán giá cả hoạt động như có đủ tài sản trong két. Phương pháp phòng thủ được chia thành 2 phần:
    • Độ lệch chính xác giữa cổ phần và tài sản.
    • Kết hợp cổ phần ảo và tài sản ảo vào các phép tính tỷ giá hối đoái.

Việc triển khai cụ thể là viết lại phương thức _decimalsOffset() của mã thư viện tiêu chuẩn được cung cấp bởi OpenZeppelin. Phương thức này không yêu cầu thiết lập slippage hoặc tiêm đủ số vốn ban đầu. Đây là một cách rất tốt để chống lại các cuộc tấn công lạm phát.

05 Extension

Là một đề xuất hầm cơ bản tương đối, RC-4626 không thể đáp ứng tất cả nhu cầu. Một số đề xuất cũng đã mở rộng nó, như ERC-7535 và EIP-7540.

ERC-7535

Như đã đề cập trước đó, ERC-4626 chỉ có thể sử dụng ERC-20 như tài sản cơ bản. Đề xuất này chủ yếu cho phép sử dụng tài sản bản địa như tài sản cơ bản, chẳng hạn như ETH trong két.

EIP-7540

Phần mở rộng này cho ERC-4626 giới thiệu hỗ trợ cho quá trình gửi và rút tiền không đồng bộ (gọi là “yêu cầu”). Nó bao gồm các phương pháp mới để bắt đầu và kiểm tra trạng thái của các yêu cầu này. Các phương pháp hiện có từ ERC-4626, như gửi tiền, tạo tiền, rút tiền và đổi tiền, được sử dụng để thực hiện các yêu cầu có thể yêu cầu. Tùy thuộc vào quyền của người thực hiện để quyết định liệu có thêm quá trình không đồng bộ cho các khoản gửi, rút tiền, hoặc cả hai.

Các trường hợp sử dụng tiềm năng:

  1. Quy trình gửi tiền và rút tiền không đồng bộ: Bằng cách giới thiệu khái niệm “yêu cầu”, quy trình gửi tiền và rút tiền không đồng bộ có thể được thực hiện, cung cấp phương pháp vận hành linh hoạt hơn.
  2. Cải thiện trải nghiệm người dùng: Đề xuất nhấn mạnh về tầm quan trọng của trải nghiệm người dùng và khuyến nghị việc giới thiệu một cơ chế phát hiện chuẩn để giúp người dùng và các ứng dụng frontend hiểu rõ hơn về thời gian và độ trễ của các hoạt động bất đồng bộ.
  3. Phần mở rộng chức năng: EIP-7540 mở rộng chức năng của ERC-4626 bằng cách thêm các phương thức mới, cho phép yêu cầu gửi tiền và rút tiền một cách không đồng bộ, và xem trạng thái của những yêu cầu này.

06 Tóm tắt

Bên trên là phân tích đầy đủ của ERC-4626.

Do vì lý do lịch sử, nhiều hầm hiện tại trên thị trường không tuân thủ theo ERC-4626 và vẫn tiếp tục hoạt động, như dForce, nhưng chúng không thể được áp dụng rộng rãi hơn. Một số hầm đã được nâng cấp để tuân thủ theo ERC-4626, như một số hợp đồng từ Aladdin DAO(https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.mdKhông thể dịch

Ngoài việc kiếm lải qua việc gắn ký, các ứng dụng kho bảo công cũng có thể cho vay cổ phiếu như tài sản để đảm bảo hoặc gắn ký chúng lại để tạo ra thu nhập. Hàng loạt, kết nối qua các kho bảo công cũng là một kịch bản ứng dụng, vì một số các chức năng cư bản của nó có thể cung cấp hộ trợ tuyệt vời.

Bản chất của đề xuất này là để cải thiện hiệu suất tích hợp giữa các kho và hệ sinh thái DeFi, và giảm chi phí phát triển. Vai trò của các kho vẫn còn nhiều khả năng khám phá khi thị trường DeFi phát triển.

Disclaimer:

  1. Bài viết này được sao chép từ [ LXDAO], Tất cả bản quyền thuộc về tác giả gốc [Kahn]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ với Cổng Họcđội ngũ và họ sẽ xử lý nó ngay lập tức.
  2. Miễn trừ trách nhiệm về trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi đội ngũ Gate Learn. Trừ khi được nêu ra, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.

Một Phân Tích Toàn Diện về ERC-4626 và DeFi

Nâng cao2/22/2024, 5:56:11 AM
Bài viết này phân tích các nguyên tắc cơ bản của ERC-4626 và ứng dụng của nó trong DeFi một cách toàn diện.

01 ERC-4626 là gì

ERC-4626 là một hầm chứa token hóa với một token EIP-20 cơ bản duy nhất.

Trước hết, nó là một đề xuất dựa trên ERC-20 và hoàn toàn tương thích với nó.

Thứ hai, hiểu rõ khái niệm về một hòm, đó không phải là kho bạc. Kho bạc hiện tại trên thị trường hầu hết là ví hợp đồng, hầu hết là Gnosis Safe, chủ yếu cung cấp các chức năng nhập và xuất quỹ an toàn. Nhưng đối với một tổ chức, ngoài việc tiền vào và ra, dòng tiền cũng có thể tạo ra thu nhập.

Động lực của đề xuất này: Sự thiếu chuẩn cho các hầm tiền mã hóa đã dẫn đến các chi tiết thực thi khác nhau của nhiều hầm trên thị trường, chẳng hạn như các thị trường cho vay, bộ tập hợp, token mang lại lợi suất, v.v. Điều này làm cho việc tích hợp bộ tập hợp và plugin ở cấp độ giao thức trở nên khó khăn, dễ gặp lỗi và lãng phí tài nguyên phát triển.

Khi tình trạng hiện tại của đề xuất này là Cuối cùng, điều đó có nghĩa là nó là một tiêu chuẩn tương đối ổn định.

02 Specification

Các token theo chuẩn ERC-4626 phải triển khai đầy đủ chuẩn ERC-20, được sử dụng để đại diện cho cổ phần. Dưới đây là một số khái niệm đơn giản.

  • Tài sản: Token cơ bản được quản lý bởi kho, tuân thủ tiêu chuẩn ERC-20.
  • Chia sẻ: Token Kho, còn được biết đến với tên gọi vToken. Nó có mối quan hệ tỷ lệ với tài sản.
  • Phí: Số tiền được tính bởi vault khi một tài sản hoặc cổ phiếu thay đổi. Nó có thể là tiền gửi, thu nhập, quản lý tài sản, rút tiền, v.v.
  • Trượt giá: Chênh lệch giữa giá công bố của tiền gửi và rút cổ phiếu và nền kinh tế thực tế. Dưới đây là giải thích thêm về khái niệm trượt giá trong lĩnh vực DeFi.

Trượt giá là chênh lệch giữa giá dự kiến của giao dịch và giá thực hiện thực tế. Trượt giá xảy ra khi có sự chậm trễ giữa việc đặt giao dịch và thực hiện giao dịch và giá của tài sản được giao dịch thay đổi.

Ví dụ, nếu bạn tìm thấy 20 ETH và 80 USDT trong hồ bơi AMM, giá ETH dự kiến của bạn là 4 USDT/ETH. Tuy nhiên, nếu bạn dự định chi 20 USDT để đổi trong hồ bơi, bạn sẽ chỉ nhận được 4 ETH thay vì 5 ETH dự kiến, điều đó có nghĩa là bạn gánh chịu một mất mát do slippage là 1 USDT/ETH. Giá mua thực tế của bạn sẽ là 5 USDT, không phải là 4 USDT dự kiến.

Slippage đặc biệt phổ biến trong các thị trường di chuyển nhanh hoặc tài sản biến động cao, cũng như các tài sản dài đuôi có thanh khoản bị hạn chế. Bất kể thế nào, nó có ảnh hưởng đáng kể đến hiệu suất giao dịch và quan trọng khi xem xét slippage khi đặt lệnh giao dịch.

03 Phân tích hợp đồng

Mã hợp đồng đến từ thư viện mã hợp đồng thông minh OpenZeppelin:

https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/ERC4626.sol

Hợp đồng ERC-4626 kế thừa từ ERC-20. Phần này sẽ không được tóm tắt. Nó cũng là một hợp đồng trừu tượng chính nó. Các giao diện mà hợp đồng phải thực hiện như sau:

Giao diện khá phong phú, hầu hết chúng đều khá đơn giản và có thể chia thành hai loại: đọc và viết.

Viết

Các giao diện chính để viết dữ liệu là gửi tiền, đúc, rút và đổi.

  • Deposit xác định số lượng tài sản và chuyển chúng vào két. Nó đồng thời phát hành cổ phần. Bạn có thể sử dụng phương thức previewDeposit để xem trước số lượng cổ phần có thể được phát hành.

  • Rút (rút tiền) xác định số lượng tài sản cần chuyển ra khỏi két, và đốt cháy cổ phần đồng thời. Bạn có thể sử dụng phương thức previewWithdraw để kiểm tra trước số lượng cổ phần đã được đốt cháy.
  • Mint sử dụng tham số cổ phần. Trên thực tế, phương pháp này tương đương với việc gửi tiền, xác định số cổ phần được đúc để tính toán tài sản cần phải gửi. Bạn có thể sử dụng phương pháp previewMint để kiểm tra trước số tài sản sẽ được rút ra.
  • Redeem sử dụng tham số cổ phần, tương đương với rút, xác định số cổ phần đã đốt để tính toán tài sản cần chuyển đi. Bạn có thể sử dụng phương thức previewRedeem để kiểm tra trước số lượng tài sản sẽ được đổi trả.

Trong thực tế, do sự tồn tại của slippage, việc sử dụng phương pháp xem trước để xem số liệu dự kiến có thể không chính xác, đây cũng là một vấn đề phổ biến trong ngành và có thể gây ra một số vấn đề về an ninh, điều này sẽ được thảo luận sau.

Đọc

Các phương pháp xem trước được đề cập trước đó, cũng như các phương thức public convertToShares và convertToAssets, thực sự gọi các phương thức _convertToShares và _convertToAssets nội bộ.

Hai phương pháp cốt lõi này là để tính toán mối quan hệ tỷ lệ thuận giữa tài sản và cổ phần. Các biến liên quan bao gồm cung cấp cổ phần, tổng tài sản hiện tại, số lượng điểm thập phân và các phương pháp làm tròn điểm thập phân.

Bên trên là việc thực hiện cơ bản của hợp đồng trừu tượng ERC-4626. Hợp đồng két thực tế phức tạp hơn nhiều so với điều đó.

Đối với hợp đồng kho bạc, có hai chức năng tương đối quan trọng cần thực hiện. Một là chức năng gửi và rút tiền, chuyển đổi tài sản và cổ phần; hai là cách để thu nhập, sẽ được giải thích thông qua ví dụ bên dưới.

04 Sinh thái và Ứng dụng

Tương tự như một số EIP phổ biến khác, ERC-4626 cũng có một hệ sinh thái liên minh (https://erc4626.info/) được duy trì bởi nhân viên chuyên nghiệp, thu thập một số giao thức cho vay và ứng dụng hiện đang có trên thị trường tương thích với ERC-4626, cũng như tin tức, thư viện mã nguồn mở, bảo mật và thông tin khác. Nếu kho của bạn được điều chỉnh cho ERC-4626, bạn cũng có thể nộp đơn ở đó.

Dưới đây chúng tôi phân tích một ví dụ ứng dụng, kho AladdinCRVV2 của Aladdin DAO https://concentrator.aladdin.club/vaults/). Aladdin DAO có nhiều hợp đồng hầm, và đây chỉ là một trong những hợp đồng hoạt động nhiều nhất.

AladdinCRVV2 Vault

Kho bảo vệ kiếm thu nhập bằng cách đặt cọc cvxCRV tokens.

  • Hợp đồng két là một hợp đồng có thể nâng cấp

(https://etherscan.io/address/0x2b95A1Dcc3D405535f9ed33c219ab38E8d7e0884). Và bạn có thể kiểm tra qua mã nguồn trên github rằng phiên bản trước không tương thích với ERC-4626

  • Trên thực tế, có rất nhiều tùy chọn vận hành cho việc gửi và rút tiền, rất thuận tiện và tiết kiệm gas. Có quá nhiều code, nên tôi sẽ không đăng ở đây.
    • Khoản gửi: token cvxCRV sẽ được gửi vào két mặc định. Hơn nữa, có depositWithCRV, rất tiện lợi cho CRV và cũng có thể được gửi vào
    • Khi rút tiền, token cvxCRV sẽ được rút ra và cổ phần sẽ bị đốt mặc định. Ngoài ra, bạn cũng có thể tự trở lại khi rút tiền, chuyển đổi cvxCRV thành CVX, và chuyển đổi cvxCRV thành ETH.

Trên đây là những phân tích cơ bản về hợp đồng vault với các chức năng tương đối phong phú. Bản chất của nó là đặt cọc tài sản để kiếm lãi. Tại sao nó được thiết kế như thế này? Lý do chính nằm ở việc thiết kế hợp đồng cvxCrvStaking . Mô tả thu nhập từ việc đặt cọc cvxCRV là "Bằng cách đặt cọc cvxCRV, bạn sẽ kiếm được phần thưởng thông thường từ veCRV (phân phối phí quản trị 3crv từ Curve + bất kỳ airdrop nào), cộng với một phần 10% thu nhập CRV được tăng cường của Convex LP và mã thông báo CVX trên đó. " Số lượng mã thông báo càng lớn, lợi ích càng lớn.

An toàn

Đối với các kho ERC-4626, vấn đề bảo mật chính là bảo vệ chống lại các cuộc tấn công lạm phát.

Khi người dùng gửi token, theo công thức tính cổ phần (cổ phần = tài sản * tổng cung / tổng tài sản), kết quả tính toán có dấu thập phân và thường được làm tròn xuống.

Như bạn có thể thấy từ hình dưới đây, khi người dùng gửi 500 mã thông báo vào tài sản, số lượng tài sản bị mất do làm tròn thập phân phụ thuộc vào tỷ lệ hối đoái (tương ứng giữa mỗi cổ phần và mã thông báo tài sản). Nếu tỷ lệ hối đoái là của đường cong màu cam, chúng ta nhận được ít hơn 1 cổ phần và mất 100%. Tuy nhiên, nếu tỷ lệ hối đoái là của đường cong màu xanh và nhận được 5000 cổ phần, thì mất mát làm tròn được giới hạn tối đa là 0.02%.

Nếu chúng ta tập trung vào việc giới hạn thiệt hại tối đa là 0.5%, chúng ta cần ít nhất 200 cổ phiếu. Tỷ lệ xanh chỉ cần 20 mã thông báo, nhưng tỷ lệ cam yêu cầu 200,000 mã thông báo.

Thông qua một số ví dụ, có thể phân tích rằng các đường cong màu xanh và màu xanh lá cây an toàn hơn so với các đường cong màu vàng và màu cam, và được thiết kế để là những két an toàn hơn.

Do đó, phương pháp chính của cuộc tấn công lạm phát là sử dụng các phương tiện nhất định để di chuyển đường cong lãi suất sang phải, gây ra một số lượng nhỏ người gửi tiền mất phần của họ, từ đó đạt được mục đích của cuộc tấn công.

Phương pháp tấn công

Các cuộc tấn công lạm phát chủ yếu thông qua các khoản quyên góp.

  1. Kẻ tấn công đầu tiên gửi 1 token vào hợp đồng kho báu. Lúc này, số cổ phần mà anh ấy nhận được là 1 và totalSupply là 1.
  2. Kẻ tấn công gửi 1e5 token trực tiếp vào hợp đồng hầm. Lúc này, tổng tài sản đã thay đổi thành 1e5 + 1, nhưng tổng cung vẫn giữ nguyên.
  3. Khi nạn nhân gửi số lượng token ít hơn 1e5 (x), số lượng cổ phần nhận được là: x * 1 / (1e5 + 1), tức là, miễn là x nhỏ hơn 1e5, theo nguyên tắc làm tròn xuống số thập phân, số lượng cổ phần mà nạn nhân nhận được là 0. Ngay cả khi số lượng token gửi vào lớn hơn 1e5, vì cổ phần trước đó của kẻ tấn công là 100%, dẫn đến sự giảm đáng kể trong số lượng cổ phần mà nạn nhân nhận được.

Phòng thủ chống lại các cuộc tấn công

Có ba cách để phòng thủ chống lại các cuộc tấn công:

  1. Đặt độ trượt. Trước đó, chúng tôi đã giới thiệu khái niệm về độ trượt, bằng cách thiết lập một phạm vi dung sai độ trượt, nếu không nhận được số lượng mong đợi trong một phạm vi dung sai độ trượt nhất định, giao dịch sẽ bị đảo ngược. Điều này là mô hình tiêu chuẩn để xử lý các vấn đề độ trượt.
  2. Thêm đủ tài sản ban đầu vào kho tiền để tăng chi phí tấn công. Tôi đã thấy phương pháp này trong hợp đồng đặt cọc Blast. Khi bắt đầu đặt cược, hợp đồng yêu cầu số lượng ETH và USD không được nhỏ hơn 1.000.
  3. Thêm “thanh khoản ảo” vào két để việc tính toán giá cả hoạt động như có đủ tài sản trong két. Phương pháp phòng thủ được chia thành 2 phần:
    • Độ lệch chính xác giữa cổ phần và tài sản.
    • Kết hợp cổ phần ảo và tài sản ảo vào các phép tính tỷ giá hối đoái.

Việc triển khai cụ thể là viết lại phương thức _decimalsOffset() của mã thư viện tiêu chuẩn được cung cấp bởi OpenZeppelin. Phương thức này không yêu cầu thiết lập slippage hoặc tiêm đủ số vốn ban đầu. Đây là một cách rất tốt để chống lại các cuộc tấn công lạm phát.

05 Extension

Là một đề xuất hầm cơ bản tương đối, RC-4626 không thể đáp ứng tất cả nhu cầu. Một số đề xuất cũng đã mở rộng nó, như ERC-7535 và EIP-7540.

ERC-7535

Như đã đề cập trước đó, ERC-4626 chỉ có thể sử dụng ERC-20 như tài sản cơ bản. Đề xuất này chủ yếu cho phép sử dụng tài sản bản địa như tài sản cơ bản, chẳng hạn như ETH trong két.

EIP-7540

Phần mở rộng này cho ERC-4626 giới thiệu hỗ trợ cho quá trình gửi và rút tiền không đồng bộ (gọi là “yêu cầu”). Nó bao gồm các phương pháp mới để bắt đầu và kiểm tra trạng thái của các yêu cầu này. Các phương pháp hiện có từ ERC-4626, như gửi tiền, tạo tiền, rút tiền và đổi tiền, được sử dụng để thực hiện các yêu cầu có thể yêu cầu. Tùy thuộc vào quyền của người thực hiện để quyết định liệu có thêm quá trình không đồng bộ cho các khoản gửi, rút tiền, hoặc cả hai.

Các trường hợp sử dụng tiềm năng:

  1. Quy trình gửi tiền và rút tiền không đồng bộ: Bằng cách giới thiệu khái niệm “yêu cầu”, quy trình gửi tiền và rút tiền không đồng bộ có thể được thực hiện, cung cấp phương pháp vận hành linh hoạt hơn.
  2. Cải thiện trải nghiệm người dùng: Đề xuất nhấn mạnh về tầm quan trọng của trải nghiệm người dùng và khuyến nghị việc giới thiệu một cơ chế phát hiện chuẩn để giúp người dùng và các ứng dụng frontend hiểu rõ hơn về thời gian và độ trễ của các hoạt động bất đồng bộ.
  3. Phần mở rộng chức năng: EIP-7540 mở rộng chức năng của ERC-4626 bằng cách thêm các phương thức mới, cho phép yêu cầu gửi tiền và rút tiền một cách không đồng bộ, và xem trạng thái của những yêu cầu này.

06 Tóm tắt

Bên trên là phân tích đầy đủ của ERC-4626.

Do vì lý do lịch sử, nhiều hầm hiện tại trên thị trường không tuân thủ theo ERC-4626 và vẫn tiếp tục hoạt động, như dForce, nhưng chúng không thể được áp dụng rộng rãi hơn. Một số hầm đã được nâng cấp để tuân thủ theo ERC-4626, như một số hợp đồng từ Aladdin DAO(https://github.com/AladdinDAO/deployments/blob/main/deployments.mainnet.mdKhông thể dịch

Ngoài việc kiếm lải qua việc gắn ký, các ứng dụng kho bảo công cũng có thể cho vay cổ phiếu như tài sản để đảm bảo hoặc gắn ký chúng lại để tạo ra thu nhập. Hàng loạt, kết nối qua các kho bảo công cũng là một kịch bản ứng dụng, vì một số các chức năng cư bản của nó có thể cung cấp hộ trợ tuyệt vời.

Bản chất của đề xuất này là để cải thiện hiệu suất tích hợp giữa các kho và hệ sinh thái DeFi, và giảm chi phí phát triển. Vai trò của các kho vẫn còn nhiều khả năng khám phá khi thị trường DeFi phát triển.

Disclaimer:

  1. Bài viết này được sao chép từ [ LXDAO], Tất cả bản quyền thuộc về tác giả gốc [Kahn]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ với Cổng Họcđội ngũ và họ sẽ xử lý nó ngay lập tức.
  2. Miễn trừ trách nhiệm về trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi đội ngũ Gate Learn. Trừ khi được nêu ra, việc sao chép, phân phối hoặc đạo văn các bài viết đã dịch là không được phép.
Start Now
Sign up and get a
$100
Voucher!