Một con súc sắc sáu mặt tạo ra khoảng 2,6 bit thông tin không thể dự đoán với mỗi lần lăn. Điều đó có thể nghe không nhiều, nhưng nếu lặp lại đủ lần, những lần lăn đó có thể tạo ra độ ngẫu nhiên thô cần thiết để bảo vệ ví bitcoin mà không cần dựa vào phần mềm hoặc thành phần điện tử.
Những điểm chính
- Một lần gieo xúc xắc sáu mặt cung cấp khoảng 2,585 bit entropy, theo công thức của Claude Shannon.
- Tài liệu của Coinkite cho biết 50 lần ném xúc xắc đáp ứng tiêu chuẩn 128-bit cho mật khẩu khởi tạo ví bitcoin.
- Phân tích Wizard Sardine của Kevin Loaec đã cảnh báo rủi ro trong các công cụ Coldcard ngoài seed chính.
Tại sao việc ném xúc xắc lại khó dự đoán đến vậy
Claude Shannon, nhà toán học đã thiết lập lý thuyết thông tin, đã sử dụng entropy để đo mức độ không chắc chắn của một kết quả. Với một con súc sắc sáu mặt công bằng, mỗi mặt có xác suất xuất hiện là một trong sáu. Điều này mang lại mỗi lần ném khoảng 2,585 bit entropy. Một lần tung đồng xu tạo ra 1 bit, trong khi một con súc sắc tám mặt tạo ra 3 bit.

Sự cố gần đây của Coldcard đã thúc đẩy việc tạo seed dựa trên xúc xắc lan truyền trên mạng xã hội. Một số người dùng hiện coi đây là điều thiết yếu, một số khác cho rằng nó đã bảo vệ tài sản của họ, trong khi các chuyên gia giàu kinh nghiệm chỉ ra rằng hầu hết người mới bắt đầu sẽ không chịu được quy trình thiết lập chậm và dễ xảy ra lỗi.
Phần quan trọng không phải là một con xúc xắc lăn có hành vi ngẫu nhiên ở cấp độ nguyên tử. Nó không ngẫu nhiên. Kết quả được điều khiển bởi vật lý, nhưng quá nhiều biến số nhỏ đang 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 độ, góc, độ cao và tốc độ quay nhất định, sau đó va vào bàn và thay đổi hướng sau mỗi lần nảy.
Trong thực tế, ngay cả một sự thay đổi nhỏ trong quá trình phát hành cũng có thể tạo ra kết quả hoàn toàn khác biệt. Một vị trí ngón tay hơi khác biệt hoặc lực ném mạnh hơn một chút sẽ thay đổi quỹ đạo đủ để con số cuối cùng không thể được dự đoán bằng cách quan sát chuyển động. Kết quả có thể là xác định về mặt lý thuyết, nhưng đối với việc tạo ví, điều quan trọng là kẻ tấn công không thể tái tạo hoặc tính toán nó.
Chuyển đổi các lần lăn xúc xắc thành dữ liệu có thể sử dụng
Một máy tính không thể sử dụng trực tiếp danh sách kết quả xúc xắc. Các lần lăn phải được chuyển đổi thành dữ liệu nhị phân trước, và phương pháp chuyển đổi là quan trọng.
Một phương pháp cơ bản chẵn-lẻ dễ hiểu, nhưng lãng phí phần lớn độ ngẫu nhiên có sẵn. Mỗi lần ném chỉ được giảm xuống thành một bit, 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 ném và xử lý toàn bộ chuỗi, thường thông qua hàm băm mật mã. Điều này giữ lại nhiều độ ngẫu nhiên hơn.
Nguyên tắc tương tự xuất hiện trong Diceware, một phương pháp đã tồn tại lâu đời để tạo các cụm mật khẩu an toàn, và trong quá trình tạo ví bitcoin thủ công. Một cụm khôi phục ví 12 từ điển hình được xây dựng từ 128 bit entropy. Với khoảng 2,6 bit mỗi lần lăn, khoảng 50 lần lăn công bằng cung cấp đủ thông tin thô để vượt qua ngưỡng đó.
Coinkite, nhà sản xuất ví phần cứng Coldcard, khuyến nghị sử dụng 99 cuộn trở lên cho những người dùng muốn đạt gần 256 bit entropy. Điều này không làm cho ví trở nên khó sử dụng gấp đôi, nhưng giúp tạo ra bí mật có biên độ bảo mật toán học lớn hơn nhiều.
Một bài kiểm tra thực tế với các hạt được tạo bởi 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 bắt nguồn 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 yếu hơn liên quan đến thông tin thiết bị không bí mật.
Vì một phần của quy trình đó có thể được tái tạo, các kẻ tấn công đã có thể thu hẹp phạm vi các khóa ví khả thi thay vì tìm kiếm toàn bộ không gian khóa. Lỗ hổng này được liên kết với vụ đánh cắp khoảng 1.128,6633 BTC từ khoảng 1.100 địa chỉ, tính đến 1 giờ chiều giờ Đông.

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

