﻿---
title: "Atomic Swap"
description: "Atomic swap ประสานการรับสินทรัพย์แบบมีเงื่อนไขและการขอคืนภายหลังระหว่างสองเชน แต่ไม่ได้ทำให้การยืนยันเกิดพร้อมกันหรือขจัดค่าธรรมเนียม ความเสี่ยงด้านราคา การเฝ้าติดตาม และความเสี่ยงจากเวลาหมดอายุ"
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.

# Atomic Swap

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

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

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

Atomic swap เป็นโปรโตคอลแบบไม่พร้อมกันสำหรับแลกเปลี่ยนสินทรัพย์โดยไม่ให้อำนาจควบคุมธุรกรรมทั้งสองฝั่งแก่ผู้รับฝากรายเดียว ในการออกแบบ hashed timelock contract (`HTLC`) แบบดั้งเดิม preimage เดียวใช้รับสินทรัพย์ได้ทั้งสองฝั่ง และกำหนดเวลาที่ไม่เท่ากันช่วยรักษาเส้นทางขอคืนในภายหลัง Atomicity เป็นเงื่อนไขว่าฝ่ายที่ซื่อสัตย์ไม่ควรสูญเสียเงินต้นให้อีกฝ่ายเพียงเพราะการแลกเปลี่ยนยุติลง ไม่ได้หมายความว่าการยืนยันเกิดพร้อมกัน การคืนเงินเป็นอัตโนมัติหรือไม่มีต้นทุน ราคาตลาดยุติธรรม สภาพคล่องต่อเนื่อง หรือไม่เปิดเผยตัวตน

แต่ละ implementation ต้องผูกเชนหรือเครือข่าย สินทรัพย์และสัญญา จำนวนดิบและทศนิยม กุญแจผู้รับและกุญแจขอคืน โครงสร้าง hash ไบต์ preimage ที่ถูกต้อง สคริปต์หรือ bytecode และความหมายของ timelock ให้ชัดเจน ระบบสองระบบไม่ได้เข้ากันได้โดยอัตโนมัติเพียงเพราะมี hash และนาฬิกาทั้งคู่ absolute lock และ relative lock ของ Bitcoin, timestamp ของ EVM และ finality ของเชนอื่นอาจมีกฎต่างกันอย่างมีนัยสำคัญ

การสวอป `HTLC` แบบดั้งเดิมยังมอบ optionality ด้านราคาให้ฝ่ายที่ดำเนินการทีหลัง โดยฝ่ายนั้นอาจรอเพื่อตัดสินใจว่าการดำเนินการยังได้เปรียบหรือไม่ Adaptor signature และโปรโตคอลแบบ scriptless อื่นเปลี่ยนร่องรอยและสมมติฐานบนเชน แต่ไม่ได้ขจัดความจำเป็นในการตรวจสอบตัวตน เวลา ค่าธรรมเนียม liveness และการกู้คืน

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

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

1. ระบุเครือข่ายทั้งสอง สินทรัพย์ จำนวน อัตราแลกเปลี่ยน กุญแจ การเข้ารหัส hash และ preimage ไบต์ของสัญญาหรือสคริปต์ หน่วยเวลา ผู้จ่ายค่าธรรมเนียม และนโยบายการยืนยันหรือ finality
2. สร้าง secret ใช้ครั้งเดียวที่มี entropy สูง `x` คำนวณ `h = H(x)` แบบ offline และให้ implementation ทั้งสองสร้าง digest เดียวกันจากไบต์ดิบชุดเดียวกัน
3. ผู้เริ่มต้นให้เงินทุนฝั่งที่มีเวลาหมดอายุยาวกว่า ผู้เข้าร่วมตรวจสอบเชน สินทรัพย์ จำนวน กุญแจ hash โค้ด และกำหนดเวลา แล้วรอระดับความปลอดภัยที่ตกลงกัน
4. ผู้เข้าร่วมให้เงินทุนฝั่งที่มีเวลาหมดอายุสั้นกว่า ผู้เริ่มต้นตรวจสอบรายการเดิมซ้ำและรอการยืนยันหรือ finality ที่กำหนด
5. ก่อนถึงจุดตัดการดำเนินงานที่เร็วกว่า ผู้เริ่มต้นรับสินทรัพย์ฝั่งสั้นด้วย `x` ทำให้ preimage ที่ถูกต้องเปิดเผยในข้อมูลธุรกรรมแบบมาตรฐาน
6. ผู้เข้าร่วมสังเกตการรับนั้น ตรวจสอบ `H(x) = h` แล้วรับสินทรัพย์ฝั่งยาวโดยเหลือเวลาพอสำหรับสร้างธุรกรรม broadcast กู้คืนค่าธรรมเนียม และรอ finality
7. หากด่านใดไม่ผ่าน ให้หยุดเพิ่มความเสี่ยง หลัง timelock ที่เกี่ยวข้องครบกำหนด ต้องสร้างหรือ broadcast ธุรกรรมขอคืนด้วยตนเอง และกระทบยอดเงินต้น ค่าธรรมเนียม ระยะเวลาที่ถูกล็อก และหลักฐานจากเชน

งบเวลาหลักคือ `T_long - T_short >= observation + construction + broadcast + confirmation/finality + reorg/operations buffer` ค่าอย่าง 48 และ 24 ชั่วโมงเป็นเพียงตัวอย่าง ไม่ใช่พารามิเตอร์ปลอดภัยสากล Timelock เพียงเปิดใช้เส้นทางขอคืน ไม่ได้ broadcast ธุรกรรมขอคืนหรือจ่ายค่าธรรมเนียมให้

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

## ตัวอย่าง

- **ไบต์สำหรับ hash** เพื่อการสอนเท่านั้น UTF-8 `abc` คือไบต์ดิบ `0x616263` และ `SHA-256(0x616263) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad` การ hash ข้อความที่แสดงว่า `0x616263` จะให้ digest ต่างกัน secret ที่ใช้งานจริงต้องมี entropy เชิงเข้ารหัสและห้ามใช้ซ้ำ
- **งบเวลาหมดอายุ** สมมติการขอคืนฝั่งยาวครบกำหนดที่ `48.0 h` และฝั่งสั้นที่ `24.0 h` หากส่งคำขอรับฝั่งสั้นที่ `22.0 h` การสังเกตใช้ `0.5 h` การสร้างและ broadcast ใช้ `0.5 h` และการยืนยันบนเชนฝั่งยาวใช้ `1.5 h` เวลาที่คาดว่าจะเสร็จคือ `24.5 h` ระยะเผื่อฝั่งยาวที่เหลือตามแบบจำลองคือ `48.0 - 24.5 = 23.5 h` ไม่ใช่การรับประกันการผลิตบล็อก
- **Optionality ด้านราคา** ตอนตกลง `1 BTC` ที่ `$60,000` เท่ากับ `20 ETH` ที่ `$3,000` ตอนรับสินทรัพย์ BTC อยู่ที่ `$63,000` และ ETH อยู่ที่ `$2,800` Alice ส่งมอบ `$63,000` และรับ `20 x $2,800 = $56,000` ซึ่งต่างจากตลาดขณะนั้น `-$7,000` ก่อนค่าธรรมเนียม Atomicity ของโปรโตคอลไม่ได้ล็อกมูลค่าทางเศรษฐกิจ
- **บัญชีเมื่อยุติ** Alice จ่าย `0.00020 BTC` เพื่อให้เงินทุนและ `0.00025 BTC` เพื่อขอคืน รวม `0.00045 BTC` หรือ `$27` ที่ `$60,000/BTC` Bob จ่าย `0.006 ETH` เพื่อให้เงินทุนและ `0.004 ETH` เพื่อขอคืน รวม `0.010 ETH` หรือ `$30` ที่ `$3,000/ETH` เงินต้นกลับมาในภายหลัง แต่ต้นทุนเครือข่ายรวมที่ขอคืนไม่ได้คือ `$57` บวกค่าเสียโอกาส

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

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

