Đã tìm hiểu về một số nguyên tắc cơ bản của blockchain gần đây, và tôi nghĩ có điều gì đó về nonce mà nhiều người bỏ qua mặc dù nó khá cốt lõi cho cách mọi thứ hoạt động.



Vậy nonce trong an ninh là gì? Cơ bản, nó viết tắt của số dùng một lần, và đây là biến quan trọng mà các thợ mỏ sử dụng trong quá trình khai thác. Hãy xem nó như một mảnh ghép câu đố mật mã giúp hệ thống chứng minh công việc hoạt động. Các thợ mỏ liên tục điều chỉnh giá trị nonce này cho đến khi họ tìm ra một đầu ra băm đáp ứng các yêu cầu cụ thể của mạng, thường là một 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, và chính nó bảo vệ toàn bộ blockchain.

Đây là lý do tại sao điều này quan trọng đối với an ninh: nonce là thứ khiến việc sửa đổi dữ liệu trở nên tốn kém về mặt tính toán. Nếu ai đó muốn thay đổi một khối, họ sẽ phải tính lại toàn bộ nonce, điều này gần như không thể do công việc liên quan. Đó chính là mục đích. Nó ngăn chặn việc chi tiêu gấp đôi và giữ cho hệ thống trung thực. Nonce tạo ra một chi phí tính toán khiến kẻ tấn công ngần ngại cố gắng chiếm quyền kiểm soát mạng. Nó giống như một người gác cửa khiến kẻ gây rối phải làm việc quá sức để vào.

Trong Bitcoin cụ thể, quá trình này khá đơn giản. Các thợ mỏ lấy các giao dịch đang chờ xử lý, đóng gói chúng thành một khối với một nonce mới trong phần tiêu đề, rồi băm tất cả bằng SHA-256. Họ kiểm tra xem kết quả băm có đáp ứng mục tiêu độ khó của mạng không. Nếu không, họ tăng nonce và thử lại. Lặp đi lặp lại cho đến khi tìm ra một kết quả phù hợp. Sau đó, mạng sẽ điều chỉnh độ khó này một cách linh hoạt để giữ thời gian khối ổn định. Khi nhiều thợ mỏ tham gia và sức mạnh băm tăng lên, độ khó sẽ tăng. Khi giảm, độ khó sẽ giảm để cân bằng. Đây là một hệ thống tự cân bằng tinh tế.

Điều thú vị là nonce xuất hiện dưới nhiều dạng khác nhau trong mật mã. Bạn có nonce mật mã dùng trong các giao thức bảo mật để ngăn chặn tấn công phát lại bằng cách tạo ra các giá trị duy nhất cho mỗi phiên. Rồi còn có nonce của hàm băm thay đổi đầu vào để thay đổi đầu ra. Ngay cả trong lập trình thông thường, nonce cũng giúp đảm bảo tính duy nhất của dữ liệu và ngăn xung đột. Tuy nhiên, ý tưởng cốt lõi vẫn là: tính duy nhất và không thể dự đoán.

Bây giờ, mọi người thường nhầm lẫn nonce với hàm băm. Một hàm băm giống như dấu vân tay của dữ liệu, đúng không? Đầu ra cố định từ đầu vào biến đổi. Trong khi đó, nonce là số bạn điều chỉnh để tạo ra các hàm băm khác nhau. Chúng phối hợp với nhau trong câu đố an ninh.

Nhưng đây là phần gây rối: các cuộc tấn công liên quan đến nonce. Những loại lớn nhất là tái sử dụng nonce, nơi kẻ tấn công dùng lại cùng một nonce và làm giảm an ninh, các cuộc tấn công nonce dự đoán được nơi mẫu trở nên dễ đoán, và các cuộc tấn công nonce lỗi thời sử dụng giá trị cũ. Để phòng ngừa, các giao thức cần đảm bảo tính duy nhất và không thể dự đoán của nonce. Việc tạo số ngẫu nhiên đúng cách là rất quan trọng. Các hệ thống cũng cần phát hiện và từ chối các nonce đã dùng lại. Trong mật mã bất đối xứng, việc tái sử dụng nonce có thể làm lộ khóa bí mật hoặc phá vỡ tính riêng tư của mã hóa, nên không nên xem nhẹ vấn đề này.

Điều rút ra? Một nonce vững chắc trong kiến trúc an ninh là nền tảng. Cập nhật liên tục các thư viện mật mã, kiểm tra định kỳ các triển khai, và tuân thủ nghiêm ngặt các thuật toán tiêu chuẩn là cách chúng ta đi trước các mối đe dọa ngày càng tinh vi. Đó là những điều nền tảng giúp hệ thống luôn đáng tin cậy.
BTC-1,7%
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