1. Nonce là gì?
Nonce (số chỉ dùng một lần) là một con số ngẫu nhiên mà các thợ đào Bitcoin phải tìm kiếm khi khai thác một khối mới trong một blockchain của Bitcoin để nhận được phần thưởng khối. Đây là một con số quan trọng để blockchain Bitcoin hoạt động trơn tru hơn.
Việc khai thác khối mới giúp ghi lại và xác minh các giao dịch trên sổ cái của Bitcoin cũng như tạo ra Bitcoin mới đưa vào lưu thông trong thị trường.
Nonce đảm bảo mỗi khối có một hàm băm duy nhất giúp định danh cho khối và mở rộng blockchain. Bằng cách điều chỉnh Nonce, các thợ đào có thể sửa đổi các giá trị băm từ đó có thể giải quyết các bài toán để khai thác khối mới.
2. Phương thức hoạt động của Nonce
Bitcoin Nonce là một số ngẫu nhiên 32 bit (hoặc 4 byte). Các thợ đào sẽ cố gắng tìm ra số Nonce thông qua các chương trình tính toán để có thể tạo ra một hàm băm hợp lệ và duy nhất giúp hình thành một khối mới trong chuỗi khối Bitcoin.
Nonce là một trong những yếu tố chính trong thuật toán Proof-of-Work (PoW) và cơ chế đồng thuận xác thực cũng như bảo mật mạng của Bitcoin.
Hơn thế nữa, Nonce là biến duy nhất trong tiêu đề khối mà các thợ đào có thể sửa đổi. Khi sửa đổi Nonce, các thợ đào có thể thay đổi hàm băm của khối và tính toán các giải pháp khả thi khác nhau để tạo ra một khối mới.
Người khai thác đầu tiên tìm thấy hàm băm hợp lệ theo yêu cầu độ khó của mạng sẽ được trao phần thưởng khối và quyền tạo khối mới vào blockchain.
Để tìm ra một Nonce hợp lệ, các thợ đào cần liên tục tăng giá trị Nonce và tính toán lại hàm băm cho đến khi giá trị băm đáp ứng được độ khó mục tiêu của mạng lưới.
Nếu giá trị băm lớn hơn hàm băm mục tiêu của mạng lưới, thợ đào sẽ thử lại với một Nonce được tạo ngẫu nhiên khác. Nếu giá trị băm bằng hoặc nhỏ hơn hàm băm mục tiêu, thợ đào đã thành công và nhận phần thưởng bao gồm Bitcoin mới và phí giao dịch với một khối mới.
3. Tầm quan trọng của Nonce
Khi độ khó tăng lên, quá trình tìm kiếm một Nonce hợp lệ sẽ đòi hỏi khắt khe về cách tính toán, điện năng và hiệu suất máy tính đáng kể theo thời gian. Tuy nhiên, Nonce giúp duy trì tính toàn vẹn và bảo mật của blockchain trong Bitcoin, hỗ trợ ngăn chặn kẻ tấn công đang giả mạo dữ liệu khối.
Một người thợ đào hầu như không thể đoán được giá trị của Nonce trong lần thử đầu tiên. Các thợ đào trong hệ thống PoW thường phải thử nghiệm một số lượng lớn các Nonce trước khi có kết quả chính xác.
Điều này sẽ giúp bảo mật mạng Bitcoin vì khi phương thức tính toán không khả thi thì việc kiểm soát blockchain khỏi các cuộc tấn công phối hợp, các lỗi giao dịch 51% và gấp đôi chi tiêu sẽ dễ dàng hơn.
4. Độ khó tìm Nonce
Độ khó của việc tìm nonce trong quá trình khai thác sẽ được điều chỉnh linh hoạt nhằm duy trì tốc độ tạo khối ổn định trên mạng, ví dụ như mạng Bitcoin, nơi mỗi khối được khai thác trong khoảng thời gian 10 phút.
Điều này có nghĩa là độ khó tìm nonce sẽ thay đổi dựa trên tổng sức mạnh tính toán của mạng, để đảm bảo rằng thợ đào luôn gặp phải thách thức tương ứng với mức độ tính toán trên blockchain. Cụ thể:
- Khi số lượng thợ đào tăng lên, tổng sức mạnh tính toán của mạng cũng tăng, dẫn đến việc độ khó tăng theo, đòi hỏi thợ đào phải có sức mạnh tính toán lớn hơn để tìm ra nonce hợp lệ.
- Ngược lại, khi số lượng thợ đào giảm hoặc khả năng xử lý của mạng yếu đi, độ khó cũng giảm, khiến việc khai thác khối trở nên dễ dàng hơn.
Để đối phó với độ khó tăng lên, thợ đào có thể nâng cấp dàn máy đào của mình, trang bị phần cứng mạnh mẽ hơn, giúp gia tăng sức mạnh tính toán và giải các hàm băm nhanh hơn, từ đó tìm được nonce hợp lệ trước các thợ đào khác.
5. Một số lưu ý về Nonce khi khai thác Bitcoin
-
Độ khó của khối sẽ ở cùng một mức trên toàn bộ mạng lưới Bitcoin để giúp cho tất cả các thợ đào đều có cơ hội tìm ra hàm băm chính xác.
-
Nếu tốc độ băm của mạng lưới tăng lên, độ khó sẽ tăng lên khiến việc tìm kiếm một Nonce hợp lệ trở nên khó khăn hơn. Cơ chế này đảm bảo cho các khối được tạo ra với tốc độ nhất quán bất kể số lượng thợ đào tham gia.
-
Khi số lượng khối được xử lý không đáp ứng độ khó mục tiêu thì độ khó sẽ giảm. Nếu mạng lưới được đáp ứng quá nhanh, độ khó sẽ tăng lên. Khi độ khó ngày càng tăng lên thì nhiều Nonce sẽ được tạo ra để đáp ứng nhiều lần thử hơn trong quá trình giá trị băm.
6. Sự khác biệt giữa Nonce và Hash
7. Kết luận
Trong khai thác Bitcoin, các thợ đào sẽ phải liên tục tìm ra một Nonce cùng với một hàm băm đáp ứng các yêu cầu của mạng lưới để tạo ra các khối mới giúp xác thực các giao dịch gần đây và phát hành Bitcoin mới.
Hàm băm là một mã định danh duy nhất cho mỗi khối trong chuỗi khối Bitcoin và là một chuỗi ký tự có độ dài cố định được tạo ra bằng cách gán hàm băm mật mã cho một phần dữ liệu trong quá trình băm.
Dữ liệu được băm là tiêu đề khối và một phần thông tin về khối. Khi một Nonce hợp lệ được tìm thấy, nó sẽ bị loại bỏ và không bao giờ được sử dụng nữa.
Trên đây là chia sẻ của Bigcoin Việt Nam về Nonce. Nếu như có bất kỳ thắc mắc nào khác, bạn có thể đặt câu hỏi tại nhóm Bigcoin Việt Nam để được giải đáp.
Đọc thêm: