Double Spending คืออะไร Bitcoin ป้องกันการใช้จ่ายซ้ำซ้อนได้ยังไง (อัปเดต 2026)
ความรู้พื้นฐานโดย พีรพัฒน์ หาญคงแก้ว

Double Spending คืออะไร Bitcoin ป้องกันการใช้จ่ายซ้ำซ้อนได้ยังไง (อัปเดต 2026)

Double Spending คือการใช้เงินดิจิทัลก้อนเดียวจ่ายซ้ำมากกว่าหนึ่งครั้ง เจาะกลไก 3 ชั้นที่ Bitcoin ใช้ป้องกัน ตั้งแต่ Byzantine Generals Problem, mempool/UTXO ไปจนถึง 3 รูปแบบการโจมตีจริงและเคส Bitcoin Gold กับ Ethereum Classic ที่เคยโดน 51% Attack สำเร็จ

บทความนี้เป็นส่วนหนึ่งของซีรีส์ "คริปโต 1-100" ของ Bitcoin Addict ต่อยอดจาก เงินดิจิทัลก่อน Bitcoin: ทำไมตายหมดทุกตัว ซึ่งเล่าปัญหานี้ในมุมประวัติศาสตร์ไว้แล้ว บทความนี้จะเจาะกลไกทางเทคนิคว่า Bitcoin แก้ปัญหานี้ได้จริงยังไง อ่านเดี่ยวๆ ได้ ไม่ต้องอ่านบทความอื่นก่อนก็เข้าใจ

Double Spending คืออะไร Bitcoin ป้องกันการใช้จ่ายซ้ำซ้อนได้ยังไง

เคยส่งรูปหรือไฟล์ให้เพื่อนทางไลน์แล้วสังเกตไหมว่าไฟล์นั้นไม่ได้หายไปจากเครื่องเราเลย เรายังเปิดดูได้เหมือนเดิม แถมยังส่งต่อให้อีกสิบกลุ่มพร้อมกันได้โดยที่ทุกคนได้ของเหมือนกันทุกไบต์ นี่คือธรรมชาติของไฟล์ดิจิทัลทุกชนิดที่ต่างจากของจริงอย่างเงินสด

ถ้าไม่เข้าใจว่าทำไมไฟล์เงินดิจิทัลถึงใช้ซ้ำได้ในขณะที่เงินสดทำไม่ได้ ก็จะไม่เข้าใจว่าทำไม Double Spending ถึงเป็นโจทย์ที่ยากที่สุดข้อหนึ่งที่ Bitcoin ต้องแก้ให้ได้ก่อนจะกลายเป็นเงินดิจิทัลที่ใช้งานได้จริงเป็นเจ้าแรกของโลก

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

บทความ เงินดิจิทัลก่อน Bitcoin ของซีรีส์นี้เล่าไว้แล้วว่า Double Spending คือกำแพงที่ทำให้เงินดิจิทัลกว่า 100 ระบบตายหมดตลอด 20 ปีก่อน Bitcoin จะเกิด บทความนี้จะไม่เล่าประวัติศาสตร์ซ้ำ แต่จะพาลงไปดูกลไกทางเทคนิคจริงๆ ว่า Bitcoin ทำสำเร็จได้ยังไง การโจมตีแบบ Double Spending มีกี่รูปแบบ และมีเคสไหนในโลกจริงที่เคยเกิดขึ้นแล้วบ้าง

ทบทวนสั้นๆ: ทำไมไฟล์ดิจิทัลถึงใช้ซ้ำได้ในขณะที่เงินสดทำไม่ได้

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

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

โจทย์ที่แท้จริงที่ Satoshi Nakamoto ต้องแก้จึงไม่ใช่แค่ "ป้องกัน Double Spending" เพราะนั่นทำได้ง่ายถ้ายอมมีคนกลาง แต่คือ "ป้องกัน Double Spending โดยไม่ต้องมีคนกลางเลยแม้แต่รายเดียว" ซึ่งเป็นโจทย์ที่ในวงการวิทยาการคอมพิวเตอร์มีชื่อเรียกเฉพาะ

Byzantine Generals' Problem: โจทย์คณิตศาสตร์ที่ค้างมา 26 ปีก่อน Bitcoin

หนังสือ Mastering Bitcoin ของ Andreas Antonopoulos และ David Harding อธิบายไว้ตรงไปตรงมาว่า สิ่งที่ Satoshi Nakamoto คิดค้นสำเร็จคือทางแก้ปัญหาการคำนวณแบบกระจายศูนย์ที่ชื่อ "Byzantine Generals' Problem" ซึ่งเป็นโจทย์ที่นักวิทยาการคอมพิวเตอร์ตั้งไว้ตั้งแต่ปี 1982 โดย Leslie Lamport, Robert Shostak และ Marshall Pease นานถึง 26 ปีก่อนที่ Bitcoin จะถือกำเนิด

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

Mastering Bitcoin สรุปแก่นของปัญหานี้ไว้ว่า "the problem consists of trying to get multiple participants without a leader to agree on a course of action by exchanging information over an unreliable and potentially compromised network" (โจทย์คือการพยายามให้ผู้เข้าร่วมหลายฝ่ายที่ไม่มีหัวหน้า ตกลงเห็นพ้องเรื่องเดียวกันให้ได้ ผ่านการแลกเปลี่ยนข้อมูลบนเครือข่ายที่ไม่น่าเชื่อถือและอาจถูกแทรกแซง) แปลงเป็นบริบทของเงินดิจิทัล นายพลแต่ละคนก็คือโหนดแต่ละเครื่องในเครือข่าย Bitcoin ที่กระจายอยู่ทั่วโลก ไม่รู้จักกัน ไม่ไว้ใจกัน และต้องตกลงร่วมกันให้ได้ว่าธุรกรรมไหนเกิดขึ้นจริงและตามลำดับใด โดยไม่มีใครเป็นหัวหน้าสั่งการ

หนังสือระบุไว้ชัดว่า "Satoshi Nakamoto's solution, which uses the concept of proof of work to achieve consensus without a central trusted authority, represents a breakthrough in distributed computing" (ทางแก้ของ Satoshi ที่ใช้แนวคิด proof of work เพื่อให้เกิดฉันทามติโดยไม่ต้องมีศูนย์กลางที่น่าเชื่อถือ ถือเป็นความก้าวหน้าครั้งสำคัญของวงการคอมพิวเตอร์แบบกระจายศูนย์) พูดง่ายๆ คือ Bitcoin ไม่ได้แค่แก้ปัญหาเรื่องเงิน แต่แก้โจทย์คณิตศาสตร์บริสุทธิ์ที่ค้างคาในวงวิชาการมาหลายสิบปีไปพร้อมกันด้วย

Byzantine Generals' Problem ปี 1982 เทียบกับคำตอบของ Bitcoin ด้วย Proof of Work ปี 2008

กลไกจริง 3 ชั้นที่ทำให้ Bitcoin ป้องกัน Double Spending ได้

เมื่อเข้าใจโจทย์แล้ว มาดูว่า Bitcoin แก้มันด้วยกลไกอะไรบ้าง โดยแต่ละชั้นเชื่อมโยงกับกลไกที่บทความก่อนหน้าของซีรีส์นี้อธิบายไว้แล้ว

ชั้นที่ 1 คือ mempool และการตรวจสอบ UTXO ทุกครั้งที่มีธุรกรรมใหม่เกิดขึ้น โหนดทุกเครื่องในเครือข่ายจะตรวจสอบก่อนว่าเงินก้อนที่จะใช้นั้น "ยังไม่ถูกใช้ไปแล้ว" โดยเทียบกับฐานข้อมูลที่เรียกว่า UTXO (Unspent Transaction Output หรือเงินคงเหลือที่ยังไม่ถูกใช้) หนังสือ Mastering Bitcoin อธิบายว่าฐานข้อมูลนี้เองที่โหนดใช้พิสูจน์ว่าเงินก้อนหนึ่งยังไม่เคยถูกใช้จ่ายมาก่อน ถ้ามีใครพยายามส่งธุรกรรมที่อ้างใช้เงินก้อนเดียวกันซ้ำสองครั้ง โหนดจะรับได้แค่ธุรกรรมแรกที่มาถึงเท่านั้น ธุรกรรมที่สองที่พยายามใช้เงินก้อนเดียวกันจะถูกปฏิเสธทันทีตั้งแต่ยังไม่เข้าบล็อกเลยด้วยซ้ำ

ชั้นที่ 2 คือการเรียงลำดับด้วยบล็อกเชนที่ผูกด้วย hash ตามที่อธิบายไว้ในบทความ Hash ของซีรีส์นี้ ทุกบล็อกฝัง hash ของบล็อกก่อนหน้าไว้ในตัว ทำให้ลำดับเวลาของธุรกรรมถูกล็อกตายตัวและปลอมแปลงย้อนหลังไม่ได้โดยไม่ถูกจับได้ทันที

