Coin Mixing และ CoinJoin คืออะไร?

· 5 min read

คนมักเรียก Bitcoin ว่าเป็นเงินสดดิจิทัล แต่การเปรียบเทียบนี้ก็ยังเป็นที่ถกเถียง ลองนึกภาพว่าถ้า Alice จ่ายเงินสด 10 ดอลลาร์ให้ Bob แล้ว Bob จะไม่มีทางรู้ว่าเงินก้อนนั้นมาจากไหน และถ้า Bob เอาเงินนั้นไปให้ Carol ต่อ Carol ก็อนุมานไม่ได้ว่าเงินก้อนนี้เคยอยู่กับ Alice มาก่อน

Bitcoin ต่างออกไปเพราะธรรมชาติที่เปิดเผยของมัน ประวัติของเหรียญหนึ่ง ๆ (หรือก็คือ unspent transaction output หรือ UTXO) ถูกเปิดให้ใครก็ตามย้อนดูได้อย่างง่ายดาย กระบวนการนี้เทียบได้กับการจดจำนวนเงินและชื่อผู้รับลงบนใบเสร็จทุกครั้งที่มีการใช้ Bitcoin

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

Coin mixing คืออะไร?

โดยทั่วไป coin mixing หมายถึงธุรกรรมที่ตั้งใจอำพรางเงินทุนด้วยการนำไปแลกเปลี่ยนกับเงินก้อนอื่น แต่ในโลกคริปโต คำว่า coin mixing มักถูกใช้เมื่อพูดถึงบริการที่บุคคลที่สามเปิดให้ ผู้ให้บริการจะรับเหรียญของผู้ใช้ไป (พร้อมค่าธรรมเนียมเล็กน้อย) แล้วส่งเหรียญอื่นที่ไม่มีความเชื่อมโยงกับเหรียญที่ส่งไปกลับคืนมาให้ผู้ใช้ บริการเหล่านี้ยังถูกเรียกว่า tumbler หรือ mixer ด้วย

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

แนวทางที่น่าสนใจกว่าคือธุรกรรมแบบ CoinJoin ซึ่งสร้างพื้นที่ให้ปฏิเสธได้อย่างสมเหตุสมผลในระดับที่สูงมาก นั่นคือหลังจากทำธุรกรรม CoinJoin แล้ว จะไม่มีหลักฐานใดยืนยันได้อย่างชัดเจนว่าผู้ใช้คนหนึ่งเชื่อมโยงกับธุรกรรมก่อนหน้าของเขาอย่างไร โซลูชัน CoinJoin จำนวนมากจึงเป็นทางเลือกที่กระจายศูนย์กว่า mixer เพราะผู้ใช้ไม่ต้องสละสิทธิ์ในการดูแลเงินของตัวเอง แม้ในกระบวนการอาจมีผู้ประสานงาน (coordinator) เข้ามาเกี่ยวข้องก็ตาม

CoinJoin คืออะไร?

ธุรกรรมแบบ CoinJoin ถูกเสนอครั้งแรกโดย Gregory Maxwell นักพัฒนา Bitcoin ในปี 2013 ในบทความของเขา เขาอธิบายสั้น ๆ ว่ากระบวนการนี้ประกอบขึ้นอย่างไร และจะยกระดับความเป็นส่วนตัวขึ้นได้มากมายเพียงใดโดยไม่ต้องแก้โปรโตคอลเลย

แก่นของ CoinJoin คือการนำ input จากผู้ใช้หลายคนมารวมกันไว้ในธุรกรรมเดียว ก่อนจะอธิบายว่าทำอย่างไร (และทำไปทำไม) เรามาดูโครงสร้างพื้นฐานของธุรกรรมกันก่อน

ธุรกรรม Bitcoin ประกอบด้วย input และ output เมื่อผู้ใช้ต้องการทำธุรกรรม เขาจะใช้ UTXO ของตัวเองเป็น input กำหนด output แล้วเซ็นกำกับ input เหล่านั้น สิ่งสำคัญที่ต้องรู้คือ input แต่ละตัวถูกเซ็นแยกกันอย่างอิสระ และผู้ใช้สร้าง output ได้หลายตัว (ส่งออกไปยังที่อยู่ต่าง ๆ ได้)

เมื่อเราดูธุรกรรมที่ประกอบด้วย input สี่ตัว (ตัวละ 0.2 BTC) และ output สองตัว (0.7 BTC กับ 0.09 BTC) เราตั้งสมมติฐานได้หลายอย่าง อย่างแรกคือมีการจ่ายเงินเกิดขึ้น โดยผู้ส่งส่ง output ตัวหนึ่งไปให้ใครสักคน และส่งเงินทอนกลับมาหาตัวเอง เมื่อดูว่ามันใช้ input ถึงสี่ตัว output ก้อนใหญ่ที่สุดก็น่าจะเป็นก้อนที่ไปถึงผู้รับ ส่วนที่หายไป 0.01 BTC ก็คือค่าธรรมเนียมที่จ่ายให้นักขุด

อีกความเป็นไปได้คือผู้ส่งอยากรวม UTXO ก้อนเล็ก ๆ ให้กลายเป็น UTXO ก้อนใหญ่ จึงรวม input ก้อนเล็กเข้าด้วยกันเพื่อให้ได้ตัวเลข 0.7 BTC ตามที่ต้องการ

สมมติฐานอีกข้อตั้งอยู่บนข้อเท็จจริงที่ว่า input แต่ละตัวถูกเซ็นแยกกันอย่างอิสระ ธุรกรรมนี้จึงอาจถูกสร้างขึ้นในแบบที่ input ทั้งสี่ถูกเซ็นโดยคนสี่คนที่ต่างกันก็ได้ และนี่คือหลักการที่ทำให้กระบวนการ CoinJoin ได้ผล

CoinJoin ทำงานอย่างไร?

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

ในภาพนี้มีผู้ใช้สี่คนที่ต้องการตัดการเชื่อมโยงระหว่างธุรกรรมของตัวเอง พวกเขาประสานงานกันเอง (หรือผ่านผู้ประสานงาน) เพื่อแจ้ง input และ output ที่ต้องการรวมเข้าไป

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

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

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

ความเป็นส่วนตัวจากการปฏิเสธได้

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

ในตัวอย่างก่อนหน้า ธุรกรรมนั้นมี anonymity set เท่ากับ 4 เจ้าของ output จึงเป็นหนึ่งในผู้ใช้สี่คนที่ร่วมธุรกรรม ยิ่ง anonymity set ใหญ่เท่าไร การเชื่อมโยงธุรกรรมกับเจ้าของตัวจริงก็ยิ่งยากขึ้นเท่านั้น โชคดีที่การนำ CoinJoin ไปใช้ในรุ่นล่าสุดเปิดให้ผู้ใช้รวม input ของตัวเองกับผู้ใช้อีกหลายสิบคนได้โดยไม่ต้องเชื่อใจใคร ทำให้มีพื้นที่ปฏิเสธได้สูงมาก และเมื่อไม่นานมานี้ก็มีธุรกรรมที่รวมคนได้ถึง 100 คนสำเร็จมาแล้ว

บทสรุป

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

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

coin mixing คืออะไร coinjoin ความเป็นส่วนตัว bitcoin utxo วิเคราะห์บล็อกเชน