Nonce trong tiền điện tử là gì? Khai thác Bitcoin, Ethereum, Mật mã học
Vào tháng 12 năm 2010, trên sân khấu tại Hội nghị Truyền thông Hỗn loạn ở Berlin, một nhóm nhỏ có tên fail0verflow đã tuyên bố rằng họ đã trích xuất được khóa ký chính của Sony cho PlayStation 3. Lỗ hổng này không phá vỡ đường cong elliptic 256 bit. Nó cũng không bẻ khóa AES. Nó khai thác thực tế là hệ thống ký mã của Sony sử dụng lại cùng một dãy số cho mọi chữ ký mà nó tạo ra. Dãy số đó là một nonce.
Cùng một từ, "nonce," xuất hiện ở ba lĩnh vực khác nhau trong thế giới tiền điện tử, hầu như không có điểm chung nào khác. Nó là biến số mà thợ đào Bitcoin sử dụng hàng nghìn tỷ lần mỗi giây để tìm kiếm mã băm khối hợp lệ. Nó là bộ đếm mà ví Ethereum của bạn sử dụng để sắp xếp thứ tự các giao dịch gửi đi, và là lý do tại sao một giao dịch bị kẹt lại chặn mọi giao dịch bạn ký sau đó. Nó là giá trị duy nhất mà thuật toán mã hóa AES-GCM cần để ngăn hai tin nhắn được mã hóa làm rò rỉ nội dung của nhau. Một từ, ba chức năng, không cái nào có thể thay thế cho nhau. Nhầm lẫn giữa hai chức năng này là cách mà người mới hiểu sai lỗi "nonce quá thấp", cách các thợ đào thiết kế các hệ thống bất khả thi, và cách các hệ thống như PS3 đánh mất sự tin cậy ban đầu.
Một số ngẫu nhiên 32 bit được gọi là "số được sử dụng một lần": nguồn gốc
Thuật ngữ viết tắt ngược xuất hiện ở khắp mọi nơi. "Nonce viết tắt của number used once (số được sử dụng một lần)." Về cơ bản là đúng, nhưng về mặt lịch sử thì sai. Từ tiếng Anh này có trước thời kỳ mật mã học khoảng 750 năm. Cụm từ "For the nonce" (cho lần này) xuất hiện trong các bản thảo tiếng Anh Trung cổ vào khoảng những năm 1200. Nó có nghĩa là "cho dịp đặc biệt này".
Thuật ngữ này được sử dụng trong mật mã học vào năm 1978, với giao thức xác thực Needham-Schroeder. Ở đó, thuộc tính xác định không phải là tính ngẫu nhiên, mà là tính duy nhất, trong một phạm vi được xác định. Wikipedia, dựa trên thực tiễn, định nghĩa nonce là "một số tùy ý chỉ được sử dụng một lần trong quá trình truyền thông mật mã". Bộ đếm cũng được coi là nonce. Dấu thời gian cũng vậy. Giá trị ngẫu nhiên, hoặc bất kỳ sự kết hợp nào của ba yếu tố này cũng được coi là nonce. Điều quan trọng là, trong hệ thống, cùng một nonce không bao giờ xuất hiện lại với cùng một khóa, hoặc trong cùng một ngữ cảnh.
Chỉ một từ thực hiện toàn bộ công việc, và công việc đó được chia làm ba phần. Nonce khai thác của Bitcoin thay đổi cho đến khi độ khó băm của khối giảm xuống dưới mức mục tiêu. Nonce tài khoản của Ethereum là một bộ đếm mà mạng lưới không cho phép lặp lại. Nonce mật mã trong mã hóa đối xứng là một giá trị được ghép nối với một khóa, và việc sử dụng lại nó một lần sẽ phá vỡ mã hóa.
Từ ngữ được dùng thì lỏng lẻo. Nhưng ngữ cảnh thì không.

Cơ chế hoạt động của nonce trong khai thác Bitcoin
Trong Bitcoin, nonce chiếm một trường 32 bit bên trong phần tiêu đề khối 80 byte. Bốn byte. Giá trị chạy từ 0 đến 4.294.967.295. Chỉ dưới 4,3 tỷ số có thể, con số này nghe có vẻ khổng lồ khi Satoshi viết ra giao thức và giờ đây đã được một chip ASIC kích thước bàn làm việc xử lý hết trong vài micro giây.
Khai thác Bitcoin là một cuộc đua để tìm ra giá trị trong trường đó tạo ra một mã băm khối hợp lệ. Lấy phần tiêu đề 80 byte. Đưa nó qua SHA-256, hàm băm mật mã mà chuỗi khối Bitcoin sử dụng, hai lần. Kết quả là một số 256 bit. So sánh số đó với mã băm mục tiêu được thiết lập bởi mục tiêu độ khó của mạng, cơ chế đồng thuận thúc đẩy bằng chứng công việc. Thấp hơn mục tiêu? Khối hợp lệ, người khai thác thắng. Cao hơn mục tiêu? Tăng nonce lên một và băm lại. Những người khai thác Bitcoin lặp lại quá trình này cho đến khi ai đó tìm thấy một nonce hợp lệ và khối mới được thêm vào chuỗi khối.
Tại sao lại chỉ cần một trường nhỏ như vậy cho một công việc lớn như thế? Lý do là vì cấu trúc. Trường nonce là phần rẻ nhất trong tiêu đề mà người khai thác có thể thay đổi. Mọi trường khác đều có sự phụ thuộc. Gốc Merkle tóm tắt các giao dịch của khối, vì vậy việc thay đổi nó buộc toàn bộ cây giao dịch phải tính toán lại trước khi có thể thử một hàm băm mới. Trường nonce bỏ qua tất cả những điều đó. Mỗi lần thử hàm băm đều độc lập. Việc tăng nonce không mang lại tiến bộ nào gần hơn so với việc chọn một giá trị ngẫu nhiên. Đó là phương pháp tấn công vét cạn, được ngụy trang bằng ngôn ngữ đồng thuận.
Thiết kế này đã trụ vững được khoảng một năm. Sau đó, các máy ASIC đã phá vỡ nó. Các máy đào hiện đại khai thác toàn bộ không gian nonce 4,3 tỷ trong vài micro giây, chứ không phải giây. Một máy Bitmain Antminer S21 Pro hoạt động với tốc độ 234 terahashes mỗi giây. Toàn bộ trường nonce bị khai thác trên phần cứng đó trong khoảng 18 micro giây . Tính đến tháng 5 năm 2026, tổng hashrate của mạng Bitcoin đạt gần 996 EH/s, với độ khó là 132,47 nghìn tỷ. Một máy S21 Pro duy nhất có thể khai thác mọi giá trị nonce khả dụng hàng chục nghìn lần mỗi giây.
Vì vậy, giao thức của Satoshi để lại cho người khai thác hai lối thoát sạch sẽ khi không gian 32 bit cạn kiệt. Lối thoát đầu tiên là "nonce bổ sung", một trường nằm bên trong scriptSig của giao dịch coinbase. BIP34 mã hóa nó. Từ hai đến một trăm byte, do người khai thác kiểm soát. Thay đổi nonce bổ sung sẽ làm thay đổi TXID của coinbase, phải tính toán lại merkle root, tiêu đề khối thay đổi và một quá trình tìm kiếm nonce 32 bit mới được mở ra. Lối thoát thứ hai là tăng dấu thời gian hoặc xoay vòng các bit phiên bản trong phạm vi cho phép của giao thức. Các nhóm khai thác hiện nay đều thực hiện tất cả chúng như một phần của hoạt động bình thường. Điều chỉnh nonce là thay đổi rẻ nhất. Điều chỉnh nonce bổ sung là thay đổi rẻ thứ hai. Việc xoay vòng merkle và dấu thời gian nằm xa hơn, theo thứ tự chi phí tính toán lại của mỗi thao tác.
Khi ai đó tìm được mã băm thấp hơn mã băm mục tiêu — những người khai thác gọi đó là "nonce vàng" — khối mới sẽ được lan truyền khắp mạng ngang hàng, và tất cả các đối thủ cạnh tranh sẽ dừng tìm kiếm hiện tại của họ để bắt đầu lại ở vòng tiếp theo.
| Mô hình ASIC | Tốc độ băm | Đã đến lúc sử dụng hết nonce 32-bit | Hiệu quả |
|---|---|---|---|
| Antminer S21 | 200 TH/giây | ~21 µs | 17,5 J/TH |
| Antminer S21 Pro | 234 TH/giây | ~18 µs | 15 J/TH |
| Antminer S21 XP | 270 TH/giây | ~16 µs | 13,5 J/TH |
Một ví dụ thực tế, gần đây minh họa cho sự trừu tượng này. Khối 948.000, được khai thác vào đầu năm 2026, có mã băm khối `00000000000000000001b01841afc366a4f999b291c8563ee0d0db956fc2db44` và giá trị nonce chiến thắng là 2.582.463.598 . Số nguyên duy nhất đó, kết hợp với phần còn lại của tiêu đề khối, đã tạo ra một mã băm đủ thấp để được thêm vào chuỗi khối. Mọi giá trị nonce khác mà người khai thác thử trong vòng đó đều tạo ra giá trị quá lớn.
Về mặt cơ học, đây chính là bằng chứng về công việc. Không phải là một câu đố theo nghĩa thông thường. Mà là việc tìm kiếm một giá trị ngẫu nhiên hợp lệ, được trả bằng điện năng.
Nonce băm (Hash nonce) so với nonce tài khoản (account nonce): cùng một từ, nhưng khác nhau về chức năng.
Thuật ngữ "nonce" được sử dụng lại cho một mục đích khác trong tiền điện tử, và sự trùng lặp này là nguồn gây nhầm lẫn lớn nhất đối với những người mới tham gia. Nonce khai thác của Bitcoin là một biến tìm kiếm. Nonce tài khoản của Ethereum là một bộ đếm. Chúng chỉ có chung tên gọi và hầu như không có gì khác giống nhau.
| Mã băm nonce (Bitcoin) | Mã nonce tài khoản (Ethereum) | |
|---|---|---|
| Công việc | Tìm kiếm mã băm hợp lệ bên dưới mục tiêu | Sắp xếp các giao dịch đi ra theo trình tự cho mỗi tài khoản |
| Nơi nó sinh sống | Tiêu đề khối (32 bit) | Trạng thái tài khoản (số nguyên đầy đủ, bắt đầu từ 0) |
| Ai là người gây ra đột biến đó? | Máy đào, xét về phần cứng, có thể xử lý hàng tỷ lượt đào mỗi giây. | Ví điện tử, tự động, một ví cho mỗi lần gửi |
| "Sai" nghĩa là gì? | Vé số không trúng, thử số ngẫu nhiên tiếp theo. | Giao dịch bị từ chối hoặc bị kẹt. |
| Gắn liền với sự đồng thuận? | Vâng, đây là bằng chứng về công việc. | Không, đây là cơ chế bảo vệ chống phát lại. |
Một hash nonce là một số tạm thời mà người khai thác dùng để loại bỏ. Một account nonce là trạng thái vĩnh viễn được ghi vào mạng lưới về địa chỉ của bạn. Việc nhầm lẫn giữa hai khái niệm này — coi nonce của blockchain của một khối Bitcoin như thể nó là một bộ đếm chuỗi — là cách mà mọi người đọc lỗi "nonce quá thấp" trên Ethereum và cho rằng thiết lập khai thác của họ bị hỏng. Các blockchain khác nhau, các vai trò khác nhau, nhưng cùng một thuật ngữ. Ngay cả trong cùng một hệ sinh thái, vai trò của nonce trong hoạt động của blockchain hoàn toàn phụ thuộc vào việc bạn đang theo dõi lớp đồng thuận hay lớp tài khoản.
Mã nonce của tài khoản Ethereum và vấn đề giao dịch bị kẹt
Mỗi tài khoản thuộc sở hữu bên ngoài trên Ethereum đều có một nonce riêng. Bộ đếm bắt đầu từ 0, lần đầu tiên địa chỉ đó gửi một giao dịch. Từ đó, nó tăng lên một cho mỗi giao dịch được đưa vào một khối. Khi bạn gửi một thứ gì đó, ví của bạn sẽ yêu cầu mạng lưới cung cấp giá trị hiện tại, gắn số tiếp theo trong hàng đợi và ký tên. Mạng lưới chỉ chấp nhận hàng đợi gửi đi theo thứ tự nghiêm ngặt: Nonce 0, sau đó 1, rồi 2. Không được phép có khoảng trống.
Thứ tự thực hiện nghiêm ngặt này chính là điều mang lại cho Ethereum khả năng chống phát lại. Một giao dịch đã ký được liên kết với một nonce cụ thể, và kể từ EIP-155, cũng được liên kết với một chainID cụ thể. Kẻ tấn công không thể phát lại một giao dịch đã thực hiện cũ như thể nó là giao dịch mới. Đến khi tín hiệu phát lại đến, nonce của tài khoản đã di chuyển vượt qua nó. ChainID ngăn chặn các cuộc phát lại xuyên chuỗi ngay lập tức. Bên trong một chuỗi, một giao dịch đã được xác nhận tồn tại tại một điểm trên bộ đếm mà điểm đó đã di chuyển.
Chính thứ tự ưu tiên cứng nhắc đó tạo ra điểm yếu mà các ví Ethereum mới thường gặp phải. Một giao dịch được thực hiện với mức tiền boa quá thấp. Các trình xác thực bỏ qua nó. Mempool loại bỏ nó khỏi hàng đợi ưu tiên. Giao dịch giờ đây bị mắc kẹt – không được xác nhận, không thất bại, chỉ bị kẹt lại. Tệ hơn nữa, mọi giao dịch sau đó mà cùng một địa chỉ ký đều chọn một nonce cao hơn. Mạng lưới từ chối xử lý bất kỳ giao dịch nào trong số đó cho đến khi giao dịch bị kẹt được xác nhận hoặc được thay thế. Một giao dịch chậm chạp có thể làm đình trệ toàn bộ hàng đợi.
Giải pháp nằm ở cơ chế gọi là thay thế bằng phí (replace-by-fee). Ví của bạn sẽ phát lại một giao dịch mới với cùng nonce như giao dịch bị kẹt, nhưng với phí gas cao hơn. EIP-1559, mô hình định giá gas đã vận hành Ethereum kể từ bản nâng cấp London vào tháng 8 năm 2021, đặt ra quy tắc: giao dịch mới phải tăng cả `maxFeePerGas` và `maxPriorityFeePerGas` lên ít nhất mười phần trăm so với giao dịch ban đầu. Bạn muốn hủy bỏ hoàn toàn giao dịch bị kẹt thay vì thay thế nó? Hãy gửi một giao dịch tự chuyển không có ETH với nonce bị kẹt, kèm theo một khoản tiền tip cao hơn. Vị trí đó sẽ tự bị tiêu thụ và mọi giao dịch sau trong hàng đợi sẽ được giải phóng.
Để dễ hình dung, hãy xem số liệu tháng 5 năm 2026. Mức phí ưu tiên trung bình khoảng 1,875 Gwei. Việc hủy giao dịch với 21.000 gas có giá khoảng 0,05 đô la vào những ngày giao thông thông thoáng, và tăng lên mức thấp hơn trong thời gian tắc nghẽn. Có một bài học mà ai cũng học được một cách khó khăn: luôn luôn thay thế nonce đang chờ xử lý có giá trị thấp nhất trước. Việc tăng phí cho một giao dịch sau đó trong khi giao dịch trước đó vẫn đang bị kẹt sẽ không giải quyết được vấn đề gì.
Khái niệm trừu tượng hóa tài khoản đã định hình lại câu chuyện này một chút. Tài khoản thông minh ERC-4337 sử dụng nonce 2D, chia số nguyên thành "khóa" 192 bit và chuỗi 64 bit. Các khóa khác nhau tạo thành các luồng giao dịch song song. Một lô giao dịch bị kẹt trên một khóa không làm chặn công việc trên khóa khác. Nonce của tài khoản cuối cùng đã vượt ra khỏi phạm vi của một bộ đếm tuyến tính đơn lẻ.
Một huyền thoại cuối cùng đáng được xóa bỏ. Việc Ethereum chuyển sang cơ chế Proof of Stake tại sự kiện Merge vào tháng 9 năm 2022 không loại bỏ nonce tài khoản. Cái biến mất là nonce khai thác bên trong tiêu đề khối, bởi vì các trình xác thực giờ đây được chọn theo vị trí chứ không phải bằng câu đố băm. Nonce tài khoản vẫn ở nguyên vị trí cũ, trong cây trạng thái tài khoản.
Ngẫu nhiên mật mã trong mã hóa: phiên bản thảm khốc
Nếu không xét đến công nghệ blockchain, nonce mật mã sẽ hoạt động hiệu quả hơn. Nhưng nếu mắc sai lầm, hậu quả sẽ rất nghiêm trọng.
Mọi thuật toán mã hóa xác thực hiện đại đều ghép một khóa bí mật với một giá trị ngẫu nhiên (nonce) riêng cho mỗi thông điệp. AES-GCM, thuật toán chủ lực bên trong TLS 1.3, sử dụng 96 bit. Tiêu chuẩn NIST SP 800-38D đã viết ra đặc tả này. ChaCha20-Poly1305, một thuật toán thay thế được quy định trong RFC 8439 (tháng 6 năm 2018), sao chép cùng độ dài nonce 96 bit và ghép nó với một khóa 256 bit. Quy tắc chung của cả hai, nói một cách đơn giản: mỗi cặp (khóa, nonce) chỉ được sử dụng một lần. Việc tái sử dụng không phải là sự suy giảm nhẹ. Nó là một sự suy giảm nghiêm trọng.
Vách đá trông như thế nào? Tái sử dụng một nonce trong AES-GCM với cùng một khóa. Giả sử kẻ tấn công đã thu được cả hai bản mã. Chúng thực hiện phép XOR giữa hai bản mã đó. Kết quả XOR của hai bản mã gốc bị lộ ra. Tính bảo mật biến mất chỉ trong một bước. Điều tồi tệ hơn tiếp theo. Chế độ xác thực của GCM làm rò rỉ khóa con xác thực nội bộ — giá trị dùng để ký mọi bản mã dưới khóa đó. Với khóa con trong tay, kẻ tấn công viết ra các bản mã được xác thực mới và người nhận hợp pháp chấp nhận chúng là thật. Một thuật toán mã hóa hiện đại, chỉ với một nonce xấu, đã bị đánh bại bởi phép dịch Caesar.
Tất cả những điều đó không phải là giả thuyết. Một bài báo của USENIX WOOT năm 2016, "Nonce-Disrespecting Adversaries" (Những kẻ thù coi thường nonce), đã quét các điểm cuối HTTPS trong môi trường sản xuất và phát hiện ra 184 máy chủ tái sử dụng nonce GCM. Các bản dựng bị lỗi bao gồm các ảnh Cisco IOS XE cụ thể và phần mềm Radware ADC. CVE-2016-0270 và một số CVE liền kề theo dõi chúng.
Vụ tấn công PS3 của Sony vào tháng 12 năm 2010 sử dụng cùng một thuật toán mã hóa nhưng khác: ECDSA. Mỗi chữ ký ECDSA cần một giá trị riêng biệt, được viết là k , phải là duy nhất và bí mật. Mã ký của Sony đã bỏ qua phần duy nhất này. Nó mã hóa cứng một hằng số k và sử dụng lại hằng số đó cho mọi chữ ký. Nếu kẻ tấn công có hai chữ ký ECDSA trên hai thông điệp khác nhau với cùng một giá trị k , chúng sẽ có hai phương trình tuyến tính với hai ẩn số. Giải phương trình, ta sẽ có được khóa ký riêng tư, ở dạng mã hóa. fail0verflow đã trình bày điều này trên sân khấu tại Đại hội Truyền thông Hỗn loạn lần thứ 27 ở Berlin. Khóa ký chính của Sony đã bị lộ trên Internet chỉ trong vài giờ. Tất cả các máy PS3 từng được sản xuất đều mất đi tính bảo mật ngay lập tức.
Giải pháp xác định, được mã hóa thành RFC 6979 năm 2013, loại bỏ bộ tạo số ngẫu nhiên khỏi quy trình. Hệ số k được tạo ra từ HMAC của thông điệp và khóa riêng. Cùng một thông điệp, cùng một khóa, cùng một k — không có bộ tạo số ngẫu nhiên nào để bị lỗi. Các thư viện Bitcoin hiện đại sử dụng ECDSA xác định làm mặc định.
Từ những câu chuyện này, có hai hệ quả thường gây nhầm lẫn cho các nhà phát triển. Với các thuật toán mã hóa AEAD (AES-GCM, ChaCha20-Poly1305), một nonce có thể dự đoán được là ổn. Một bộ đếm hoạt động tốt. Tính duy nhất là toàn bộ yêu cầu. Với chữ ký ECDSA và Schnorr, quy tắc lại đảo ngược. Một k có thể dự đoán được là thảm họa. Nonce dùng để ký ở đây phải là duy nhất, không thể dự đoán được và bí mật cùng một lúc. Việc trộn lẫn hai trường hợp này chính là cách mà các lỗi tái sử dụng nonce liên tục xuất hiện trong mã ví tùy chỉnh. Báo cáo kiểm toán năm 2024 của dự án sao lưu Kopia đã ghi nhận nguy cơ xung đột nonce GCM ngẫu nhiên trên các khóa chạy dài, và các báo cáo kiểm thử xâm nhập trên các SDK mới hơn cũng ghi nhận những phát hiện tương tự hàng tháng.
Nonce so với muối so với tiêm tĩnh mạch: tránh nhầm lẫn ba chiều
Trong các bài viết về an ninh mạng, người ta thường dùng ba từ này như thể chúng có cùng nghĩa. Muối. Nonce. IV. Chúng không phải là từ đồng nghĩa.
Salt thuộc về thuật toán băm mật khẩu. Bạn lấy một giá trị ngẫu nhiên cho mỗi người dùng, trộn nó vào hàm băm, và lúc này các bảng băm cầu vồng được tính toán trước cho "password123" sẽ không còn hoạt động đối với cơ sở dữ liệu của bạn nữa. Salt nằm ở dạng văn bản thuần bên cạnh hàm băm. Không ai che giấu nó cả. Hai người dùng cùng chia sẻ một salt là điều bất tiện; nó cho phép kẻ tấn công bẻ khóa được một người cũng có thể bẻ khóa được người còn lại. Nhưng đó không phải là tận thế.
Nonce thuộc về cả việc nhắn tin và chữ ký. Trong mã hóa đối xứng, nonce được dùng cho từng tin nhắn. Trong ECDSA, nonce được dùng cho từng chữ ký. Các thuật toán mã hóa AEAD như AES-GCM công khai nonce, giống như muối nằm cạnh hàm băm. ECDSA giấu nonce, coi nó như một bí mật và yêu cầu tính ngẫu nhiên mới mỗi lần. Dù bằng cách nào, xung đột nonce không chỉ gây khó chịu mà còn gây hậu quả nghiêm trọng. Toàn bộ sự đảm bảo đều biến mất.
IV — viết tắt của initialization vector (vector khởi tạo) — là tên gọi cũ cho cái mà các tiêu chuẩn mới hơn gọi là nonce (ngẫu nhiên). Các chế độ CBC và CTR đã sử dụng từ này trong nhiều năm. Tài liệu AEAD hiện đại đã chuyển sang sử dụng từ này, chủ yếu vì "vector" nghe giống như bài tập toán và mọi người cứ tiếp tục sử dụng lại chúng. "Nonce" (ngẫu nhiên) tuân thủ quy tắc chặt chẽ hơn.
Bạn cần một quy tắc ngắn gọn để viết lên một mẩu giấy nhớ? Muối bảo vệ bí mật bạn đang cất giữ. Số ngẫu nhiên bảo vệ bí mật bạn đang gửi đi.