ชั้นที่ 3 คือ Proof of Work ที่ทำให้การเขียนประวัติใหม่แพงเกินคุ้ม ตามที่อธิบายไว้ในบทความ Proof of Work ของซีรีส์นี้ การจะย้อนกลับไปแก้ประวัติเพื่อใช้เงินซ้ำ ต้องคำนวณ hash ใหม่ให้กับทุกบล็อกตั้งแต่จุดที่จะแก้ไปจนถึงบล็อกล่าสุด แข่งกับกำลังขุดมหาศาลของทั้งเครือข่ายที่กำลังต่อบล็อกใหม่เพิ่มขึ้นทุกสิบนาที ยิ่งธุรกรรมนั้นผ่านมานานเท่าไหร่ (มีบล็อกทับซ้อนมากเท่าไหร่) ก็ยิ่งแก้ยากขึ้นแบบทวีคูณ

สามชั้นนี้ทำงานร่วมกันจนได้ผลลัพธ์ที่ Mastering Bitcoin สรุปไว้สั้นๆ ว่า "Mining is the mechanism that underpins the decentralized clearinghouse, by which transactions are validated and cleared" (การขุดคือกลไกที่ค้ำยันสำนักหักบัญชีแบบไร้ศูนย์กลาง ซึ่งใช้ยืนยันและเคลียร์ธุรกรรมทั้งหมด) พูดอีกแบบคือ Bitcoin ไม่มีสำนักหักบัญชีตัวเป็นๆ ที่ไหนเลย แต่กลไกทั้งสามชั้นนี้ทำหน้าที่แทนสำนักหักบัญชีได้อย่างสมบูรณ์

3 รูปแบบการโจมตี Double Spending ที่เกิดขึ้นได้จริง

แม้ Bitcoin จะแก้ปัญหาหลักได้แล้ว แต่ยังมีช่องทางเฉพาะที่ผู้ไม่หวังดีเคยพยายามใช้ Double Spending ในทางปฏิบัติ ซึ่งแบ่งได้เป็นสามรูปแบบหลัก

  • Race Attack (การแข่งกันส่ง) ผู้โจมตีส่งสองธุรกรรมพร้อมกันเกือบพร้อมกัน ธุรกรรมหนึ่งจ่ายให้ร้านค้า อีกธุรกรรมส่งเงินก้อนเดียวกันกลับเข้ากระเป๋าตัวเอง โดยหวังว่าธุรกรรมที่ส่งกลับตัวเองจะถูกโหนดส่วนใหญ่ยอมรับก่อน วิธีนี้ใช้ได้เฉพาะกับร้านค้าที่ยอมรับสินค้าทันทีโดยไม่รอการยืนยันในบล็อกเลย (เรียกว่า 0-confirmation หรือ 0-conf)
  • Finney Attack (ตั้งชื่อตาม Hal Finney ผู้ค้นพบช่องโหว่นี้) ผู้โจมตีต้องเป็นนักขุดด้วย โดยขุดบล็อกที่มีธุรกรรมโอนเงินกลับให้ตัวเองไว้ล่วงหน้าแบบไม่ประกาศให้ใครรู้ แล้วนำเงินก้อนเดียวกันไปจ่ายร้านค้าที่รับแบบ 0-conf จากนั้นค่อยประกาศบล็อกที่เตรียมไว้ออกมาทีหลัง ทำให้ธุรกรรมที่จ่ายร้านค้าถูกเขียนทับ วิธีนี้ต้องอาศัยจังหวะและกำลังขุดพอสมควร ทำได้ยากกว่า Race Attack แต่ก็เคยมีการพิสูจน์แนวคิดจริงมาแล้ว
  • 51% Attack (การครองกำลังขุดข้างมาก) คือการโจมตีที่ร้ายแรงที่สุด ผู้โจมตีต้องควบคุมกำลังขุดมากกว่าครึ่งหนึ่งของทั้งเครือข่าย ทำให้สามารถขุดสายโซ่คู่ขนานลับๆ แล้วนำมาแทนที่สายโซ่จริงในภายหลัง (เรียกว่า chain reorganization หรือ reorg) หนังสือ Mastering Bitcoin ระบุไว้ว่างานวิจัยบางชิ้นชี้ว่าการโจมตีลักษณะนี้ (แบบ selfish mining) ทำได้จริงด้วยกำลังขุดเพียงราว 30% ของเครือข่ายในบางเงื่อนไข ไม่จำเป็นต้องถึง 51% เป๊ะๆ เสมอไป นี่คือเหตุผลที่หนังสือแนะนำให้รอ อย่างน้อย 6 confirmations สำหรับธุรกรรมมูลค่าสูง เพราะยิ่งมีบล็อกทับซ้อนมากเท่าไหร่ การย้อนกลับไปแก้ไขก็ยิ่งแพงและยากขึ้นแบบทวีคูณ

3 รูปแบบการโจมตี Double Spending คือ Race Attack, Finney Attack และ 51% Attack

เคสจริงที่เคยเกิดขึ้น: เมื่อเหรียญ PoW สายเล็กโดน 51% Attack

สิ่งที่ต้องพูดให้ชัดคือ Bitcoin เองไม่เคยถูก 51% Attack สำเร็จเลยสักครั้งตลอดประวัติศาสตร์ เพราะกำลังขุดของเครือข่ายมหาศาลเกินกว่าใครจะรวบรวมมาแข่งได้ไหว แต่เหรียญคริปโตสายอื่นที่ใช้ Proof of Work เหมือนกันแต่มีกำลังขุดน้อยกว่ามาก เคยโดนโจมตีสำเร็จมาแล้วจริง และเป็นบทเรียนที่ทำให้เข้าใจว่าทำไมขนาดของเครือข่ายถึงสำคัญ

Bitcoin Gold เหรียญที่แยกสายออกจาก Bitcoin ในปี 2017 ถูกโจมตีแบบ 51% สำเร็จในเดือนพฤษภาคม 2018 ผู้โจมตีสามารถ Double Spending เหรียญมูลค่ารวมประมาณ 18 ล้านดอลลาร์สหรัฐ ด้วยการเช่ากำลังขุดจากภายนอกมาครองเครือข่ายที่มีขนาดเล็กกว่า Bitcoin มาก เหตุการณ์นี้ (ซ้ำเติมด้วยตลาดหมีคริปโตทั้งตลาดในปี 2018 ที่ Bitcoin เองก็ร่วงกว่า 80% จากจุดสูงสุด) ทำให้ความเชื่อมั่นใน Bitcoin Gold พังไปมาก มูลค่าเหรียญไม่เคยฟื้นกลับมาใกล้เคียงเดิมได้อีกเลย และเครือข่ายก็ยังโดนโจมตีแบบ 51% ซ้ำอีกครั้งในเดือนมกราคม 2020 ตอกย้ำว่าเหรียญที่กำลังขุดเล็กเป็นเป้าที่ถูกโจมตีซ้ำได้ง่าย

Ethereum Classic เหรียญที่แยกสายออกจาก Ethereum หลังเหตุการณ์ The DAO ปี 2016 โดนโจมตีซ้ำหลายรอบ เดือนมกราคม 2019 ผู้โจมตีย้อนสายโซ่กลับไปกว่า 100 บล็อกและ Double Spending เหรียญมูลค่าประมาณ 1.1 ล้านดอลลาร์ และหนักกว่านั้นในเดือนสิงหาคม 2020 ที่เกิดการโจมตีสำเร็จถึงสามครั้งแยกกันภายในเดือนเดียว (1, 6 และ 29 สิงหาคม) แต่ละครั้งย้อนสายโซ่ลึกขึ้นเรื่อยๆ คือประมาณ 3,700 บล็อก 4,000 บล็อก และมากกว่า 7,000 บล็อกตามลำดับ รวมกันตลอดเดือนย้อนไปมากกว่า 14,000 บล็อก สร้างความเสียหายรวมหลายล้านดอลลาร์ให้กับกระดานเทรดที่รับฝากเหรียญไว้ สาเหตุสำคัญที่ Ethereum Classic ถูกโจมตีซ้ำแล้วซ้ำเล่าคือมันใช้อัลกอริทึมการขุดเดียวกับ Ethereum เดิม ทำให้เมื่อราคา Ethereum ปรับตัวลง นักขุดที่มีกำลังขุดเหลือใช้สามารถเช่าหรือหันมาขุด Ethereum Classic แข่งได้ง่ายในต้นทุนต่ำ

บทเรียนจากทั้งสองเคสตรงกันคือ ความปลอดภัยของ Proof of Work ไม่ได้มาจากตัวอัลกอริทึมเฉยๆ แต่มาจากขนาดกำลังขุดที่สะสมไว้เบื้องหลังมันด้วย เครือข่ายที่กำลังขุดเล็กหรือกำลังขุดที่เช่าหาได้ง่ายจากภายนอก ย่อมเสี่ยงต่อการถูกโจมตีมากกว่าเครือข่ายอย่าง Bitcoin ที่มีกำลังขุดทั่วโลกสะสมมานานกว่าสิบห้าปีจนแทบไม่มีใครรวบรวมกำลังมาแข่งขันได้ไหวอีกต่อไป

เคส 51% Attack จริงที่ Bitcoin Gold พฤษภาคม 2018 และ Ethereum Classic 2019-2020

ทำไม Wallet บางแบบถึงตรวจจับ Double Spending ได้ไม่เต็มที่

อีกจุดที่คนทั่วไปมักไม่รู้คือ กระเป๋าเงิน Bitcoin ไม่ได้ปลอดภัยเท่ากันหมดในการตรวจจับ Double Spending

หนังสือ Mastering Bitcoin อธิบายไว้ว่ากระเป๋าเงินแบบ Full Node (ที่ดาวน์โหลดบล็อกเชนทั้งหมดมาตรวจสอบเอง) สามารถยืนยันได้เต็มที่ทั้งว่าธุรกรรมหนึ่ง "มีอยู่จริง" และ "ยังไม่เคยถูกใช้จ่ายซ้ำที่ไหนมาก่อน" แต่กระเป๋าเงินแบบเบา (Lightweight หรือ SPV wallet) ที่ไม่ได้โหลดบล็อกเชนทั้งหมด สามารถยืนยันได้แค่ว่าธุรกรรมหนึ่ง "มีอยู่จริง" ในบล็อกที่อ้างถึงเท่านั้น แต่ ไม่สามารถยืนยันได้เต็มที่ว่าเงินก้อนเดียวกัน "ไม่มี" การใช้จ่ายซ้ำที่อื่นด้วย เพราะไม่มีข้อมูลครบทุกธุรกรรมในเครื่อง หนังสือระบุไว้ชัดว่าข้อจำกัดนี้ทำให้กระเป๋าเงินแบบเบาเสี่ยงต่อการโจมตีบางประเภทมากกว่า เช่นการปลอมแปลงข้อมูลจากโหนดที่ไม่ซื่อสัตย์

นี่คือเหตุผลที่ร้านค้าหรือธุรกิจที่รับชำระเงินด้วย Bitcoin มูลค่าสูง ควรรอการยืนยันอย่างน้อย 6 บล็อกก่อนส่งมอบสินค้า ไม่ใช่แค่เห็นว่าธุรกรรม "ปรากฏ" ในระบบแล้วก็เชื่อทันที เพราะธุรกรรมที่ยังไม่ถูกยืนยันในบล็อกเลย (อยู่ในสถานะ mempool หรือ 0-conf) ยังมีความเสี่ยงต่อ Race Attack อยู่จริง

สลิปโอนเงินปลอมกับบทเรียนเรื่อง "อย่าเชื่อก่อนยืนยัน"

ปัญหาที่คล้ายกันในหลักคิด แม้จะคนละกลไกทางเทคนิค เกิดขึ้นกับคนไทยแทบทุกวันในรูปแบบของ "สลิปโอนเงินปลอม"

มิจฉาชีพใช้แอปพลิเคชันตัดต่อภาพสลิปโอนเงินให้เหมือนจริง แล้วส่งให้แม่ค้าหรือร้านค้าดูเป็นหลักฐานว่าได้โอนเงินแล้ว ทั้งที่ในความเป็นจริงยังไม่มีเงินเข้าบัญชีเลยสักบาท ธนาคารแห่งประเทศไทยเคยออกประกาศเตือนเรื่องนี้อย่างเป็นทางการ โดยย้ำว่าผู้รับเงินไม่ควรเชื่อภาพสลิปเพียงอย่างเดียว แต่ต้องตรวจสอบยอดเงินที่เข้าจริงจากการแจ้งเตือนในแอปธนาคารหรือ SMS ของตัวเองก่อนทุกครั้ง

หลักคิดเบื้องหลังคำเตือนนี้ตรงกับเหตุผลที่ Mastering Bitcoin แนะนำให้รอ 6 confirmations ก่อนส่งมอบสินค้ามูลค่าสูงเป๊ะๆ นั่นคือ หลักฐานที่ยังไม่ผ่านการยืนยันจากระบบกลาง (ไม่ว่าจะเป็นสลิปที่โชว์ให้ดู หรือธุรกรรม Bitcoin ที่ยังไม่เข้าบล็อก) ไม่ควรถูกนับเป็นการชำระเงินที่สำเร็จแล้ว ต่างกันแค่ Bitcoin มีกลไกทางคณิตศาสตร์ (การรอบล็อกยืนยัน) มาการันตีเรื่องนี้ในระดับเครือข่าย ส่วนระบบธนาคารทั่วไปต้องอาศัยผู้รับเงินตรวจสอบเองเป็นด่านสุดท้าย

ทำไมเรื่อง Double Spending ถึงสำคัญกับการเข้าใจ Bitcoin

เพราะนี่คือปัญหาที่แท้จริงที่ Bitcoin ถูกสร้างขึ้นมาแก้ ไม่ใช่แค่ "การสร้างเงินดิจิทัล" ซึ่งมีคนทำมาก่อนแล้วตั้งแต่ปี 1989

Bitcoin Whitepaper ของ Satoshi Nakamoto เปิดประโยคแรกไว้ว่า "A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution" (เงินสดอิเล็กทรอนิกส์แบบเพียร์ทูเพียร์แท้ๆ จะทำให้การจ่ายเงินออนไลน์ส่งตรงจากฝ่ายหนึ่งไปยังอีกฝ่ายได้โดยไม่ต้องผ่านสถาบันการเงิน) ประโยคนี้ฟังดูเรียบง่าย แต่สิ่งที่ซ่อนอยู่เบื้องหลังคือการแก้โจทย์ Double Spending ให้ได้โดยไม่มีสถาบันการเงินคอยจดบัญชี ซึ่งเป็นโจทย์ที่ไม่มีใครแก้สำเร็จมาก่อนตลอด 20 ปี

เมื่อเข้าใจกลไกทั้งหมดนี้แล้ว จะเห็นภาพชัดว่าทุกอย่างในซีรีส์นี้เชื่อมกันเป็นเส้นเดียว Hash ทำให้ข้อมูลปลอมแปลงยาก บล็อกเชนเรียงลำดับเวลาที่แก้ไขย้อนหลังไม่ได้ Proof of Work ทำให้การเขียนประวัติใหม่แพงเกินคุ้ม และทั้งหมดนี้ประกอบกันจนแก้โจทย์ Byzantine Generals' Problem ที่ค้างคามาเกือบสามสิบปีได้สำเร็จเป็นครั้งแรก

คำถามที่พบบ่อย

Double Spending คืออะไร สรุปสั้นๆ?

คือการใช้จ่ายเงินดิจิทัลก้อนเดียวกันซ้ำมากกว่าหนึ่งครั้ง เกิดขึ้นได้เพราะไฟล์ดิจิทัลก็อปปี้ได้ไม่จำกัดโดยไม่มีต้นทุน Bitcoin แก้ปัญหานี้ได้โดยไม่ต้องมีคนกลาง ด้วยการผสาน mempool/UTXO, บล็อกเชนที่เรียงลำดับด้วย hash, และ Proof of Work เข้าด้วยกัน

Byzantine Generals' Problem คืออะไร เกี่ยวอะไรกับ Double Spending?

เป็นโจทย์คณิตศาสตร์ที่ตั้งไว้ตั้งแต่ปี 1982 ว่าผู้เข้าร่วมหลายฝ่ายที่ไม่มีหัวหน้าและอาจมีคนโกหกปนอยู่ จะตกลงเห็นพ้องเรื่องเดียวกันได้ยังไงผ่านเครือข่ายที่ไม่น่าเชื่อถือ Bitcoin แก้โจทย์นี้ได้ด้วย Proof of Work ซึ่งเป็นความก้าวหน้าสำคัญของวงการคอมพิวเตอร์แบบกระจายศูนย์ตามที่ระบุไว้ในหนังสือ Mastering Bitcoin

Race Attack, Finney Attack และ 51% Attack ต่างกันยังไง?

