Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Từ góc độ kỹ thuật: Tại sao các mã thông báo cơ chế giảm phát lại dễ bị tổn thương
Eocene
特邀专栏作者
2023-03-12 02:42
Bài viết này có khoảng 1422 từ, đọc toàn bộ bài viết mất khoảng 3 phút
Bài viết này sẽ thảo luận và phân tích nguyên nhân khiến các token giảm phát bị tấn công, đồng thời đưa ra các giải pháp phòng thủ tương ứng.

Tổng quan

tiêu đề cấp đầu tiên

Gần đây, các mã thông báo có cơ chế giảm phát trên blockchain thường xuyên bị tấn công. Bài viết này sẽ thảo luận và phân tích lý do tại sao các mã thông báo cơ chế giảm phát bị tấn công và đưa ra các giải pháp phòng thủ tương ứng.

Thường có hai cách để thực hiện cơ chế giảm phát trong mã thông báo, một là cơ chế đốt và hai là cơ chế phản ánh. Dưới đây chúng tôi sẽ phân tích hai triển khai này và các vấn đề có thể xảy ra.

tiêu đề cấp đầu tiên

cơ chế đốt cháy

Thông thường, các mã thông báo có cơ chế ghi sẽ triển khai logic ghi trong chức năng _transfer của chúng. Đôi khi có trường hợp người gửi chịu phí xử lý. Trong trường hợp này, số lượng mã thông báo mà người nhận nhận được không thay đổi, nhưng người gửi cần trả nhiều mã thông báo hơn vì họ phải chịu phí giao dịch. Đây là một ví dụ đơn giản:

Sau đó chúng ta thảo luận về những rủi ro có thể xảy ra trong tình huống này.

Nếu chúng ta chỉ nhìn vào hợp đồng mã thông báo, chúng ta sẽ thấy rằng cách viết này thực sự không có vấn đề gì, nhưng có rất nhiều tình huống phức tạp trong chuỗi khối, đòi hỏi chúng ta phải xem xét nhiều khía cạnh.

Thông thường, để mã thông báo có giá, bên dự án sẽ thêm tính thanh khoản cho mã thông báo trên các sàn giao dịch phi tập trung như Uniswap và Pancakeswap.

Trong số đó, trong Uniswap, có một chức năng skim, sẽ chuyển chênh lệch giữa số dư và dự trữ của hai mã thông báo trong nhóm thanh khoản cho người gọi để cân bằng số dư và dự trữ:

Tại thời điểm này, người gửi trở thành nhóm thanh khoản. Khi _transfer được gọi, mã thông báo trong nhóm thanh khoản sẽ bị hủy một phần, khiến giá mã thông báo tăng một phần.WDOGE) :

Một trường hợp tấn công thực sự, doge người chiến thắng (

Trong chức năng _transfer của hợp đồng WDOGE, khi block.timestamp > thời gian đóng, hãy nhập vòng lặp khác. Trong dòng mã 21, số tiền chuyển được khấu trừ từ số dư của người gửi và trong dòng mã 31, người gửi bị đốt tokensToBurn số lượng mã thông báo. Kẻ tấn công sử dụng cơ chế tính phí này để đánh cắp tất cả các mã thông báo giá trị (WBNB) trong nhóm thanh khoản thông qua phương pháp tấn công nêu trên.

tiêu đề cấp đầu tiên

cơ chế phản xạ

Trong cơ chế phản ánh, người dùng sẽ tính phí xử lý cho mỗi giao dịch, được sử dụng để thưởng cho người dùng nắm giữ mã thông báo, nhưng nó sẽ không kích hoạt chuyển khoản mà chỉ sửa đổi một hệ số.

Trong cơ chế này, người dùng có hai loại số lượng mã thông báo, tAmount và rAmount. tAmount là số lượng mã thông báo thực tế, rAmount là số lượng mã thông báo được phản ánh và tỷ lệ là tTotal / rTotal. Việc triển khai mã chung như sau:

Nói chung, có một chức năng được gọi là phân phối trong mã thông báo của cơ chế phản ánh, chức năng này sẽ hủy mã thông báo của người gọi và giảm giá trị của rTotal, vì vậy tỷ lệ sẽ tăng lên và số lượng mã thông báo được phản ánh bởi những người dùng khác cũng sẽ tăng lên:

Kẻ tấn công đã nhận thấy chức năng này và sử dụng nó để tấn công nhóm thanh khoản Uniswap tương ứng.

Vậy anh ta nên sử dụng nó như thế nào? Cũng bắt đầu với chức năng lướt qua của Uniswap:

Reserve trong Uniswap là quỹ dự trữ, khác với token.balanceOf(address(this)).

Trước tiên, kẻ tấn công gọi hàm phân phối để hủy mã thông báo của chính anh ta, điều này làm cho giá trị của rTotal giảm và tỷ lệ tăng tương ứng, do đó giá trị của mã thông báo được phản ánh cũng sẽ tăng lên và token.balanceOf(address(this)) sẽ cũng tăng tương ứng.Có khoảng cách với giá trị dự trữ.BEVO):

Do đó, kẻ tấn công có thể kiếm lợi nhuận bằng cách gọi hàm Ski để chuyển số lượng mã thông báo bằng với sự khác biệt giữa hai loại.

Một trường hợp tấn công thực sự, BEVO NFT Art Token(

Khi có chức năng ghi trong hợp đồng mã thông báo, có một phương thức tấn công tương tự khác:

Kẻ tấn công sử dụng tính năng này để giảm giá trị của tTotal bằng cách gọi chức năng ghi nhiều lần, sau đó gọi chức năng đồng bộ hóa của nhóm thanh khoản để đồng bộ hóa dự trữ và số dư. Cuối cùng, các mã thông báo trong nhóm thanh khoản đã giảm mạnh và giá tăng vọt. Kẻ tấn công sau đó bán mã thông báo để kiếm lợi nhuận.SHEEP):

Một trường hợp tấn công thực sự, Sheep Token(

Bằng cách giải thích các phương thức tấn công chống lại mã thông báo của cơ chế đốt và cơ chế phản xạ, không khó để nhận thấy rằng điểm cốt lõi trong cuộc tấn công của kẻ tấn công là thao túng giá của nhóm thanh khoản. vào danh sách trắng không liên quan đến việc phá hủy mã thông báo và không Có thể tránh được các cuộc tấn công như vậy bằng cách tham gia vào cơ chế phản ánh của mã thông báo.

tóm tắt

tóm tắt

tiêu đề cấp đầu tiên

At Eocene Research, we provide the insights of intentions and security behind everything you know or don’t know of blockchain, and empower every individual and organization to answer complex questions we hadn’t even dreamed of back then.

tìm hiểu thêm:Website | Medium | Twitter

công nghệ
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina