Securityadvancedarticle30 min read

Phân tích vụ hack mạng Poly: 611 triệu USD và người đội mũ trắng đã trả lại toàn bộ số tiền đó | VCC

Ngày 10 tháng 8 năm 2021, một hacker đơn lẻ đã rút 611 triệu đô la từ mạng Poly – lúc đó là vụ hack crypto lớn nhất trong lịch sử – mà không phá vỡ bất kỳ thuật toán mã hóa nào. Hacker không tạo ra chữ ký giả mạo hay phá vỡ private key. Họ đã gửi một tin nhắn xuyên chuỗi được thiết kế cẩn thận k

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 14 tháng 9, 2026

Ngày 10 tháng 8 năm 2021, một hacker đơn lẻ đã rút 611 triệu đô la từ mạng Poly – lúc đó là vụ hack crypto lớn nhất trong lịch sử – mà không phá vỡ bất kỳ thuật toán mã hóa nào. Hacker không tạo ra chữ ký giả mạo hay phá vỡ private key. Họ đã gửi một tin nhắn xuyên chuỗi được thiết kế cẩn thận khiến hợp đồng Ethereum của mạng Poly tin rằng khóa Keeper đáng tin cậy của mình đã được thay thế bằng khóa của họ. Từ đó, hacker đã trở thành cơ quan đáng tin cậy và chỉ đạo giao thức mở khóa hàng trăm triệu đô la cho ba ví được kiểm soát bởi hacker trên Ethereum, BSC và Polygon. Mười ba ngày sau đó, sau một cuộc đàm phán trên chuỗi được thực hiện hoàn toàn thông qua các tin nhắn giao dịch Ethereum, hacker đã trả lại gần như tất cả số tiền và công bố private key của kho cuối cùng bị khóa. Không có vụ hack DeFi nào lớn hơn trước đó hoặc kể từ đó đã kết thúc hoàn toàn – hoặc kỳ lạ đến vậy.

Poly Network làm gì và tại sao nó là một mục tiêu hấp dẫn

Poly Network là một giao thức tương tác xuyên chuỗi được phát triển vào năm 2020 bởi một nhóm liên kết với Neo và Ontology. Mô hình của nó rất đơn giản: cho phép người dùng khóa các token trên chuỗi A và giải phóng các token tương đương trên chuỗi B, không cần thông qua một sàn giao dịch trung tâm. Trên thực tế, Poly hoạt động như một cầu khóa và giải phóng – các smart contract trên mỗi chuỗi được hỗ trợ (Ethereum, BSC, Polygon, Neo, Ontology, Zilliqa và các chuỗi khác) được điều phối bởi một hệ thống trung chuyển xác minh các tin nhắn xuyên chuỗi.

Vào tháng 8 năm 2021, Poly giữ tổng giá trị khoảng 610 triệu USD bị khóa trong các hợp đồng cầu. Ba tài sản này đã trở thành mục tiêu hấp dẫn bất thường. Thứ nhất, nó là cầu chuỗi – một cuộc tấn công thành công trên logic xác minh của một chuỗi có thể được tái diễn trên nhiều chuỗi trong vài phút. Thứ hai, nó là custodial theo cách tồi tệ nhất – các tài khoản người dùng nằm trong các hợp đồng proxy khóa tuân theo quyền hạn của một người giữ. Thứ ba, nó là mới – được triển khai nhanh chóng trong giai đoạn phát triển DeFi từ năm 2020 đến 2021, được kiểm toán một lần và xử lý khối lượng đã tăng 10 lần trong vài tháng.

Diagram - Poly Network bridge architecture: lock proxies on Ethereum/BSC/Polygon, Poly relayer with Keeper pubkey, and the attacker overwrite path that replaced the Keeper

Lịch trình: 13 ngày từ vụ cướp đến kết thúc hạnh phúc

Toàn bộ câu chuyện – từ trộm, đàm phán đến phục hồi – diễn ra trong chưa đầy hai tuần, với mọi biến cố đều có thể thấy trên chuỗi.

10 tháng 8, 2021, ~17:00 UTC — Người tấn công thực hiện khoảng 15 giao dịch giả mạo xuyên chuỗi trên Ethereum, BSC và Polygon. Trong khoảng 30 phút, ~273 triệu USD rời khỏi Ethereum, ~253 triệu USD rời khỏi BSC và ~85 triệu USDC rời khỏi Polygon. Poly Network đã tweet trong vòng một giờ, công bố ba địa chỉ của kẻ tấn công và yêu cầu tất cả các nhà khai thác và sàn giao dịch đưa các khoản tiền bị ô nhiễm vào danh sách đen. Tether đã đóng băng 33 triệu USDT trong vài phút sau đó – đây là bằng chứng cụ thể đầu tiên cho thấy việc rút tiền sẽ không đơn giản.

11 tháng 8, 00:00–06:00 UTC – Một tài khoản ẩn danh tuyên bố là kẻ tấn công đã đăng một thông báo trên chuỗi: "sẵn sàng trả lại số tiền". Poly Network đã công bố ba địa chỉ ví trả lại (một địa chỉ cho mỗi chuỗi) và yêu cầu người tấn công sử dụng chúng. Trong vòng vài giờ, khoảng 342 triệu đô la – khoảng một nửa số tiền trộm – đã xuất hiện trong các ví đó: 256 triệu đô la trên BSC, 3,3 triệu đô la trên Ethereum và 85 triệu đô la trên Polygon.

11–12 tháng 8 — Số tiền còn lại khoảng 268 triệu USD vẫn nằm trong một 2-of-2 multisig yêu cầu mật khẩu từ cả Poly và kẻ tấn công. Không một bên nào có thể chuyển nó một mình. Poly đã công bố một 500.000 USD tiền thưởng lỗi và đề nghị kẻ tấn công một công việc làm cố vấn an ninh chính — cả hai đều từ chối với một lời nói ngắn gọn "không quan tâm, tôi không bao giờ trả lời Poly."

12–18 tháng 8 — Hai bên đã đàm phán thông qua các tin nhắn được gắn vào "dữ liệu đầu vào" giao dịch Ethereum — một phòng chat văn bản có thể xem được trên toàn bộ internet. Poly đã yêu cầu private key. Người tấn công đã gắn thêm những ý kiến triết học, phủ nhận động cơ kiếm lợi ("Tôi làm điều này vì vui") và gọi tình huống đó là "một trò chơi hài hước". Một thời điểm, người tấn công còn đe dọa sẽ trì hoãn việc trả lại. Trong khi đó, người tấn công đã gửi DAI và USDC bị đánh cắp vào Curve.fi trên Ethereum (ba lần thất bại do sự đảo ngược/giảm giá, thành công ở lần thứ tư) và ~119 triệu USD vào nhóm 3EPS của Ellipsis Finance trên BSC — kiểm tra xem mức độ thanh khoản của DEX có cung cấp một con đường rút tiền hay không.

Tháng 8 năm 19 — Poly đã gửi 160 ETH (~$480,000) đến địa chỉ của kẻ tấn công có tên "Poly Network Exploiter 2" — phần thưởng được xác nhận trên Etherscan — mặc dù trước đó có thông tin cho biết kẻ tấn công đã "từ chối" nó. Sự mơ hồ (kẻ tấn công có yêu cầu nó hay Poly đã đưa nó?) chưa được giải quyết hoàn toàn.

23 tháng 8, 2021 (ngày 13) — Người tấn công đã công bố private key cho số tiền còn lại 141 triệu đô la (cuối cùng phần tiền bị khóa) thông qua một tin nhắn trên chuỗi, gọi cuộc phiêu lưu này là "một trong những cuộc phiêu lưu hoang dã nhất trong cuộc đời chúng tôi" và tuyên bố rằng họ "đã rời khỏi chương trình". Poly đã lấy lại toàn bộ số tiền cuối cùng và thông báo rằng tất cả tài sản của người dùng đã được lấy lại hoàn toàn — tỷ lệ lấy lại 100% này vẫn là duy nhất trong các vụ tấn công cầu 9 chữ số.

Timeline - 13-day Poly Network hack timeline from exploit (Aug 10) through partial return, on-chain negotiation, and full recovery (Aug 23)

Số liệu: Từ đâu đến và đi đâu 611 triệu USD

Vào thời điểm bị tấn công (ETH ~$3,150, BNB ~$350), số tiền 611 triệu USD được phân chia theo chuỗi và theo mã thông qua một mô hình cho thấy chiến lược của kẻ tấn công: mục tiêu đầu tiên là lượng thanh khoản ổn định cao nhất.

Dây chuỗiĐược đánh cắp (khoảng)Token quan trọng
Ethereum~$273 triệu (10 loại token)ETH (2,858), WBTC (1,032), USDT (~$11 triệu), USDC, DAI (~$16 triệu), UNI, SHIB (~$300 triệu SHIB – không có tính thanh khoản), FEI, v.v.
BSC~$253 triệuBUSD, BNB, BTCB, ETH, USDT, USDC – 119 triệu đô la được chuyển vào kho 3EPS của Ellipsis
Polygon~$85 triệu85,089,719 USDC (token đơn lẻ, vụ trộm sạch nhất)
Tổng~611 triệu đô la610–613 triệu đô la tùy theo giá chụp nhanh

Ba EOAs của kẻ tấn công và các dấu vết tài chính của họ kể một câu chuyện thứ hai:

  • Ethereum EOA: 0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963
  • BSC EOA: 0x0D6e286A7cfD25E0c01fEe9756765D8033B32C71
  • Polygon EOA: 0x5dc3603C9D42Ff184153a8a9094a73d461663214
  • Tiền đầu tư ban đầu: đồng tiền riêng Monero → được đổi thành BNB, ETH, MATIC — bước duy nhất tiếp xúc với các đường ray không minh bạch; mọi thứ sau đó đều nằm trên các chuỗi minh bạch

Một so sánh hữu ích: Poly bị tấn công một lần nữa vào ngày 1 và 2 tháng 7 năm 2023, khi một kẻ tấn công tạo ra 42 tỷ đô la giá trị giấy trên 57 token trên 11 chuỗi – nhưng vì Metis không có lượng thanh khoản BUSD/BNB và các dự án như Revomon rút lại của họ, chỉ có khoảng 10 triệu đô la có thể thực hiện được. Sự tấn công năm 2021 thành công vì số tiền trộm là tiêu chuẩn ổn định có tính thanh khoản; trong khi nỗ lực năm 2023 thất bại vì đó là tiêu chuẩn không được hỗ trợ. Chính sách tương tự, kinh tế khác nhau.

Nguyên nhân: Một chức năng có quyền hạn được lộ ra một đường dẫn không được tin cậy

Hack mạng đa chuỗi này không phải là lỗi zero-day trong ECDSA hay lỗi reentrancy. Đó là một lỗi quản lý / kiểm soát truy cập mập mờ – một chức năng quản trị có quyền đặc biệt mà chỉ có thể được gọi bởi chính cơ chế quản trị của Poly, nhưng lại có thể được truy cập thông qua đường truyền tin cài không đáng tin cậy giữa các chuỗi, mà bất kỳ người dùng nào cũng có thể kích hoạt.

Hai hợp đồng quan trọng

Trên Ethereum, bridge của Poly dựa trên hai hợp đồng:

  • EthCrossChainManager — điểm vào cho các tin nhắn giữa các chuỗi. Nó nhận header + payload được xác minh bằng Merkle từ chuỗi nguồn, giải mã phương thức mục tiêu và gọi nó thông qua call ở cấp độ thấp.

Tiến trình dự định cho một người dùng hợp pháp chuyển 1,000 USDC từ BSC sang Ethereum là: khóa 1,000 USDC trên BSC → relay gửi bằng chứng cho verifyHeaderAndExecuteTx() trên Ethereum → Quản lý giải mã unlock(1,000 USDC → địa chỉ người dùng) → xác minh chữ ký của Keeper → gọi proxy unlock → người dùng nhận được 1,000 USDC.

Lợi dụng hai bước

Bước 1 — Thay thế Keeper. Người tấn công đã tạo một tin nhắn xuyên chuỗi, payload được giải mã không phải là unlock(...) mà là putCurEpochConPubKeyBytes(attackerPubKey), tức là hàm cập nhật khóa Keeper chính nó. Tuy nhiên, hàm này được coi là một cuộc gọi quản trị nội bộ chỉ được thực hiện trong quá trình thay đổi chu kỳ bởi cơ quan quản lý Poly. Tuy nhiên, vì EthCrossChainManager đã chuyển mọi phương thức được giải mã sang EthCrossChainData mà không kiểm tra xem phương thức đó có thể được gọi xuyên chuỗi hay không, tin nhắn của người tấn công đã vượt qua kiểm tra đầu đề (qua bằng chứng Merkle giả mạo chống lại đầu đề có mức độ khó khăn thấp) và thay thế khóa công khai của Keeper bằng khóa của họ.

Bước 2 – Giải mã bất kỳ thứ gì. Bây giờ kẻ tấn công là người giữ kho. Họ tạo ra các tin nhắn giải mã tùy ý – “giải mã 85.089.719 USDC thành 0x5dc3…”, “giải mã 2.858 ETH thành 0xC8a6…” – và ký chúng bằng chìa khóa của họ, và Quản trị viên đã xác minh “ký hiệu của người giữ kho” thành công. Mỗi lần giải mã giả mạo đã tạo ra hoặc phát hành các token thực từ các proxy khóa trên chuỗi đích. Lặp lại điều này trên Ethereum, BSC và Polygon đã mất ~15 giao dịch và ~30 phút với giá trị 611 triệu USD.

Tại sao điều này tồi tệ hơn việc đánh cắp một private key

Để lấy được private key của Keeper, người tấn công phải sử dụng phishing, phần mềm độc hại hoặc quyền truy cập nội bộ – đây là một quá trình tốn kém và gây ồn ào. Thay thế khóa công khai on-chain của Keeper thông qua chức năng quản trị có thể gọi là rẻ hơn so với bất kỳ phương pháp nào khác: nó chỉ tốn một khoản phí giao dịch. Vùng lỗ hổng này đã tồn tại vì Poly đã vi phạm một quy tắc cơ bản trong thiết kế bridge:

Đừng bao giờ cho đường truyền dữ liệu mang các giao dịch của người dùng không được tin cậy cũng đồng thời mang các bản cập nhật của tập hợp đồng thuận được tin cậy.

Việc thay đổi Keeper nên yêu cầu một multisig riêng biệt, được kiểm soát bởi cơ chế quản trị (ví dụ, 3-of-5 hoặc 5-of-9), chứ không phải là một chức năng có thể truy cập thông qua chuỗi xử lý verifyHeaderAndExecuteTx chung. Keeper của Poly vào thời điểm đó thực sự là 1-of-1 cho đường dẫn đó – một ô lưu trữ duy nhất kiểm soát tất cả các thao tác giải phóng, được thay thế bằng một cuộc gọi duy nhất.

Diagram - Poly Network root cause: crafted cross-chain message overwrites Keeper pubkey (step 1), then attacker as Keeper forges arbitrary unlocks across 3 chains (step 2)

Tại sao kẻ tấn công lại trả lại tiền

Không có bất kỳ cuộc tấn công 9 chữ số nào khác đã có được sự hồi phục hoàn chỉnh như vậy, vì vậy động cơ đã được bàn luận nhiều hơn cả thủ thuật đó. Ba luận điểm, và kết hợp phù hợp với các bằng chứng trên chuỗi:

