Aster: Một Sàn phi tập trung (DEX) giả mạo

Bài viết này được dịch máy
Xem bản gốc

Aster là một sàn giao dịch hợp đồng tương lai vĩnh cửu "phi tập trung" nhưng trên thực tế lại tập trung và được kiểm soát bởi đội ngũ quản lý. Điều này nằm trong một cuộc thảo luận rộng hơn về các sàn giao dịch hợp đồng tương lai vĩnh cửu giả phi tập trung . Nhưng Aster cũng có một vài điểm tương đồng với một số vấn đề cũ của Binance, dẫn đến việc đóng cửangừng hoạt động vài năm trước.

Aster hoạt động chủ yếu trên chuỗi khối BNB Smart Chain. Bản thân chuỗi khối này có lịch sử lâu đời về việc Binance thực hiện quyền kiểm soát gần như hoàn toàn độc lập đối với tiền của người dùng. Vì vậy, lập luận thứ 0 ở đây cho rằng Aster là tập trung hóa là Binance trước đây đã sử dụng vị thế đặc quyền để đóng băng tiền của người dùng và chặn các khóa riêng tư hoàn toàn hợp lệ hoạt động trên BNB Smart Chain. Binance tuyên bố những hành động đó được thực hiện để đáp trả các vụ tấn công nhằm bảo vệ tiền của người dùng. Chắc chắn rồi, có thể, tùy thôi.

Điều đó có nghĩa là, tất nhiên, mọi thứ trên BNB Smart Chain đều nằm dưới sự kiểm soát của Binance, cho phép họ quyết định rằng một số hành động không phù hợp với lợi ích an toàn của tiền người dùng và đơn phương chặn bất cứ điều gì Binance lựa chọn. Lập luận đó đúng ở một mức độ nào đó. Nhưng nó cũng mang tính đơn giản hóa. Chúng tôi không chỉ đơn thuần khẳng định Aster là hệ thống tập trung vì Binance hỗ trợ nền tảng này, Binance kiểm soát BNB Smart Chain và BNB Smart Chain chứa đoạn mã này:

 // Điều này được đưa ra do lỗ hổng khai thác xác minh bằng chứng Merkle của Tendermint IAVL.
var NanoBlackList = []common.Address{
common.HexToAddress("0x489A8756C18C0b8B24EC2a2b9FF3D4d447F79BEc"),
common.HexToAddress("0xFd6042Df3D74ce9959922FeC559d7995F3933c55"),
// Tài khoản thử nghiệm
common.HexToAddress("0xdb789Eb5BDb4E559beD199B8b82dED94e1d056C9"),
}

Vậy chúng ta hãy bắt đầu với hợp đồng Vault, nơi lưu trữ phần lớn tiền trong Aster. Đây là một hợp đồng ủy quyền có thể nâng cấp, được cấu hình theo cách mà nhóm phát triển có thể lấy hết tiền. Và điều này không chỉ đúng mà còn được thừa nhận bằng văn bản trong một cuộc kiểm toán nền tảng. Tóm lại, trong thiết kế ban đầu, một địa chỉ duy nhất có thể đánh cắp toàn bộ tiền trong Vault. Sau đó, một kiểm toán viên đã nhận thấy điều này và nhóm phát triển đã cam kết chuyển sang sử dụng nhiều chữ ký. Điều này được ghi rõ trong một cuộc kiểm toán do chính nhóm Aster cung cấp trên trang web của họ . Đó là bằng chứng khá thuyết phục:

Tiếp theo, chúng ta sẽ điểm qua hàng loạt các công cụ mà nhóm có thể sử dụng để điều khiển nền tảng. Và sau đó, chúng ta sẽ thảo luận về cách nhóm, và chỉ nhóm mà thôi, có thể sử dụng các công cụ đó để chiếm đoạt tài sản của người dùng. Tất cả những điều này không đòi hỏi phải thay đổi chức năng dự kiến của hệ thống. Đúng vậy, những hành động này cấu thành tội trộm cắp và do đó không phù hợp với mục đích đã nêu của nhóm đối với nền tảng. Nhưng các giám đốc ngân hàng không viết "để chúng tôi có thể ăn cắp tiền" trong đơn xin cấp phép dưới mục "tại sao bạn muốn có giấy phép ngân hàng này?". Điều quan trọng là tất cả những "cuộc tấn công" này đều có thể được thực hiện bằng cách sử dụng các đòn bẩy kiểm soát đã được cố tình tích hợp vào Aster.

Và trước khi ai đó nói "nhưng DEX có quản trị phi tập trung", bạn cần biết rằng hiện tại có kế hoạch cho quản trị phi tập trung trong tương lai , nhưng hiện tại nó vẫn như mô tả ở trên:

https://x.com/Aster_DEX/status/1996531726294913423

Vậy là có một dạng quản trị viên nào đó và đó không phải là DAO. Vì vậy, giờ chúng ta có thể thảo luận về quyền hạn của quản trị viên.

Trước hết, người quản trị có thể tạm dừng và tiếp tục hệ thống. Điều này có nghĩa là, nói một cách tổng quát, họ không bao giờ cảm thấy áp lực về thời gian khi rút tiền. Nút tạm dừng giúp việc phối hợp, tính toán thời gian và đồng bộ hóa trở nên dễ dàng hơn.

Nhóm này cũng có khả năng điều chỉnh linh hoạt nhiều thông số, bao gồm phí và giới hạn số lượng hợp đồng mở . Điều đó có nghĩa là họ có thể tính phí cao hơn mức người dùng dự kiến, xóa hợp đồng và nói chung có thể buộc thanh lý và thực hiện các biện pháp tương tự bằng cách giảm đòn bẩy hệ thống theo những cách mà người dùng không thể lường trước.

Và nhóm cũng có thể thay đổi các nguồn định giá được sử dụng để vận hành sàn giao dịch. Vậy thì câu hỏi đặt ra là liệu chúng ta có thường xuyên thấy nhóm sử dụng giao diện quản trị này để thực hiện những việc như vậy không? Có. Đây là một địa chỉ EOA duy nhất — một địa chỉ quản trị không tự động, được kiểm soát ngoài chuỗi, do con người vận hành — liên tục gửi các bản cập nhật cấu hình:

Các lệnh “Cập nhật hàng loạt…” tạo ra danh sách dài các bản cập nhật cấu hình giao dịch như sau:

Sau đó, các lệnh gọi “Execute Tp Sl or Liq” sẽ tạo ra các thay đổi như sau:

Và bây giờ, để kết thúc phần này, chúng ta hãy cùng nhanh chóng tìm hiểu cách thức triển khai các chức năng quản trị này. Không phải vì nó phức tạp — mà ngược lại, vì nó rất đơn giản và dễ hiểu. Dưới đây là một số chức năng của TradingConfig :

 hàm setTradingSwitches(
bool limitOrder, bool executeLimitOrder, bool marketTrade,
bool userCloseTrade, bool tpSlCloseTrade, bool liquidateTradeSwitch,
bool predictBet, bool predictSettle
) ghi đè bên ngoài {
LibAccessControlEnumerable.checkRole(Constants.MONITOR_ROLE);
uint tradeSwitches = 0;
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.LIMIT_ORDER), limitOrder);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.EXECUTE_LIMIT_ORDER), executeLimitOrder);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.MARKET_TRADING), marketTrade);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.USER_CLOSE_TRADING), userCloseTrade);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.TP_SL_CLOSE_TRADING), tpSlCloseTrade);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.LIQUIDATE_TRADING), liquidateTradeSwitch);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.PREDICTION_BET), predictBet);
tradeSwitches = tradeSwitches.setOrClearBit(uint8(TradingSwitch.PREDICTION_SETTLE), predictSettle);
LibTradingConfig.setTradingSwitches(uint16(tradeSwitches));
}
hàm setExecutionFeeUsd(uint256 executionFeeUsd) ghi đè bên ngoài {
LibAccessControlEnumerable.checkRole(Constants.ADMIN_ROLE);
LibTradingConfig.setExecutionFeeUsd(executionFeeUsd);
}

function setMaxTpRatioForLeverage(address pairBase, MaxTpRatioForLeverage[] calldata maxTpRatios) external override {
LibAccessControlEnumerable.checkRole(Constants.PAIR_OPERATOR_ROLE);
require(pairBase != address(0) && IPairsManager(address(this)).getPairForTrading(pairBase).base != address(0), "TradingConfigFacet: cặp không tồn tại");
LibTradingConfig.setMaxTpRatioForLeverage(pairBase, maxTpRatios);
}