- ระบุโดเมนเชนหรือเครือข่ายผิด
- ระบุสินทรัพย์ native สัญญาโทเค็น หรือทศนิยมผิด
- ระบุจำนวน กุญแจรับ หรือกุญแจขอคืนผิด
- อัลกอริทึม hash หรือการเข้ารหัสไบต์เข้ากันไม่ได้
- secret มี entropy ต่ำ ถูกใช้ซ้ำ หรือเปิดเผยก่อนเวลา
- เส้นทางรับ สคริปต์ หรือ bytecode บกพร่อง
- เส้นทางขอคืนไม่ถูกต้อง ใช้งานไม่ได้ หรือไม่ได้ลงนาม
- ลำดับเวลาหมดอายุกลับด้านหรือระยะเผื่อไม่พอ
- อ่านความหมายของความสูง median time, timestamp หรือ relative lock ผิด
- การรับฝั่งสั้นแข่งกับการขอคืนใกล้หมดอายุ
- reorg ลบธุรกรรมให้เงินทุน เปิดเผย หรือรับสินทรัพย์
- นโยบายการยืนยันหรือ finality ไม่เพียงพอ
- ค่าธรรมเนียมพุ่ง ธุรกรรมถูกนำออกจาก mempool ถูก censor หรือเพิ่มค่าธรรมเนียมไม่ได้
- การเฝ้าติดตาม RPC, indexer, wallet หรือกุญแจล้มเหลว
- คู่สัญญาถ่วงเวลา griefing และ optionality ของเงินทุนที่ถูกล็อก
- อัตราแลกเปลี่ยน basis และสภาพคล่องที่ดำเนินการได้เปลี่ยน
- call บน EVM, reentrancy, gas, proxy หรือ upgrade บกพร่อง
- พฤติกรรมของสินทรัพย์ wrapped ผู้ออกโทเค็น bridge, hook, rebase หรือค่าธรรมเนียมโอน
- เชื่อมโยงข้ามเชนได้จาก hash จำนวน และเวลา
- ภาษี การคว่ำบาตร กฎหมาย การเก็บบันทึก หรือการกู้คืนจากภัยพิบัติล้มเหลว

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

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

- **Atomic หมายถึงพร้อมกัน** สองเชนเดินหน้าอย่างอิสระผ่าน state machine แบบไม่พร้อมกันที่มีลำดับ
- **เมื่อยุติแล้วทุกอย่างคืนโดยอัตโนมัติ** ปกติผู้ใช้ต้องรอ ส่งธุรกรรม และจ่ายค่าธรรมเนียม ความล้มเหลวด้านการติดตามหรือค่าธรรมเนียมอาจยืดเวลาล็อก
- **เชนสองเชนใดก็ตามที่มี hash และ timelock ใช้ร่วมกันได้** อัลกอริทึม การเข้ารหัส เวลา สคริปต์ สัญญา และ finality ต้องตรงกันจริง
- **Non-custodial หมายถึงไม่มีความเสี่ยงคู่สัญญาหรือราคา** Griefing, optionality, ความผันผวน และการพึ่งพาการดำเนินงานยังคงอยู่
- **Atomic swap ให้สภาพคล่องและความเป็นส่วนตัว** โปรโตคอลประสานเงื่อนไขการชำระ ไม่ได้สร้างราคา ความลึก คู่สัญญา หรือกิจกรรมที่เชื่อมโยงไม่ได้

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

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

- [Hashed timelock contract](/th/crypto/htlc/)
- [Bridge ข้ามเชน](/th/crypto/cross-chain-bridge/)
- [ตลาดซื้อขายแบบกระจายศูนย์](/th/crypto/dex/)

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

## แหล่งที่มา

- [Atomic Cross-Chain Swaps](https://doi.org/10.1145/3212734.3212736) - Association for Computing Machinery (เข้าถึง: 2026-08-13)
- [On the optionality and fairness of Atomic Swaps](https://doi.org/10.1145/3318041.3355460) - Association for Computing Machinery (เข้าถึง: 2026-08-13)
- [BIP 65: OP_CHECKLOCKTIMEVERIFY](https://bips.dev/65/) - Bitcoin Improvement Proposals (เข้าถึง: 2026-08-13)
- [BIP 112: CHECKSEQUENCEVERIFY](https://bips.dev/112/) - Bitcoin Improvement Proposals (เข้าถึง: 2026-08-13)
- [Contracts](https://developer.bitcoin.org/devguide/contracts.html) - Bitcoin Developer Documentation (เข้าถึง: 2026-08-13)
- [Transactions](https://developer.bitcoin.org/devguide/transactions.html) - Bitcoin Developer Documentation (เข้าถึง: 2026-08-13)
- [Atomic Swaps](https://docs.decred.org/advanced/atomic-swap/) - Decred Documentation (เข้าถึง: 2026-08-13)
- [Proof-of-stake (PoS)](https://ethereum.org/developers/docs/consensus-mechanisms/pos/) - Ethereum.org (เข้าถึง: 2026-08-13)

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