Mục đích
Bài viết này cung cấp một đánh giá sâu sắc hơn về các khối lệnh và cách chúng hỗ trợ chuỗi khối trong việc duy trì trật tự trong khi ngăn chặn các khối trùng lặp.
Các giả định được thực hiện
Bài viết này giả định người đọc hiểu thông tin trong các bài viết sau:
Kiến thức cơ bản về Blockchain(TODO: Check URL!)
Khối(TODO: Check URL!)
Hashes(TODO: Check URL!)
Tóm tắt
Trong hầu hết các blockchains, có hai loại nonces. Một cái được gọi là "account nonce" (tài khoản nonce), trong khi cái kia là nonce "proof of consensus" (bằng chứng đồng thuận) — một account nonce hoạt động như một hàng đợi cho các giao dịch liên quan đến địa chỉ của ví. Khối đầu tiên được thêm vào sẽ có account nonce là 1 và khối thứ hai sẽ có tài khoản từ số 2, được tính liên tục. Bằng cách duy trì hồ sơ về các lần ngắt tài khoản, bất kỳ hệ thống nào tương tác với chuỗi đó đều biết tài khoản tiếp theo là gì để giữ đơn đặt hàng này.
Bằng chứng về sự không đồng thuận là những con số được tính toán để tạo ra hàm hash “tiếp theo” mong muốn từ khối hiện tại. Sau khi xác định nonce tài khoản, hash "trước đó" được ghi lại và các giao dịch được ghi; một khối cần hash “tiếp theo” để chuỗi có thể tiếp tục. Nếu hàm hash “tiếp theo” phải bắt đầu bằng một chuỗi cụ thể, chẳng hạn như 0x0000… thì cách duy nhất để đạt được điều này là thêm một số vào khối cho đến khi hàm hash “tiếp theo” được tạo đáp ứng tiêu chuẩn bắt buộc. Con số được tạo ra này là bằng chứng của sự không đồng thuận. Khi người xác nhận sử dụng phần mềm của họ để xử lý các giao dịch blockchain, họ thường thực hiện phép toán cần thiết để xác định thời điểm xuất hiện của một khối để nó có thể được thêm vào chuỗi. Sau khi hoàn thành phép toán để đạt được nonce chính xác, những người xác thực đã tìm thấy khối tiếp theo thường được thưởng bằng tiền điện tử của blockchain.
Nonces cho phép tăng cường bảo mật cho các giao dịch vì không ai có thể tạo bản sao chính xác của giao dịch cho chính mình. Đây được gọi là một cuộc tấn công phát lại. Trong một cuộc tấn công phát lại, một tác nhân xấu sẽ sao chép một giao dịch đã cố gắng và đã được chấp thuận nhưng thay đổi một phần của nó theo hướng có lợi cho họ. Bởi vì bằng chứng về sự đồng thuận nonce phải được tính toán để thêm khối vào chuỗi, bản gốc phải được viết trước. Sau khi được viết, tài khoản nonce đảm bảo giao dịch là duy nhất và không thể sao chép để gửi lại sau này. Việc không liên kết tài khoản cũng ngăn chặn các giao dịch trùng lặp hoặc chồng chéo, được gọi là chi tiêu gấp đôi, trong đó người dùng có thể cố gắng gửi lại giao dịch nhiều lần để chi tiêu nhiều hơn những gì họ có trong ví của họ. Vì có một số nonce tài khoản duy nhất cho mỗi giao dịch, nó sẽ chỉ chấp nhận một tài khoản và từ chối phần còn lại khi blockchain thấy cùng một số nonce trong một vài lần thử. Mỗi giao dịch được thực hiện an toàn với cả hai lần xóa tài khoản để đảm bảo tính duy nhất và bằng chứng về sự đồng thuận không yêu cầu ký hàm băm và bảo vệ các khối khỏi các cuộc tấn công phát lại.