Vụ hack Coldcard: Khủng hoảng ví lạnh rung chuyển crypto

Một lỗi trong cơ chế tạo seed của firmware Coldcard tồn tại từ năm 2021 đã bị khai thác vào cuối tháng 7/2026. Các nhóm tấn công có thể tự động dò seed yếu, đối chiếu địa chỉ trên blockchain và rút BTC từ những ví chưa kịp chuyển tài sản.

Chuyện gì đã xảy ra?

Cuối tháng 7/2026, một lỗ hổng trong firmware của ví phần cứng Coldcard bị khai thác để rút Bitcoin từ hàng nghìn địa chỉ. Kẻ tấn công không cần lấy thiết bị vật lý, biết mã PIN hay kết nối trực tiếp với ví; họ lợi dụng việc một số seed phrase được tạo ra với độ ngẫu nhiên không đủ mạnh, từ đó tái tạo khóa riêng và ký giao dịch chuyển tiền trên blockchain.

Theo các phân tích công khai, lỗi xuất hiện trong quá trình tạo seed trên firmware Coldcard từ năm 2021. Thay vì luôn sử dụng bộ tạo số ngẫu nhiên thật tích hợp trong phần cứng, một số phiên bản firmware đã rơi vào cơ chế tạo số giả ngẫu nhiên yếu hơn do lỗi cấu hình trong quá trình build phần mềm.

Seed phrase về lý thuyết phải được tạo từ nguồn entropy rất lớn, khiến việc đoán hoặc tái tạo gần như bất khả thi. Nhưng khi nguồn ngẫu nhiên bị suy giảm, số lượng seed có khả năng được tạo ra bị thu hẹp đáng kể; các nhà nghiên cứu cho rằng một số seed Mk3 chỉ còn khoảng 40 bit entropy, thấp hơn rất nhiều so với mức 128 bit kỳ vọng của seed 12 từ.

Hacker đã tấn công như thế nào?

Vụ việc được cho là không bắt đầu bằng phishing, malware hay việc hacker truy cập vào máy tính của nạn nhân. Kẻ tấn công có thể đã tái tạo seed yếu trên hệ thống riêng, suy ra khóa riêng tương ứng rồi phát giao dịch hợp lệ lên mạng Bitcoin.

Bước 1: Người dùng tạo seed

Khi người dùng tạo ví mới trên firmware bị ảnh hưởng, Coldcard đáng lẽ phải lấy entropy từ bộ tạo số ngẫu nhiên phần cứng. Tuy nhiên, lỗi trong quá trình build khiến firmware gọi một hàm fallback thuộc MicroPython thay vì cơ chế RNG phần cứng dự kiến.

Seed phrase vẫn hiển thị như bình thường, vẫn tạo địa chỉ Bitcoin hợp lệ và người dùng vẫn có thể nhận tiền. Vì vậy, trên giao diện không nhất thiết xuất hiện dấu hiệu cảnh báo rằng seed có chất lượng thấp.

Bước 2: Không gian seed bị thu hẹp

Trên Mk2/Mk3, đường dẫn fallback được cho là không bổ sung đủ entropy mật mã, khiến kết quả phụ thuộc vào các yếu tố có thể suy đoán hoặc thu hẹp như mã nhận dạng thiết bị, bộ đếm hệ thống, đồng hồ thời gian thực và lịch sử gọi hàm.

Trên Mk4, Mk5 và Q, các thành phần bảo mật bổ sung một phần entropy, nhưng theo các phân tích được công bố, lượng entropy hiệu dụng vẫn thấp hơn đáng kể so với mức 128 bit kỳ vọng của seed 12 từ. Các con số cụ thể khác nhau tùy model và giả định phân tích, nên không nên gộp tất cả thiết bị vào một mức rủi ro duy nhất.

Điểm mấu chốt là seed nhìn bên ngoài vẫn là 12 hoặc 24 từ hợp lệ, nhưng cách thiết bị chọn seed không còn ngẫu nhiên đều trên toàn bộ không gian có thể. Nói cách khác, độ dài seed không phản ánh đầy đủ mức an toàn nếu entropy đầu vào đã bị suy yếu.

Bước 3: Hacker tái tạo seed ngoại tuyến