Đề xuất 1 — Bị mắc kẹt bởi khả năng theo dõi. Trong vòng vài giờ, tất cả các sàn giao dịch lớn, các nhà khai thác và các nhà phát hành USDT đã đưa ba EOA vào danh sách đen. Sự đình chỉ 33 triệu USD của Tether đã chứng minh rằng các nhà phát hành đồng ổn định tập trung có thể vô hiệu hóa các khoản tiền một cách đơn phương. Các nỗ lực của Curve và Ellipsis của kẻ tấn công cho thấy họ đã thử rút tiền thông qua lưu lượng thanh toán trên DEX — và chỉ đạt được thành công một phần trước khi sự trượt giá, sự đảo ngược và danh sách đen khiến các cuộc rút tiền tiếp theo trở nên không thể thực hiện được. Việc quay trở lại đã biến các bên tham gia thành những người có ý định tốt và làm giảm mức độ tiếp xúc pháp lý so với việc rửa tiền bằng cách sử dụng các mixer đã bị giám sát chặt chẽ bởi phân tích blockchain.

Đề xuất 2 — Mũ trắng từ đầu. Các thông điệp của kẻ tấn công trên chuỗi đều dựa trên khung này: "để vui chơi", "để có kiến thức", "để tiết lộ rủi ro của bridge", "để đóng góp vào an ninh của Poly". Đầu tư ban đầu thông qua Monero có vẻ không phù hợp với mũ trắng hoàn toàn (tại sao phải che giấu nguồn gốc nếu bạn có kế hoạch công bố?), nhưng phù hợp với mũ xám muốn có lựa chọn biến mất nếu Poly từ chối tham gia.

Hypothesis 3 — Lý thuyết trò chơi của multisig. 268 triệu đô la còn lại trong multisig 2-of-2 không phải là một tính năng bảo mật; đó là một công cụ cam kết. Không Poly và không hacker có thể chuyển tiền một mình, buộc phải giao tiếp. Báo giá 500.000 đô la của Poly (≈ 0,08% số tiền trộm) và lời đề nghị của cố vấn an ninh chính không phải là kinh tế học — đó là một tín hiệu: "Chúng tôi sẽ đối xử với bạn như một người đội trắng nếu bạn hợp tác". Thời gian chậm trễ của "trò chơi hài hước" của kẻ tấn công đã kiểm tra xem Poly có bỏ rơi (ví dụ, theo đuổi việc thực thi pháp luật) trước khi thực hiện khóa cuối cùng hay không.

Synthesis (mũ nâu, hợp lý, bị ràng buộc bởi uy tín). Người tấn công có thể là một tác giả DeFi có kinh nghiệm đã phát hiện ra nguyên lý thay thế người giữ, thực hiện nó như một bằng chứng thực tế về ý tưởng, tài trợ cho việc tham gia với các đường dây bảo mật để bảo tồn khả năng thoát ra, sau đó nhận thấy – sau danh sách đen và sự cản trở của Ellipsis/Curve – rằng giá trị điều chỉnh rủi ro của việc giữ 611 triệu đô la trong các stablecoin có thể theo dõi thấp hơn giá trị của việc trả lại và tuyên bố câu chuyện về mũ trắng. Choreography kéo dài 13 ngày (trả lại một phần nhanh để thể hiện lòng tốt, khóa đa chữ ký để buộc phải đàm phán, thưởng cấp bậc, tiết lộ khóa cuối cùng) phù hợp với một tác giả hợp lý đang tối đa hóa uy tín trong các giới hạn của khả năng theo dõi hơn là phù hợp với cả sự trộm cắp hoàn toàn hoặc sự vô tư hoàn toàn.

Các vụ rửa tiền thất bại

Khác với nhóm Lazarus của Bybit (1,46 tỷ USD được rửa sạch thông qua Thorchain → BTC → Wasabi/Tornado), kẻ tấn công của Poly đã thực hiện cách rút tiền đơn giản nhất – stablecoin → ETH thông qua các bể DEX – và đã gặp phải ba rào cản.

Vách 1 – Tạm dừng phát hành. Danh sách đen của Tether đối với các địa chỉ USDT của kẻ tấn công đã tạm dừng 33 triệu USD ngay lập tức và cho thấy USDC (Circle) cũng có thể làm tương tự. Mọi vụ trộm cắp liên quan đến stablecoin đều phải giải quyết vấn đề “người phát hành có thể làm tôi thất bại”; Poly không làm được điều đó.

Vách 2 – Rủi ro về việc quay lại trạng thái ban đầu của DEX trong danh sách đen. Ba lần gọi addLiquidity thất bại của kẻ tấn công đối với nhóm DAI/USDC/USDT của Curve.fi trước khi lần thứ tư thành công cho thấy rằng ngay cả các DEX không cần quyền cũng không có khả năng thoát ra dễ dàng khi các token đầu vào đến từ một địa chỉ được cấm trên toàn cầu – các giao diện, các router và các bot MEV đều thêm vào các đường trượt hoặc quay lại trạng thái ban đầu, làm tăng rủi ro khi được chú ý.

Vách 3 – Không có máy trộn được sử dụng. Đáng chú ý, kẻ tấn công không bao giờ gửi tiền cho Tornado Cash (và lúc đó là công cụ rửa tiền tiêu chuẩn). Có thể là do số tiền quá lớn để trộn hiệu quả, vì kịch bản của những người đội mũ trắng ngăn cản điều đó, hoặc vì chuyển sang Tornado sẽ làm mất đi sức ép trong đàm phán, nên số tiền vẫn nằm trong các EOA có thể xác định – và đó chính là điều đã làm cho việc hoàn trả toàn bộ số tiền trở thành có thể.

Đây là lý do tại sao tỷ lệ khôi phục sau các cuộc tấn công DeFi bị phân chia: các cuộc tấn công stablecoin + DEX-exit (Poly 2021) có thể được khôi phục hoàn toàn nếu được phát hiện sớm; các cuộc tấn công ETH-native + cross-chain + mixer (Bybit 2025, Ronin 2022) thì không.

Diagram - Poly Network fund flow: $611M stolen across 3 chains → issuer freeze, DEX attempts, multisig lock, and full recovery vs 2023 $42B paper hack (only $10M realizable)

Các bài học: 5 biện pháp phòng vệ có thể ngăn chặn cuộc tấn công mạng Poly

Mỗi vụ tấn công lớn vào các bridge kể từ năm 2021 – Ronin (625 triệu USD, 5/9 validator bị ảnh hưởng), Wormhole (326 triệu USD, tránh xác nhận chữ ký), Nomad (190 triệu USD, khởi tạo bằng cách sao chép – dán) – đều tái tạo một biến thể của sự thất bại của Poly: một đường dẫn duy nhất đáng tin cậy với sự phân cách không đủ giữa hành động của người dùng và các bản cập nhật về sự đồng thuận.

Checklist - 5 defense layers: separate keeper-update path, m-of-n multisig, least-privilege keeper, calldata validation, circuit breaker on anomalous volume

1. Cập nhật riêng cho người giữ khoá, không liên quan đến đường dẫn của bridge người dùng. putCurEpochConPubKeyBytes không bao giờ có thể được truy cập thông qua verifyHeaderAndExecuteTx. Cách xoay người giữ khoá nên nằm trong một hợp đồng Governor chỉ có thể được gọi bởi một multisig quản trị có khóa thời gian – không nằm trong cùng một bảng phân phối như unlock. Poly đã sửa lỗi này bằng cách di chuyển cập nhật người giữ khoá sau một vai trò quản trị riêng; mỗi bridge được xây dựng sau năm 2022 đều làm tương tự.

2. Bộ lưu trữ m-of-n, không phải 1-of-1. Một khóa công khai duy nhất của Keeper là một điểm rủi ro duy nhất. Yêu cầu 5-of-9 hoặc ít nhất 3-of-5 validator độc lập, trên cơ sở hạ tầng độc lập, trong các khu vực pháp lý khác nhau. Sự thỏa hiệp 5/9 của Ronin cho thấy điều này là cần thiết nhưng không đủ – nhưng 1-of-1 không bao giờ đủ.

3. Người giữ chìa khóa có quyền hạn thấp nhất. Người giữ chìa khóa nên có thể truyền lại một bằng chứng, không phải định nghĩa ai là người giữ chìa khóa. Tách vai trò "có thể gửi một bằng chứng" ra khỏi vai trò "có thể thay đổi người kiểm tra bằng chứng". Không một vai trò nào nên đề xuất và phê duyệt người kế nhiệm của chính nó.

4. Xác minh dữ liệu gọi nghiêm ngặt + xác minh chính thức. Payload giữa các chuỗi phải được phân tích theo danh sách cho phép rõ ràng là (targetContract, method, paramSchema). Các phương thức không được biết như putCurEpochConPubKeyBytes phải bị hủy ở lớp quản lý trước khi đến EthCrossChainData. Xác minh logic phân phối (Certora, Halmos) sẽ báo rằng một phương thức quản trị có thể được truy cập từ một điểm vào không được tin cậy.

5. Máy cắt circuit trên khối lượng bất thường. Một lần mở khóa 85 triệu USDC hoặc 273 triệu USD trên một chuỗi nên dừng hoạt động của bridge, không thành công. Phương pháp tạm dừng dựa trên thang điểm (ví dụ, bất kỳ lần mở khóa > 2 triệu USD hoặc tổng cộng > 10 triệu USD/ giờ đều kích hoạt thời gian giới hạn + kiểm tra thủ công) sẽ hạn chế phạm vi tác động của vụ nổ chỉ vào một giao dịch. Poly và các công ty kế thừa hiện đang thực hiện các lệnh tạm dừng dựa trên khối lượng; các bridge vẫn chưa thực hiện điều này là những Poly tiếp theo.

Những câu hỏi thường gặp

Số tiền bị đánh cắp trong vụ tấn công mạng Poly là bao nhiêu? Khoảng 611 triệu USD (thường được đưa ra là 610–613 triệu USD tùy theo giá chụp vào ngày 10 tháng 8 năm 2021): ~273 triệu USD trên Ethereum, ~253 triệu USD trên BSC và ~85 triệu USD trên Polygon. Đây là vụ tấn công DeFi lớn nhất vào thời điểm đó, sau đó bị vượt qua bởi Ronin (625 triệu USD, tháng 3 năm 2022) và Bybit (1,46 tỷ USD, tháng 2 năm 2025).

Poly Network bị tấn công như thế nào? Tấn công viên đã tạo ra một tin nhắn giả mạo gọi putCurEpochConPubKeyBytes trên EthCrossChainData thông qua EthCrossChainManager.verifyHeaderAndExecuteTx() – một chức năng có quyền hạn cập nhật khóa công khai của Keeper. Vì Manager không giới hạn các phương thức có thể được gọi thông qua đường liên mạng, nên kẻ tấn công đã thay thế khóa Keeper hợp pháp bằng khóa của riêng họ. Với tư cách là Keeper mới, họ đã tạo ra các tin nhắn "bỏ khóa" tùy ý và rút ~611 triệu đô la trên 3 chuỗi trong khoảng 15 giao dịch.

Hacker của mạng lưới Poly đã trả lại tiền không? Có — gần như toàn bộ số tiền đó. Hacker đã trả lại ~342 triệu USD trong vòng 24 giờ, và số tiền còn lại ~268 triệu USD được giữ trong một ví đa chữ ký 2-of-2 yêu cầu cả Poly và hacker. Sau 13 ngày đàm phán trên chuỗi, hacker đã công bố private key cho kho cuối cùng ~141 triệu USD (23 tháng 8 năm 2021), và Poly đã thông báo hoàn toàn khôi phục. Hacker đã từ chối tiền thưởng lỗi 500.000 USD và lời đề nghị việc làm tư vấn an ninh chính. Poly đã xác nhận rằng tất cả tài sản của người dùng đã được khôi phục.

Ai là kẻ tấn công mạng Poly Network? Tên của người này chưa được xác nhận công khai. Các thông điệp từ kẻ tấn công cho biết động cơ của họ là “vui chơi”, “báo cáo rủi ro của bridge” và phủ nhận việc tìm kiếm lợi nhuận. Các nhà phân tích blockchain lưu ý rằng nguồn vốn ban đầu thông qua Monero (mệnh giá riêng tư) cho thấy sự có chủ định để che giấu nguồn gốc, trong khi việc hoàn trả một phần nhanh chóng cho thấy kẻ tấn công nhận ra rằng các khoản tiền này quá dễ theo dõi để rửa tiền – có khả năng là một diễn viên DeFi có kỹ năng cao.

Điều gì đã xảy ra với vụ tấn công mạng Poly trị giá 42 tỷ USD vào năm 2023? Ngày 1 tháng 7 năm 2023, Poly đã bị khai thác một lần nữa – trên giấy tờ trị giá 42 tỷ USD trong 57 token trên 11 chuỗi. Tuy nhiên, khác với năm 2021, hầu hết các token được phát hành (ví dụ, 34 tỷ USD trong BUSD/BNB trên Metis) không có hỗ trợ về giá trị lưu động, và các dự án như Revomon và OpenOcean đã loại bỏ giá trị lưu động để ngăn chặn việc đổ rác. Chỉ có khoảng 10 triệu USD có thể thực hiện được, được lưu trữ trên 5 EOA trên Ethereum. Người tấn công không trả lại tiền, và sự cố này được coi là thất bại trong việc ghi chép giá trị trên giấy tờ hơn là một vụ trộm có giá trị 9 chữ số thành công.

Có bất kỳ vụ tấn công như vụ tấn công mạng Poly xảy ra sau đó không? Có — các vụ tấn công bridge đa chuỗi đã trở thành vector DeFi chủ đạo trong năm 2022: Ronin (625 triệu USD, 5/9 validator bị ảnh hưởng), Wormhole (326 triệu USD, vượt qua chữ ký bảo vệ), Nomad (190 triệu USD, lỗi khởi tạo cho phép bất kỳ ai cũng có thể vượt qua quá trình xác minh), và BNB Chain Bridge (570 triệu USD, chứng minh Merkle giả mạo). Tất cả đều học được bài học của Poly: các bridge tập trung sự tin tưởng, do đó bất kỳ lỗi kiểm soát truy cập nào trên đường dẫn xác minh đều là một thảm họa.

Kết luận

Mạng hack Poly tồn tại không phải vì kích thước của nó – nó đã bị vượt qua hai lần – mà vì kết thúc của nó. Một kẻ tấn công đã lấy được 611 triệu đô la bằng cách xóa một slot lưu trữ, đã cố gắng rửa tiền thông qua Curve và Ellipsis, đã tìm thấy blockchain trong suốt và việc đóng băng nhà phát hành 33 triệu đô la đã khiến số tiền bị đánh cắp trở nên phóng xạ, và đã chọn – trong 13 ngày đàm phán bằng văn bản có thể nhìn thấy bởi thế giới – để trả lại nó. Dạy bài học kỹ thuật là rõ ràng: không bao giờ để một đường đi xuyên mạng không được tin cậy đến một chức năng cập nhật khóa có quyền hạn, và không bao giờ bảo vệ hàng trăm triệu đô la bằng một Keeper 1-of-1. Dạy bài học về con người là phức tạp hơn: trên một blockchain công khai, cơ chế phục hồi hiệu quả nhất không phải là mã hóa mà là khả năng theo dõi cộng với một kênh đàm phán – một multisig 2-of-2 buộc hai kẻ thù phải nói chuyện cho đến khi cả hai có thể đồng ý rằng hai tuần hoang dã trong lịch sử DeFi là, theo lời kẻ tấn công, thời gian để “thoát khỏi chương trình”.

Tags:

poly network hackpoly network 611 millionwhite hat hacker deficross chain bridge exploitpoly network hack analysis