จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้
คำตอบโดยตรง
RPC สำหรับธุรกรรมแบบ Private ส่งธุรกรรมที่ลงนามแล้วหรือ Bundle ที่เรียงลำดับผ่านเส้นทางบริการในวงจำกัดก่อนเผยแพร่สู่ Mempool สาธารณะ เส้นทางอาจมีผู้ให้บริการ RPC, Relay, Block Builder ที่เลือกไว้ และ Searcher เมื่อมีการเปิดเผย Privacy Hint ดังนั้นคำว่า Private จึงหมายถึงการกระจายข้อมูลขั้นต้น ไม่ได้หมายถึงการเข้ารหัส การไม่เปิดเผยตัวตน หรือการซ่อนข้อมูลจากตัวกลาง
บริการอาจลดความเสี่ยงจากการคัดลอก Front-running หรือ Sandwich Attack ใน Mempool สาธารณะ แต่ไม่รับประกันการบรรจุ ความสำเร็จในการประมวลผลของ EVM การได้ราคาที่ดีที่สุด เงินคืน MEV หรือ Finality การตอบรับจากผู้ให้บริการหรือ Transaction Hash ที่ส่งกลับมายืนยันเพียงว่าคำขอถึง Interface นั้นแล้ว การกระจายให้ Builder การเลือก Payload การบรรจุในบล็อก status ของ Receipt ความเป็น Canonical และ Finality เป็นสถานะแยกจากกัน
อย่าถือว่าวิธีส่งแบบ Private ทุกแบบใช้แทนกันได้ ธุรกรรมเดี่ยว eth_sendPrivateTransaction, รูปแบบเดิม eth_sendBundle และ mev_sendBundle อาจต่างกันในเรื่องบล็อกเป้าหมาย ลำดับรายการ การอนุญาตให้ Revert การแทนที่หรือยกเลิก การเลือก Builder, Privacy Hint และกฎเงินคืน ผลลัพธ์ขึ้นอยู่กับ Chain, Endpoint, เวอร์ชัน API และ Payload ที่ลงนามไว้อย่างเจาะจง
กลไกการทำงาน
Wallet สร้างและลงนามธุรกรรมปกติของ Chain ก่อน โดยระบุ Chain ID, Nonce, ปลายทาง มูลค่า Calldata, Gas Limit และเพดานค่าธรรมเนียม EIP-1559 การส่งแบบ Private เปลี่ยนเพียงปลายทางที่รับไบต์ซึ่งลงนามแล้ว ไม่ได้ข้ามลำดับ Nonce การตรวจสอบยอดคงเหลือและ Allowance การประมวลผล Contract กฎ Base Fee หรือการตรวจสอบตาม Consensus การส่งไบต์เดิมซ้ำจะคง Transaction Hash เดิม ส่วนธุรกรรมแทนที่ที่ใช้ Nonce เดียวกันแต่เปลี่ยนค่าธรรมเนียมหรือ Calldata จะมี Hash ใหม่
ผู้ให้บริการอาจจำลอง Payload กับสถานะที่ระบุ แล้วกระจายให้ Builder หนึ่งรายหรือหลายราย การจำลองขึ้นกับสถานะนั้น เพราะยอดคงเหลือ Storage ราคา Oracle ธุรกรรมคู่แข่ง และ Base Fee อาจเปลี่ยนก่อนสร้างบล็อก Builder อาจไม่เลือกธุรกรรมที่ถูกต้องเพราะมาถึงช้า จ่ายน้อยเกินไป แพ้บล็อกที่มีมูลค่าสูงกว่า หรือไม่เคยถึง Builder ที่ Block Proposer เลือก
Bundle เพิ่มนโยบายการประมวลผลตามลำดับ Revert ที่ต้องสำเร็จอาจทำให้ Bundle ไม่มีสิทธิ์ถูกบรรจุ ขณะที่ Revert ซึ่งอนุญาตไว้อย่างชัดเจนอาจใช้ Gas และปล่อยให้การเปลี่ยนสถานะจากรายการก่อนหน้าที่ยังสำเร็จคงอยู่ จึงไม่ใช่การย้อนกลับทั้งหมดโดยอัตโนมัติ Privacy Hint อาจเปิดเผย Transaction Hash, Contract Address, Function Selector, Calldata หรือ Log ส่วนโหมด Fast หรือการส่งถึง Builder หลายรายเพิ่มขอบเขตการเข้าถึง และมักขยายกลุ่มที่ต้องไว้วางใจและกลุ่มที่ได้รับข้อมูล
การจัดการ Nonce และ Timeout ต้องมี State Machine ที่ชัดเจน ธุรกรรม Private ที่รออยู่ อาจไม่ปรากฏในมุมมอง Pending ของ RPC สาธารณะทั่วไป และอาจขวาง Nonce ถัดไป การยกเลิกกับผู้ให้บริการหยุดได้เพียงการส่งในอนาคตผ่านเส้นทางที่ผู้ให้บริการควบคุม ไม่สามารถเรียกคืนสำเนาที่แชร์ เผยแพร่สาธารณะ หรือถูกบรรจุแล้ว ธุรกรรมแทนที่ด้วย Nonce เดิมหรือ Public Fallback จะแข่งขันกับทุกเวอร์ชันที่ยังใช้งานอยู่ และเปิดเผย Order Flow ต่อสาธารณะอีกครั้ง
ใช้ขั้นตอนต่อไปนี้:
- ตรึง Chain ID, ผู้ให้บริการ และเวอร์ชัน API เลือกวิธีธุรกรรม Private เดี่ยวหรือ Bundle และบันทึกนโยบาย Log การกระจายให้ Builder หรือ Searcher, Privacy Hint, Revert, เงินคืน และ Public Fallback
- ถอดรหัสเจตนาก่อนลงนามและ Payload ที่ลงนามแล้วอย่างตรงตัว ได้แก่ ผู้ส่ง Nonce ปลายทาง มูลค่า Calldata, Allowance, Gas Limit เพดานค่าธรรมเนียม Deadline ผลลัพธ์ขั้นต่ำ ช่วงบล็อกเป้าหมาย และทุกรายการใน Bundle ตามลำดับ
- จำลองกับบล็อกและสถานะที่ระบุ ทดสอบทั้งความสำเร็จและ Revert การเปลี่ยนสถานะ Slippage การเปลี่ยนยอดคงเหลือ ความล้มเหลวที่อนุญาต Gas รวม และผลลัพธ์ที่แย่ที่สุดซึ่งยังถูกต้องทางเศรษฐกิจ
- ส่งผ่าน Endpoint ที่ตั้งใจใช้ และเก็บ Hash ของธุรกรรมหรือ Bundle, Request ID, ตัวตนสำหรับ Authentication, เวลา บล็อกเป้าหมายหรือบล็อกสูงสุด Builder, Hint และ Payload ต้นฉบับ
- ติดตามการตอบรับ การจำลอง การกระจายให้ Builder, Nonce แบบ Private และการหมดอายุ แยกจาก Canonical Receipt พร้อมปรับสมมติฐานบล็อกเป้าหมายและค่าธรรมเนียมก่อนส่งซ้ำ
- เมื่อถึง Deadline ให้เลือกอย่างชัดเจนว่าจะรอ ยกเลิก แทนที่ด้วย Nonce เดิม หรือเปิดเผยผ่าน Public Fallback อย่าถือว่าการยกเลิกเรียกคืนสำเนาได้ และอย่าส่งเวอร์ชันขัดแย้งโดยไม่ติดตามการแข่งขัน
- กระทบยอด
statusของ Receipt, Log, ยอดคงเหลือ ผลลัพธ์ ราคา Gas ที่เกิดขึ้นจริง และเงินคืนบน Chain ที่ถูกต้อง จากนั้นรอสถานะsafeหรือfinalizedตามที่กำหนด และตรวจสอบ Reorg การรั่วไหล หรือความต่างของการประมวลผลที่อธิบายไม่ได้
ตัวอย่าง
- การคุ้มครองผลลัพธ์ไม่ใช่การได้ราคาที่ดีที่สุด Swap ระบุ Input
100,000 USDCและผลลัพธ์ขั้นต่ำ98,800 USDCการประมวลผลสาธารณะได้98,950 USDCต่ำกว่า Par1,050 USDCหรือ1.05%แต่สูงกว่าขั้นต่ำเพียง150 USDCการส่งแบบ Private อาจลดการถูกสังเกต แต่ไม่รับประกันผลลัพธ์ที่ดีกว่า Venue สาธารณะอื่นหรือ RFQ - ข้อจำกัดการบรรจุของ EIP-1559 ธุรกรรมใช้
180,000 gas, Base Fee30 gwei, เพดาน Priority Fee2 gweiและ Max Fee40 gweiราคาที่เกิดขึ้นจริงคือmin(40, 30 + 2) = 32 gweiค่าธรรมเนียมจึงเป็น180,000 x 32 = 5,760,000 gwei = 0.005760 ETHหาก Base Fee ของบล็อกผู้สมัครเป็น42 gwei, Max Fee40 gweiย่อมไม่พอ และการส่งแบบ Private ไม่อาจทำให้ธุรกรรมมีสิทธิ์ถูกบรรจุในบล็อกนั้น - การแข่งขันของ Fallback ที่ใช้ Nonce เดียวกัน Payload แบบ Private
Aและ Public FallbackBใช้ Nonce42เหมือนกัน มีการส่งสองรายการ แต่ Canonical Chain ใช้ Nonce42ได้ครั้งเดียว หากAลงในบล็อกN + 2,Bจะล้าสมัย หากBลงก่อนAจะล้าสมัย การตอบรับการยกเลิกไม่ใช่การ Undo และต้องติดตามทุกสำเนาที่ยังอยู่ - Revert ที่อนุญาตไม่ใช่ Atomic Rollback ใน Bundle ที่เรียงลำดับ Approval ใช้
45,000 gasและ Swap Revert หลังใช้120,000 gasที่ราคาจริง25 gweiหากไม่อนุญาต Revert, Bundle จะถูกตัดออกตามนโยบาย หากอนุญาตให้ Swap Revert และ Bundle ถูกบรรจุ Approval อาจยังมีผล Swap มีstatus = 0และค่า Gas เท่ากับ(45,000 + 120,000) x 25 gwei = 0.004125 ETH.
ความเสี่ยง
- Wallet ใช้ Chain, ผู้ให้บริการ Endpoint หรือเวอร์ชัน API ผิด
- DNS, TLS, API Key หรือ Interface RPC ถูก Phishing หรือถูกเจาะ
- ผู้ให้บริการเชื่อมโยง IP, บัญชี เวลา และ Payload ที่ลงนามแล้ว
- Relay บันทึก รั่วไหล คัดลอก หรือเผยแพร่ธุรกรรมเต็มซ้ำ
- Privacy Hint เปิดเผย Hash, Selector, Contract, Calldata หรือ Log
- โหมด Fast หรือการส่งให้ Builder หลายรายขยายกลุ่มความไว้วางใจและการเปิดเผย
- Builder หรือ Searcher เซ็นเซอร์ คัดลอก หรือแสวงประโยชน์จาก Order Flow แบบ Private
- การจำลองใช้บล็อกผิดหรือล้าสมัยก่อนสร้างบล็อก
- สถานะ Contract ยอดคงเหลือ ราคา หรือลำดับเปลี่ยนและทำให้ Revert
- Base Fee, Max Fee หรือ Priority Fee ทำให้ Payload ไม่น่าสนใจหรือไม่ถูกต้อง
- ช่องว่างของ Nonce หรือธุรกรรม Private ที่รออยู่แต่ไม่ปรากฏขวาง Nonce ถัดไป
- การยกเลิกหรือแทนที่ด้วย Nonce เดิมแพ้การแข่งขันด้านเวลา
- Public Fallback โดยไม่แจ้งเตือนทำให้กลับมาเสี่ยง MEV ใน Mempool สาธารณะ
- เข้าใจบล็อกเป้าหมาย บล็อกสูงสุด Timestamp หรือ TTL ของบริการผิด
- ลำดับ Bundle หรือนโยบาย Revert ที่อนุญาตทิ้งการเปลี่ยนสถานะที่ไม่ตั้งใจ
- ขอบเขต Builder, Relay, Proposer หรือการเซ็นเซอร์ขัดขวางการบรรจุ
- ระบบผู้ให้บริการล่ม จำกัดอัตรา หรือหน่วงจนพลาดช่วงที่ใช้ได้
- เข้าใจผิดว่าการส่งแบบ Private คือการป้องกัน Slippage หรือการได้ราคาที่ดีที่สุด
- กระทบยอด Receipt, Log, ยอดคงเหลือ ค่าธรรมเนียม หรือเงินคืนผิด
- Reorg การถือว่า Final เร็วเกินไป หรือขอบเขตของ Sequencer บน L2 เปลี่ยนข้อสรุป
ความเข้าใจผิดที่พบบ่อย
- Private หมายถึงเข้ารหัส ไม่เปิดเผยตัวตน และไม่มีใครเห็น ผู้ให้บริการและฝ่ายปลายทางที่เลือกอาจเห็น Payload เต็มหรือ Hint ที่เปิดเผย
- RPC แบบ Private รับประกันว่าไม่มี MEV และได้ราคาดีที่สุด สิ่งที่เปลี่ยนคือการกระจายข้อมูล ส่วนข้อจำกัดในธุรกรรม การเปรียบเทียบ Venue และคุณภาพการประมวลผลยังสำคัญ
- RPC สำเร็จหรือได้ Transaction Hash หมายถึงถูกบรรจุ สำเร็จ และ Final แล้ว การตอบรับ Receipt, สถานะ EVM และ Finality เป็นคนละสถานะ
- การยกเลิกหรือแทนที่ด้วย Nonce เดิมรับประกันผล สำเนาและเวอร์ชันที่แข่งขันกันจะดำเนินต่อจนมีรายการหนึ่งถูกบรรจุหรือทั้งหมดหมดอายุ
- ธุรกรรม Private เป็น Atomic Bundle โดยอัตโนมัติ ธุรกรรมเดี่ยวและ Bundle แต่ละรูปแบบมีกฎลำดับและ Revert ต่างกัน
หัวข้อที่เกี่ยวข้อง
แหล่งข้อมูล
- Settings Guide - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- JSON-RPC Endpoints - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- Nonce Management - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- Bundle Inclusion Troubleshooting - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- Understanding Bundles - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- MEV-Boost Block Proposal - Flashbots Docs (เข้าถึงเมื่อ: 2026-08-13)
- Transactions - ethereum.org (เข้าถึงเมื่อ: 2026-08-13)
- JSON-RPC API - ethereum.org (เข้าถึงเมื่อ: 2026-08-13)