Sau khi hiểu lỗi, kẻ tấn công có thể xây dựng chương trình mô phỏng đúng đường dẫn RNG bị lỗi. Chương trình này sinh các trạng thái RNG và seed ứng viên dựa trên model, firmware, khoảng thời gian tạo ví và các điều kiện liên quan.

Phần dò có thể thực hiện ngoại tuyến, bằng CPU, GPU hoặc hạ tầng máy tính phân tán. Thiết bị của nạn nhân không cần bật, không cần kết nối Internet và không cần cài phần mềm độc hại.

Đây là điểm khác với một cuộc tấn công thông thường: hacker không “đột nhập” để đọc seed; họ cố gắng tái tạo seed từ lỗi trong quá trình sinh seed.

Bước 4: Đối chiếu với blockchain

Với mỗi seed ứng viên, phần mềm của kẻ tấn công có thể dẫn xuất:

  • Master key.
  • Các khóa riêng tương ứng.
  • Extended public key hoặc địa chỉ Bitcoin.
  • Các nhánh địa chỉ và UTXO mà ví có thể sử dụng.

Sau đó, phần mềm đối chiếu các địa chỉ này với blockchain công khai. Nếu một seed ứng viên tạo ra địa chỉ đang có BTC, số dư trên blockchain trở thành tín hiệu xác nhận rằng seed đó có thể đúng.

Blockchain ở đây hoạt động như một “bộ kiểm tra công khai”: kẻ tấn công không cần thử đăng nhập vào ví, bởi chỉ cần kiểm tra xem địa chỉ dẫn xuất có từng nhận tiền hay không.

Bước 5: Ưu tiên ví có giá trị lớn

Khi đã xác định seed tương ứng với một địa chỉ có số dư, kẻ tấn công có thể kiểm tra toàn bộ các địa chỉ liên quan cùng seed. Họ thường ưu tiên ví có số dư lớn hoặc các UTXO dễ chuyển để tối đa hóa giá trị thu được trong thời gian ngắn.

Phân tích on-chain về đợt đầu cho thấy khoảng 594,48 BTC đã được rút từ khoảng 500 ví trong một khoảng thời gian rất ngắn, sau đó phần lớn được gom về một địa chỉ hợp nhất. Mẫu giao dịch đồng loạt này phù hợp với một công cụ tự động đã chuẩn bị trước, thay vì thao tác thủ công trên từng ví.

Bước 6: Ký và phát giao dịch

Sau khi tái tạo được seed, kẻ tấn công có thể tạo khóa riêng trong môi trường của mình và ký giao dịch chuyển BTC. Mạng Bitcoin chỉ kiểm tra chữ ký có hợp lệ hay không; nếu chữ ký khớp với khóa của địa chỉ, giao dịch sẽ được xử lý như giao dịch hợp pháp của chủ ví.

Vì vậy:

  • Không cần mã PIN của Coldcard.
  • Không cần thiết bị vật lý.
  • Không cần seed backup giấy.
  • Không cần truy cập máy tính của nạn nhân.
  • Không cần phá mã hóa blockchain.

Bước 7: Gom tiền sau khi rút

Trong đợt đầu, tiền từ hàng trăm ví được chuyển vào một địa chỉ gom, sau đó khoảng 562 BTC được chuyển tiếp sang một địa chỉ khác. Việc gom UTXO giúp kẻ tấn công quản lý số tiền đã thu được, dù đồng thời tạo ra các dấu vết rõ ràng trên blockchain để các nhà phân tích truy vết.

Các đợt sau được cho là tiếp tục nhắm vào những địa chỉ có seed yếu còn tiền. Vì nhiều người dùng chỉ kiểm tra thiết bị hiện tại mà không xem firmware tại thời điểm tạo seed, một số ví vẫn có thể nằm trong danh sách mục tiêu.

Timeline vụ tấn công Coldcard

Mốc cập nhậtSố liệu được báo cáoTrạng thái
30/7594,48 BTC, khoảng 500 víĐợt rút tiền ban đầu
30–31/71.082,65 BTC, khoảng 1.196 địa chỉPhân tích mở rộng
1/81.367 BTC, 4.585 địa chỉBa đợt được truy vết
3/8Khoảng 1.816 BTC, hơn 5.200 địa chỉBao gồm đợt thứ tư tiềm năng
4/81.596 BTC, khoảng 7.300 địa chỉSố liệu xác nhận mới của Galaxy; đợt thứ tư chưa tính vào tổng chính thức

