Đằng sau sự bùng nổ của dYdX V4, phân tích sâu về phân loại đòn bẩy DeFi, ứng dụng và thực hành an toàn

Trung cấp12/13/2023, 2:12:46 PM
Bài báo này khám phá sự đa dạng và các kịch bản ứng dụng của đòn bẩy DeFi thông qua dYdX V4, phân tích các lỗ hổng ở cấp độ mã nguồn và đề xuất các điểm an ninh chính của giao protocole đòn bẩy.

Giới thiệu về đòn bẩy DeFi

Việc ra mắt gần đây của dYdX V4 đã thu hút rất nhiều sự chú ý và tham gia trong sàn giao dịch hợp đồng vĩnh viễn. dYdX đã áp dụng thành công các ví dụ giao dịch đòn bẩy, và chúng ta không chỉ nên mong chờ tiềm năng lớn của dYdX V4, mà còn nên chú ý hơn đến sự an toàn của các thỏa thuận đòn bẩy. Tiếp theo, chúng tôi sẽ sử dụng phân tích mã code cụ thể và ví dụ để hướng dẫn bạn qua các chiến lược đòn bẩy khác nhau và xem xét về an ninh.

Đòn bẩy là gì

Trong tài chính, đòn bẩy là một chiến lược dựa vào việc vay tiền để tăng cường khả năng sinh lời từ một khoản đầu tư. Đơn giản, các nhà đầu tư hoặc thương nhân vay tiền để tăng cường sự phơi nhiễm của họ đến các loại tài sản, dự án hoặc công cụ cụ thể nhiều hơn so với những gì họ có thể đạt được chỉ dựa vào vốn của họ. Thông qua việc sử dụng đòn bẩy, các nhà đầu tư thường có thể tăng cường sức mua của mình trên thị trường.

Đòn bẩy trong giao dịch DeFi

Việc sử dụng đòn bẩy là một trong những tính năng quan trọng và phổ biến nhất trong giao dịch tài sản crypto. Ngay sau khi các sàn giao dịch phi tập trung được thành lập, giao dịch sử dụng đòn bẩy trở nên ngày càng phổ biến, mặc dù thị trường crypto đã thể hiện sự biến động cao.

Như với tài chính truyền thống, các nhà giao dịch sử dụng đòn bẩy enti để vay vốn đơn giản để tăng sức mua của họ, hoặc để tận dụng các sản phẩm phái sinh tài chính khác nhau, chẳng hạn như hợp đồng tương lai và quyền chọn.

Tỷ lệ đòn bẩy cũng đã tăng từ 3 lần và 5 lần lên đến hơn 100 lần. Đòn bẩy cao hơn đồng nghĩa với rủi ro cao hơn, nhưng như đã thấy trên hầu hết các sàn giao dịch tập trung, đây là một rủi ro mà các nhà giao dịch quyết đoán đang tìm kiếm lợi nhuận cao hơn sẵn lòng chấp nhận khi khối lượng giao dịch đòn bẩy tăng lên.

Giải thích chi tiết về phân loại đòn bẩy

Đối với DeFi, các sản phẩm đòn bẩy chủ yếu được chia thành bốn loại, và cơ chế tạo ra đòn bẩy khác nhau: cho vay đòn bẩy, giao dịch ký quỹ đòn bẩy, đòn bẩy hợp đồng vĩnh viễn, và mã thông báo đòn bẩy.

Vay ký quỹ

Cho vay và cho vay DeFi là một trong những ứng dụng DeFi sớm nhất và lớn nhất. Các ông lớn như MakerDAO, Compound, AAVE và Venus đã hoạt động trên thị trường. Logic để có được đòn bẩy bằng cách vay tài sản crypto là đơn giản.

Ví dụ, nếu bạn nắm giữ $10,000 trong Ether (ETH) và có quan điểm lạc quan, bạn có thể gửi ETH của bạn làm tài sản đảm bảo vào Compound, cho vay $5,000 trong USDC, sau đó sử dụng $5,000 USDC đó để trao đổi lấy $5,000 khác trong ETH. Như vậy, bạn sẽ có 1.5 lần đòn bẩy trên ETH, và so với vốn ban đầu của bạn là $10,000, bạn sẽ có $1.5 triệu trong ETH.

Tương tự, nếu bạn đang bi quan, bạn có thể chọn gửi stablecoins và cho vay ETH. Nếu giá của ETH giảm, bạn có thể mua ETH trên thị trường với giá thấp hơn và thanh toán nợ của bạn.

Lưu ý rằng vì bạn sẽ vay từ giao thức phi tập trung, bạn có thể bị thanh lý nếu giá trị tài sản thế chấp giảm hoặc nếu giá trị của tài sản mà bạn đang vay vượt quá một ngưỡng nhất định.

Đòn bẩy giao dịch ký quỹ

Với cho vay DeFi, bạn có thể làm những gì bạn muốn với các tài sản kỹ thuật số này. Giao dịch ký quỹ DeFi tập trung nhiều hơn vào việc tăng quy mô vị thế (tăng sức mua) và được coi là một "vị thế đòn bẩy" thực sự. Tuy nhiên, có một sự khác biệt quan trọng – trong khi các vị thế ký quỹ vẫn mở, tài sản của các nhà giao dịch đóng vai trò là tài sản thế chấp cho các khoản vay.

dYdX là một nền tảng giao dịch đòn bẩy phi tập trung nổi tiếng cho phép đòn bẩy lên đến 5 lần. Trong giao dịch đòn bẩy của dYdX, các nhà giao dịch sử dụng vốn của họ làm tài sản thế chấp, tăng gấp đôi số vốn gốc và sử dụng số vốn được tăng này để đầu tư trên quy mô lớn hơn.

Người giao dịch phải trả lãi suất và các khoản phí liên quan đến giao dịch. Vị thế này không hư cấu; nó liên quan đến việc vay mượn và mua/bán thực tế.

Nếu thị trường di chuyển theo hướng không thuận lợi, tài sản của người giao dịch có thể không đủ để hoàn trả toàn bộ khoản vay. Để ngăn điều này xảy ra, thỏa thuận sẽ thanh lý vị thế của bạn trước khi tỷ lệ thanh lý nhất định được đạt đến.

Leverage thay đổi như thế nào trong giao dịch ký quỹ——

Giả sử bạn đang lạc quan về ETH 3 lần trong giao dịch đòn bẩy, nhưng bạn không muốn điều chỉnh lượng tiền ra mọi lúc.

Bạn giữ $100 trong USDC và vay thêm $200 trong USDC để giao dịch $300 trong ETH để thiết lập vị thế ETH dài bạn cần. Mức đòn bẩy là $300/$100 = 3x.

Nếu giá ETH tăng 20%, lợi nhuận của bạn sẽ là 300 (1 +20%) -300 = $60. Rủi ro bị thanh lý của bạn thấp hơn, trong khi mức đòn bẩy thực tế được giảm xuống còn 360/ (360-200) = 2.25x. Nói cách khác, bạn sẽ tự động giảm mức đòn bẩy khi giá ETH tăng lên.

Nếu giá của ETH giảm 20%, tổn thất của bạn sẽ là 300 (1-20%) -300 = -60 đô la. Khi đến việc thanh lý, bạn đang ở trong tình thế nguy hiểm hơn, và mức đòn bẩy thực tế sẽ tự động tăng lên 240/ (240-200) = 6x. Nói cách khác, bạn cân bằng lại đòn bẩy khi giá của ETH giảm, điều đó cho thấy bạn đang ở trong tình thế rủi ro cao hơn so với trước đây.

Do đó, trong khi bạn có thể nghĩ rằng bạn có thể duy trì đòn bẩy cố định bằng cách giao dịch trên biên 3x cố định, đòn bẩy thời gian thực đang thay đổi liên tục.Vui lòng kiểm tra biểu đồ bên dưới để xem làm thế nào đòn bẩy sẽ thay đổi tùy thuộc vào sự thay đổi giá cả [1].

Hợp đồng vĩnh viễn đòn bẩy

Hợp đồng vĩnh viễn tương tự như hợp đồng tương lai truyền thống, nhưng chúng không có ngày đáo hạn. Hợp đồng vĩnh viễn mô phỏng một thị trường giao dịch đòn bẩy dựa trên vị thế, vì vậy giao dịch gần giá của chỉ số tham chiếu cơ bản.

Có nhiều dự án DeFi cung cấp hợp đồng vĩnh viễn cho các nhà giao dịch, như dYdX, MCDEX, Perpetual Protocol, Incomplete, v.v. Nhiều nhà giao dịch có thể thấy khó khăn trong việc phân biệt giữa giao dịch ký quỹ và hợp đồng vĩnh viễn — thực tế, chúng đều liên quan đến đòn bẩy của người dùng.

Tuy nhiên, có một số khác biệt trong cơ chế đòn bẩy, phí và mức đòn bẩy.

Hợp đồng vĩnh viễn là một sản phẩm tương lai giao dịch tài sản tổng hợp và có đặc điểm giao dịch theo tỷ lệ ký quỹ. Giá của tài sản cơ bản được theo dõi một cách tổng hợp, mà không cần phải giao dịch tài sản cơ bản thực tế. Tuy nhiên, giao dịch ký quỹ liên quan đến việc vay và giao dịch tài sản mã hóa thực sự.

Với sự ra đời của hợp đồng vĩnh viễn, khái niệm tỷ lệ tài trợ đã xuất hiện. Mục đích là để duy trì giá giao dịch của hợp đồng vĩnh viễn nhất quán với giá tham chiếu cơ bản. Nếu giá hợp đồng cao hơn giá hiện tại, thì người mua sẽ trả tiền mượn cho người bán. Nói cách khác, các nhà giao dịch cần liên tục trả phí cho việc vay mượn.

Đòn bẩy trong hợp đồng vĩnh viễn thường cao hơn so với giao dịch ký quỹ, và có thể lên tới 100 lần. Cơ chế thanh lý và đòn bẩy thực tế cũng giống như giao dịch ký quỹ.

Token Đòn Bẩy

Token đòn bẩy là các sản phẩm phái sinh cung cấp cho người nắm giữ khả năng tiếp cận đòn bẩy đến thị trường tiền điện tử mà không cần lo lắng về việc quản lý vị thế đòn bẩy một cách tích cực. Mặc dù chúng cung cấp cho người nắm giữ khả năng tiếp cận đòn bẩy, nhưng họ không cần phải xử lý thế chấp, thanh lý, tài sản đảm bảo hoặc tỷ lệ tài trợ.

Sự khác biệt lớn nhất giữa các mã đòn bẩy và giao dịch ký quỹ/hợp đồng vĩnh viễn là các mã đòn bẩy sẽ được cân chỉnh định kỳ hoặc khi một ngưỡng nhất định được đạt để duy trì một mức đòn bẩy cụ thể.

Điều này rõ ràng khác với giao dịch ký quỹ và hợp đồng không kỳ hạn - đòn bẩy thực tế của các sản phẩm này liên tục thay đổi theo biến động giá, ngay cả khi nhà giao dịch ban đầu có thể chỉ định mức đòn bẩy.

Hãy xem cách cân bằng hoạt động trong ví dụ ETH 3x ở trên:

Bạn giữ $100 USDC và mua một token đòn bẩy ETHBULL (3x). Giao protocô sẽ tự động vay $200 USDC và giao dịch $200 ETH.

Giả sử giá ETH tăng 20%, trong khi giá token ETHBULL (3x) tăng lên 300* (1 +20%) -200 = $160 trước khi cân đối lại. Đòn bẩy thực tế của bạn bây giờ là 2,25 (360/160), thấp hơn mức đòn bẩy mục tiêu của bạn.

Như một phần của quá trình cân đối lại, giao thức sẽ vay thêm nhiều đô la từ hồ bơi stablecoin và mua thêm token ETH để đưa đòn bẩy trở lại 3 lần. Trong ví dụ của chúng tôi, giao thức sẽ vay thêm $120 và trao đổi nó thành ETH. Do đó, tổng đòn bẩy một lần nữa trở thành (360+120) /160 = 3 lần.

Giả sử giá của ETH đã giảm 20%, trong khi giá của token ETHBULL (3x) giảm xuống 300* (1-20%) -200 = $40 trước khi cân lại. Đòn bẩy thực tế của bạn hiện sẽ là 6 (240/40), cao hơn mức đòn bẩy mục tiêu của bạn.

Trong trường hợp này, thỏa thuận sẽ bán các token ETH và trả nợ còn lại để giảm đòn bẩy. Trong ví dụ này, giao thức sẽ bán $120 trong ETH để thanh toán cho pool. Nợ sẽ trở thành $80 và tổng đòn bẩy sẽ một lần nữa là (240-120) /40 = 3 lần.

Nói cách khác, các token đòn bẩy sẽ tự động được tái định cấu trúc theo lợi nhuận và giảm đòn bẩy theo lỗ để khôi phục mức đòn bẩy mục tiêu của chúng. Nếu cơ chế này hoạt động tốt, ngay cả trong xu hướng thị trường bất lợi, người nắm giữ token đòn bẩy sẽ không bị thanh lý vì cơ chế giảm đòn bẩy sẽ liên tục giảm mức đòn bẩy hiệu quả của người dùng.

Do đó, hồ cho vay trong mô hình token đòn bẩy sẽ được miễn khỏi rủi ro thanh lý và an toàn hơn so với hồ cho vay trong giao dịch ký quỹ.

Các ví dụ ứng dụng đòn bẩy

Bây giờ khi chúng ta đã tìm hiểu về một số loại giao thức DeFi thông thường của đòn bẩy, hãy thảo luận về việc áp dụng đòn bẩy chi tiết liên quan đến các giao thức DeFi cụ thể.

GMX

GMX [2]là một sàn giao dịch phi tập trung và vĩnh viễn cho phép các nhà giao dịch giao dịch tài sản với đòn bẩy lên đến 50 lần. Hiện tại, thỏa thuận đang chạy trên Arbitrum và Avalanche. Trên GMX, các nhà giao dịch hoàn toàn nhận thức về tình hình đối tác của họ, điều này hoàn toàn khác biệt so với giao dịch trên CEX. Khác với các thỏa thuận hợp đồng vĩnh viễn khác như dYdX, GMX hoạt động hoàn toàn trên chuỗi và sử dụng chức năng AMM để cho phép giao dịch đòn bẩy.

Điều làm nổi bật GMX so với các dịch vụ khác là nó là sàn giao dịch phi tập trung cung cấp dịch vụ giao dịch đòn bẩy. Liên quan đến điều này, nó kết hợp trải nghiệm tương tự các sàn giao dịch DeFi khác như Uniswap với dịch vụ giao dịch đòn bẩy được cung cấp bởi Binance và các sàn khác.

GMX có một hồ bơi thanh khoản GLP, đó là một hồ bơi đa tài sản cung cấp thanh khoản cho giao dịch ký quỹ: người dùng có thể mua/bán ngắn và thực hiện giao dịch bằng cách phát hành và phá hủy token GLP. Hồ bơi kiếm phí LP từ các giao dịch và giao dịch đòn bẩy, được phân phối cho người sở hữu GMX và GLP.

Để giao dịch với đòn bẩy, người giao dịch gửi tài sản thế chấp vào một thỏa thuận. Người giao dịch có thể chọn đòn bẩy lên đến 50 lần. Càng cao đòn bẩy, giá thanh lý càng cao, sẽ tăng dần khi chi phí vay tăng lên.

Ví dụ, khi mua ETH, các nhà giao dịch đang 'cho thuê' không gian tăng của ETH từ hồ bơi GLP; khi bán ETH, các nhà giao dịch đang 'thuê' không gian tăng của stablecoins so với ETH từ hồ bơi GLP. Tuy nhiên, tài sản trong hồ bơi GLP thực tế không được cho thuê ra.

Khi đóng một vị thế, nếu người giao dịch đặt cược đúng, lợi nhuận sẽ được trả dưới dạng tăng số lượng token từ hồ bơi GLP; nếu không, lỗ sẽ được trừ từ tài sản thế chấp và trả vào hồ bơi. GLP lợi nhuận từ lỗ của người giao dịch và lợi nhuận từ lợi nhuận của người giao dịch.

Trong quá trình này, các nhà giao dịch trả phí giao dịch, phí mở/đóng cửa, và phí vay mượn để đổi lấy khoảng trống hướng lên/hướng xuống cho các mã thông báo cụ thể (BTC, ETH, AVAX, UNI và LINK) so với đô la Mỹ.

Merkle Giao dịch

Merkle Trade[3]là một nền tảng giao dịch phi tập trung cung cấp giao dịch tiền điện tử, ngoại hối và hàng hóa với đòn bẩy lên đến 1,000 lần và các tính năng giao dịch dựa trên người dùng tiên tiến. Merkle Trade được cung cấp bởi blockchain Aptos và có hiệu suất và khả năng mở rộng hàng đầu. So với Mạng Gains, cung cấp cùng mức đòn bẩy cao, nó có độ trễ và phí giao dịch thấp hơn.

Khác với hầu hết các sàn giao dịch, Merkle Trade không có sổ đặt lệnh. Thay vào đó, Merkle LP hoạt động như bên đối tác trong mỗi giao dịch, và khi các nhà giao dịch mất tiền, nó sẽ lấy tài sản thế chấp và trả lợi nhuận cho các giao dịch đã đóng với lợi nhuận dương.

  • Giao dịch tiền điện tử, ngoại hối và hàng hoá với đòn bẩy lên đến 1.000 lần

Merkle Trade được thiết kế từ đầu để cung cấp một loạt các cặp giao dịch, bao gồm tiền điện tử, ngoại hối và hàng hóa, cũng như một số mức đòn bẩy cao nhất trên thị trường; lên đến 150x trên tiền điện tử và lên đến 1,000x trên ngoại hối.

  • Thực thi lệnh giá công bằng, độ trễ mili giây, slippage tối thiểu

Tạo ra blockchain với Aptos, có thời gian trễ thấp nhất cho đến nay, có thể cung cấp trải nghiệm giao dịch trên chuỗi nhanh nhất. Đối với người giao dịch, điều này có nghĩa là trải nghiệm giao dịch nhanh hơn và ít trượt giá hơn do trễ trong thực hiện.

  • Giao dịch phi tập trung, không giữ tài sản với không có rủi ro đối tác

Người giao dịch giao dịch với hồ chứa thanh khoản (Merkle LP), hoạt động như một bên tham gia trong mỗi giao dịch trên thỏa thuận. Tất cả các giao dịch và thanh toán được thực hiện bởi hợp đồng thông minh, và không có việc lưu trữ quỹ của người dùng vào bất kỳ thời điểm nào.

  • Phí xử lý thấp nhất

Merkle Trade cho biết họ có một trong những mức phí thấp nhất trên thị trường cho đến nay. Khi ra mắt, phí giao dịch cặp tiền điện tử thấp nhất là 0,05%, và phí giao dịch cặp ngoại hối thấp nhất là 0,0075%.

DYDX

DYDX

dYdX[4]là một sàn giao dịch phi tập trung (DEX) cho phép người dùng giao dịch hợp đồng vĩnh viễn một cách hiệu quả trong khi hoàn toàn kiểm soát tài sản. Kể từ khi ra mắt vào năm 2021, dYdX V3 đã áp dụng một giải pháp mở rộng lớp hai phi tập trung độc đáo để triển khai sàn giao dịch của mình, tuy nhiên sổ lệnh và máy chia sẻ vẫn được quản lý tập trung.

Bây giờ, với dYdX V4, giao thức đang phát triển thành chuỗi riêng của mình, và toàn bộ giao thức đang được tái cấu trúc hoàn toàn để đạt được sự phi tập trung hoàn toàn trong khi tăng công suất. dYdX cũng bao gồm ba chức năng: cho vay, giao dịch đòn bẩy và hợp đồng vĩnh viễn. Giao dịch đòn bẩy đi kèm với chức năng vay mượn. Tiền gửi của người dùng tự động tạo thành một quỹ tiền. Nếu thiếu vốn trong quá trình giao dịch, tiền lãi sẽ được tự động vay và trả.

Phân tích an toàn đòn bẩy

Chúng tôi đã giới thiệu các loại thông thường và ứng dụng của đòn bẩy trong DeFi. Ngoài ra, vẫn còn nhiều vấn đề về an ninh trong thiết kế đòn bẩy đáng đáng chú ý. Chúng tôi sẽ phân tích các vấn đề an ninh và điểm kiểm toán của đòn bẩy DeFi dựa trên các trường hợp kiểm toán cụ thể.

Phân biệt giữa lệnh giới hạn và lệnh thị trường

Trong hầu hết các ứng dụng giao dịch đòn bẩy, có lệnh giới hạn và lệnh thị trường. Việc phân biệt chặt chẽ và xác minh lệnh giới hạn và lệnh thị trường rất cần thiết.Tiếp theo, chúng tôi sẽ tiến hành phân tích chi tiết về các vấn đề chúng tôi tìm thấy trong cuộc kiểm toán Merkle Trade [5].

let now = timestamp: :now_seconds (); if (now - order.created_timestamp > 30) {         cancel_order_internal(             _order_id,             order,             T_CANCEL_ORDER_EXPIRED         );         return     };

Phần mã này thực hiện các kiểm tra trong chức năng đặt lệnh, nơi mà nó kiểm tra xem đã quá 30 giây kể từ khi lệnh được tạo hay chưa. Nếu các điều kiện được đáp ứng, gọi cancel_order_internal () để hủy lệnh. Tuy nhiên, nếu lệnh là lệnh giới hạn, điều đó có nghĩa là lệnh có một giá cụ thể được đặt bởi người giao dịch và họ sẵn lòng mua hoặc bán tài sản ở mức giá đó. Không nên có sự phán đoán như vậy khi thực hiện các lệnh giới hạn; điều này có thể làm cho hầu hết các lệnh giới hạn không được thực hiện. Do đó, quan trọng là phải phân biệt rõ logic giao dịch giữa lệnh giới hạn và lệnh thị trường.

Lỗi tính đòn bẩy

Lỗi tính toán luôn là một vấn đề rất phổ biến trong DeFi, và chúng cũng đặc biệt phổ biến trong đòn bẩy. Chúng tôi sẽ sử dụng các vấn đề được phát hiện bởi giao thức Unstoppable trong các kiểm toán của bên thứ ba để kiểm tra kỹ lưỡng các vấn đề tính toán của đòn bẩy.

Hãy xem mã để tính đòn bẩy trong Unstoppable:

def _calculate_calculation ( _position_value: uint256, _debt_value: uint256, _margin_value: uint256) - > uint256: if _position_value < = _debt_value: #bad debt Return max_value (uint256) Return ( precision * (_debt_value + _margin_value) /(_position_value - _debt_value) /PRECISION )

Hàm _calculate_margin gây ra việc tính đòn bẩy sai lệch bằng cách sử dụng _debt_value + _margin_value làm tử số thay vì _position_value. Ba tham số đầu vào của hàm _position_value, _debt_value, và _margin_value đều được xác định bởi thông tin giá cả do các nguồn tin cậy on-chain của Chainlink cung cấp. Ở đây, _debt_value chỉ ra giá trị của việc chuyển đổi phần nợ của vị thế thành số nợ theo đô la. _margin_value chỉ ra giá trị hiện tại của số tiền ký quỹ ban đầu của vị thế (bằng đô la Mỹ). _position_value chỉ ra giá trị hiện tại (bằng đô la Mỹ) của số tiền ban đầu của vị thế.

Vấn đề với phép tính trên là _debt_value + _margin_value không đại diện cho giá trị của vị thế. Đòn bẩy là tỷ lệ giữa giá trị vị thế hiện tại và giá trị margin hiện tại. _position_value - _debt_value là chính xác. Nó chỉ ra giá trị margin hiện tại, nhưng _debt_value + _margin_value không đại diện cho giá trị hiện tại của vị thế, vì không có đảm bảo rằng token nợ và token vị thế có sự biến động giá liên quan.

Ví dụ, token nợ là ETH, và token vị thế là BTC.

Alice sử dụng 1 ETH làm biên bản, vay mượn 14 ETH (mỗi cái 2,000 đô la), và nhận được 1 BTC (mỗi cái 30,000 đô la) trong các token vị trí. Đòn bẩy là 14.

Ngày mai, giá ETH vẫn ở mức $2,000/ETH, nhưng giá BTC đã giảm từ $30,000/BTC xuống $29,000/BTC. Tại thời điểm này, đòn bẩy nên là (_position_value == 29,000)/(_position_value == 29,000 - _debt_value == 28,000) = 29, không phải là giá trị được tính trong hợp đồng: (_debt_value == 28,000 + _margin_value == 2,000)/(_position_value == 29,000 - _debt_value == 28,000) = 30.

Do đó, để sửa chữa điều này, công thức chính xác được đề cập ở trên nên được sử dụng để tính đòn bẩy trong hợp đồng thông minh. Một sự tính toán sai lệch về đòn bẩy có thể dẫn đến thanh lý không công bằng hoặc vị thế đòn bẩy quá mức trong bối cảnh biến động giá.

Trong hợp đồng thông minh, việc đảm bảo tính toán đòn bẩy đúng đắn là rất quan trọng để duy trì sự mạnh mẽ của hệ thống và lợi ích của người dùng. Việc tính toán đòn bẩy đúng cần dựa trên tỉ lệ giữa giá trị hiện tại của vị thế và giá trị biên bảo hiện tại. Nếu sử dụng công thức tính toán sai, có thể gây ra hệ thống phản ứng không đúng cách với các biến động giá, có thể thanh lý các vị thế mà không nên thanh lý, hoặc cho phép các vị thế đòn bẩy quá mức tiếp tục tồn tại, từ đó tăng nguy cơ cho hệ thống và người dùng.

Lỗi logic

Lỗi logic

Lỗi logic đòi hỏi sự chú ý đặc biệt trong việc kiểm định hợp đồng thông minh, đặc biệt là trong logic phức tạp như giao dịch đòn bẩy DeFi.

