﻿---
title: "เนมสเปซของ Nonce ในคริปโต"
description: "คู่มือเชิงปฏิบัติเกี่ยวกับ Nonce ของบัญชี Ethereum, Nonce ป้องกันการใช้ซ้ำระดับแอปพลิเคชัน, ช่องทางคีย์และลำดับของ ERC-4337 และ Nonce สำหรับค้นหาแฮชในส่วนหัวบล็อก Proof-of-Work"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# เนมสเปซของ Nonce ในคริปโต

> จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

<a id="answer"></a>

## คำตอบโดยตรง

Nonce คือค่าที่มีความหมายตามเนมสเปซของโปรโตคอลหนึ่งโดยเฉพาะ จึงไม่ได้หมายถึงเลขสุ่มหรือค่าร่วมสากลที่ "ใช้ครั้งเดียว" เสมอไป ใน Ethereum ค่า Nonce ในสถานะของบัญชีที่ควบคุมจากภายนอกใช้จัดลำดับและตรวจสอบธุรกรรมของผู้ส่งรายนั้น ส่วนสัญญาสามารถเก็บ Nonce ระดับแอปพลิเคชันแยกต่างหากสำหรับ Permit หรือคำสั่งที่ลงนามไว้ บัญชีอัจฉริยะ ERC-4337 สามารถใช้ Nonce ของ `UserOperation` ที่มีโครงสร้างเป็นช่องทางคีย์และลำดับแบบขนาน สำหรับ Proof-of-Work ของ Bitcoin ค่า Nonce ในส่วนหัวบล็อกเป็นฟิลด์ค้นหาที่มีขอบเขตสำหรับทดลองแฮชผู้สมัคร

ค่าเหล่านี้ใช้แทนกันไม่ได้ Nonce ของบัญชี Ethereum ไม่ได้ป้องกันลายเซ็นข้อมูลแบบมีโครงสร้างใด ๆ หากแอปพลิเคชันไม่ตรวจสอบโดเมนและฟิลด์ป้องกันการใช้ซ้ำของตนเอง Nonce ของส่วนหัว PoW ไม่ได้จัดลำดับธุรกรรมบัญชี และเลข Nonce เดียวกันที่ใช้กับผู้ส่ง สัญญา เชน หรือช่องทางต่างกันย่อมหมายถึงสถานะคนละชุด

<a id="mechanism"></a>

## กลไกการทำงาน

1. ระบุเนมสเปซก่อนอ่านตัวเลขว่าเป็นธุรกรรม EOA, สถานะบัญชีสัญญา, พื้นที่จัดเก็บของแอปพลิเคชัน, `UserOperation` ของ ERC-4337 หรือส่วนหัวบล็อก PoW ที่ระบุชื่อไว้ พร้อมยืนยัน chain ID, ฟอร์กและเวอร์ชันโปรโตคอล, บัญชีหรือเจ้าของ, สัญญาและโดเมนที่ใช้ตรวจสอบ, EntryPoint หรือรูปแบบส่วนหัวตามกรณี
2. อ่านสถานะที่เชื่อถือได้ ณ block tag ที่ระบุชัด แยก Nonce บัญชี EOA ตามเชนหลักออกจากจำนวน pending ของผู้ให้บริการ ค่า `nonces(owner)` ในพื้นที่จัดเก็บของแอปพลิเคชัน คีย์และลำดับของ ERC-4337 และตัวนับค้นหาส่วนหัวในเครื่องของนักขุด แม้ RPC อิสระหลายแห่งให้ผลตรงกันก็ยังแทนการตรวจสอบ receipt และสถานะตามเชนหลักไม่ได้
3. สร้างสายประวัติของข้อมูลที่ลงนาม บันทึกผู้ส่งหรือเจ้าของ เชนและโดเมน Nonce, payload, กำหนดเวลา, สัญญาที่ใช้ตรวจสอบ แฮชธุรกรรมหรือข้อความ และรายการทดแทนทั้งหมด สำหรับธุรกรรม Ethereum กฎโดเมนเชนอย่าง EIP-155 ทำงานเสริมกับ Nonce บัญชี เพราะ Nonce เพียงอย่างเดียวไม่ใช่การป้องกัน replay ข้ามเชนที่ครบถ้วน
4. จัดสรรภายในช่องทางที่ถูกต้อง ประสานผู้ลงนาม EOA ที่ทำงานพร้อมกันเพื่อให้แต่ละลำดับตามเชนหลักถูกจัดสรรครั้งเดียว และรักษาช่องว่างกับสายประวัติการทดแทนที่ใช้ Nonce เดียวกัน สำหรับแอปพลิเคชันหรือบัญชีอัจฉริยะ ให้ปฏิบัติตามกฎตรวจสอบและเพิ่มค่าแบบอะตอมมิกรวมถึงกฎช่องทางของสัญญานั้น แทนการสมมติว่ามีตัวนับร่วมเพียงตัวเดียว
5. ส่งตามกฎการรับที่ถูกต้อง นโยบาย pending และการทดแทนของ execution client เป็นนโยบายเฉพาะเครื่อง bundler ของ ERC-4337 ตรวจสอบออบเจ็กต์ `UserOperation` ตามกฎของ EntryPoint และบัญชี ส่วนลายเซ็น EIP-712 หรือ Permit อาจถูก relay ภายในธุรกรรมของบุคคลอื่น เส้นทางการรับในเครื่องเหล่านี้ไม่ได้พิสูจน์ว่าถูกบรรจุในเชนหลัก
6. ติดตามผลลัพธ์ทั้งหมด แยกให้ออกระหว่างถูกปฏิเสธ, pending, อยู่ในคิว, ถูกแทนที่, ถูกบรรจุสำเร็จ, ถูกบรรจุพร้อม `status = 0`, ถูกนำออกจากการปรับโครงสร้างเชน และผ่าน finality ธุรกรรม Ethereum ที่ถูกบรรจุจะเพิ่ม Nonce บัญชีของผู้ส่งแม้การประมวลผล EVM จะ revert แต่การอัปเดต Nonce ในพื้นที่จัดเก็บของแอปพลิเคชันภายใน call ที่ revert จะถูกย้อนกลับ
7. กระทบยอดก่อนลองใหม่ ตรวจสอบ receipt ตามเชนหลัก แฮชบล็อก Nonce ของผู้ส่ง พื้นที่จัดเก็บแอปพลิเคชัน event หรือ receipt ของ ERC-4337 และ finality สำหรับ PoW ต้องตรวจสอบทั้งส่วนหัวและค่าเป้าหมาย ไม่ใช่เฉพาะ Nonce หากฟิลด์ Nonce ที่มีขอบเขตถูกลองจนครบ นักขุดจะเปลี่ยนข้อมูลอื่นที่มีผลต่อส่วนหัวเพื่อสร้างพื้นที่ค้นหาใหม่

<a id="example"></a>

## ตัวอย่างพร้อมคำนวณ

- **ธุรกรรมที่ถูกบรรจุแต่ revert ยังคงใช้ Nonce ของ EOA.** Nonce ตามเชนหลักของผู้ส่งคือ `12` ธุรกรรมที่มี Nonce `12` ถูกบรรจุพร้อม `status = 0` ใช้ gas `50,000` หน่วยในราคา `30 gwei` และมีต้นทุน `50,000 * 30 gwei = 0.0015 ETH` การเปลี่ยนแปลงในสัญญาถูกย้อนกลับ แต่ Nonce ตามเชนหลักของผู้ส่งกลายเป็น `13` หากการปรับโครงสร้างเชนนำบล็อกนั้นออก Nonce อาจกลับเป็น `12` และกระเป๋าต้องตรวจสอบสายประวัติธุรกรรมทั้งหมดใหม่
- **Nonce ของแอปพลิเคชันกับ relayer แยกจากกัน.** เจ้าของมี Nonce บัญชี EOA เท่ากับ `18` โทเค็น ERC-2612 รายงาน `nonces(owner) = 7` และ Nonce ของ EOA ฝั่ง relayer คือ `42` Permit ที่สำเร็จใช้ Nonce แอปพลิเคชัน `7` ทำให้เป็น `8` ขณะที่การบรรจุทำให้ Nonce ของ relayer เป็น `43` และ Nonce ของ EOA เจ้าของยังเป็น `18` หาก call ทั้งหมด revert Nonce ของ relayer ยังเป็น `43` แต่การอัปเดตพื้นที่จัดเก็บของโทเค็นย้อนกลับเป็น `7`
- **ช่องทาง ERC-4337.** ตามนิพจน์ประกอบเพื่อการเรียนรู้ `nonce = (key << 64) | sequence` คีย์ `5` กับลำดับ `9` ให้ค่า `5 * 2^64 + 9 = 92,233,720,368,547,758,089` ส่วนลำดับ `10` ให้ `92,233,720,368,547,758,090` คีย์อิสระ `6` กับลำดับ `0` ให้ `110,680,464,442,257,309,696` การใช้แบบขนานยังขึ้นกับตรรกะตรวจสอบของบัญชีอัจฉริยะ และแยกจาก Nonce ธุรกรรม EOA ของ bundler
- **Nonce สำหรับค้นหา PoW.** Nonce ในส่วนหัว Bitcoin มีขนาด `32 bits` จึงมีตัวเลขผู้สมัคร `2^32 = 4,294,967,296` ค่า ที่อัตราสมมติ `100 TH/s` การไล่ครบพื้นที่ดังกล่าวใช้เวลา `4,294,967,296 / 100,000,000,000,000 = 0.00004294967296 seconds = 42.94967296 microseconds` นักขุดเปลี่ยน extraNonce ใน coinbase, เวลา หรือชุดธุรกรรมเพื่อเปลี่ยน Merkle root และสร้างส่วนหัวใหม่ ฟิลด์นี้ไม่ใช่สถานะป้องกัน replay ของบัญชี

<a id="risks"></a>

## ความเสี่ยง

- สับสนเนมสเปซ Nonce ของ EOA สัญญา แอปพลิเคชัน ERC-4337 และ PoW
- อ่าน Nonce จากเชน ฟอร์ก สัญญา หรือ EntryPoint ที่ไม่ถูกต้อง
- ใช้คำตอบ RPC ที่ล้าสมัย ไม่สอดคล้องกัน หรือเป็นอันตราย
- ผู้ลงนามพร้อมกันจัดสรร Nonce ธุรกรรม EOA เดียวกัน
- ช่องว่างของ Nonce ขัดขวางธุรกรรมผู้สมัครในเครื่องลำดับถัดไป
- ถือว่า Nonce แบบ pending ของผู้ให้บริการคือสถานะตามเชนหลัก
- ลืมว่าธุรกรรมที่ถูกบรรจุแต่ revert ยังใช้ Nonce ของ EOA และ gas
- ไม่ฟื้นฟู Nonce และสายประวัติผู้สมัครหลังการปรับโครงสร้างเชน
- ธุรกรรมทดแทนที่ใช้ Nonce เดิมไม่ผ่านนโยบายค่าธรรมเนียมของโหนดเป้าหมาย
- สมมติว่าการทดแทนลบธุรกรรมเดิมที่ลงนามแล้วออกจากทุกแห่ง
- เชื่อมโยงเลข Nonce ที่เท่ากันจากผู้ส่งหรือโดเมนต่างกัน
- ละเว้น chain ID หรือตัวแบ่งโดเมนลายเซ็นอื่นที่จำเป็น
- ไม่ตรวจสอบและเพิ่ม Nonce แอปพลิเคชันแบบอะตอมมิก
- ใช้เจ้าของ กำหนดเวลา ตัวแบ่งโดเมน หรือสัญญาโทเค็น ERC-2612 ผิด
- นำลายเซ็นแอปพลิเคชันไป replay ข้ามเชน สัญญา หรือเวอร์ชัน
- ตีความ Nonce สถานะของบัญชีสัญญาเป็นตัวนับการ call ทั่วไป
- ประกอบคีย์ Nonce หรือความกว้างของลำดับ ERC-4337 ผิด
- สับสน Nonce ของ EOA ฝั่ง bundler กับ Nonce `UserOperation` ของบัญชีอัจฉริยะ
- การอัปเกรด proxy หรือการชนกันของพื้นที่จัดเก็บเปลี่ยนพฤติกรรม Nonce แอปพลิเคชัน
- ถือว่า Nonce ค้นหา PoW ที่มีขอบเขตเป็นการอนุญาต สถานะป้องกัน replay หรือหลักฐานโดยลำพัง

<a id="misconceptions"></a>

## ความเข้าใจผิดที่พบบ่อย

- ทุกฟิลด์ที่เรียกว่า Nonce มีความหมายเดียวกันและถูกใช้ครั้งเดียวทั่วโลก
- Nonce ที่มากกว่าทำให้ธุรกรรมปลอดภัยกว่า เร็วกว่า หรือมี finality มากกว่า
- ธุรกรรม Ethereum ที่ revert ไม่ใช้ Nonce ของผู้ส่ง
- Nonce เพียงอย่างเดียวป้องกัน replay ข้ามเชน ข้ามสัญญา และข้ามข้อความแบบมีโครงสร้างได้ทั้งหมด
- บัญชีอัจฉริยะ ERC-4337 ทุกบัญชีมีตัวนับเชิงเส้นหนึ่งตัวเหมือน Nonce ธุรกรรม EOA

<a id="related"></a>

## หัวข้อที่เกี่ยวข้อง

- [โมเดลแบบบัญชี](/th/crypto/account-based-model/)
- [การทดแทนธุรกรรมใน Mempool](/th/crypto/mempool-replacement/)
- [Account Abstraction](/th/crypto/account-abstraction/)

<a id="sources"></a>

## แหล่งข้อมูล

- [Ethereum accounts](https://ethereum.org/developers/docs/accounts/) - Ethereum.org (เข้าถึงเมื่อ: 2026-08-13)
- [Transactions](https://ethereum.org/developers/docs/transactions/) - Ethereum.org (เข้าถึงเมื่อ: 2026-08-13)
- [EIP-2681: Limit account nonce to 2^64-1](https://eips.ethereum.org/EIPS/eip-2681) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-13)
- [EIP-155: Simple replay attack protection](https://eips.ethereum.org/EIPS/eip-155) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-13)
- [EIP-712: Typed structured data hashing and signing](https://eips.ethereum.org/EIPS/eip-712) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-13)
- [ERC-2612: Permit Extension for EIP-20 Signed Approvals](https://eips.ethereum.org/EIPS/eip-2612) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-13)
- [ERC-4337: Account Abstraction Using Alt Mempool](https://eips.ethereum.org/EIPS/eip-4337) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-13)
- [Block Chain](https://developer.bitcoin.org/reference/block_chain.html) - Bitcoin Developer Documentation (เข้าถึงเมื่อ: 2026-08-13)

Source: https://wiki.fcontext.com/th/crypto/nonce-crypto/index.mdx