Tháng 3/2021: Lỗi được đưa vào firmware

1/3/2021: Một thay đổi mã nguồn liên quan thư viện libNgU được đưa vào firmware Coldcard.

29/3/2021: Firmware 4.0.1 được phát hành công khai. Theo phân tích sau này, từ giai đoạn này cơ chế tạo seed trên một số thiết bị có thể rơi vào bộ tạo số giả ngẫu nhiên yếu hơn thay vì sử dụng đầy đủ RNG phần cứng.protos+1

30/7/2026: Đợt rút tiền đầu tiên

01:10 UTC: Các giao dịch rút tiền đầu tiên liên quan đến vụ việc xuất hiện trên blockchain.

01:31–01:56 UTC: Khoảng 594,48 BTC bị rút khỏi gần 500 ví single-signature trong một chiến dịch tự động kéo dài khoảng 25 phút.

Một phần số BTC sau đó được gom về một địa chỉ lớn, trong đó khoảng 562 BTC được ghi nhận tại một địa chỉ hợp nhất.

13:19 UTC: Một người dùng đăng trên Reddit rằng ví Coldcard của mình đã bị rút sạch.

17:35 UTC: Nhà nghiên cứu Kevin Loaec cảnh báo cộng đồng kiểm tra số dư ví Coldcard.

18:58 UTC: Loaec cho biết ông đã có đủ cơ sở để tin rằng đây không phải các vụ mất tiền riêng lẻ.

22:50 UTC: Coinkite phát cảnh báo ban đầu, khi đó tập trung chủ yếu vào Coldcard Mk3 và các firmware liên quan.

31/7/2026: Xác định nguyên nhân

01:49 UTC: Nhóm kỹ thuật Block công bố phân tích độc lập, cho rằng lỗi RNG khiến ngu.random sử dụng fallback Yasmarang của MicroPython thay vì RNG phần cứng STM32.

04:54 UTC: Các giao dịch rút tiền bổ sung tiếp tục xuất hiện.

06:46 UTC: Coinkite mở rộng phạm vi cảnh báo sang Mk4, Mk5 và Q.

13:43 UTC: Coinkite phát hành firmware sửa lỗi cho Mk3, đồng thời lưu ý bản vá chỉ bảo vệ seed mới; seed đã tạo trước đó không được khôi phục an toàn bằng việc cập nhật firmware.

15:42 UTC: CEO Coinkite công khai xin lỗi và nhận trách nhiệm về lỗi firmware.

16:30 UTC: Các nhà nghiên cứu cho biết phạm vi rút tiền thực tế rộng hơn cảnh báo ban đầu, bao gồm Mk3, Mk4, Mk5 và Q.

16:39 UTC: Coinkite cho biết một số seed bị ảnh hưởng chỉ có khoảng 72 bit entropy thay vì 128 bit như kỳ vọng.

1/8/2026: Các đợt quét tiếp diễn

Nhà nghiên cứu Kevin Loaec xác nhận các thiết bị Mk4, Mk5 và Q cũng đang bị rút tiền.

Galaxy Research ước tính tổng thiệt hại đã vượt 1.367 BTC từ 4.585 địa chỉ.

Cộng đồng bắt đầu theo dõi các đợt tấn công bằng dashboard on-chain và kêu gọi người dùng chuyển tài sản sang seed mới.

2–3/8/2026: Nghi vấn đợt tấn công thứ tư

Các nhà nghiên cứu phát hiện dấu hiệu của một đợt quét mới, có thể do một nhóm khác khai thác cùng lỗ hổng.

Một số ước tính đưa tổng thiệt hại tiềm năng lên khoảng 1.816 BTC, tương đương khoảng 114 triệu USD, nhưng số liệu này chưa phải toàn bộ con số được xác nhận.

Galaxy cảnh báo cuộc tấn công vẫn đang tiếp diễn và thúc giục người dùng Coldcard chưa chắc chắn về seed của mình chuyển tài sản ngay lập tức.

4/8/2026: Thiệt hại tiếp tục được cập nhật