Bạn có thể thấy ở đầu mỗi hàm đều gọi checkRole(SOME_ROLE). Có một điều khiển cho mỗi vai trò MONITOR_, ADMIN_ và OPERATOR_. Có một vài vai trò quản trị khác nhau ở đây và một số cơ chế liên quan để quản lý chúng mà chúng ta sẽ không đề cập đến ở đây.

Vấn đề đơn giản là ở đây có những quản trị viên có đặc quyền. Và đúng là hệ thống có thể phần lớn dựa vào chữ ký đa chữ ký, vì vậy nhiều chức năng kiểm soát yêu cầu một vài người có thẩm quyền ký để thực hiện thay đổi. Nhưng đây chính xác là vấn đề đã được nêu bật trong báo cáo kiểm toán tháng 9 năm 2024 được đề cập ở trên. Hệ thống, như được thiết kế, xây dựng, triển khai và vận hành trong thực tế, tập trung hóa như bất kỳ doanh nghiệp tài chính truyền thống nào, trong đó nhiều nhà quản lý phải ký duyệt các thay đổi.

Vì vậy, cũng giống như Hyperliquid, mà không cần lo lắng về việc các phần ngoài chuỗi của hệ thống có hoạt động trung thực trong thời điểm thuận lợi hay không, nhóm phát triển có thể buộc các phần của hệ thống phải trả toàn bộ tiền cho các tài khoản ưu ái trên chuỗi.

Điều đó có thể hoạt động như thế nào? Ví dụ, nhóm có thể chuyển hướng các nguồn định giá đến các hệ thống dự báo mà nhóm kiểm soát và sau đó đảm bảo các vị thế liên kết với nhóm thu được toàn bộ tiền. Tương tự, nhóm có đủ quyền kiểm soát đối với mức lãi suất tài trợ và giới hạn đòn bẩy cũng như các thông số liên quan đến thanh lý khác nhau để thu gom tiền gửi theo thời gian.

Nghe có vẻ hơi phức tạp và có phần gượng ép phải không? Bạn có quên phần mà nhóm này có thể dễ dàng lấy đi một loạt tài sản của người dùng, và kiểm toán viên của họ đã phát hiện ra điều đó, thừa nhận và vẫn công bố báo cáo kiểm toán lên trang web không? Mọi vụ tấn công đều phức tạp hơn thế! Vụ tấn công đơn giản nhất được mô tả ở đây là "họ mở két tiền để lấy tiền", và sau đó mọi chuyện sẽ trở nên phức tạp hơn. Và nhóm này cũng có mức độ kiểm soát tương tự đối với stablecoin Aster USDF, một phần của nền tảng, với đầy đủ quyền đóng băng và tịch thu . Và đúng vậy, một báo cáo kiểm toán khác cũng ghi nhận một số vấn đề này.

Còn mã số thì sao? Nghe có vẻ giống chuỗi Beacon của BNB.

Chúng tôi trích dẫn đoạn mã trên khá dài. Nhưng những đoạn mã đó chủ yếu đến từ các trình khám phá blockchain. Đây không phải là nơi tốt nhất để lưu trữ mã — việc xem lịch sử rất khó khăn — và tất nhiên các trình khám phá blockchain không có cách nào để lưu trữ mã không phải là hợp đồng thông minh. Aster có các thành phần khác nên…vậy vấn đề là gì?

Các liên kết chính thức không dẫn đến mã nguồn:

Ngay cả các cuộc kiểm toán cũng chỉ ra những địa điểm khá ngẫu nhiên:

đây
đây

Kho lưu trữ github.com/astherus-contract có một số mã nguồn nhưng nó không phải là mã mới nhất:

Có một kho lưu trữ khác trên github.com/asterdexcom chứa một số mã hợp đồng thông minh và các hoạt động gần đây hơn, nhưng không có nhiều thông tin khác:

Nếu bạn xem lịch sử commit của một số kho lưu trữ này, rõ ràng đây là các kho lưu trữ phát triển và nhóm phát triển hoàn toàn bao gồm các biệt danh như alex-degen, cody-z và mark-c. Vì vậy, có vẻ như đây lại là một trò hề lố bịch khác:

