Bạn có từng tự hỏi điều gì thực sự làm cho khai thác blockchain hoạt động không? Gần đây tôi đã tìm hiểu sâu hơn về vấn đề này, và nonce thật sự là một trong những khái niệm nghe có vẻ đơn giản ở bề mặt nhưng trở nên rất thú vị khi bạn hiểu rõ những gì đang thực sự diễn ra.



Vậy hãy để tôi giải thích rõ hơn về nonce là gì. Thuật ngữ này viết tắt của "số dùng một lần" (number used once), và về cơ bản nó là một số đặc biệt được gán cho mỗi khối trong quá trình khai thác. Hãy nghĩ nó như là phần chìa khóa mà các thợ mỏ liên tục điều chỉnh để giải quyết câu đố tính toán giúp bảo vệ toàn bộ chuỗi khối. Nó là trung tâm của cách hoạt động của cơ chế đồng thuận bằng chứng công việc (proof-of-work).

Điều thú vị ở đây là các thợ mỏ không chỉ tìm ra nonce một lần rồi dừng lại. Họ tham gia vào vòng lặp thử và sai, liên tục thay đổi giá trị nonce cho đến khi tạo ra một hàm băm (hash) phù hợp với yêu cầu cụ thể của mạng lưới. Thường thì đó là tìm một hàm băm bắt đầu bằng một số lượng số 0 nhất định ở đầu. Quá trình lặp đi lặp lại này chính là quá trình khai thác, và nó là cách bảo vệ toàn bộ mạng lưới. Tất cả hoạt động vì một khi bạn tìm ra nonce đúng, điều đó chứng tỏ bạn đã thực hiện công việc tính toán, và điều đó xác nhận khối đó hợp lệ.

Điều thực sự quan trọng ở đây là góc độ an ninh. Nonce đóng vai trò then chốt trong khái niệm nonce trong an ninh — nó là cơ chế khiến việc sửa đổi dữ liệu trở nên cực kỳ tốn kém về mặt tính toán. Nếu ai đó cố gắng thay đổi một giao dịch trong một khối, họ sẽ phải tính lại nonce cho khối đó, cộng với tất cả các khối sau đó. Điều này cực kỳ khó khăn, chính xác như mục đích của nó. Chính rào cản tính toán này giúp ngăn chặn các tác nhân độc hại chỉ việc viết lại lịch sử.

Hãy để tôi dẫn bạn qua cách hoạt động này cụ thể trong Bitcoin. Khi các thợ mỏ làm việc trên một khối mới, họ bắt đầu bằng cách tập hợp tất cả các giao dịch đang chờ xử lý. Sau đó, họ thêm một nonce duy nhất vào phần tiêu đề của khối. Sử dụng hàm băm SHA-256, họ băm toàn bộ khối. Hàm băm này sau đó được so sánh với mục tiêu độ khó của mạng lưới. Nếu không phù hợp, họ sẽ tăng giá trị nonce và thử lại. Quá trình này diễn ra hàng nghìn hoặc hàng triệu lần cho đến khi ai đó tìm ra một hàm băm thỏa mãn tiêu chí độ khó. Khi đó, khối được xác nhận và thêm vào chuỗi.

Một điều tôi thấy khá tinh tế là cách độ khó điều chỉnh một cách linh hoạt. Mạng lưới không giữ nguyên độ khó của câu đố mãi mãi. Khi nhiều thợ mỏ tham gia và tổng sức mạnh tính toán tăng lên, độ khó sẽ tăng theo. Điều này đảm bảo các khối vẫn được tạo ra với tốc độ đều đặn, khoảng mỗi 10 phút đối với Bitcoin. Nếu các thợ mỏ rút lui và sức mạnh tính toán giảm, độ khó sẽ giảm xuống. Đó là một hệ thống tự cân bằng.

Ngoài ra, nonce không chỉ là một khái niệm của Bitcoin. Khái niệm này xuất hiện trong nhiều ứng dụng khác nhau, nhưng dưới các dạng khác nhau. Có nonce trong các giao thức mã hóa để ngăn chặn tấn công phát lại (replay attack) — mỗi giao dịch hoặc phiên làm việc đều có một giá trị nonce duy nhất. Cũng có nonce trong các hàm băm để thay đổi đầu vào và tạo ra đầu ra khác nhau. Trong lập trình nói chung, nonces giúp đảm bảo tính duy nhất của dữ liệu và ngăn xung đột. Nhưng tất cả đều nhằm mục đích tạo ra sự duy nhất và thêm rào cản tính toán.

