Khi tôi cầm trên tay chiếc Coldcard Mk4, cảm giác đầu tiên là sự chắc chắn. Một thiết bị phần cứng được thiết kế để giữ khóa riêng tách biệt hoàn toàn với internet. Nhưng tuần này, báo cáo phối hợp giữa Coinkite, Block và Galaxy Research đã phá vỡ giả định cơ bản nhất của chiếc ví cứng: nguồn entropy. Không phải do lỗi vật lý, không phải do tấn công xâm nhập, mà do một dòng mã cấu hình RNG bị tắt mà firmware vẫn tưởng là đang chạy. Kết quả: 1.367 BTC bị đánh cắp, 77.402 BTC được di dời phòng thủ. Và điều đáng sợ hơn — hàng nghìn người dùng có thể vẫn đang nắm giữ seed phrase được tạo từ một bộ đếm ngẫu nhiên chỉ khoảng 40 bit entropy, trong khi tiêu chuẩn tối thiểu là 128 bit.
Coldcard là một trong những ví cứng được giới bảo mật tôn sùng nhất. Nó không phải là thiết bị đại chúng như Ledger hay Trezor, mà là công cụ của những người dùng kỹ tính, những người tự quản lý tài sản lớn và hiểu về mật mã. Chính vì vậy, lỗ hổng này không chỉ là một bug firmware, nó là một vết nứt trong triết lý an toàn của toàn ngành: nếu ngay cả thiết bị được ca ngợi là an toàn nhất cũng có thể tạo khóa riêng từ một nguồn ngẫu nhiên yếu, thì còn gì để tin?
Sự cố bắt đầu từ một cài đặt vi mô trong firmware. Trong quá trình khởi động, code kiểm tra sự hiện diện của bộ sinh số ngẫu nhiên phần cứng (hardware RNG), nhưng lại không kiểm tra xem nó có thực sự được kích hoạt hay không. Hằng số MICROPY_HW_ENABLE_RNG được định nghĩa bằng 0, nhưng logic chương trình vẫn coi RNG là hợp lệ. Khi không có nguồn ngẫu nhiên thực sự, MicroPython rơi vào thuật toán Yasmarang — một bộ sinh số giả ngẫu nhiên yếu, có thể dự đoán được. Lỗi này xuất hiện từ firmware 4.0.0 (hoặc 4.0.1 tùy theo cách xác định phiên bản), tức là từ tháng 3 năm 2021. Hơn ba năm trôi qua trước khi nó được công khai.
Điều khiến tôi kinh ngạc là quy mô hậu quả. Galaxy Research ước tính quỹ bị nghi ngờ đánh cắp lên tới 1.367 BTC, và các nhà phân tích trên chuỗi đã quan sát thấy 77.402 BTC được di dời — một đợt dịch chuyển mang tính phòng thủ, khi những người nắm giữ Coldcard vội vã tạo seed mới và chuyển toàn bộ tài sản. Những con số này cho thấy cộng đồng đã hành động rất nhanh. Nhưng câu hỏi đặt ra: tại sao phải mất ba năm, và tại sao rất nhiều người dùng tinh vi không hề hay biết?
Hãy nhìn vào cấu trúc, đừng chỉ nhìn giá.
Khi đánh giá bảo mật của một ví cứng, chúng ta thường nhìn vào thương hiệu, vào chip bảo mật, vào tính năng chống giả mạo. Nhưng thứ quyết định sự an toàn thực sự là cách firmware tích hợp nguồn ngẫu nhiên — một chi tiết kỹ thuật nằm sâu bên dưới, mà hầu như không ai kiểm tra. Các audit thường tập trung vào việc khóa riêng có thể bị trích xuất hay không, chứ ít khi đặt câu hỏi: khóa riêng đó được sinh ra từ nguồn entropy có đủ mạnh không? Đây là một điểm mù có cấu trúc. Từ góc nhìn của một người từng audit hợp đồng thông minh Gnosis năm 2017, tôi học được rằng lỗ hổng chết người nhất không phải là lỗi logic phức tạp, mà là một giả định sai lầm được lặp đi lặp lại trong code. Ở Gnosis, cơ chế oracle có thể bị thao túng do không xác thực đủ dữ liệu đầu vào. Ở Coldcard, bộ sinh số ngẫu nhiên được giả định là đã kích hoạt, trong khi thực tế nó bị tắt. Cùng một khuôn mẫu: kiểm tra sự tồn tại nhưng không kiểm tra hoạt động.
Kỹ thuật tấn công không cần chạm vào thiết bị của nạn nhân. Kẻ tấn công chỉ cần liệt kê tất cả các seed có thể từ không gian tìm kiếm 40 bit — với một cụm GPU hiện đại, việc này có thể hoàn thành trong vài ngày. Sau đó, chúng tạo ra các địa chỉ Bitcoin từ những seed đó và quét sổ cái công khai. Bất kỳ địa chỉ nào có số dư đều trở thành mục tiêu. Không cần physical access, không cần lây nhiễm phần mềm. Chỉ cần sức mạnh tính toán và một chút kiên nhẫn. Điều này vi phạm trực tiếp mô hình an toàn của ví cứng: ngay cả khi khóa riêng không bao giờ rời khỏi thiết bị, nếu seed được sinh ra từ một không gian quá nhỏ, thì toàn bộ công sức bảo vệ vật lý trở nên vô nghĩa.
Đối với các phiên bản mới hơn như Mk4, Mk5 và Q, không gian tìm kiếm khoảng 72 bit — lớn hơn nhiều so với 40 bit, nhưng vẫn thấp hơn đáng kể so với tiêu chuẩn 128 bit. Block phân tích rằng có thể phân biệt tối đa 2^32 luồng ngẫu nhiên khác nhau, và điều này thu hẹp phạm vi khai thác. Tuy nhiên, bất kỳ mức entropy nào dưới 128 bit đều không thể chấp nhận được đối với một thiết bị bảo mật cấp chuyên dụng. Thậm chí, nếu không ai tấn công các phiên bản mới hơn ngay bây giờ, thì khoảng thời gian từ 2021 đến 2024 mà không ai phát hiện ra lỗi này cho thấy một vấn đề mang tính hệ thống: các nhà sản xuất ví cứng có thể đang dựa vào các quy trình kiểm thử không đủ khắt khe.
Có một nghịch lý ở đây. Thị trường đang trong giai đoạn tăng mạnh, ai cũng muốn mua thêm Bitcoin, ai cũng tin rằng lưu trữ tự quản là chìa khóa. Nhưng chính trong cơn phấn khích đó, những lỗi kỹ thuật âm thầm như thế này lại bị che giấu bởi marketing. Các công ty bán ví cứng quảng cáo về khả năng chống lại malware, về mã nguồn mở, về sự tối giản. Nhưng họ hiếm khi công bố chi tiết về việc họ xác thực nguồn entropy trong quy trình sản xuất như thế nào. Khi giá tăng, người dùng có xu hướng tin rằng mọi thứ đang hoạt động tốt. Tôi gọi đây là 'sự mù quáng trong thị trường tăng' — chúng ta nhìn vào biểu đồ giá, chúng ta nhìn vào TVL, nhưng chúng ta không nhìn vào những dòng mã đang chạy bên dưới. Giáo dục không phải đặc quyền, là quyền. Nhưng quyền đó chỉ có ý nghĩa khi người học được trang bị khả năng đọc hiểu cấu trúc rủi ro.
Giải pháp khắc phục nghe có vẻ đơn giản: cập nhật firmware mới. Nhưng sự thật phũ phàng là cập nhật firmware chỉ bảo vệ các seed được tạo sau khi vá. Với những seed đã tồn tại, chúng chia sẻ cùng một khóa gốc. Mọi địa chỉ dẫn xuất từ seed cũ đều có khả năng bị liệt kê trong không gian tìm kiếm của kẻ tấn công. Do đó, cách duy nhất để an toàn là tạo một seed mới trên firmware đã được vá, sau đó chuyển toàn bộ tài sản đến các địa chỉ mới. Đây chính là lý do 77.402 BTC đã được di dời: không phải vì người dùng hoảng loạn bán tháo, mà vì họ hiểu rằng chỉ có một lựa chọn — cắt đứt hoàn toàn với khóa cũ. Nếu bạn vẫn đang dùng một seed được tạo trong khoảng từ 2021 đến trước khi bản vá được phát hành, và nếu bạn chưa chuyển tiền, thì bạn đang ngồi trên một quả bom hẹn giờ.
Tôi muốn nói rõ về một quan điểm dễ bị hiểu lầm. Không phải mọi hoạt động di dời 77.402 BTC đều là bán tháo. Trên chuỗi, chúng ta thấy các UTXO cũ được 'đánh thức' và chuyển đến địa chỉ mới. Điều này tạo ra một làn sóng di động trong dữ liệu on-chain, nhưng bản chất của nó là phòng thủ tài sản, không phải phân phối thanh khoản. Nếu một nhà phân tích chỉ nhìn vào khối lượng giao dịch tăng đột biến mà kết luận rằng có sự bán tháo lớn, họ sẽ hiểu sai hoàn toàn. Đây là lý do tại sao chúng ta cần nhìn vào cấu trúc giao dịch, thay vì chỉ nhìn vào con số. 1.367 BTC bị đánh cắp, nếu được bán ra, sẽ tạo ra một áp lực bán nhỏ, nhưng không đáng kể so với khối lượng giao dịch trung bình của Bitcoin. Quan trọng hơn là sự xói mòn niềm tin vào khái niệm 'ví cứng là tuyệt đối an toàn'.
Hãy lùi lại một bước. Câu chuyện Coldcard không phải là một câu chuyện về một công ty làm ăn kém. Đó là câu chuyện về một ngành công nghiệp non trẻ đang dần trưởng thành qua những vết sẹo. Năm 2019, khi tôi xây dựng framework quản trị cho Aragon, tôi đã học được rằng một hệ thống phân quyền chỉ mạnh khi các thành phần của nó có khả năng chịu lỗi. Một DAO có thể có quy trình bỏ phiếu hoàn hảo, nhưng nếu ví lưu trữ ngân quỹ bị tấn công, toàn bộ hệ thống sụp đổ. Tương tự, giao thức Bitcoin có thể có mật mã bất khả xâm phạm, nhưng nếu lớp ứng dụng — ví, sàn giao dịch, công cụ quản lý khóa — bị lỗi, thì người dùng vẫn mất tiền. Cấu trúc bảo mật của hệ sinh thái chỉ mạnh bằng mắt xích yếu nhất của nó, và Coldcard chính là một mắt xích vừa bị phát hiện là yếu.
Điều gì sẽ xảy ra nếu các nhà sản xuất ví cứng khác cũng có những lỗ hổng tương tự? Tôi gọi đây là 'rủi ro hệ thống ngầm'. Khi một lỗi như thế này xuất hiện, nó không đơn lẻ. Nó phản ánh một khuôn mẫu phổ biến: nhà phát triển phần mềm thường tin rằng thư viện mật mã mà họ sử dụng sẽ tự động sử dụng RNG phần cứng. Nhưng trên thực tế, việc tích hợp RNG đòi hỏi phải kiểm tra rõ ràng rằng nguồn ngẫu nhiên đã được cấu hình và sinh ra dữ liệu thực sự không thể đoán trước. Bất kỳ thiết bị nào chạy trên MicroPython hoặc các nền tảng nhúng tương tự đều có thể gặp vấn đề tương tự nếu không được kiểm tra độc lập. Đây không phải là vấn đề riêng của Coldcard; nó là lời cảnh tỉnh cho toàn ngành.
Nếu bạn đang dùng Coldcard, hãy kiểm tra ngay phiên bản firmware của bạn và xác định thời điểm seed được tạo. Nếu nó nằm trong vùng ảnh hưởng, đừng chần chừ. Hãy tạo seed mới, chuyển toàn bộ tài sản, và hủy các địa chỉ cũ. Đây không phải là lời khuyên nếu, mà là hành động bắt buộc. Còn nếu bạn đang dùng một loại ví cứng khác, hãy đặt câu hỏi: nhà sản xuất có công bố chi tiết về nguồn entropy không? Họ có kiểm tra RNG trong từng lô sản xuất không? Họ có thuê bên thứ ba audit không? Nếu bạn không tìm thấy câu trả lời, hãy cân nhắc rủi ro. Giáo dục không phải đặc quyền, là quyền. Và quyền được biết chính xác cách khóa của mình được sinh ra là một phần của quyền đó.
Thị trường tăng giá luôn tạo ra cảm giác an toàn giả tạo. Khi giá đi lên, mọi người ít quan tâm đến bảo mật kỹ thuật, bởi vì tài sản đang tăng giá trị, ai cũng vui. Nhưng chính những lúc như thế này, các lỗ hổng âm thầm bị bỏ qua. Hãy nhìn vào cấu trúc, đừng chỉ nhìn giá. Câu hỏi không phải là 'Tôi kiếm được bao nhiêu', mà là 'Liệu tài sản của tôi có nằm trong một hệ thống có thể bị suy sụp từ bên trong hay không'. Coldcard đã dạy chúng ta một bài học đắt giá: ngay cả khi mọi thứ bên ngoài hoàn hảo, lớp bên trong có thể chứa một cánh cửa bí mật mà chúng ta không thấy. Và khi cánh cửa đó mở ra, không có firmware update nào có thể cứu những gì đã biến mất.

