Claude Shannon, nhà toán học đặt nền móng cho lý thuyết thông tin, đã sử dụng entropy để đo lường mức độ không chắc chắn của một kết quả. Trong trường hợp của một con xúc xắc sáu mặt công bằng, mỗi mặt có xác suất xuất hiện như nhau - một trong sáu. Điều này mang lại cho mỗi lần tung xấp xỉ 2.585 bit entropy. Tung đồng xu cho ra 1 bit, còn tung xúc xắc tám mặt cho ra 3 bit.

Điều quan trọng không phải là việc con xúc xắc được tung hoạt động ngẫu nhiên ở cấp độ nguyên tử. Nó không phải vậy. Kết quả được xác định bởi các định luật vật lý, nhưng có quá nhiều biến số nhỏ thay đổi đồng thời khiến bất kỳ ai cũng không thể tính toán kết quả một cách đáng tin cậy. Con xúc xắc rời khỏi tay với một tốc độ nhất định, một góc độ, một độ cao và độ xoáy nhất định, sau đó đập vào bàn và đổi hướng sau mỗi lần nảy.
Trên thực tế, ngay cả một thay đổi nhỏ trong động tác tung cũng có thể dẫn đến một kết quả hoàn toàn khác. Vị trí ngón tay hơi khác hoặc một cú tung mạnh hơn một chút sẽ thay đổi quỹ đạo đến mức con số cuối cùng không thể đoán trước được bằng cách quan sát chuyển động. Kết quả về lý thuyết có thể là xác định, nhưng đối với việc tạo ví, điều quan trọng là kẻ xấu không thể tái tạo hoặc tính toán được nó.
Chuyển đổi kết quả tung xúc xắc thành dữ liệu có thể sử dụng
Máy tính không thể trực tiếp sử dụng một danh sách kết quả tung xúc xắc. Trước tiên, các lần tung phải được chuyển đổi thành dữ liệu nhị phân, và phương pháp chuyển đổi có ý nghĩa quan trọng.
Phương pháp đơn giản "chẵn-lẻ" dễ hiểu, nhưng nó lãng phí phần lớn entropy có sẵn. Mỗi lần tung bị giảm xuống còn một bit, mặc dù xúc xắc tạo ra khoảng 2.6 bit thông tin. Các phương pháp hiệu quả hơn thu thập một chuỗi dài các lần tung và xử lý toàn bộ chuỗi, thường bằng hàm băm mật mã. Điều này cho phép giữ lại nhiều tính ngẫu nhiên hơn.
Nguyên tắc tương tự nằm sau Diceware — một phương pháp lâu đời để tạo cụm mật khẩu an toàn — cũng như khi tạo ví Bitcoin thủ công. Một cụm từ khôi phục ví điển hình gồm 12 từ bao gồm 128 bit entropy. Với khoảng 2.6 bit trên mỗi lần tung, khoảng 50 lần tung công bằng sẽ cung cấp đủ thông tin gốc để vượt qua ngưỡng này.
Công ty Coinkite, nhà sản xuất ví phần cứng Coldcard, khuyến nghị 99 lần tung trở lên cho người dùng muốn có entropy gần 256 bit. Điều này không làm cho ví khó sử dụng gấp đôi, nhưng đảm bảo cho bí mật được tạo ra một biên độ an toàn toán học lớn hơn nhiều.
Kiểm tra thực tế seed được tạo bằng xúc xắc
Sự khác biệt này trở nên quan trọng sau khi Coinkite tiết lộ một vấn đề về firmware có từ năm 2021. Trên một số thiết bị Coldcard, phần mềm có thể bỏ qua bộ tạo số ngẫu nhiên phần cứng nội bộ và thay vào đó sử dụng một quy trình dễ bị tổn thương hơn, liên quan đến thông tin không bí mật về thiết bị.
Vì các phần của thuật toán này có thể được khôi phục, kẻ xấu có thể thu hẹp phạm vi khóa ví có thể có, thay vì phải duyệt qua toàn bộ không gian khóa. Lỗ hổng này có liên quan đến vụ trộm, ước tính khoảng 1,128.6633 BTC từ khoảng 100 địa chỉ (tính đến 13:00 giờ miền Đông).

Seed của các ví được tạo hoàn toàn dựa trên đủ số lần tung xúc xắc độc lập không gặp rủi ro thông qua kênh tương tự. Những người dùng này đã cung cấp entropy của riêng họ, vì vậy bộ tạo phần cứng bị lỗi không tham gia vào việc tạo bí mật chính của ví.
Tuy nhiên, sự bảo vệ này chỉ áp dụng cho cụm từ seed được tạo bằng cách tung xúc xắc. Nó không tự động bảo vệ tất cả các dữ liệu bí mật khác được tạo ra bởi thiết bị.
Wizard Sardine phân tích các điều khoản chi tiết
Vào ngày 1 tháng 8, nhà nghiên cứu bảo mật Kevin Loaec đã đăng một đánh giá về lỗ hổng Coldcard trên trang web Wizard Sardine. Nhận xét quan trọng nhất của ông liên quan đến các tính năng của Coldcard tạo ra các khóa bí mật riêng biệt với seed chính của ví.
"Tôi cho rằng cực kỳ quan trọng để nhấn mạnh rằng ngay cả người dùng đã nhập khẩu hoặc tạo seed bằng xúc xắc cũng có thể bị tổn thương nếu họ sử dụng các tính năng sau", Loaec viết trên X, sau đó trình bày sơ đồ hệ thống dễ bị tổn thương.
Sơ đồ cho thấy cách bộ tạo số ngẫu nhiên dễ bị tổn thương cung cấp dữ liệu cho nhiều tính năng phụ của Coldcard. Chúng bao gồm tạo ví giấy, nhân bản thiết bị, mã hóa phiên USB, tính năng chuyển Secret Teleport, tạo khóa cho chữ ký đa bên, bộ tạo mật khẩu tích hợp và mã xác thực cho mô-đun bảo mật phần cứng.