Đó là hệ thống BNB Beacon Chain hiện đã bị đóng cửa, và nhóm phát triển đã thừa nhận hệ thống này là mã nguồn đóng rất lâu sau khi họ công khai tuyên bố ngược lại. Chúng tôi đã có nhiều cuộc trao đổi công khai với V và Zoro, trong đó họ dường như thừa nhận điều này khá thường xuyên.

Hồi đó, cuối năm 2022/đầu năm 2023, họ đã công bố các tài liệu và mã nguồn mới, về cơ bản thừa nhận toàn bộ sự việc là một trò lừa đảo. Cuối cùng thì nó đã bị đóng cửa hoàn toàn . À, và lúc đó cũng có rất nhiều tài sản thế chấp không được đảm bảo, đó là lý do khiến BUSD bị đóng cửa .

Nếu hóa ra cody-z là zorobytes thì có lẽ sẽ chẳng ai ngạc nhiên cả. Xét cho cùng, một trong những mục đích ban đầu của BNB Beacon Chain là cung cấp một nền tảng giao dịch phi tập trung có thông lượng cao. Giống như Aster vậy. Thật đấy. Thông tin này từ giữa năm 2022 :

Sau khi chúng tôi đưa ra ý kiến, nhóm phát triển đã công khai thừa nhận việc viết mã và tài liệu mới. Họ thừa nhận, công khai và bằng văn bản, rằng điều này là để đáp lại những câu hỏi của chúng tôi về điều mà họ từ lâu đã khẳng định là một hệ thống mở:

https://x.com/v_bnbchain/status/1612066505784721408?s=20

Một loạt vấn đề thời đó, ừm, đã được để dành giải quyết trong tương lai:

https://x.com/v_bnbchain/status/1614621429399719936

Thay vì thực hiện những gì đã hứa và giải quyết tất cả các vấn đề, BNB Beacon Chain đã bị đóng cửa trước khi dữ liệu được làm rõ hoàn toàn. À, và hồi đó họ cũng hứa hẹn về việc phân quyền trong tương lai:

Sàn giao dịch phi tập trung (DEX) đầy tham vọng của BNB Beacon Chain đã bắt chước nhiều sản phẩm DeFi phổ biến thời bấy giờ. Và sự phi tập trung đầy tham vọng đó trông rất giống với, à, nhiều thứ (gợi ý: bao gồm cả Aster). Nhưng nó luôn là một hệ thống tập trung, một phần mã nguồn đóng, với những tính năng và hành vi kỳ lạ. Nói tóm lại: đó là một trò lừa đảo, BUSD đã bị NYDFS cắt giảm mạnh, và cuối cùng toàn bộ dự án BNB Beacon DEX đã bị ngừng hoạt động. Giờ đây, Aster dường như cũng tương tự như phần lớn những thứ đang bốc mùi đó.

Vì thế?

Chúc may mắn khi lần này đặt tên là Aster và bắt chước Hyperliquid thay vì cái tên DEX năm 2021/2022 mà mọi người thích hồi trước.

Trước đây, nhóm BNB Chain đã mô tả sai các câu hỏi của chúng tôi là những lời khẳng định và nói chung đã xử lý vụng về việc làm rõ rằng mọi thứ luôn ổn:

https://x.com/v_bnbchain/status/1611900690833760260?s=20

“Phần mềm của bạn làm X khi tôi chạy nó. Bạn có thể giải thích không?” là một câu khẳng định sự thật theo sau là một câu hỏi. Hãy coi những điều trên là câu hỏi của chúng tôi. Giống như lần trước bạn đã đăng tải mã nguồn và tài liệu mới rồi lại liên kết chúng trong câu trả lời của mình để ngụ ý rằng chúng tôi chưa đọc kỹ, trong khi thực tế công việc của bạn có lỗi…xin thứ lỗi cho chúng tôi vì muốn làm điều này công khai kèm theo dấu thời gian.

Như chúng tôi đã nhiều lần giải thích: blog này chuyên đưa ra những dự đoán về quá khứ.


Bài viết "Aster: Một DEX giả mạo" ban đầu được đăng trên ChainArgos trên Medium, nơi mọi người đang tiếp tục cuộc thảo luận bằng cách nêu bật và phản hồi về câu chuyện này.

Medium
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
81
Thêm vào Yêu thích
11
Bình luận