Bạn có từng tự hỏi điều gì thực sự giữ cho Bitcoin của bạn an toàn khỏi hacker không? Có một thứ nhỏ gọi là nonce mà hầu hết mọi người chưa từng nghe đến, nhưng nó đang đảm nhận vai trò quan trọng trong thế giới blockchain.



Vậy nonce trong bảo mật là gì? Cơ bản, đó là một số dùng một lần - từ đó có tên gọi như vậy. Trong blockchain, thợ mỏ (miners) gán số đặc biệt này cho mỗi khối trong quá trình khai thác, và nó là nền tảng cho cách hoạt động của bằng chứng công việc (proof-of-work). Hãy nghĩ nó như là phần chìa khóa trong một câu đố mã hóa mà các thợ mỏ phải giải.

Điều thú vị là, các thợ mỏ không chỉ cắm một nonce rồi dừng lại. Họ liên tục thay đổi nó nhiều lần cho đến khi tìm ra một giá trị băm (hash) phù hợp với yêu cầu của mạng lưới - thường là một giá trị có số lượng số không đứng đầu nhất định. Quá trình thử và sai này gọi là khai thác mỏ (mining), và chính nó là lý do tại sao mô hình bảo mật của Bitcoin lại vững chắc đến vậy.

Điều làm cho nonce trở nên quan trọng đối với bảo mật là nó tạo ra một rào cản tính toán khổng lồ chống lại việc sửa đổi dữ liệu. Nếu ai đó cố gắng thay đổi chỉ một ký tự trong một khối, họ sẽ phải tính lại toàn bộ nonce từ đầu. Điều này về mặt tính toán là không thực tế, và đó chính là ý đồ. Nonce về cơ bản khiến cho các tác nhân xấu không thể thao túng blockchain về mặt kinh tế.

Trong mạng Bitcoin cụ thể, các thợ mỏ tập hợp các giao dịch đang chờ xử lý thành một khối, thêm một nonce duy nhất vào tiêu đề khối, rồi băm toàn bộ bằng SHA-256. Họ so sánh giá trị băm đó với mục tiêu độ khó của mạng. Nếu không phù hợp, họ điều chỉnh nonce và thử lại. Quá trình này lặp đi lặp lại cho đến khi tìm ra một hash hợp lệ. Mạng lưới tự động điều chỉnh độ khó dựa trên sức mạnh tính toán tham gia - nếu nhiều thợ mỏ tham gia hơn, độ khó tăng lên; nếu ít hơn, độ khó giảm xuống. Điều này giúp giữ thời gian tạo khối ổn định.

Ngoài blockchain, nonce còn xuất hiện dưới các dạng khác nhau trong mật mã. Có nonce mã hóa dùng trong các giao thức bảo mật để ngăn chặn tấn công phát lại (replay attack), và nonce của hàm băm dùng để thay đổi dữ liệu đầu vào trong các thuật toán băm. Mỗi loại đều phục vụ mục đích riêng, nhưng tất cả đều chia sẻ nguyên tắc cốt lõi: đảm bảo tính duy nhất và ngăn chặn các cuộc tấn công.

Bây giờ, mọi người thường hỏi nonce trong bảo mật khác gì so với hash. Đáp án đơn giản - hash giống như dấu vân tay của dữ liệu, còn nonce là số đặc biệt mà các thợ mỏ dùng để tạo ra những dấu vân tay đó. Hash là kết quả cố định kích thước, còn nonce là đầu vào biến đổi cho đến khi đạt được kết quả phù hợp.

Tác động về bảo mật còn sâu hơn nữa. Một nonce trong bảo mật giúp ngăn chặn chi tiêu gấp đôi (double-spending) bằng cách buộc các thợ mỏ phải thực hiện công việc tính toán thực sự. Nó cũng chống lại các tấn công Sybil, nơi ai đó cố gắng làm quá tải mạng lưới bằng các danh tính giả. Thêm vào đó, nó duy trì tính bất biến của khối - bất kỳ cố gắng thay đổi dữ liệu cũ đều yêu cầu tính lại toàn bộ các nonce, điều này trở nên ngày càng khó khăn theo thời gian, đặc biệt là với các khối cũ.

Tuy nhiên, nonce không hoàn hảo. Có các lỗ hổng tấn công như tái sử dụng nonce, nơi ai đó cố gắng dùng lại cùng một nonce trong các quá trình mã hóa, có thể tiết lộ khóa bí mật. Tấn công nonce dự đoán xảy ra khi quá trình tạo nonce không thực sự ngẫu nhiên. Cũng có các tấn công nonce cũ (stale nonce) khi các nonce cũ, hợp lệ trước đó, bị phát lại.

Để ngăn chặn các cuộc tấn công này, cần thực hành mã hóa vững chắc. Việc tạo số ngẫu nhiên phải thực sự ngẫu nhiên với xác suất lặp lại cực thấp. Các hệ thống nên từ chối
BTC0,22%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim