SatoshiGuesser: Trò chơi máy xèng "đoán" khóa riêng Bitcoin với xác suất gần như bằng không

30 tháng 4, 2026·4 phút đọc

SatoshiGuesser là một ứng dụng web dạng máy xèng sử dụng thuật toán mật mã học thực tế để thử tìm kiếm khóa riêng của ví Bitcoin thuộc về Satoshi Nakamoto. Dù xác suất trúng giải là gần như bằng không, dự án này là một ví dụ kỹ thuật thú vị về cách thức hoạt động của bảo mật Bitcoin và tối ưu hóa hiệu suất trên trình duyệt.

SatoshiGuesser: Trò chơi máy xèng "đoán" khóa riêng Bitcoin với xác suất gần như bằng không

SatoshiGuesser là một dự án mã nguồn mở độc đáo, kết hợp giữa yếu tố giải trí của máy xèng và kiến thức chuyên sâu về mật mã học. Về bản chất, đây là một trò chơi web cho phép người dùng "quay số" để thử đoán ngẫu nhiên khóa riêng (private key) của những ví Bitcoin được cho là thuộc về Satoshi Nakamoto – người tạo ra Bitcoin.

Mặc dù xác suất để trúng giải jackpot là gần như bằng không (khoảng 1 trên 5,27 × 10⁷²), nhưng giá trị của dự án nằm ở việc minh họa rõ ràng cơ chế hoạt động của bảo mật Bitcoin và khả năng tối ưu hóa hiệu suất trên trình duyệt.

Cơ chế hoạt động: Mật mã học thực sự

Điểm thú vị nhất của SatoshiGuesser là nó không phải là một trò chơi giả tạo; mọi tính toán đều dựa trên mật mã học thực tế của Bitcoin.

Quy trình tạo địa chỉ Bitcoin là một chuỗi xác định một chiều:

Số ngẫu nhiên 256-bit (Khóa riêng) ──► Khóa công khai secp256k1 ──► HASH160 ──► Địa chỉ Base58Check

Mỗi lần người chơi kéo cần quay, trò chơi sẽ tạo ra một số ngẫu nhiên 256-bit. Số này chính là một khóa riêng hợp lệ. Sau đó, hệ thống sẽ thực hiện các phép toán đường cong elliptic (secp256k1) và hàm băm (SHA256 và RIPEMD160) để suy ra địa chỉ ví tương ứng. Nếu địa chỉ này khớp với bất kỳ địa chỉ nào trong danh sách khoảng 22.000 địa chỉ "mẫu Patoshi" (Patoshi-pattern coinbase addresses) hoặc khối genesis (genesis block) của Satoshi, người chơi sẽ chiến thắng.

Toàn bộ quá trình này diễn ra hoàn toàn ở phía máy khách (client-side), không cần kết nối tới máy chủ hay gọi API blockchain nào.

Tối ưu hóa hiệu suất với bộ lọc Bloom

Để đảm bảo trò chơi chạy mượt mà trên trình duyệt mà không bị treo khi xử lý hàng nghìn lần quay mỗi giây, tác giả đã sử dụng Bộ lọc Bloom (Bloom filter).

  • Bộ lọc Bloom: Một cấu trúc dữ liệu không gian nhỏ (khoảng 135 KB) cho phép kiểm tra nhanh xem một địa chỉ có khả năng nằm trong danh sách mục tiêu hay không. Nó giúp loại bỏ hầu hết các trường hợp "trượt" mà không cần tải toàn bộ cơ sở dữ liệu nặng nề.
  • Lazy-loading: Chỉ khi bộ lọc Bloom báo cáo một kết quả dương tính (tiềm năng trúng giải), bảng dữ liệu chi tiết (khoảng 615 KB) mới được tải xuống để xác minh chính xác số dư và địa chỉ.

Nhờ đó, trò chơi có thể xử lý tốc độ khoảng 2.500 lần quay mỗi giây.

Các tính năng kỹ thuật nổi bật

Dự án được xây dựng như một ứng dụng trang đơn (Single Page Application) không sử dụng framework, chỉ dùng HTML, CSS và JavaScript thuần (Vanilla JS).

  • Giao diện: Cung cấp hai chế độ quay: chế độ cổ điển (3 cuộn) và chế độ thực tế (hiển thị 64 ô hex thể hiện khóa riêng).
  • Âm thanh: Sử dụng Web Audio API để tổng hợp âm thanh trực tiếp (tiếng click, tiếng quay, tiếng thắng giải) mà không cần tải file mp3 hay wav bên ngoài.
  • Triển khai: Đây là một trang tĩnh (static site), dễ dàng triển khai lên Cloudflare Pages mà không cần cấu hình máy chủ phức tạp.
  • Chế độ phát triển: Có cờ ?devwin=1 để giả lập việc trúng giải nhằm kiểm tra giao diện người dùng (UI) khi chiến thắng.

Xác suất và thực tế

Tác giả đã tính toán rất kỹ về khả năng trúng giải để người dùng hiểu rõ quy mô của không gian khóa Bitcoin.

  • Không gian khóa: 2²⁵⁶ (khoảng 1,158 × 10⁷⁷ khóa riêng hợp lệ).
  • Địa chỉ mục tiêu: 21.954.
  • Xác suất trúng mỗi lần quay: Khoảng 1 trên 5,27 × 10⁷².

Để dễ hình dung, con số này khó khăn gấp 10 triệu lần so với việc chọn ra một nguyên tử cụ thể trong toàn bộ vũ trụ quan sát được. Nếu bạn quay liên tục mỗi mili-giây, bạn sẽ cần khoảng 1,7 × 10⁶² năm mới có hy vọng trúng giải – một thời gian dài hơn rất nhiều so với tuổi của vũ trụ hiện tại.

SatoshiGuesser là một dự án nhỏ nhưng tinh tế, dành cho những ai muốn tìm hiểu về Bitcoin, mật mã học và kỹ thuật lập trình web một cách trực quan và thú vị.

  • Mã nguồn: GitHub (Pathos0925/SatoshiGuesser)
  • Trực tiếp: satoshiguesser.com
Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