Gần đây tôi đã tìm hiểu về cơ chế của blockchain và nhận ra hầu hết mọi người thực sự không hiểu rõ điều gì làm cho hệ thống hoạt động. Nonce thực sự là một trong những phần bị bỏ qua nhưng lại cực kỳ quan trọng để mọi thứ vận hành.



Vì vậy, đây là vấn đề: nonce, viết tắt của number used once (số dùng một lần), về cơ bản là biến đặc biệt mà các thợ mỏ điều chỉnh trong quá trình khai thác. Nó không chỉ là một số ngẫu nhiên—nó đóng vai trò trung tâm trong cách proof-of-work thực sự bảo vệ blockchain. Hãy tưởng tượng nó như việc giải một câu đố mã hóa, trong đó bạn liên tục điều chỉnh nonce cho đến khi cho ra một kết quả băm (hash) đáp ứng các yêu cầu cụ thể của mạng, thường là nghĩa là có một số lượng số không đứng đầu nhất định.

Điều thú vị là cách mà khái niệm đơn giản này ngăn chặn được nhiều rối loạn. Khi bạn hiểu về nonce trong các giao thức bảo mật, bạn bắt đầu thấy tại sao việc sửa đổi dữ liệu blockchain là gần như không thể thực hiện được. Bất kỳ cố gắng nào để thay đổi nội dung của một khối đều có nghĩa là phải tính lại toàn bộ nonce từ đầu, điều này đòi hỏi sức mạnh tính toán cực kỳ lớn. Đó chính là mục đích của nó—làm cho các cuộc tấn công trở nên không khả thi về mặt kinh tế.

Trong Bitcoin cụ thể, các thợ mỏ tập hợp các giao dịch đang chờ xử lý vào một khối, thêm một nonce vào tiêu đề khối, rồi lặp đi lặp lại việc băm nó bằng SHA-256. Họ liên tục thay đổi giá trị nonce cho đến khi kết quả băm đáp ứng mục tiêu độ khó của mạng. Quá trình lặp đi lặp lại này gọi là khai thác (mining). Mạng cũng điều chỉnh độ khó này một cách linh hoạt—khi nhiều thợ mỏ tham gia hơn và sức mạnh mạng tăng lên, độ khó sẽ tăng để thời gian tạo khối vẫn duy trì ổn định.

Bây giờ, điểm quan trọng về mặt bảo mật là: nonce ngăn chặn việc chi tiêu gấp đôi (double-spending) vì mỗi giao dịch đều phải trải qua quá trình xác thực tính toán tốn kém này. Nó cũng chống lại các cuộc tấn công Sybil bằng cách làm cho việc tràn ngập mạng bằng các danh tính giả trở nên đắt đỏ. Khía cạnh bất biến (immutability) cũng rất lớn—khi một khối đã được khai thác với nonce chính xác, việc thay đổi bất cứ điều gì trong khối đó đều trở nên cực kỳ tốn kém.

Thực tế, trong lĩnh vực mật mã còn có các loại nonce khác nhau. Bạn có nonce trong các giao thức bảo mật để ngăn chặn replay attacks (tấn công phát lại), nonce trong hàm băm để thay đổi kết quả băm, và nonce trong lập trình để đảm bảo tính duy nhất của dữ liệu. Mỗi loại phục vụ một mục đích riêng tùy theo ứng dụng.

Điểm khác biệt chính mà mọi người thường bỏ qua là giữa hash và nonce. Hash giống như dấu vân tay—là đầu ra có kích thước cố định từ dữ liệu đầu vào. Nonce là biến mà các thợ mỏ điều chỉnh để tạo ra các hash đó. Công cụ khác nhau, nhiệm vụ khác nhau.

Tất nhiên, các cuộc tấn công liên quan đến nonce cũng tồn tại. Việc tái sử dụng nonce là nguy hiểm vì nếu ai đó có thể tái sử dụng nonce trong một quá trình mã hóa, họ có thể làm suy yếu toàn bộ mô hình bảo mật. Các mẫu nonce dự đoán được cũng là một lỗ hổng—nếu kẻ tấn công có thể dự đoán nonce, họ có thể thao túng các hoạt động. Đó là lý do tại sao việc tạo số ngẫu nhiên đúng cách và thực thi các giao thức nghiêm ngặt lại quan trọng đến vậy. Các cuộc kiểm tra định kỳ hệ thống mã hóa và tuân thủ các thuật toán tiêu chuẩn là điều không thể thương lượng nếu bạn muốn đi trước các mối đe dọa ngày càng tinh vi.

Cơ chế nonce chính là lý do tại sao bảo mật blockchain hoạt động hiệu quả ở quy mô lớn. Hiểu rõ điều này giúp bạn trân trọng lý do tại sao hệ thống lại chống lại việc sửa đổi dữ liệu một cách kiên cố như vậy.
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