BarryPortier

1,14 tỷ USD bốc hơi khỏi Coldcard: Câu chuyện về entropy, niềm tin và dữ liệu on-chain

Đặng Vĩnh
Tin tức
114 triệu USD. Một con số xuất hiện trong một bài phân tích không rõ nguồn gốc. Với một người đã dành 16 năm đọc dữ liệu on-chain, con số đó không đáng sợ bằng sự im lặng đằng sau nó. Không có địa chỉ ví công khai. Không có hash giao dịch. Không có một dòng code nào được công bố. Chỉ có một tuyên bố: Coldcard, chiếc ví lạnh được cộng đồng Bitcoin sùng bái như một cỗ máy tạo entropy hoàn hảo, đã bị đánh cắp 1,14 tỷ USD vì lỗ hổng random number. Số liệu không bao giờ nói dối, nhưng nó cũng không bao giờ nói toàn bộ sự thật. Coldcard không phải là một cái tên xa lạ. Đây là sản phẩm của Coinkite, một công ty Canada, được giới tự thân (self-custody) ưa chuộng vì ba lý do: mã nguồn mở hoàn toàn, chuyên Bitcoin, và thiết kế hướng đến người dùng kỹ thuật cao. Trong cộng đồng Bitcoin, Coldcard từng được ví như một chiếc két sắt vật lý mà ngay cả NSA cũng phải đau đầu. Sản phẩm này hỗ trợ PSBT, ký đa chữ ký, và cả ký sống (air-gapped) bằng thẻ SD. Với những người nắm giữ lớn, Coldcard là lớp bảo vệ cuối cùng giữa họ và một vụ trộm mạng. Khái niệm "lỗ hổng random number" nghe có vẻ trừu tượng, nhưng hãy để tôi diễn giải nó bằng ngôn ngữ rõ ràng. Một chiếc ví Bitcoin không có "mật khẩu" theo nghĩa thông thường. Nó có một private key, một con số 256 bit. Nếu ai đó biết con số này, họ có thể chuyển toàn bộ số dư. Điều duy nhất khiến con số này không thể đoán được là entropy – nguồn ngẫu nhiên được sử dụng để tạo ra nó. Một chiếc ví lạnh tốt phải có một nguồn entropy từ phần cứng, hoặc kết hợp nhiều nguồn để tạo ra sự ngẫu nhiên thực sự. Khi một lỗ hổng random number xuất hiện, có hai tầng có thể bị ảnh hưởng. Tầng thứ nhất là lúc tạo private key. Nếu entropy không đủ mạnh, private key có thể nằm trong một tập hợp nhỏ các giá trị có thể dự đoán. Kẻ tấn công chỉ cần chạy một thuật toán quét để thử từng giá trị và so sánh với địa chỉ trên chuỗi. Tầng thứ hai, nguy hiểm hơn, nằm ở quá trình ký giao dịch. Bitcoin dùng ECDSA, một thuật toán chữ ký yêu cầu một nonce ngẫu nhiên duy nhất cho mỗi lần ký. Nếu nonce bị lặp lại hoặc có thể dự đoán, bất kỳ ai cũng có thể tái tạo private key từ hai chữ ký công khai trên chuỗi. Không cần tiếp xúc vật lý. Không cần brute-force. Đây chính là điểm tôi muốn dừng lại. Vì nếu lỗ hổng này thật sự tồn tại ở tầng nonce, thì những gì xảy ra trên chuỗi sẽ để lại dấu vết. Một kẻ tấn công có năng lực sẽ không chỉ nhắm vào một ví. Hắn sẽ quét toàn bộ blockchain, tìm tất cả các địa chỉ được tạo hoặc ký bằng cùng một nguồn entropy yếu. Hắn sẽ ưu tiên những địa chỉ có số dư lớn. Và hắn sẽ thực hiện các giao dịch "sweep" – quét sạch – thường diễn ra trong một khoảng thời gian rất ngắn, để giảm khả năng bị phát hiện. Trên chuỗi, mọi thứ đều để lại dấu vết – trừ khi ai đó cố tình xóa. Nếu tôi được giao nhiệm vụ điều tra, tôi sẽ bắt đầu bằng cách tìm các giao dịch bất thường trong khoảng thời gian được cho là vụ trộm xảy ra. Tôi sẽ tìm kiếm các địa chỉ có số dư lớn bị rút sạch, theo sau là các bước chuyển tiền qua nhiều ví trung gian, hoặc các dịch vụ trộn coin hoặc cầu nối xuyên chuỗi. Tôi sẽ lập bản đồ thời gian giữa lần xuất hiện cuối cùng của một địa chỉ có số dư và thời điểm nó bị chuyển đi. Nếu lỗ hổng nằm ở khâu tạo private key, tôi cũng tìm kiếm một cụm địa chỉ có cùng kiểu "mẫu số dư" – ví dụ, tất cả đều được tạo trong cùng một khoảng thời gian và bị quét sạch trong cùng một ngày. Nhưng bài viết gốc không cung cấp dữ liệu này. Không có địa chỉ, không có ngày, không có số khối. Với tư cách một nhà phân tích, tôi coi đây là một dấu hiệu đáng ngờ. Một vụ trộm lớn để lại dấu chân không thể xóa được trên chuỗi. Nếu sự kiện là thật, việc công bố địa chỉ ví bị ảnh hưởng sẽ là bằng chứng mạnh nhất. Việc không công bố nó – dù là do nhà phân tích thiếu dữ liệu – khiến tuyên bố này ở mức "tin đồn có cơ sở kỹ thuật" chứ không phải "sự kiện đã xác nhận". Khi entropy sụp đổ, mọi lớp bảo vệ khác chỉ là trang trí. Có một tầng phản trực giác mà tôi muốn độc giả hiểu rõ. Cộng đồng thường nghĩ "cold wallet an toàn hơn hot wallet". Điều đó đúng trong hầu hết các kịch bản tấn công từ xa. Nhưng nếu lỗ hổng nằm ở khâu tạo private key hoặc ký, thì một chiếc ví lạnh lại trở nên nguy hiểm hơn một chiếc ví nóng. Vì sao? Vì người dùng ví lạnh thường giữ số tiền lớn và kỳ vọng sự an toàn tuyệt đối. Họ không có các lớp kiểm soát rủi ro như ví nóng (ví dụ, giới hạn rút tiền, xác thực sinh trắc học, hoặc theo dõi thời gian thực). Họ cũng ít kiểm tra số dư thường xuyên hơn. Một vụ quét sạch có thể diễn ra trong nhiều tuần trước khi họ phát hiện ra. Nếu tôi có thể nói với người dùng Coldcard một điều ngay lúc này, tôi sẽ nói: đừng hoảng loạn chuyển tiền. Đây là một lời khuyên nghe có vẻ phản trực giác, nhưng nó dựa trên logic kỹ thuật. Nếu lỗ hổng nằm trong quá trình tạo private key và bạn đã tạo ví bằng một thiết bị bị lỗi, việc chuyển tiền sang một ví mới ngay lập tức – trên cùng một thiết bị hoặc cùng một nguồn entropy – có thể dẫn đến việc tạo ra một private key yếu tương tự. Vội vàng trong bối cảnh này không khác gì nhảy từ chảo lửa vào bếp than. Thị trường đang đi ngang. Dòng tiền không rõ ràng. Trong bối cảnh này, một tin đồn bảo mật như thế này có thể gây ra một cú sốc cục bộ. Dữ liệu on-chain sẽ cho chúng ta biết liệu tin đồn có đang được thổi phồng hay không. Tôi sẽ theo dõi sáu tín hiệu. Một: số lượng Bitcoin rời khỏi các địa chỉ được gắn thẻ Coldcard. Hai: sự gia tăng bất thường của các giao dịch chuyển từ hardware wallet sang sàn giao dịch tập trung. Ba: hoạt động của các địa chỉ quét hàng loạt. Bốn: bài đăng chính thức từ tài khoản Twitter của Coinkite. Năm: sự xuất hiện của một CVE được công bố bởi một tổ chức nghiên cứu bảo mật uy tín. Sáu: phản ứng của các nhà phát triển Bitcoin Core – họ thường im lặng khi không có gì xảy ra, và lên tiếng khi có rủi ro hệ thống. Tôi từng trải qua một cuộc khủng hoảng tương tự – dù quy mô nhỏ hơn nhiều. Năm 2020, tôi phát hiện một bot front-running chiếm 12% phí giao dịch của cặp ETH/DAI trên Uniswap V2. Lúc đầu, dữ liệu chỉ là một cụm các giao dịch lặp lại với mức phí gas cao bất thường. Không ai tin đó là một bot có hệ thống cho đến khi tôi chứng minh được một địa chỉ ví duy nhất đứng sau tất cả. Với Coldcard, nếu một địa chỉ quét hàng loạt tồn tại, nó sẽ nằm đó, trên chuỗi, chờ một ai đó đủ kiên nhẫn tìm ra. Câu hỏi không phải là "liệu kẻ trộm có để lại dấu vết

1,14 tỷ USD bốc hơi khỏi Coldcard: Câu chuyện về entropy, niềm tin và dữ liệu on-chain

1,14 tỷ USD bốc hơi khỏi Coldcard: Câu chuyện về entropy, niềm tin và dữ liệu on-chain