594,48 BTC biến mất khỏi Coldcard: Khi 'ví lạnh' không còn lạnh
Lê Việt
Tôi từng nói với hàng nghìn học viên của mình rằng: hãy tự lưu trữ, đừng bao giờ để tài sản trên sàn giao dịch. Tôi từng viết một ebook dài 30 trang chỉ để dạy mọi người cách rút tiền từ CEX về ví lạnh. Và tôi từng tin — như phần lớn cộng đồng Bitcoin — rằng ví cứng là lớp bảo vệ cuối cùng, là thứ "không thể hack". Cho đến khi 594,48 BTC, trị giá khoảng 38,3 triệu USD, bị đánh cắp từ Coldcard, một trong những ví cứng Bitcoin được tôn sùng bậc nhất, mà không một kẻ tấn công nào cần chạm tay vào thiết bị. Không lừa đảo, không mã độc, không mất cụm từ hạt giống. Chỉ một lỗ hổng firmware âm thầm tồn tại từ năm 2021.
Coldcard không phải là một cái tên xa lạ trong thế giới ví cứng. Với cộng đồng Bitcoin, nó là chuẩn mực vàng: mã nguồn mở, hoàn toàn không kết nối Internet, được thiết kế bởi Coinkite — một công ty đã tiên phong ngay từ những ngày đầu của Bitcoin. Nó là thứ mà những người theo chủ nghĩa tối đa Bitcoin khuyên nhau dùng, là biểu tượng của self-custody "thuần khiết". Không có logo LED rực rỡ, không có app đi kèm, không có nhà phân phối bán lẻ — chỉ có một thiết bị nhỏ, cứng nhắc, và một lời hứa: khóa riêng của bạn không bao giờ rời khỏi chiếc hộp này.
Vấn đề nằm ở entropy — nguồn gốc của sự ngẫu nhiên. Mỗi khi ví cứng tạo một cụm từ hạt giống mới, nó cần một nguồn ngẫu nhiên thực sự, để không ai có thể đoán trước được kết quả. Vào năm 2021, một bản cập nhật firmware trên Coldcard đã vô hiệu hóa bộ kiểm tra RNG. Hệ thống TRNG — bộ tạo số ngẫu nhiên dựa trên nhiễu vật lý — bị tắt, và thiết bị rơi vào chế độ dự phòng: sử dụng số sê-ri và đồng hồ nội bộ để tạo entropy. Nghe có vẻ kỹ thuật, nhưng hậu quả thì rất đơn giản: tất cả các cụm từ hạt giống được tạo ra trên các phiên bản firmware bị lỗi đều nằm trong một không gian "quá nhỏ" để có thể được coi là an toàn.
Điều làm tôi khó thở khi đọc bản phân tích kỹ thuật là con số. Không gian khóa riêng — lẽ ra phải là 2^256 khả năng, một con số lớn hơn số nguyên tử trong vũ trụ — đã bị nén xuống còn khoảng 2^32, tức hơn 4 tỷ khả năng. Một chiếc GPU hiện đại có thể quét toàn bộ không gian đó trong vài giây. Không phải vài ngày. Không phải vài giờ. Vài giây. Điều này không còn là "rủi ro lý thuyết" — nó là một thảm họa mật mã đã xảy ra, và kết quả là 594,48 BTC đã bị rút đi.
Điều khiến nó trở nên đáng sợ hơn: kẻ tấn công không cần quyền truy cập vật lý. Không cần chạm vào thiết bị của bạn. Không cần đánh cắp cụm từ hạt giống hay passphrase. Chỉ cần một địa chỉ Bitcoin công khai — thứ bạn đã dùng để nhận tiền, thứ hiển nhiên xuất hiện trên blockchain. Từ địa chỉ đó, chúng có thể suy ra khóa riêng tương ứng bằng cách brute-force trong không gian bị thu hẹp. Việc ví của bạn "offline" bao nhiêu ngày — trong két sắt, dưới gầm giường, cách xa Internet vài mét — không còn quan trọng. Khi entropy yếu, toàn bộ mô hình bảo mật của cold storage sụp đổ.
Tôi nhớ lại năm 2021. Đó là thời điểm DeFi Summer vừa kết thúc. Tôi vừa mất 1.200 USD vì impermanent loss trên Uniswap v2, nhưng vẫn tự hào nói với sinh viên rằng "ít nhất ví lạnh của tôi tuyệt đối an toàn". Trong khi đó, ở đâu đó trên thế giới, những chiếc Coldcard đang âm thầm tạo ra những cụm từ hạt giống yếu ớt — như những quả bom hẹn giờ. Đến năm 2026, bom đã phát nổ. Và điều đáng sợ nhất không phải là con số 38,3 triệu USD — mà là việc chúng ta không hề biết mình đang sở hữu một quả bom như thế.
Trước Coldcard, ngành công nghiệp đã từng chứng kiến kiểu tấn công tương tự. Đầu năm nay, lỗ hổng Ill Bloom đã lấy đi hàng triệu USD từ những cụm từ hạt giống yếu — nhưng cộng đồng vẫn coi đó là chuyện của những người dùng bất cẩn. Lần này, nạn nhân là những người làm mọi thứ "đúng chuẩn": mua ví cứng từ nhà sản xuất uy tín, kiểm tra mã nguồn mở, cất giữ cụm từ hạt giống trong két sắt. Và họ vẫn bị hack. Điều đó thay đổi hoàn toàn câu chuyện: đây không phải lỗi người dùng — đây là lỗi của cả hệ thống.
Điều làm tôi suy nghĩ nhiều nhất là: lỗ hổng này đã tồn tại trong nhiều năm trước khi bị phát hiện. Bản cập nhật firmware năm 2021 không chỉ vô hiệu hóa TRNG — nó còn làm hỏng cơ chế kiểm tra RNG, khiến cho chính nhà sản xuất cũng không nhận ra rằng thiết bị của họ đã "mù". Đây không phải là một lỗi lập trình thông thường; nó cho thấy một khoảng trống nghiêm trọng trong quy trình kiểm tra chất lượng. Khi một thiết bị bảo mật ngừng tạo ra sự ngẫu nhiên thực sự, và không ai phát hiện ra trong suốt 5 năm — thì đó không phải là một sự cố, mà là một khuyết tật mang tính hệ thống.
Tệ hơn, firmware cập nhật không thể sửa được những cụm từ hạt giống yếu đã được tạo ra. Người dùng buộc phải di chuyển toàn bộ tài sản: tạo hạt giống mới trên phần cứng đã vá lỗi, chuyển tiền từng phần, và hy vọng không mắc sai lầm trong quá trình di chuyển. Tôi đã từng dạy quy trình này cho hàng trăm người và biết rõ đây là một trong những thao tác dễ gây tổn thất nhất trong crypto. Một người dùng cá nhân buộc phải thực hiện nó trong tâm lý sợ hãi — chính là lúc dễ tạo ra lỗi nhất.
Nhưng bây giờ là lúc để nói điều mà có thể sẽ khiến nhiều người khó chịu. Câu trả lời không phải là "bỏ ví cứng, quay lại sàn giao dịch". Câu trả lời cũng không phải là "chuyển sang Ledger hay Trezor". Vấn đề sâu xa hơn: ngành công nghiệp của chúng ta đã dành quá nhiều thời gian để bán sự an toàn như một chiếc áo choàng marketing, trong khi bỏ quên câu hỏi cốt lõi — làm sao để xác minh được sự an toàn đó bằng mật mã?
Hãy nhìn vào cách Coldcard phản hồi. Họ nói rằng Mk4, Q và Mk5 không bị ảnh hưởng — nhưng đó chỉ là "phân tích ban đầu". Còn nhớ chúng ta đã nghe bao nhiêu lần cụm từ "không bị ảnh hưởng" trước khi sự thật về phạm vi lỗ hổng được tiết lộ? Tôi nhớ đến bài học mình luôn dạy học viên: đừng tin vào tuyên bố, hãy xác thực trên giao thức.
Còn một tình tiết nữa khiến tôi trăn trở: Block — công ty sở hữu ví cứng Bitkey, một đối thủ cạnh tranh trực tiếp với Coldcard — lại là bên tham gia điều tra cùng Coinkite. Hãy nhìn vào bức tranh lớn: một bên vừa là đối thủ cạnh tranh, vừa là người điều tra. Tôi không phủ nhận năng lực kỹ thuật của họ, nhưng với tư cách là một người làm giáo dục tài chính, tôi biết rằng xác nhận độc lập là điều bắt buộc. Khi lợi ích không hoàn toàn trùng khớp, hãy kiểm tra cả bên điều tra lẫn bên bị điều tra.
Điểm mù lớn nhất, và cũng là điều tôi tự trách mình: chúng ta — những người hướng dẫn self-custody — đã dạy người dùng tin tưởng vào công cụ, nhưng lại không dạy họ cách kiểm chứng chính công cụ đó. Tôi luôn nói về passphrase, về đa chữ ký, về cách bảo vệ cụm từ hạt giống — nhưng tôi chưa bao giờ dạy học viên cách kiểm tra xem ví cứng của họ có thực sự tạo ra entropy đủ mạnh hay không. Và thành thật mà nói, ngay cả bản thân tôi — với tấm bằng Thạc sĩ Kỹ thuật Tài chính — cũng không biết cách làm điều đó một cách thực tế. Sự thật ấy đáng sợ hơn chính lỗ hổng RNG.
Sự kiện này sẽ không chỉ làm thay đổi Coldcard. Nó sẽ làm thay đổi toàn bộ cuộc chơi. Các nhà sản xuất ví cứng sẽ buộc phải minh bạch hơn về nguồn entropy, có thể phải công khai các bài kiểm tra RNG độc lập và thiết kế các cơ chế tự kiểm tra ngay trên thiết bị. Các dịch vụ đa chữ ký và MPC — nơi không có một điểm duy nhất có thể sụp đổ — sẽ nhận được nhiều sự chú ý hơn. Và những người dùng đã từng tin vào "một chiếc hộp nhỏ bảo vệ tất cả" sẽ bắt đầu đặt câu hỏi: điều gì sẽ xảy ra nếu bản cập nhật firmware tiếp theo cũng phá hỏng lớp bảo mật của tôi?
Câu hỏi bây giờ không còn là "ví cứng nào an toàn nhất" — mà là "làm sao để sự an toàn trở nên có thể kiểm chứng được". Tương lai thuộc về những giải pháp cho phép xác minh tính toàn vẹn của entropy ngay trên chuỗi, hoặc những mô hình phân tán quyền lực như đa chữ ký, MPC — nơi không còn một điểm duy nhất có thể sụp đổ. Còn với tôi, bài học lần này đã đủ đắt: không cần xin phép, chỉ cần xác thực. Và lần tới khi ai đó nói với bạn "ví của tôi an toàn tuyệt đối", hãy nhớ đến 594,48 BTC đã biến mất như thế nào.