Galaxy Research cập nhật thiệt hại đã xác nhận lên 1.596 BTC từ khoảng 7.300 địa chỉ, qua ba đợt tấn công lớn và 14 sự cố nhỏ hơn.

Nhóm nghiên cứu nhận diện một đợt thứ tư có thể nâng tổng thiệt hại lên khoảng 2.055 BTC, tương đương gần 130 triệu USD, nhưng chưa đưa vào số liệu xác nhận cuối cùng vì còn thiếu xác nhận từ các nạn nhân.

Khoảng 90% số BTC bị đánh cắp vẫn chưa được di chuyển, trong khi dữ liệu về địa chỉ nạn nhân và địa chỉ liên quan đã được chia sẻ với cơ quan thực thi pháp luật, sàn giao dịch và các công ty điều tra blockchain.

Lỗ hổng tạo seed hoạt động như thế nào?

Lỗ hổng nằm ở khâu tạo seed, không nằm ở Bitcoin hay tiêu chuẩn BIP39. Coldcard đáng lẽ phải dùng bộ tạo số ngẫu nhiên thật (TRNG) tích hợp trong phần cứng, nhưng một lỗi tích hợp firmware khiến một số phiên bản âm thầm sử dụng bộ tạo số giả ngẫu nhiên phần mềm (PRNG) yếu hơn.

Có thể hình dung như sau:

textRNG phần cứng mạnh
↓ bị chọn nhầm
PRNG phần mềm yếu

Seed có entropy thấp

Có thể tái tạo bằng tính toán

Khóa riêng bị suy ra

Trong quá trình chuyển đổi mã nguồn năm 2021, Coldcard có hai hàm tạo ngẫu nhiên cùng tên:

  • Một hàm gọi RNG phần cứng.
  • Một hàm fallback dùng PRNG của MicroPython.

Lỗi nằm ở điều kiện build/preprocessor: hệ thống chỉ kiểm tra một tùy chọn có tồn tại hay không, thay vì kiểm tra tùy chọn đó có thực sự được bật hay không. Kết quả là firmware được biên dịch theo nhánh PRNG phần mềm mà không báo lỗi rõ ràng.

RNG phần cứng lấy dữ liệu từ các hiện tượng vật lý khó đoán, nên tạo ra entropy cao. Ngược lại, PRNG chỉ tạo chuỗi số dựa trên một trạng thái ban đầu gọi là seed nội bộ; nếu trạng thái này có thể thu hẹp hoặc tái tạo, toàn bộ chuỗi đầu ra cũng có thể được tái tạo.

Theo các phân tích hiện có, trạng thái PRNG có thể liên quan đến những dữ liệu như:

  • Mã nhận dạng cố định của chip hoặc thiết bị.
  • Giá trị timer.
  • Đồng hồ thời gian thực.
  • Lịch sử gọi hàm và trạng thái khởi động.

Các dữ liệu này không đủ bí mật hoặc có thể được ước tính, khiến không gian tìm kiếm nhỏ hơn rất nhiều so với seed được tạo bằng entropy chuẩn.

Seed vẫn trông bình thường sao lại bị hack đoán mò?

Đây là điểm dễ gây hiểu nhầm: thiết bị vẫn hiển thị seed 12 hoặc 24 từ hợp lệ, checksum vẫn đúng và ví vẫn hoạt động bình thường. Người dùng không thể chỉ nhìn vào các từ khôi phục để biết seed có đủ ngẫu nhiên hay không.

Vấn đề nằm ở cách seed được tạo ra, chứ không nằm ở số lượng từ hiển thị. Một seed 12 từ chỉ có mức bảo mật kỳ vọng khoảng 128 bit nếu entropy ban đầu thực sự ngẫu nhiên; khi nguồn entropy yếu, độ dài hiển thị không còn phản ánh đúng độ an toàn.

Vì sao ví không kết nối Internet vẫn bị rút tiền?

Ví lạnh bảo vệ seed và khóa riêng khỏi việc bị đánh cắp trực tiếp qua Internet, nhưng trong sự cố Coldcard, vấn đề là seed đã yếu ngay từ lúc được tạo. Kẻ tấn công không cần truy cập thiết bị; họ có thể tái tạo seed hoặc khóa riêng trên máy tính riêng rồi dùng khóa đó ký giao dịch.