Ví chính được tạo bằng 99 lần tung xúc xắc vẫn nằm trong một phần riêng biệt của hệ thống. Vấn đề là các công cụ khác vẫn có thể yêu cầu dữ liệu ngẫu nhiên mới từ bộ tạo bị lỗi. Kết quả là, seed an toàn không đảm bảo rằng mọi mật khẩu, bản sao lưu, mã xác thực hoặc khóa phụ được tạo trên cùng một thiết bị đều an toàn như nhau.
Tại sao hầu hết người dùng mới sẽ không tung xúc xắc
Entropy được tạo bằng xúc xắc về mặt kỹ thuật là mạnh mẽ khi được thực hiện đúng, nhưng đối với hầu hết người dùng mới, đây không phải là lựa chọn thực tế mặc định. Tung xúc xắc 50 hoặc 99 lần, nhập chính xác từng kết quả và kiểm tra xem không có lần tung nào bị bỏ sót hoặc lặp lại đòi hỏi sự kiên nhẫn và tập trung cao độ. Một số nhập sai có thể hoàn toàn thay đổi địa chỉ ví cuối cùng, và hầu hết các thiết bị không thể xác định liệu lỗi là do tung sai, nhập sai hay hiểu sai hướng dẫn.

Quy trình này cũng đi kèm với những rủi ro không có khi sử dụng bộ tạo phần cứng hoạt động đúng. Người dùng có thể ghi lại kết quả tung trên giấy, chụp ảnh chúng, nhập vào công cụ trực tuyến hoặc để danh sách ở nơi người ngoài có thể tìm thấy. Một số người tung xúc xắc một cách lặp đi lặp lại hoặc có kiểm soát, sử dụng xúc xắc gian lận hoặc bị hư hỏng, hoặc dừng quá trình sớm vì thấy nó quá mức cần thiết. Cơ sở toán học có thể mạnh mẽ, nhưng tính bảo mật của kết quả phụ thuộc hoàn toàn vào việc người dùng tuân thủ quy trình một cách cẩn thận đến mức nào.

Đó là lý do tại sao tung xúc xắc không phải lúc nào cũng được coi là phương pháp tốt nhất cho nhiều người, ngay cả trong số những người dùng Bitcoin dày dạn kinh nghiệm. Nó thay thế niềm tin vào thiết bị bằng niềm tin vào quy trình thủ công. Đối với người dùng am hiểu kỹ thuật, hiểu bản chất của entropy, kiểm tra phương pháp và giữ bí mật chuỗi kết quả tung, sự đánh đổi này có thể có ý nghĩa. Đối với người mua hàng bình thường lần đầu thiết lập ví, điều này tạo ra một số cơ hội để mắc lỗi không thể khắc phục, đồng thời cũng là một quá trình mệt mỏi.

Hơn nữa, thật khó để hình dung việc Bitcoin được áp dụng rộng rãi nếu mọi người phải ngồi vào bàn và ghi lại kết quả của 99 lần tung xúc xắc chỉ để nhận và bảo vệ tiền của họ. Các biện pháp bảo mật phải chịu được thử thách của điều kiện gia đình thực tế, lịch trình dày đặc, sự phân tâm và người dùng không muốn học mật mã. Việc tạo entropy thủ công nên vẫn là một tùy chọn có sẵn cho người dùng có kinh nghiệm, nhưng mục tiêu dài hạn là tạo ra phần cứng và phần mềm có thể tạo ra tính ngẫu nhiên mạnh mẽ một cách chính xác, giải thích rõ ràng những gì đang xảy ra và yêu cầu càng ít kiến thức đặc biệt càng tốt.
Chủ sở hữu Coldcard nên kiểm tra những gì
Chủ sở hữu các thiết bị Coldcard dễ bị tổn thương trước hết nên kiểm tra phiên bản firmware được cài đặt trên thiết bị. Sau đó, họ nên phân tích những tính năng nào họ đã sử dụng khi làm việc với firmware cũ, thay vì chỉ tập trung vào cách seed chính của ví được tạo ra.
Tất cả những ai đã sử dụng thiết bị dễ bị tổn thương để tạo ví giấy, khóa bí mật nhân bản, mật khẩu, khóa ký đa bên hoặc mã xác thực, có thể cần thay thế ngay lập tức những tài liệu đó. Cài đặt bản cập nhật ngăn chặn vấn đề tương tự xảy ra với dữ liệu bí mật mới, nhưng không sửa chữa những gì đã được tạo ra trước đó.
Sự cố này cũng củng cố tính hợp lý thực tế của việc sử dụng ví với các thiết bị từ nhiều nhà sản xuất khác nhau. Trong sơ đồ đa chữ ký, để phê duyệt giao dịch có thể yêu cầu các thiết bị phần cứng riêng biệt từ các nhà sản xuất khác nhau. Cấu trúc như vậy không loại trừ khả năng xảy ra lỗi firmware, nhưng có thể ngăn chặn tình huống một bộ tạo số ngẫu nhiên bị lỗi tự mình gây rủi ro cho toàn bộ ví.
end-content