Một ví chính được tạo bằng 99 lần lăn xúc xắc vẫn nằm ở 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 sự ngẫu nhiên mới từ bộ tạo ngẫu nhiên bị lỗi. Kết quả là, một 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 thiết bị đều có mức độ an toàn tương đương.
Tại sao phần lớn người dùng mới sẽ không chơi xúc xắc
Entropy do Dice tạo ra là về mặt kỹ thuật chính xác khi được thực hiện đúng cách, nhưng đây không phải là phương pháp mặc định thực tế cho hầu hết người dùng mới. Việc ném xúc xắc 50 hoặc 99 lần, nhập chính xác từng kết quả và xác nhận rằng không có lần ném nào bị bỏ sót hay lặp lại đòi hỏi sự kiên nhẫn và tập trung cao độ. Một con số nhập sai có thể làm thay đổi hoàn toàn ví cuối cùng, và hầu hết các thiết bị không thể xác định được lỗi xuất phát từ việc ném xúc xắc sai, lỗi nhập liệu hay hiểu sai hướng dẫn.

Quá trình này cũng mang lại những rủi ro không tồn tại khi sử dụng bộ tạo phần cứng hoạt động đúng cách. Người dùng có thể ghi các lần lăn ra 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 khác có thể tìm thấy. Một số người lăn xúc xắc theo cách lặp đi lặp lại hoặc kiểm soát, sử dụng xúc xắc bị gian lận hoặc hỏng, hoặc dừng lại sớm vì cảm thấy quy trình quá mức. Toán học có thể mạnh mẽ, nhưng kết quả chỉ an toàn bằng quy trình của người dùng.

Đó là lý do tại sao việc ném 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 đối với nhiều người, ngay cả trong số những người dùng bitcoin có kinh nghiệm. Nó thay thế sự tin tưởng vào thiết bị bằng sự tin tưởng vào quy trình thủ công. Đối với người dùng kỹ thuật cẩn thận, hiểu rõ độ ngẫu nhiên, xác minh phương pháp và giữ bí mật chuỗi ném xúc xắc, sự đánh đổi này có thể hợp lý. Đối với người mua trung bình đang thiết lập ví lần đầu tiên, nó tạo ra nhiều cơ hội để mắc lỗi vĩnh viễn, đồng thời cũng là một quy trình gây phiền toái.

Cũng rất khó để hình dung việc áp dụng rộng rãi bitcoin phụ thuộc vào việc mọi người ngồi tại bàn và ghi lại 99 kết quả xúc xắc trước khi nhận được tiền và thực hiện một cách an toàn. Các thực hành bảo mật phải tồn tại trong môi trường gia đình thực tế, lịch trình bận rộn, sự phân tâm và những người dùng không muốn tìm hiểu về mật mã học. Entropy thủ công nên vẫn được giữ dưới dạng tùy chọn nâng cao, nhưng mục tiêu dài hạn là phần cứng và phần mềm có thể tạo ra độ 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 ít kiến thức chuyên môn nhất có thể.
Những điều chủ sở hữu Coldcard nên kiểm tra
Các chủ sở hữu thiết bị Coldcard bị ảnh hưởng nên trước tiên xác minh phiên bản firmware được cài đặt trên thiết bị. Sau đó, họ nên xem xét các tính năng nào đã sử dụng khi chạy phiên bản firmware cũ, thay vì chỉ tập trung vào cách tạo seed ví chính.
Bất kỳ ai đã sử dụng thiết bị bị ảnh hưởng để tạo ví giấy, sao chép bí mật, mật khẩu, khóa đồng ký, hoặc mã xác thực đều có thể cần thay thế những thông tin đó ngay lập tức. Việc cài đặt bản cập nhật sẽ ngăn chặn vấn đề tương tự ảnh hưởng đến các bí mật mới, nhưng không khôi phục bất kỳ thông tin nào đã được tạo trước đó.
Sự cố này cũng củng cố thêm lập luận thực tế cho các thiết lập ví đa nhà cung cấp. Trong một thỏa thuận đa chữ ký, 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 xác nhận giao dịch. Cấu trúc này không loại trừ hoàn toàn lỗi phần mềm, nhưng có thể ngăn chặn một bộ tạo số ngẫu nhiên bị lỗi duy nhất làm lộ toàn bộ ví của bạn.