Tại sao nonce lại quan trọng ngoài những thông tin vụn vặt về khai thác bitcoin
Nonce là một đối tượng nhỏ. 32 bit trong Bitcoin. Một bộ đếm trong Ethereum. 12 byte trong AES-GCM. Nó mang một trọng lượng không tương xứng với kích thước của nó. Đối với người dùng thông thường, mọi giao dịch Ethereum bị kẹt, mọi quá trình bắt tay TLS với trang web ngân hàng, mọi chữ ký mà ví phần cứng tạo ra đều phụ thuộc vào việc xử lý nonce chính xác. Đối với các nhà phát triển, việc xử lý nonce sai là điểm khởi đầu phổ biến nhất cho các lỗi nghiêm trọng trong mã hóa tùy chỉnh. Sự cố PS3 là một trường hợp cực đoan, nhưng cùng một lỗi này vẫn tiếp tục xuất hiện trong các SDK ví và công cụ sao lưu mới hơn. Đối với kinh tế của Bitcoin, nonce 32 bit kết hợp với cơ chế nonce bổ sung chính là điều đã làm cho việc khai thác ASIC trở thành một trò chơi may rủi công bằng ngay từ đầu. Một trong những lựa chọn thiết kế quan trọng nhất của Satoshi, được ẩn giấu ngay trước mắt bên trong một trường tiêu đề không mấy nổi bật.
Một nonce là thứ cho biết điều này đã xảy ra một lần, theo trình tự này, chính xác theo cách này . Loại bỏ nó, và mọi hệ thống phụ thuộc vào tính duy nhất sẽ sụp đổ thành thứ mà kẻ tấn công có thể xây dựng lại với chi phí thấp. Sự đồng thuận bị phá vỡ. Khả năng chống phát lại biến mất. Mã hóa bị rò rỉ. Chữ ký bị làm giả.