Hãy tưởng tượng ví lạnh là một két sắt đặt trong phòng không có Internet. Tuy nhiên, thay vì tạo chìa khóa bằng quy trình ngẫu nhiên an toàn, nhà sản xuất vô tình tạo chìa khóa từ số serial và đồng hồ của két.

Kẻ trộm không cần vào phòng hay phá két. Họ chỉ cần biết quy luật tạo chìa khóa, tái tạo chìa trên máy riêng rồi dùng chìa đó mở tài sản.

Các báo cáo đưa ra các mức khác nhau tùy model và phương pháp phân tích:

  • Mk3: khoảng 40 bit entropy hiệu dụng trong trường hợp nghiêm trọng nhất.
  • Mk4, Mk5 và Q: một số phân tích ước tính khoảng 72 bit, thấp hơn đáng kể so với mức 128 bit dự kiến.

Đây là các ước tính về không gian tìm kiếm hiệu dụng, không nên hiểu là mọi thiết bị đều có cùng một mức rủi ro hoặc mọi seed đều có thể bị dò trong cùng thời gian.

Những model và firmware nào có nguy cơ?

Theo cảnh báo và các phân tích kỹ thuật hiện có, rủi ro phải được đánh giá dựa trên firmware tại thời điểm seed được tạo, không chỉ dựa trên phiên bản firmware đang chạy hiện nay.

ModelFirmware khi tạo seedĐánh giá
Coldcard Mk24.0.1–4.1.9Có nguy cơ nghiêm trọng
Coldcard Mk34.0.1–4.1.9; các bản Mk3 5.0.1–5.0.3Có nguy cơ nghiêm trọng
Coldcard Mk4Trước bản chuẩn 5.6.0; nhánh Edge trước 6.6.0XCó nguy cơ, được đánh giá thấp hơn Mk3 nhưng vẫn nghiêm trọng
Coldcard Mk5Trước bản chuẩn 5.6.0; nhánh Edge trước 6.6.0XCó nguy cơ, được đánh giá thấp hơn Mk3 nhưng vẫn nghiêm trọng
Coldcard QTrước bản chuẩn 1.5.0Q; nhánh Edge trước 6.6.0QXCó nguy cơ, được đánh giá thấp hơn Mk3 nhưng vẫn nghiêm trọng
Coldcard Mk1Không chạy được các firmware bị ảnh hưởngKhông nằm trong nhóm firmware này theo các phân tích hiện có

Các đợt tấn công tiếp theo có thể xảy ra không?

Các đợt tấn công tiếp theo hoàn toàn có thể xảy ra nếu vẫn còn tiền nằm trong những địa chỉ được tạo từ seed Coldcard yếu và các nhóm khác đã tái tạo được phương pháp dò. Thực tế, Galaxy Research từng ghi nhận một đợt thứ tư đáng ngờ, gồm 218 giao dịch liên quan đến 462 địa chỉ nạn nhân và khoảng 388,93 BTC trong khoảng 2,5 giờ.

Ledger và Trezor có bị ảnh hưởng không?

Hiện chưa có bằng chứng cho thấy Ledger hoặc Trezor bị ảnh hưởng trực tiếp bởi lỗ hổng tạo seed của Coldcard. Trezor cho biết sự cố chỉ liên quan đến firmware tùy biến của Coldcard và họ không sử dụng đoạn mã đó; Ledger cũng tuyên bố không bị ảnh hưởng bởi cảnh báo Coldcard Mk3.

Ledger cho biết thiết bị của họ sử dụng bộ tạo số ngẫu nhiên thật được chứng nhận, tích hợp trong Secure Element để tạo entropy cho seed. Vì vậy, lỗi firmware riêng của Coldcard không tự động áp dụng cho Ledger

Trezor cho biết họ trộn nhiều nguồn entropy độc lập, gồm nguồn từ phần cứng và máy chủ; các mẫu mới còn có thêm secure element. Trezor cũng khẳng định firmware của họ không chia sẻ đường dẫn tạo số ngẫu nhiên bị lỗi của Coldcard.

Người dùng Coldcard cần làm gì ngay bây giờ?

Nếu seed được tạo trên model/firmware có nguy cơ, hãy coi seed đó là không còn đáng tin cậy. Firmware mới chỉ ngăn việc tạo seed yếu trong tương lai; nó không sửa được seed đã tạo trước đó.

Nếu ví đang có số dư lớn thì không nên thao tác vội vàng trên máy tính hoặc nhập seed vào công cụ trực tuyến. Hãy chuẩn bị sẵn ví đích, xác minh địa chỉ trên thiết bị mới, sau đó chuyển một khoản nhỏ trước rồi mới chuyển phần còn lại.

Nếu giao dịch đã nằm trong mempool hoặc có dấu hiệu bị tranh chấp, việc chuyển tiền có thể trở thành cuộc đua phí; trong trường hợp đó, nên nhờ chuyên gia Bitcoin uy tín xử lý, nhưng không bao giờ cung cấp seed phrase hoặc private key cho bất kỳ ai.

Thiệt hại và các địa chỉ blockchain liên quan

Đợt đầu, ngày 30/7/2026: khoảng 594,48 BTC bị rút từ gần 500 địa chỉ trong khoảng 25 phút; 562 BTC sau đó được gom về một địa chỉ lớn.

Ba đợt được Galaxy Research truy vết: khoảng 1.367 BTC từ 4.585 địa chỉ, trị giá gần 89 triệu USD theo giá tại thời điểm báo cáo.

Đợt thứ tư: các nhà nghiên cứu ghi nhận thêm khoảng 388,93 BTC từ 462 địa chỉ trong khoảng 2,5 giờ; đây là đợt nghi ngờ/đang được xác minh, không nên gộp ngay vào thiệt hại chính thức nếu nguồn chưa xác nhận.

Một số cập nhật tổng hợp cả bốn đợt ước tính khoảng 1.816 BTC, tương đương gần 116 triệu USD, từ hơn 5.200 địa chỉ. Đây là con số ước tính mở rộng và có thể tiếp tục thay đổi.

Địa chỉ nổi bật trong đợt đầu, nơi khoảng 562 BTC được hợp nhất, là: bc1qq85v2c926eg6pgxhwp6q7lf6cnsz80qs3fcu9r

Hạng mụcSố liệuGhi chú
Đợt đầu594,48 BTCGần 500 địa chỉ, khoảng 25 phút
Địa chỉ gom nổi bậtKhoảng 562 BTCbc1qq85v2c926eg6pgxhwp6q7lf6cnsz80qs3fcu9r
Ba đợt được truy vết1.367 BTC4.585 địa chỉ
Đợt thứ tư nghi ngờ388,93 BTC462 địa chỉ, cần phân biệt với số liệu xác nhận
Tổng mở rộng bốn đợtKhoảng 1.816 BTCHơn 5.200 địa chỉ, vẫn có thể điều chỉnh

Bài học về tự lưu ký Bitcoin

Vụ Coldcard cho thấy tự lưu ký giúp người dùng kiểm soát tài sản mà không cần phụ thuộc vào sàn giao dịch, nhưng không có nghĩa là rủi ro bằng không. An toàn của Bitcoin còn phụ thuộc vào firmware, chất lượng entropy, quy trình tạo seed, cách sao lưu và khả năng phản ứng khi có cảnh báo bảo mật. Người dùng nên tạo seed bằng nguồn ngẫu nhiên đáng tin cậy, cập nhật phần mềm từ kênh chính thức, xác minh giao dịch trên thiết bị và tránh tập trung toàn bộ tài sản vào một thiết bị hoặc một seed duy nhất.

Sự cố Coldcard không phải là lỗi của Bitcoin hay bằng chứng rằng mọi ví lạnh đều không an toàn. Đây là lời nhắc rằng một seed được tạo sai ngay từ đầu có thể khiến toàn bộ lớp bảo vệ ngoại tuyến mất tác dụng. Với các ví hoặc firmware thuộc nhóm ảnh hưởng, biện pháp đúng là tạo seed mới, chuyển tài sản sớm và không tiếp tục sử dụng seed cũ.

Hải Nguyễn

Hải Nguyễn

Kiến thức và kinh nghiệm sẽ giúp bạn không bị mất tiền trong thị trường crypto.