Hãy thảo luận về các vấn đề logic cần lưu ý trong việc sử dụng đòn bẩy DeFi dựa trên các vấn đề được phát hiện bởi Tigris[7](Tigris, một nền tảng giao dịch đòn bẩy tổng hợp phi tập trung dựa trên Arbitrum và Polygon) trong một báo cáo kiểm toán của bên thứ ba.

Hãy xem xét logic của chức năng đóng giá giới hạn trong Tigris:

Hàm limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external{ _checkDelay(_id, false);   (uint _limitPrice, địa chỉ _tigAsset) = tradingExtension._limitClose(_id, _tp, _priceData, _signature);   _closePosition(_id, DIVISION_CONSTANT, _limitPrice, address(0), _tigAsset, true);}hàm _limitClose ( uint _id, bool _tp, priceData calldata _priceData, bytes calldata _signature) external view returns (uint _limitPrice, address _TIGAsset) { _checkGas (); Bộ nhớ iPosition.trade _trade = position.trades (_id);   _tigAsset = _trade.tigAsset;   getVerifiedPrice (_trade.asset, _priceData, _signature, 0); uint256 _price = _priceData.giá;   if (_trade.orderType! = 0) revert (" 4 "); isLimit if (_tp) { if (_trade.tpPrice == 0) revert (" 7 "); limitNotSet if (_trade.direction) { if (_trade.tpPrice > _price) revert("6"); //LimitNotMet } else { if (_trade.tpPrice < _price) revert("6"); //LimitNotMet } _limitPrice = _trade.tpPrice;   } else { if (_trade.slprice == 0) revert (" 7 "); limitNotSet if (_trade.direction) { if (_trade.slPrice < _price) revert("6"); //LimitNotMet } else { if (_trade.slPrice > _price) revert("6"); //LimitNotMet } //@audit dừng lỗ được đóng ở mức giá do người dùng chỉ định KHÔNG phải giá thị trường _limitPrice = _trade.slprice;   }}

Khi sử dụng stop-loss để đóng một vị thế, giá đóng cửa của người dùng là giá stop-loss do người dùng đặt, không phải là giá hiện tại của tài sản. Trong trường hợp thị trường hướng và đòn bẩy cao, người dùng có thể lạm dụng điều này để đạt được giao dịch gần như không rủi ro. Người dùng có thể mở một vị thế dài và đặt giá stop-loss thấp hơn giá hiện tại $0.01.

Nếu giá giảm ngay trong cập nhật tiếp theo, họ sẽ đóng vị thế của mình ở giá nhập và chỉ trả phí mở và đóng. Nếu giá tăng, họ có khả năng kiếm được nhiều tiền. Kết quả là, người dùng có thể lạm dụng phương pháp định giá stop-loss để mở giao dịch với đòn bẩy cao, tiềm năng tăng trưởng cao và rủi ro giảm thấp.

Biến động giá

Price Tubs

Tác động của biến động giá cả đối với đòn bẩy DeFi rất quan trọng. Chỉ bằng việc luôn xem xét biến động giá cả, chúng ta mới có thể đảm bảo an toàn của các hợp đồng đòn bẩy. Hãy sử dụng DeFiner [8]ví dụ về một giao thức để phân tích sâu hơn về các vấn đề được phát hiện trong cuộc kiểm toán của bên thứ ba:

Giao thức DeFiner trải qua hai kiểm tra trước khi xử lý rút tiền.

Đầu tiên, phương pháp kiểm tra xem số tiền yêu cầu rút của người dùng có vượt quá số dư của tài sản đó không:

hàm ủy quyền (địa chỉ _accountAddr, địa chỉ _token, uint256 _amount) bên ngoài chỉ được ủy quyền trả lại (uint256) { // Kiểm tra nếu đủ số tiền ít hơn số dư của người dùng yêu cầu (_amount < = getDepositBalanceCurrent (_token, _accountAddr), "Số dư kiếm được. "); uint256 borrowLtv = globalConfig.tokenInfoLogistry () .getBorrowLtv (_token);

Thứ hai, phương pháp kiểm tra xem việc rút tiền có làm cho tỷ lệ đòn bẩy của người dùng quá cao hay không. Số tiền rút sẽ được trừ vào " sức mạnh vay " của giá hiện tại của người dùng. Nếu tổng giá trị vay của người dùng vượt quá khả năng vay mới, phương pháp này sẽ thất bại vì người dùng không còn đủ tài sản thế chấp để hỗ trợ vị thế vay của họ. Tuy nhiên, yêu cầu này sẽ chỉ được kiểm tra nếu người dùng không được tận dụng quá mức:

if (getBorrowEth (_accountAddr) < = getBorrowPower (_accountAddr)) require ( getBorrowEth (_accountAddr) < = getBorrowPower (_accountAddr) .sub (           _amount.mul (globalConfig.tokenInfoRegistry () .priceFromAddress (_token)) .mul (borrowLtv) .div (utils.getDivisor (address (globalConfig), _token)) .div (100)       ), " Colloquium Collège when ");

Nếu người dùng đã vay nhiều hơn số tiền mà họ được phép vay, họ vẫn có thể rút tiền mà không bị giới hạn. Điều này có thể xảy ra trong nhiều tình huống, phổ biến nhất là do biến động giá. Thỏa thuận không xem xét đến tác động của biến động giá trị đối với thỏa thuận, điều này đã gây ra vấn đề này.

Khác

Ngoài những tác động của việc không phân biệt giữa lệnh giới hạn và lệnh thị trường, lỗi tính toán, lỗi logic và biến động giá đã đề cập ở trên, còn có nhiều điểm an toàn liên quan đến các thỏa thuận đòn bẩy đòi hỏi sự chú ý của chúng tôi. Điều này bao gồm, nhưng không giới hạn ở, các vấn đề như cuộc tấn công vay flash, thao tác giá, bảo mật tiên tri, kiểm soát quyền lực, kiểm tra đòn bẩy không đủ, hoặc thiếu kiểm tra. Những yếu tố này phải được cân nhắc cẩn thận khi thiết kế và triển khai các thỏa thuận đòn bẩy để đảm bảo tính mạnh mẽ của thỏa thuận và an toàn của tài sản người dùng. Các biện pháp phòng ngừa, giám sát thời gian thực và kế hoạch phản ứng khẩn cấp cũng là yếu tố quan trọng để giảm thiểu rủi ro tiềm ẩn và bảo vệ lợi ích của người dùng.

tổng kết

Kết luận

Việc giới thiệu giao dịch đòn bẩy trong các giao protocal DeFi đã thực sự cung cấp thị trường với khả năng vận hành linh hoạt hơn, đồng thời mang lại cơ chế giao dịch phức tạp hơn. Mặc dù giao dịch đòn bẩy cung cấp cho người dùng nhiều cơ hội đầu tư hơn, nhưng các rủi ro tiềm năng và thách thức đối với bảo mật protocal cũng trở nên quan trọng hơn.

Khi đòn bẩy tăng lên, hoạt động của các thỏa thuận trở nên linh hoạt hơn, nhưng cũng dễ trở nên yếu và dễ bị đe dọa hơn bởi nhiều mối đe dọa an ninh khác nhau. Điều này bao gồm nguy cơ không thực hiện một sự phân biệt chặt chẽ giữa lệnh giới hạn và lệnh thị trường, lỗi tính toán, lỗi logic, và độ nhạy cảm cực độ đối với các yếu tố như biến động giá. Trong trường hợp này, chúng ta cần chú ý hơn đến an ninh của giao thức để đảm bảo rằng tài sản của người dùng được bảo vệ một cách hiệu quả.

Là một nhóm an ninh blockchain hàng đầu trong lĩnh vực Web3, ScaleBit được phân phối tại Silicon Valley, Singapore, Hong Kong, Đài Loan, v.v. Chúng tôi đã cung cấp các giải pháp an ninh blockchain cho hơn 200 tổ chức và dự án trong lĩnh vực Web3 toàn cầu, tích lũy hơn 180.000 dòng mã kiểm tra, và bảo vệ hơn 8 tỷ đô la tài sản người dùng. Đưa An Ninh Đến Gần Với Tất Cả Mọi Người! Nếu bạn có bất kỳ nhu cầu kiểm tra an ninh nào, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ tùy chỉnh các giải pháp an ninh chi tiết, toàn diện và chuyên nghiệp cho bạn để bảo vệ bạn và lĩnh vực Web3 một cách an toàn!

Miễn trừ trách nhiệm:

  1. Bài viết này đã được tái in từ [ScaleBit]và bản quyền thuộc về tác giả gốc [Polaris]. Nếu bạn có bất kỳ ý kiến ​​nào về việc sao chép, vui lòng liên hệ với nhóm Học viện Gate, và nhóm sẽ xử lý ngay theo các quy trình liên quan.

  2. Xin lưu ý: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không hình 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 rõ, việc sao chép, phân phối hoặc sao chép các bài viết dịch là không được phép.

Đằng sau sự bùng nổ của dYdX V4, phân tích sâu về phân loại đòn bẩy DeFi, ứng dụng và thực hành an toàn

Trung cấp12/13/2023, 2:12:46 PM
Bài báo này khám phá sự đa dạng và các kịch bản ứng dụng của đòn bẩy DeFi thông qua dYdX V4, phân tích các lỗ hổng ở cấp độ mã nguồn và đề xuất các điểm an ninh chính của giao protocole đòn bẩy.

Giới thiệu về đòn bẩy DeFi

Việc ra mắt gần đây của dYdX V4 đã thu hút rất nhiều sự chú ý và tham gia trong sàn giao dịch hợp đồng vĩnh viễn. dYdX đã áp dụng thành công các ví dụ giao dịch đòn bẩy, và chúng ta không chỉ nên mong chờ tiềm năng lớn của dYdX V4, mà còn nên chú ý hơn đến sự an toàn của các thỏa thuận đòn bẩy. Tiếp theo, chúng tôi sẽ sử dụng phân tích mã code cụ thể và ví dụ để hướng dẫn bạn qua các chiến lược đòn bẩy khác nhau và xem xét về an ninh.

Đòn bẩy là gì

Trong tài chính, đòn bẩy là một chiến lược dựa vào việc vay tiền để tăng cường khả năng sinh lời từ một khoản đầu tư. Đơn giản, các nhà đầu tư hoặc thương nhân vay tiền để tăng cường sự phơi nhiễm của họ đến các loại tài sản, dự án hoặc công cụ cụ thể nhiều hơn so với những gì họ có thể đạt được chỉ dựa vào vốn của họ. Thông qua việc sử dụng đòn bẩy, các nhà đầu tư thường có thể tăng cường sức mua của mình trên thị trường.

Đòn bẩy trong giao dịch DeFi

Việc sử dụng đòn bẩy là một trong những tính năng quan trọng và phổ biến nhất trong giao dịch tài sản crypto. Ngay sau khi các sàn giao dịch phi tập trung được thành lập, giao dịch sử dụng đòn bẩy trở nên ngày càng phổ biến, mặc dù thị trường crypto đã thể hiện sự biến động cao.

Như với tài chính truyền thống, các nhà giao dịch sử dụng đòn bẩy enti để vay vốn đơn giản để tăng sức mua của họ, hoặc để tận dụng các sản phẩm phái sinh tài chính khác nhau, chẳng hạn như hợp đồng tương lai và quyền chọn.

Tỷ lệ đòn bẩy cũng đã tăng từ 3 lần và 5 lần lên đến hơn 100 lần. Đòn bẩy cao hơn đồng nghĩa với rủi ro cao hơn, nhưng như đã thấy trên hầu hết các sàn giao dịch tập trung, đây là một rủi ro mà các nhà giao dịch quyết đoán đang tìm kiếm lợi nhuận cao hơn sẵn lòng chấp nhận khi khối lượng giao dịch đòn bẩy tăng lên.

Giải thích chi tiết về phân loại đòn bẩy

Đối với DeFi, các sản phẩm đòn bẩy chủ yếu được chia thành bốn loại, và cơ chế tạo ra đòn bẩy khác nhau: cho vay đòn bẩy, giao dịch ký quỹ đòn bẩy, đòn bẩy hợp đồng vĩnh viễn, và mã thông báo đòn bẩy.

Vay ký quỹ

Cho vay và cho vay DeFi là một trong những ứng dụng DeFi sớm nhất và lớn nhất. Các ông lớn như MakerDAO, Compound, AAVE và Venus đã hoạt động trên thị trường. Logic để có được đòn bẩy bằng cách vay tài sản crypto là đơn giản.

Ví dụ, nếu bạn nắm giữ $10,000 trong Ether (ETH) và có quan điểm lạc quan, bạn có thể gửi ETH của bạn làm tài sản đảm bảo vào Compound, cho vay $5,000 trong USDC, sau đó sử dụng $5,000 USDC đó để trao đổi lấy $5,000 khác trong ETH. Như vậy, bạn sẽ có 1.5 lần đòn bẩy trên ETH, và so với vốn ban đầu của bạn là $10,000, bạn sẽ có $1.5 triệu trong ETH.

Tương tự, nếu bạn đang bi quan, bạn có thể chọn gửi stablecoins và cho vay ETH. Nếu giá của ETH giảm, bạn có thể mua ETH trên thị trường với giá thấp hơn và thanh toán nợ của bạn.

Lưu ý rằng vì bạn sẽ vay từ giao thức phi tập trung, bạn có thể bị thanh lý nếu giá trị tài sản thế chấp giảm hoặc nếu giá trị của tài sản mà bạn đang vay vượt quá một ngưỡng nhất định.

Đòn bẩy giao dịch ký quỹ

Với cho vay DeFi, bạn có thể làm những gì bạn muốn với các tài sản kỹ thuật số này. Giao dịch ký quỹ DeFi tập trung nhiều hơn vào việc tăng quy mô vị thế (tăng sức mua) và được coi là một "vị thế đòn bẩy" thực sự. Tuy nhiên, có một sự khác biệt quan trọng – trong khi các vị thế ký quỹ vẫn mở, tài sản của các nhà giao dịch đóng vai trò là tài sản thế chấp cho các khoản vay.

dYdX là một nền tảng giao dịch đòn bẩy phi tập trung nổi tiếng cho phép đòn bẩy lên đến 5 lần. Trong giao dịch đòn bẩy của dYdX, các nhà giao dịch sử dụng vốn của họ làm tài sản thế chấp, tăng gấp đôi số vốn gốc và sử dụng số vốn được tăng này để đầu tư trên quy mô lớn hơn.

Người giao dịch phải trả lãi suất và các khoản phí liên quan đến giao dịch. Vị thế này không hư cấu; nó liên quan đến việc vay mượn và mua/bán thực tế.

Nếu thị trường di chuyển theo hướng không thuận lợi, tài sản của người giao dịch có thể không đủ để hoàn trả toàn bộ khoản vay. Để ngăn điều này xảy ra, thỏa thuận sẽ thanh lý vị thế của bạn trước khi tỷ lệ thanh lý nhất định được đạt đến.

Leverage thay đổi như thế nào trong giao dịch ký quỹ——

Giả sử bạn đang lạc quan về ETH 3 lần trong giao dịch đòn bẩy, nhưng bạn không muốn điều chỉnh lượng tiền ra mọi lúc.

Bạn giữ $100 trong USDC và vay thêm $200 trong USDC để giao dịch $300 trong ETH để thiết lập vị thế ETH dài bạn cần. Mức đòn bẩy là $300/$100 = 3x.

Nếu giá ETH tăng 20%, lợi nhuận của bạn sẽ là 300 (1 +20%) -300 = $60. Rủi ro bị thanh lý của bạn thấp hơn, trong khi mức đòn bẩy thực tế được giảm xuống còn 360/ (360-200) = 2.25x. Nói cách khác, bạn sẽ tự động giảm mức đòn bẩy khi giá ETH tăng lên.

Nếu giá của ETH giảm 20%, tổn thất của bạn sẽ là 300 (1-20%) -300 = -60 đô la. Khi đến việc thanh lý, bạn đang ở trong tình thế nguy hiểm hơn, và mức đòn bẩy thực tế sẽ tự động tăng lên 240/ (240-200) = 6x. Nói cách khác, bạn cân bằng lại đòn bẩy khi giá của ETH giảm, điều đó cho thấy bạn đang ở trong tình thế rủi ro cao hơn so với trước đây.

Do đó, trong khi bạn có thể nghĩ rằng bạn có thể duy trì đòn bẩy cố định bằng cách giao dịch trên biên 3x cố định, đòn bẩy thời gian thực đang thay đổi liên tục.Vui lòng kiểm tra biểu đồ bên dưới để xem làm thế nào đòn bẩy sẽ thay đổi tùy thuộc vào sự thay đổi giá cả [1].

Hợp đồng vĩnh viễn đòn bẩy

Hợp đồng vĩnh viễn tương tự như hợp đồng tương lai truyền thống, nhưng chúng không có ngày đáo hạn. Hợp đồng vĩnh viễn mô phỏng một thị trường giao dịch đòn bẩy dựa trên vị thế, vì vậy giao dịch gần giá của chỉ số tham chiếu cơ bản.

Có nhiều dự án DeFi cung cấp hợp đồng vĩnh viễn cho các nhà giao dịch, như dYdX, MCDEX, Perpetual Protocol, Incomplete, v.v. Nhiều nhà giao dịch có thể thấy khó khăn trong việc phân biệt giữa giao dịch ký quỹ và hợp đồng vĩnh viễn — thực tế, chúng đều liên quan đến đòn bẩy của người dùng.

Tuy nhiên, có một số khác biệt trong cơ chế đòn bẩy, phí và mức đòn bẩy.

Hợp đồng vĩnh viễn là một sản phẩm tương lai giao dịch tài sản tổng hợp và có đặc điểm giao dịch theo tỷ lệ ký quỹ. Giá của tài sản cơ bản được theo dõi một cách tổng hợp, mà không cần phải giao dịch tài sản cơ bản thực tế. Tuy nhiên, giao dịch ký quỹ liên quan đến việc vay và giao dịch tài sản mã hóa thực sự.

Với sự ra đời của hợp đồng vĩnh viễn, khái niệm tỷ lệ tài trợ đã xuất hiện. Mục đích là để duy trì giá giao dịch của hợp đồng vĩnh viễn nhất quán với giá tham chiếu cơ bản. Nếu giá hợp đồng cao hơn giá hiện tại, thì người mua sẽ trả tiền mượn cho người bán. Nói cách khác, các nhà giao dịch cần liên tục trả phí cho việc vay mượn.

Đòn bẩy trong hợp đồng vĩnh viễn thường cao hơn so với giao dịch ký quỹ, và có thể lên tới 100 lần. Cơ chế thanh lý và đòn bẩy thực tế cũng giống như giao dịch ký quỹ.

Token Đòn Bẩy

Token đòn bẩy là các sản phẩm phái sinh cung cấp cho người nắm giữ khả năng tiếp cận đòn bẩy đến thị trường tiền điện tử mà không cần lo lắng về việc quản lý vị thế đòn bẩy một cách tích cực. Mặc dù chúng cung cấp cho người nắm giữ khả năng tiếp cận đòn bẩy, nhưng họ không cần phải xử lý thế chấp, thanh lý, tài sản đảm bảo hoặc tỷ lệ tài trợ.

Sự khác biệt lớn nhất giữa các mã đòn bẩy và giao dịch ký quỹ/hợp đồng vĩnh viễn là các mã đòn bẩy sẽ được cân chỉnh định kỳ hoặc khi một ngưỡng nhất định được đạt để duy trì một mức đòn bẩy cụ thể.

Điều này rõ ràng khác với giao dịch ký quỹ và hợp đồng không kỳ hạn - đòn bẩy thực tế của các sản phẩm này liên tục thay đổi theo biến động giá, ngay cả khi nhà giao dịch ban đầu có thể chỉ định mức đòn bẩy.

Hãy xem cách cân bằng hoạt động trong ví dụ ETH 3x ở trên:

Bạn giữ $100 USDC và mua một token đòn bẩy ETHBULL (3x). Giao protocô sẽ tự động vay $200 USDC và giao dịch $200 ETH.

Giả sử giá ETH tăng 20%, trong khi giá token ETHBULL (3x) tăng lên 300* (1 +20%) -200 = $160 trước khi cân đối lại. Đòn bẩy thực tế của bạn bây giờ là 2,25 (360/160), thấp hơn mức đòn bẩy mục tiêu của bạn.

Như một phần của quá trình cân đối lại, giao thức sẽ vay thêm nhiều đô la từ hồ bơi stablecoin và mua thêm token ETH để đưa đòn bẩy trở lại 3 lần. Trong ví dụ của chúng tôi, giao thức sẽ vay thêm $120 và trao đổi nó thành ETH. Do đó, tổng đòn bẩy một lần nữa trở thành (360+120) /160 = 3 lần.

Giả sử giá của ETH đã giảm 20%, trong khi giá của token ETHBULL (3x) giảm xuống 300* (1-20%) -200 = $40 trước khi cân lại. Đòn bẩy thực tế của bạn hiện sẽ là 6 (240/40), cao hơn mức đòn bẩy mục tiêu của bạn.

Trong trường hợp này, thỏa thuận sẽ bán các token ETH và trả nợ còn lại để giảm đòn bẩy. Trong ví dụ này, giao thức sẽ bán $120 trong ETH để thanh toán cho pool. Nợ sẽ trở thành $80 và tổng đòn bẩy sẽ một lần nữa là (240-120) /40 = 3 lần.

Nói cách khác, các token đòn bẩy sẽ tự động được tái định cấu trúc theo lợi nhuận và giảm đòn bẩy theo lỗ để khôi phục mức đòn bẩy mục tiêu của chúng. Nếu cơ chế này hoạt động tốt, ngay cả trong xu hướng thị trường bất lợi, người nắm giữ token đòn bẩy sẽ không bị thanh lý vì cơ chế giảm đòn bẩy sẽ liên tục giảm mức đòn bẩy hiệu quả của người dùng.

Do đó, hồ cho vay trong mô hình token đòn bẩy sẽ được miễn khỏi rủi ro thanh lý và an toàn hơn so với hồ cho vay trong giao dịch ký quỹ.

Các ví dụ ứng dụng đòn bẩy

Bây giờ khi chúng ta đã tìm hiểu về một số loại giao thức DeFi thông thường của đòn bẩy, hãy thảo luận về việc áp dụng đòn bẩy chi tiết liên quan đến các giao thức DeFi cụ thể.

GMX

GMX [2]là một sàn giao dịch phi tập trung và vĩnh viễn cho phép các nhà giao dịch giao dịch tài sản với đòn bẩy lên đến 50 lần. Hiện tại, thỏa thuận đang chạy trên Arbitrum và Avalanche. Trên GMX, các nhà giao dịch hoàn toàn nhận thức về tình hình đối tác của họ, điều này hoàn toàn khác biệt so với giao dịch trên CEX. Khác với các thỏa thuận hợp đồng vĩnh viễn khác như dYdX, GMX hoạt động hoàn toàn trên chuỗi và sử dụng chức năng AMM để cho phép giao dịch đòn bẩy.

Điều làm nổi bật GMX so với các dịch vụ khác là nó là sàn giao dịch phi tập trung cung cấp dịch vụ giao dịch đòn bẩy. Liên quan đến điều này, nó kết hợp trải nghiệm tương tự các sàn giao dịch DeFi khác như Uniswap với dịch vụ giao dịch đòn bẩy được cung cấp bởi Binance và các sàn khác.

GMX có một hồ bơi thanh khoản GLP, đó là một hồ bơi đa tài sản cung cấp thanh khoản cho giao dịch ký quỹ: người dùng có thể mua/bán ngắn và thực hiện giao dịch bằng cách phát hành và phá hủy token GLP. Hồ bơi kiếm phí LP từ các giao dịch và giao dịch đòn bẩy, được phân phối cho người sở hữu GMX và GLP.

Để giao dịch với đòn bẩy, người giao dịch gửi tài sản thế chấp vào một thỏa thuận. Người giao dịch có thể chọn đòn bẩy lên đến 50 lần. Càng cao đòn bẩy, giá thanh lý càng cao, sẽ tăng dần khi chi phí vay tăng lên.

Ví dụ, khi mua ETH, các nhà giao dịch đang 'cho thuê' không gian tăng của ETH từ hồ bơi GLP; khi bán ETH, các nhà giao dịch đang 'thuê' không gian tăng của stablecoins so với ETH từ hồ bơi GLP. Tuy nhiên, tài sản trong hồ bơi GLP thực tế không được cho thuê ra.

Khi đóng một vị thế, nếu người giao dịch đặt cược đúng, lợi nhuận sẽ được trả dưới dạng tăng số lượng token từ hồ bơi GLP; nếu không, lỗ sẽ được trừ từ tài sản thế chấp và trả vào hồ bơi. GLP lợi nhuận từ lỗ của người giao dịch và lợi nhuận từ lợi nhuận của người giao dịch.

Trong quá trình này, các nhà giao dịch trả phí giao dịch, phí mở/đóng cửa, và phí vay mượn để đổi lấy khoảng trống hướng lên/hướng xuống cho các mã thông báo cụ thể (BTC, ETH, AVAX, UNI và LINK) so với đô la Mỹ.

Merkle Giao dịch

Merkle Trade[3]là một nền tảng giao dịch phi tập trung cung cấp giao dịch tiền điện tử, ngoại hối và hàng hóa với đòn bẩy lên đến 1,000 lần và các tính năng giao dịch dựa trên người dùng tiên tiến. Merkle Trade được cung cấp bởi blockchain Aptos và có hiệu suất và khả năng mở rộng hàng đầu. So với Mạng Gains, cung cấp cùng mức đòn bẩy cao, nó có độ trễ và phí giao dịch thấp hơn.

Khác với hầu hết các sàn giao dịch, Merkle Trade không có sổ đặt lệnh. Thay vào đó, Merkle LP hoạt động như bên đối tác trong mỗi giao dịch, và khi các nhà giao dịch mất tiền, nó sẽ lấy tài sản thế chấp và trả lợi nhuận cho các giao dịch đã đóng với lợi nhuận dương.

  • Giao dịch tiền điện tử, ngoại hối và hàng hoá với đòn bẩy lên đến 1.000 lần

Merkle Trade được thiết kế từ đầu để cung cấp một loạt các cặp giao dịch, bao gồm tiền điện tử, ngoại hối và hàng hóa, cũng như một số mức đòn bẩy cao nhất trên thị trường; lên đến 150x trên tiền điện tử và lên đến 1,000x trên ngoại hối.

  • Thực thi lệnh giá công bằng, độ trễ mili giây, slippage tối thiểu

Tạo ra blockchain với Aptos, có thời gian trễ thấp nhất cho đến nay, có thể cung cấp trải nghiệm giao dịch trên chuỗi nhanh nhất. Đối với người giao dịch, điều này có nghĩa là trải nghiệm giao dịch nhanh hơn và ít trượt giá hơn do trễ trong thực hiện.

  • Giao dịch phi tập trung, không giữ tài sản với không có rủi ro đối tác

Người giao dịch giao dịch với hồ chứa thanh khoản (Merkle LP), hoạt động như một bên tham gia trong mỗi giao dịch trên thỏa thuận. Tất cả các giao dịch và thanh toán được thực hiện bởi hợp đồng thông minh, và không có việc lưu trữ quỹ của người dùng vào bất kỳ thời điểm nào.

  • Phí xử lý thấp nhất

Merkle Trade cho biết họ có một trong những mức phí thấp nhất trên thị trường cho đến nay. Khi ra mắt, phí giao dịch cặp tiền điện tử thấp nhất là 0,05%, và phí giao dịch cặp ngoại hối thấp nhất là 0,0075%.

DYDX

DYDX

dYdX[4]là một sàn giao dịch phi tập trung (DEX) cho phép người dùng giao dịch hợp đồng vĩnh viễn một cách hiệu quả trong khi hoàn toàn kiểm soát tài sản. Kể từ khi ra mắt vào năm 2021, dYdX V3 đã áp dụng một giải pháp mở rộng lớp hai phi tập trung độc đáo để triển khai sàn giao dịch của mình, tuy nhiên sổ lệnh và máy chia sẻ vẫn được quản lý tập trung.

Bây giờ, với dYdX V4, giao thức đang phát triển thành chuỗi riêng của mình, và toàn bộ giao thức đang được tái cấu trúc hoàn toàn để đạt được sự phi tập trung hoàn toàn trong khi tăng công suất. dYdX cũng bao gồm ba chức năng: cho vay, giao dịch đòn bẩy và hợp đồng vĩnh viễn. Giao dịch đòn bẩy đi kèm với chức năng vay mượn. Tiền gửi của người dùng tự động tạo thành một quỹ tiền. Nếu thiếu vốn trong quá trình giao dịch, tiền lãi sẽ được tự động vay và trả.

Phân tích an toàn đòn bẩy

Chúng tôi đã giới thiệu các loại thông thường và ứng dụng của đòn bẩy trong DeFi. Ngoài ra, vẫn còn nhiều vấn đề về an ninh trong thiết kế đòn bẩy đáng đáng chú ý. Chúng tôi sẽ phân tích các vấn đề an ninh và điểm kiểm toán của đòn bẩy DeFi dựa trên các trường hợp kiểm toán cụ thể.

Phân biệt giữa lệnh giới hạn và lệnh thị trường

Trong hầu hết các ứng dụng giao dịch đòn bẩy, có lệnh giới hạn và lệnh thị trường. Việc phân biệt chặt chẽ và xác minh lệnh giới hạn và lệnh thị trường rất cần thiết.Tiếp theo, chúng tôi sẽ tiến hành phân tích chi tiết về các vấn đề chúng tôi tìm thấy trong cuộc kiểm toán Merkle Trade [5].

let now = timestamp: :now_seconds (); if (now - order.created_timestamp > 30) {         cancel_order_internal(             _order_id,             order,             T_CANCEL_ORDER_EXPIRED         );         return     };

Phần mã này thực hiện các kiểm tra trong chức năng đặt lệnh, nơi mà nó kiểm tra xem đã quá 30 giây kể từ khi lệnh được tạo hay chưa. Nếu các điều kiện được đáp ứng, gọi cancel_order_internal () để hủy lệnh. Tuy nhiên, nếu lệnh là lệnh giới hạn, điều đó có nghĩa là lệnh có một giá cụ thể được đặt bởi người giao dịch và họ sẵn lòng mua hoặc bán tài sản ở mức giá đó. Không nên có sự phán đoán như vậy khi thực hiện các lệnh giới hạn; điều này có thể làm cho hầu hết các lệnh giới hạn không được thực hiện. Do đó, quan trọng là phải phân biệt rõ logic giao dịch giữa lệnh giới hạn và lệnh thị trường.

Lỗi tính đòn bẩy

Lỗi tính toán luôn là một vấn đề rất phổ biến trong DeFi, và chúng cũng đặc biệt phổ biến trong đòn bẩy. Chúng tôi sẽ sử dụng các vấn đề được phát hiện bởi giao thức Unstoppable trong các kiểm toán của bên thứ ba để kiểm tra kỹ lưỡng các vấn đề tính toán của đòn bẩy.

Hãy xem mã để tính đòn bẩy trong Unstoppable:

def _calculate_calculation ( _position_value: uint256, _debt_value: uint256, _margin_value: uint256) - > uint256: if _position_value < = _debt_value: #bad debt Return max_value (uint256) Return ( precision * (_debt_value + _margin_value) /(_position_value - _debt_value) /PRECISION )

Hàm _calculate_margin gây ra việc tính đòn bẩy sai lệch bằng cách sử dụng _debt_value + _margin_value làm tử số thay vì _position_value. Ba tham số đầu vào của hàm _position_value, _debt_value, và _margin_value đều được xác định bởi thông tin giá cả do các nguồn tin cậy on-chain của Chainlink cung cấp. Ở đây, _debt_value chỉ ra giá trị của việc chuyển đổi phần nợ của vị thế thành số nợ theo đô la. _margin_value chỉ ra giá trị hiện tại của số tiền ký quỹ ban đầu của vị thế (bằng đô la Mỹ). _position_value chỉ ra giá trị hiện tại (bằng đô la Mỹ) của số tiền ban đầu của vị thế.

Vấn đề với phép tính trên là _debt_value + _margin_value không đại diện cho giá trị của vị thế. Đòn bẩy là tỷ lệ giữa giá trị vị thế hiện tại và giá trị margin hiện tại. _position_value - _debt_value là chính xác. Nó chỉ ra giá trị margin hiện tại, nhưng _debt_value + _margin_value không đại diện cho giá trị hiện tại của vị thế, vì không có đảm bảo rằng token nợ và token vị thế có sự biến động giá liên quan.

Ví dụ, token nợ là ETH, và token vị thế là BTC.

Alice sử dụng 1 ETH làm biên bản, vay mượn 14 ETH (mỗi cái 2,000 đô la), và nhận được 1 BTC (mỗi cái 30,000 đô la) trong các token vị trí. Đòn bẩy là 14.

Ngày mai, giá ETH vẫn ở mức $2,000/ETH, nhưng giá BTC đã giảm từ $30,000/BTC xuống $29,000/BTC. Tại thời điểm này, đòn bẩy nên là (_position_value == 29,000)/(_position_value == 29,000 - _debt_value == 28,000) = 29, không phải là giá trị được tính trong hợp đồng: (_debt_value == 28,000 + _margin_value == 2,000)/(_position_value == 29,000 - _debt_value == 28,000) = 30.

Do đó, để sửa chữa điều này, công thức chính xác được đề cập ở trên nên được sử dụng để tính đòn bẩy trong hợp đồng thông minh. Một sự tính toán sai lệch về đòn bẩy có thể dẫn đến thanh lý không công bằng hoặc vị thế đòn bẩy quá mức trong bối cảnh biến động giá.

Trong hợp đồng thông minh, việc đảm bảo tính toán đòn bẩy đúng đắn là rất quan trọng để duy trì sự mạnh mẽ của hệ thống và lợi ích của người dùng. Việc tính toán đòn bẩy đúng cần dựa trên tỉ lệ giữa giá trị hiện tại của vị thế và giá trị biên bảo hiện tại. Nếu sử dụng công thức tính toán sai, có thể gây ra hệ thống phản ứng không đúng cách với các biến động giá, có thể thanh lý các vị thế mà không nên thanh lý, hoặc cho phép các vị thế đòn bẩy quá mức tiếp tục tồn tại, từ đó tăng nguy cơ cho hệ thống và người dùng.

Lỗi logic

Lỗi logic

Lỗi logic đòi hỏi sự chú ý đặc biệt trong việc kiểm định hợp đồng thông minh, đặc biệt là trong logic phức tạp như giao dịch đòn bẩy DeFi.

Hãy thảo luận về các vấn đề logic cần lưu ý trong việc sử dụng đòn bẩy DeFi dựa trên các vấn đề được phát hiện bởi Tigris[7](Tigris, một nền tảng giao dịch đòn bẩy tổng hợp phi tập trung dựa trên Arbitrum và Polygon) trong một báo cáo kiểm toán của bên thứ ba.

Hãy xem xét logic của chức năng đóng giá giới hạn trong Tigris:

Hàm limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external{ _checkDelay(_id, false);   (uint _limitPrice, địa chỉ _tigAsset) = tradingExtension._limitClose(_id, _tp, _priceData, _signature);   _closePosition(_id, DIVISION_CONSTANT, _limitPrice, address(0), _tigAsset, true);}hàm _limitClose ( uint _id, bool _tp, priceData calldata _priceData, bytes calldata _signature) external view returns (uint _limitPrice, address _TIGAsset) { _checkGas (); Bộ nhớ iPosition.trade _trade = position.trades (_id);   _tigAsset = _trade.tigAsset;   getVerifiedPrice (_trade.asset, _priceData, _signature, 0); uint256 _price = _priceData.giá;   if (_trade.orderType! = 0) revert (" 4 "); isLimit if (_tp) { if (_trade.tpPrice == 0) revert (" 7 "); limitNotSet if (_trade.direction) { if (_trade.tpPrice > _price) revert("6"); //LimitNotMet } else { if (_trade.tpPrice < _price) revert("6"); //LimitNotMet } _limitPrice = _trade.tpPrice;   } else { if (_trade.slprice == 0) revert (" 7 "); limitNotSet if (_trade.direction) { if (_trade.slPrice < _price) revert("6"); //LimitNotMet } else { if (_trade.slPrice > _price) revert("6"); //LimitNotMet } //@audit dừng lỗ được đóng ở mức giá do người dùng chỉ định KHÔNG phải giá thị trường _limitPrice = _trade.slprice;   }}

Khi sử dụng stop-loss để đóng một vị thế, giá đóng cửa của người dùng là giá stop-loss do người dùng đặt, không phải là giá hiện tại của tài sản. Trong trường hợp thị trường hướng và đòn bẩy cao, người dùng có thể lạm dụng điều này để đạt được giao dịch gần như không rủi ro. Người dùng có thể mở một vị thế dài và đặt giá stop-loss thấp hơn giá hiện tại $0.01.

Nếu giá giảm ngay trong cập nhật tiếp theo, họ sẽ đóng vị thế của mình ở giá nhập và chỉ trả phí mở và đóng. Nếu giá tăng, họ có khả năng kiếm được nhiều tiền. Kết quả là, người dùng có thể lạm dụng phương pháp định giá stop-loss để mở giao dịch với đòn bẩy cao, tiềm năng tăng trưởng cao và rủi ro giảm thấp.

Biến động giá

Price Tubs

Tác động của biến động giá cả đối với đòn bẩy DeFi rất quan trọng. Chỉ bằng việc luôn xem xét biến động giá cả, chúng ta mới có thể đảm bảo an toàn của các hợp đồng đòn bẩy. Hãy sử dụng DeFiner [8]ví dụ về một giao thức để phân tích sâu hơn về các vấn đề được phát hiện trong cuộc kiểm toán của bên thứ ba:

Giao thức DeFiner trải qua hai kiểm tra trước khi xử lý rút tiền.

Đầu tiên, phương pháp kiểm tra xem số tiền yêu cầu rút của người dùng có vượt quá số dư của tài sản đó không:

hàm ủy quyền (địa chỉ _accountAddr, địa chỉ _token, uint256 _amount) bên ngoài chỉ được ủy quyền trả lại (uint256) { // Kiểm tra nếu đủ số tiền ít hơn số dư của người dùng yêu cầu (_amount < = getDepositBalanceCurrent (_token, _accountAddr), "Số dư kiếm được. "); uint256 borrowLtv = globalConfig.tokenInfoLogistry () .getBorrowLtv (_token);

Thứ hai, phương pháp kiểm tra xem việc rút tiền có làm cho tỷ lệ đòn bẩy của người dùng quá cao hay không. Số tiền rút sẽ được trừ vào " sức mạnh vay " của giá hiện tại của người dùng. Nếu tổng giá trị vay của người dùng vượt quá khả năng vay mới, phương pháp này sẽ thất bại vì người dùng không còn đủ tài sản thế chấp để hỗ trợ vị thế vay của họ. Tuy nhiên, yêu cầu này sẽ chỉ được kiểm tra nếu người dùng không được tận dụng quá mức:

if (getBorrowEth (_accountAddr) < = getBorrowPower (_accountAddr)) require ( getBorrowEth (_accountAddr) < = getBorrowPower (_accountAddr) .sub (           _amount.mul (globalConfig.tokenInfoRegistry () .priceFromAddress (_token)) .mul (borrowLtv) .div (utils.getDivisor (address (globalConfig), _token)) .div (100)       ), " Colloquium Collège when ");

Nếu người dùng đã vay nhiều hơn số tiền mà họ được phép vay, họ vẫn có thể rút tiền mà không bị giới hạn. Điều này có thể xảy ra trong nhiều tình huống, phổ biến nhất là do biến động giá. Thỏa thuận không xem xét đến tác động của biến động giá trị đối với thỏa thuận, điều này đã gây ra vấn đề này.

Khác

Ngoài những tác động của việc không phân biệt giữa lệnh giới hạn và lệnh thị trường, lỗi tính toán, lỗi logic và biến động giá đã đề cập ở trên, còn có nhiều điểm an toàn liên quan đến các thỏa thuận đòn bẩy đòi hỏi sự chú ý của chúng tôi. Điều này bao gồm, nhưng không giới hạn ở, các vấn đề như cuộc tấn công vay flash, thao tác giá, bảo mật tiên tri, kiểm soát quyền lực, kiểm tra đòn bẩy không đủ, hoặc thiếu kiểm tra. Những yếu tố này phải được cân nhắc cẩn thận khi thiết kế và triển khai các thỏa thuận đòn bẩy để đảm bảo tính mạnh mẽ của thỏa thuận và an toàn của tài sản người dùng. Các biện pháp phòng ngừa, giám sát thời gian thực và kế hoạch phản ứng khẩn cấp cũng là yếu tố quan trọng để giảm thiểu rủi ro tiềm ẩn và bảo vệ lợi ích của người dùng.

tổng kết

Kết luận

Việc giới thiệu giao dịch đòn bẩy trong các giao protocal DeFi đã thực sự cung cấp thị trường với khả năng vận hành linh hoạt hơn, đồng thời mang lại cơ chế giao dịch phức tạp hơn. Mặc dù giao dịch đòn bẩy cung cấp cho người dùng nhiều cơ hội đầu tư hơn, nhưng các rủi ro tiềm năng và thách thức đối với bảo mật protocal cũng trở nên quan trọng hơn.

Khi đòn bẩy tăng lên, hoạt động của các thỏa thuận trở nên linh hoạt hơn, nhưng cũng dễ trở nên yếu và dễ bị đe dọa hơn bởi nhiều mối đe dọa an ninh khác nhau. Điều này bao gồm nguy cơ không thực hiện một sự phân biệt chặt chẽ giữa lệnh giới hạn và lệnh thị trường, lỗi tính toán, lỗi logic, và độ nhạy cảm cực độ đối với các yếu tố như biến động giá. Trong trường hợp này, chúng ta cần chú ý hơn đến an ninh của giao thức để đảm bảo rằng tài sản của người dùng được bảo vệ một cách hiệu quả.

Là một nhóm an ninh blockchain hàng đầu trong lĩnh vực Web3, ScaleBit được phân phối tại Silicon Valley, Singapore, Hong Kong, Đài Loan, v.v. Chúng tôi đã cung cấp các giải pháp an ninh blockchain cho hơn 200 tổ chức và dự án trong lĩnh vực Web3 toàn cầu, tích lũy hơn 180.000 dòng mã kiểm tra, và bảo vệ hơn 8 tỷ đô la tài sản người dùng. Đưa An Ninh Đến Gần Với Tất Cả Mọi Người! Nếu bạn có bất kỳ nhu cầu kiểm tra an ninh nào, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ tùy chỉnh các giải pháp an ninh chi tiết, toàn diện và chuyên nghiệp cho bạn để bảo vệ bạn và lĩnh vực Web3 một cách an toàn!

Miễn trừ trách nhiệm:

  1. Bài viết này đã được tái in từ [ScaleBit]và bản quyền thuộc về tác giả gốc [Polaris]. Nếu bạn có bất kỳ ý kiến ​​nào về việc sao chép, vui lòng liên hệ với nhóm Học viện Gate, và nhóm sẽ xử lý ngay theo các quy trình liên quan.

  2. Xin lưu ý: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ đại diện cho quan điểm cá nhân của tác giả và không hình 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 rõ, việc sao chép, phân phối hoặc sao chép các bài viết dịch là không được phép.

Comece agora
Inscreva-se e ganhe um cupom de
$100
!