Tôi nghĩ cần làm rõ sự khác biệt giữa hàm băm (hash) và nonce vì đôi khi mọi người nhầm lẫn. Hàm băm giống như dấu vân tay — là đầu ra cố định kích thước bạn nhận được khi chạy dữ liệu qua một thuật toán băm. Nonce là đầu vào biến đổi mà các thợ mỏ thao tác để tạo ra các hàm băm khác nhau. Bạn cần nonce để tạo ra hàm băm; chúng phối hợp với nhau trong quá trình khai thác.

Điều này dẫn đến các tác động về an ninh trở nên nghiêm trọng hơn. Nonce giúp ngăn chặn việc chi tiêu gấp đôi (double-spending) vì chi phí tính toán để tìm ra nonce hợp lệ khiến việc thay đổi lịch sử giao dịch trở nên không khả thi. 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 tạo ra các danh tính giả trên mạng trở nên đắt đỏ. Các kẻ tấn công sẽ cần rất nhiều tài nguyên tính toán để tạo ra đủ các nonce hợp lệ nhằm chiếm quyền kiểm soát mạng. Và vì việc thay đổi bất kỳ khối lịch sử nào đều yêu cầu tính lại tất cả các nonce sau đó, chuỗi khối trở nên gần như không thể thay đổi. Chính tính bất biến này là lý do chúng ta tin tưởng vào sổ cái.

Tuy nhiên, nonces không hoàn hảo và có những lỗ hổng tấn công đã biết. Một trong số đó là tấn công "tái sử dụng nonce" (nonce reuse), trong đó kẻ tấn công cố gắng tái sử dụng cùng một nonce trong một phép toán mã hóa, có thể làm lộ khóa bí mật hoặc làm suy yếu tính bảo mật của chữ ký số. Một dạng tấn công khác là "tấn công nonce dự đoán" (predictable nonce) — nếu nonces theo một mẫu có thể dự đoán trước, kẻ tấn công có thể đoán trước và thao túng các phép toán mã hóa. Cũng có thể xảy ra tấn công "nonce lỗi thời" (stale nonce), khi các nonce cũ bị tái sử dụng một cách không hợp lệ.

Cách phòng thủ đơn giản về lý thuyết nhưng đòi hỏi thực hiện cẩn thận. Bạn cần tạo ra nonce ngẫu nhiên thực sự, có xác suất thấp để lặp lại. Các giao thức cần phát hiện và từ chối các nonce đã dùng rồi. Cần kiểm tra định kỳ các triển khai mã hóa và tuân thủ nghiêm ngặt các thuật toán tiêu chuẩn. Và việc giám sát liên tục các mẫu sử dụng nonce bất thường giúp phát hiện sớm các cuộc tấn công. Đặc biệt trong mã hóa bất đối xứng, việc tái sử dụng nonce có thể gây thảm họa — có thể làm lộ khóa bí mật hoặc làm lộ thông tin liên lạc đã được mã hóa.

Điều khiến tôi ấn tượng khi hiểu về nonce trong an ninh là phần lớn độ bền của blockchain dựa vào cơ chế này. Nó đơn giản nhưng vô cùng mạnh mẽ trong tác dụng. Toàn bộ hệ thống proof-of-work dựa trên việc các thợ mỏ liên tục băm các khối với các nonce khác nhau cho đến khi tìm ra một nonce phù hợp. Công việc tính toán đó chính là lý do khiến chuỗi khối trở nên đáng tin cậy.

Càng hiểu sâu về cách hoạt động này, bạn càng trân trọng lý do tại sao thiết kế của Bitcoin lại tồn tại vững chắc đến vậy. Mỗi thành phần, kể cả nonce, đều phục vụ một mục đích an ninh cụ thể. Không chỉ đơn thuần là tìm một con số — mà còn là làm cho chi phí tấn công mạng trở nên quá cao về mặt kinh tế, khiến việc tấn công trở nên phi lý. Đó chính là đổi mới thực sự ở đây.
BTC2,11%
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
  • Gate Fun hot

    Xem thêm
  • Vốn hóa:$2.24KNgười nắm giữ:1
    0.00%
  • Vốn hóa:$2.24KNgười nắm giữ:1
    0.00%
  • Vốn hóa:$2.25KNgười nắm giữ:1
    0.00%
  • Vốn hóa:$2.23KNgười nắm giữ:1
    0.00%
  • Vốn hóa:$2.22KNgười nắm giữ:1
    0.00%
  • Ghim