Một nhà phát triển được biết đến với tên Florent đã khôi phục xấp xỉ 1.003 ETH, tương đương khoảng 2 triệu USD theo giá hiện tại, từ hợp đồng ICO HongCoin năm 2016, nơi số tiền bị mắc kẹt suốt chín năm. Đợt bán token của Ethereum được thiết kế để tự động hoàn tiền cho nhà đầu tư sau khi không đạt mục tiêu gây quỹ, nhưng lỗi lập trình đã ngăn hàm hoàn tiền thực thi đối với những người nắm giữ có số dư vượt quá một bộ đếm toàn cục đã cạn. Florent đã khai thác lỗ hổng tràn trong hàm quản trị của hợp đồng, phối hợp với đội ngũ HongCoin trong khoảng một tuần để mở khóa số tiền cho 48 nhà đầu tư ban đầu. Việc khôi phục cho thấy các lỗ hổng smart contract từ thời kỳ trước SafeMath vẫn có thể tiếp tục khóa giá trị trên chuỗi.
Hợp đồng HongCoin, được giới thiệu vào năm 2016 như một quỹ đầu tư vận hành theo mô hình cộng đồng, có cơ chế hoàn tiền từ chối bất kỳ người nắm giữ token nào có số dư vượt quá một biến bộ đếm toàn cục. Nhiều năm thực hiện hoàn tiền từng phần đã làm bộ đếm giảm xuống còn 356, giới hạn tổng số tiền hoàn ở mức 3,56 ETH (xấp xỉ 7.000 USD), trong khi đa số người nắm giữ còn lại lại giữ số lượng lớn hơn rất nhiều.
Florent cho The Block biết hợp đồng được triển khai với phiên bản cũ của ngôn ngữ lập trình Solidity, thiếu các cơ chế bảo vệ trước lỗi tràn. Với các lỗi như vậy, một con số khi đạt đến mức đủ cao sẽ được đặt lại về 0 hoặc 1, lỗ hổng sau đó đã được xử lý bởi thư viện SafeMath.
Nhà phát triển đã tìm ra cách khắc phục thông qua hàm quản trị của đội ngũ, vốn ban đầu được thiết kế để đúc token bounty cho các sự kiện cụ thể. Gọi hàm này với một giá trị đầu vào chính xác sẽ đặt lại số dư của một người nắm giữ về 1, giúp bài kiểm tra hoàn tiền vượt qua và giải phóng lượng ETH bị khóa.
Hàm quản trị bị giới hạn ở ví multisig của HongCoin, ngăn hành động đơn phương. Florent gửi email cho đội ngũ, xác thực chuỗi giao dịch trên bản fork mainnet của Foundry, và đội ngũ đã ký các giao dịch mở khóa. Theo Florent, quy trình này mất khoảng một tuần tính từ email ban đầu.
Trong số 48 nhà đầu tư ban đầu hiện có thể yêu cầu nhận tiền, 41 người cần khai thác thủ thuật đặt lại số dư. Bảy người còn lại nắm giữ số tiền đủ nhỏ để được hoàn trực tiếp thông qua hàm hiện có. Đội ngũ đã ký 41 giao dịch, mỗi giao dịch cho một người nắm giữ bị chặn, bao phủ khoảng 1.000 ETH thực sự bị mắc kẹt.
Hai nhà đầu tư đã lấy lại tổng cộng 96,5 ETH (xấp xỉ 193.000 USD) và tự nguyện gửi Florent một phần thưởng whitehat. Florent nói với The Block rằng không có bất kỳ khoản phí, phần cắt hay hoa hồng nào liên quan. “Ngoài chính bản thân đội ngũ, không ai thực sự có động lực đi sâu vào hợp đồng một cách sát sao,” Florent nói. “Không có lỗi thuộc quyền sở hữu cho phép ai đó tự ý đánh cắp số tiền, nên với một hacker thì không có gì để thu lợi; kết quả duy nhất của bất kỳ vụ khai thác nào là ETH được trả lại cho các nhà đầu tư ban đầu.”
Vào Chủ nhật, ngày 24 tháng 5, Florent mô tả việc khôi phục 19,329 ETH, khoảng 40.590 USD, từ hai hợp đồng cũ hơn. Hợp đồng đầu tiên là một ICO thất bại tháng 1 năm 2018, giữ 5,141 ETH sau một hàm hoàn tiền công khai chưa được gọi. Hợp đồng thứ hai liên quan đến bảy atomic swap hết hạn của một người dùng Liquality Wallet, tổng cộng 14,190 ETH; Florent đã hoàn tiền thay cho người dùng sau khi Liquality tắt ứng dụng vào năm 2024.
Florent cho biết gần đây anh đã thiết lập một node Ethereum tự lưu trữ và xây dựng một bộ quét để gắn cờ mọi hợp đồng nắm giữ hơn 100 ETH, sau đó lần lượt làm việc với các ứng viên. “Rất nhiều hợp đồng là bản fork của các hợp đồng khác, nên một lỗ hổng ở một hợp đồng sẽ là cùng một lỗ hổng ở tất cả các hợp đồng khác trong cùng nhóm,” Florent nói. “Tuy vậy, các nhóm lớn nổi tiếng đã được rà soát khá kỹ lưỡng rồi.”
Khi được hỏi về hỗ trợ từ AI, Florent cho biết anh dùng Claude Code để tăng tốc việc sắp xếp và phân cụm các hợp đồng nhưng nhận thấy có giới hạn trong phân tích smart contract. “AI thường bị thiên lệch bởi thực tế là hợp đồng chưa từng bị bẻ khóa trước đó và những người trước không thể tìm ra cách đi qua… nên nó thường mặc định rằng ‘đây là không thể bẻ khóa, tôi đã thử hết mọi thứ’, điều này thường là sai.”
Việc khôi phục diễn ra trong bối cảnh một làn sóng khai thác DeFi. Các cuộc tấn công đã lên tới hàng trăm triệu USD chỉ riêng trong tháng 4, dẫn đầu là một vụ rút cạn khoảng 293 triệu USD tại Kelp DAO. Một đồng sáng lập của công ty bảo mật OpenZeppelin gần đây cho biết anh coi toàn bộ DeFi là không an toàn. Một số vụ khai thác đã kết thúc bằng việc hoàn trả theo hướng whitehat hoặc tự nguyện trả lại, như trường hợp Euler Finance được khôi phục gần như toàn bộ sau vụ khai thác năm 2023.
“Dạo này đã có sự quay trở lại rõ rệt của các hacker nhắm vào các giao thức, và DeFi đang trở thành một không gian phức tạp để đầu tư,” Florent nói. “Tôi rất muốn thấy một phong trào ngược lại của những người cố gắng bảo vệ các thứ thay vì khai thác chúng. Về mặt đạo đức thì nó đáng giá hơn, và nó cũng có thể trả tốt.”
Điều gì khiến tiền từ ICO HongCoin bị khóa suốt chín năm?
Một lỗi lập trình trong hàm hoàn tiền của hợp đồng HongCoin năm 2016 đã từ chối mọi người nắm giữ có số dư token vượt quá một biến bộ đếm toàn cục. Nhiều năm hoàn tiền từng phần đã làm bộ đếm giảm xuống còn 356, khiến không thể hoàn tiền cho những người có số dư lớn hơn trong khi hợp đồng thiếu các cơ chế chống tràn vốn là tiêu chuẩn trong các phiên bản Solidity về sau.
Florent đã mở khóa lượng ETH bị mắc kẹt mà không đánh cắp như thế nào?
Florent xác định một hàm quản trị vốn ban đầu được dùng để đúc token bounty. Bằng cách gọi hàm này với một giá trị đầu vào cụ thể, anh có thể đặt lại số dư người nắm giữ về 1 nhờ lỗ hổng tràn, cho phép kiểm tra hoàn tiền vượt qua. Hàm quản trị yêu cầu chữ ký từ đội ngũ HongCoin, nên Florent phối hợp với đội ngũ trong khoảng một tuần để thực hiện 41 giao dịch mở khóa cho các nhà đầu tư bị chặn.
Florent đã khôi phục được bao nhiêu ETH từ các hợp đồng cũ?
Florent đã khôi phục xấp xỉ 1.003 ETH (khoảng 2 triệu USD) từ hợp đồng HongCoin. Vào Chủ nhật, ngày 24 tháng 5, anh mô tả việc giải phóng thêm 19,329 ETH (khoảng 40.590 USD) từ hai hợp đồng khác: một ICO thất bại tháng 1 năm 2018 với 5,141 ETH và bảy atomic swap hết hạn của Liquality Wallet tổng cộng 14,190 ETH.
Tin tức liên quan
Ethereum thử nghiệm các mô hình tài trợ hàng hóa công cộng từ Gitcoin đến Protocol Guild
Standard Chartered vẫn giữ mục tiêu 40.000 ETH dù giá giảm 57%
Dòng tiền rút khỏi ETF tiền mã hóa gây áp lực lên Bitcoin và Ethereum
Bitmine mua 25.000 ETH, tổng nắm giữ đạt 10,9 tỷ USD
Các nhà đầu tư nắm giữ Bitcoin “ngủ yên” kích hoạt 7,6 tỷ USD BTC đã được giữ từ 5 đến 15 năm trên toàn bộ giai đoạn 2026