Race Attack คือส่งสองธุรกรรมแข่งกันโดยหวังพึ่ง 0-conf, Finney Attack คือนักขุดเตรียมบล็อกลับไว้ล่วงหน้าแล้วค่อยประกาศทีหลัง, ส่วน 51% Attack คือควบคุมกำลังขุดส่วนใหญ่เพื่อสร้างสายโซ่คู่ขนานมาแทนที่สายโซ่จริง ซึ่งร้ายแรงที่สุดแต่ก็ทำยากที่สุดสำหรับเครือข่ายใหญ่อย่าง Bitcoin

ทำไมต้องรอ 6 confirmations ก่อนเชื่อว่าธุรกรรมสำเร็จ?

เพราะยิ่งมีบล็อกทับซ้อนกันมากเท่าไหร่ การย้อนกลับไปแก้ไขประวัติก็ยิ่งต้องใช้พลังงานมากขึ้นแบบทวีคูณจนไม่คุ้มในทางปฏิบัติ หนังสือ Mastering Bitcoin แนะนำ 6 confirmations เป็นมาตรฐานสำหรับธุรกรรมมูลค่าสูง เพราะงานวิจัยชี้ว่าการโจมตีบางแบบทำได้จริงด้วยกำลังขุดเพียงราว 30% ในบางเงื่อนไข ไม่ต้องถึง 51% เป๊ะเสมอไป

Bitcoin เคยถูก 51% Attack สำเร็จไหม?

ไม่เคย เครือข่าย Bitcoin มีกำลังขุดสะสมมหาศาลเกินกว่าใครจะรวบรวมมาแข่งได้ไหวในทางปฏิบัติ แต่เหรียญ Proof of Work สายเล็กกว่าอย่าง Bitcoin Gold (2018 ความเสียหาย 18 ล้านดอลลาร์) และ Ethereum Classic (2019 และซ้ำอีก 3 ครั้งในเดือนเดียวช่วง ส.ค. 2020) เคยถูกโจมตีสำเร็จมาแล้วจริง เพราะกำลังขุดของเครือข่ายเหล่านั้นเล็กกว่าและเช่าหาได้ง่ายกว่ามาก

กระเป๋าเงินแบบเบา (SPV wallet) ป้องกัน Double Spending ได้เต็มที่ไหม?

ไม่เต็มที่เท่ากระเป๋าเงินแบบ Full Node เพราะกระเป๋าเงินแบบเบายืนยันได้แค่ว่าธุรกรรมหนึ่งมีอยู่จริง แต่ไม่สามารถยืนยันได้เต็มที่ว่าเงินก้อนเดียวกันไม่มีการใช้จ่ายซ้ำที่อื่น เนื่องจากไม่ได้เก็บข้อมูลธุรกรรมทั้งหมดของเครือข่ายไว้ในเครื่อง

Double Spending เกี่ยวอะไรกับสลิปโอนเงินปลอมที่คนไทยเจอบ่อย?

หลักคิดคล้ายกันแม้กลไกต่างกัน คือทั้งคู่เตือนว่าไม่ควรเชื่อหลักฐานที่ยังไม่ผ่านการยืนยันจากระบบกลาง สลิปปลอมคือภาพที่ยังไม่มีเงินเข้าจริง ธนาคารแห่งประเทศไทยจึงเตือนให้ตรวจสอบยอดเงินจริงในแอปก่อนเชื่อ เช่นเดียวกับที่ Bitcoin แนะนำให้รอบล็อกยืนยันก่อนเชื่อว่าธุรกรรมสำเร็จจริง


📖 เรื่องแนวคิดการยืนยันธุรกรรมและ Block Confirmation แบบละเอียดกว่านี้ ผู้เขียนเล่าไว้ในหนังสือ Bitcoin & Blockchain 101 เงินดิจิทัลเปลี่ยนโลก (ฉบับ UPDATE 2024) หาซื้อฉบับเต็มได้ที่นี่

เสริมข้อมูลจากคลังหนังสือของไมเคิล: Mastering Bitcoin (Antonopoulos & Harding) บทที่ 1-2 คำนิยาม Byzantine Generals' Problem และทางแก้ของ Satoshi, การตรวจสอบ UTXO กัน double-spend, ข้อจำกัดของ SPV wallet, บทที่ 12 คำแนะนำ 6 confirmations และงานวิจัย selfish mining ที่ราว 30% hashrate, ภาคผนวก A Bitcoin Whitepaper / Broken Money (Lyn Alden) บทที่ 24 Satoshi quote เรื่อง proof-of-work พูดแทนตัวเอง

บทความทั้งหมด