ค่า Derivation Path คือพิกัดที่ใช้ระบุตำแหน่งการแตกแขนงกุญแจและที่อยู่รับเหรียญจาก Seed Phrase ตามมาตรฐาน BIP-32 และ BIP-44 ในระบบ Single-sig เส้นทางนี้ช่วยแยกประเภทสคริปต์ของที่อยู่บิทคอยน์ เช่น Native SegWit (m/84'/0'/0') และ Taproot (m/86'/0'/0') ซึ่งหากเลือกเส้นทางไม่ตรงกับตอนสร้างกระเป๋าจะทำให้กู้คืนแล้วมองไม่เห็นยอดเงิน ส่วนในระบบ Multisig จะต้องแยกไปใช้เส้นทางมาตรฐาน BIP-48 (m/48'/0'/0'/2') เสมอเพื่อป้องกันการนำกุญแจไปปะปนกับกระเป๋าปกติและเป็นข้อมูลบังคับที่ต้องบันทึกไว้ในไฟล์ Output Descriptor เพื่อการกู้คืน
- Derivation Path คืออะไร ทำไม Seed Phrase ชุดเดียวถึงแตกแขนงกระเป๋าได้นับล้านใบ
- อ่านค่าตัวเลขแต่ละหลักใน m / purpose' / coin_type' / account' / change / address_index แบบภาษาคน
- เครื่องหมายขีดเดี่ยว (') หรือ Hardened Derivation คืออะไร ทำไมถึงช่วยกั้นความปลอดภัยให้กุญแจแต่ละชั้น
- ความสำคัญของ Derivation Path ในระบบ Single-sig ไขปริศนากู้กระเป๋าแล้วไม่เจอยอดเงิน
- รู้จัก 4 มาตรฐานของ Bitcoin ตั้งแต่ Legacy (m/44'), Nested SegWit (m/49'), Native SegWit (m/84') จนถึง Taproot (m/86')
- การแยกบัญชี (Account Index) และที่อยู่รับเงินทอน (Change Index 0 vs 1) ที่ทำงานอยู่เบื้องหลังอัตโนมัติ
- ความสำคัญของ Derivation Path ในระบบ Multisig เมื่อการเปลี่ยนไปสู่มาตรฐาน BIP-48 คือกฎเหล็กที่ห้ามจำผิด
- ทำไมกระเป๋า Multisig ถึงไม่ใช้ซอย m/84' เหมือนกระเป๋าปกติ แต่ต้องแยกเข้า m/48'/0'/0'/2'
- จะเกิดอะไรขึ้นหากดึงค่า xPub มาผิดตอนตั้งค่าหรือตอนกู้คืนกระเป๋าหลายลายเซ็น
- ตารางสรุปเส้นทาง Derivation Path มาตรฐานของ Bitcoin ทั้งระบบ Single-sig และ Multisig
- สรุป
- คำถามที่พบบ่อย (FAQ)
หนึ่งในเหตุการณ์ชวนหัวใจวายที่อาจจะเคยเจอกันมา คือกรณีที่เพื่อน ๆ นำแผ่นจด Seed Phrase 12 หรือ 24 คำที่เก็บรักษาไว้อย่างดี ไปกรอกกู้คืนลงบนแอปพลิเคชันใหม่หรืออุปกรณ์เครื่องใหม่ แต่พอกู้เสร็จแล้วหน้าจอกลับแสดงยอดเงินคงเหลือเป็น 0 BTC ทั้งที่มั่นใจล้านเปอร์เซ็นต์ว่าสะกดคำศัพท์ถูกต้องทุกคำและไม่เคยถูกใครขโมยแผ่นสำรองไป
หรืออีกกรณีหนึ่งคือ เวลาที่เพื่อน ๆ เริ่มศึกษาการตั้งค่ากระเป๋าหลายลายเซ็น (Multisig Wallet) แล้วเห็นชุดตัวเลขที่มีเครื่องหมายทับและขีดเดี่ยวหน้าตาเหมือนรหัสลับ เช่น m/84'/0'/0' หรือ m/48'/0'/0'/2' ซึ่งเรียกว่า Derivation Path
คำถามสำคัญที่แอดเชื่อว่าแล่นเข้ามาในหัวของเพื่อน ๆ ทันทีก็คือ
"ทำไมกรอก Seed Phrase ชุดเดียวกันเป๊ะ ๆ ลงในคนละโปรแกรม บางทีถึงได้กระเป๋าคนละใบและมองไม่เห็นยอดเงินเดิม?"
"ตัวเลขแต่ละหลักใน m/84'/0'/0' แปลว่าอะไร และเครื่องหมายขีดเดี่ยว (') ที่ห้อยท้ายตัวเลขมีความสำคัญอย่างไร?"
"และเมื่อเราขยับไปทำระบบ Multisig ทำไมอุปกรณ์ถึงเปลี่ยนเส้นทางไปใช้ซอย m/48'/0'/0'/2' แยกต่างหาก แล้วถ้าวันหนึ่งเราลืมเส้นทางนี้ไป จะยังกู้เหรียญคืนได้อยู่ไหม?"
วันนี้ แอดจะพาเพื่อน ๆ มาถอดรหัสแผนที่นำทางที่เรียกว่า Derivation Path แบบเข้าใจง่าย เพื่อให้เพื่อน ๆ อ่านค่าตัวเลขเหล่านี้ได้ขาด ไม่ตกใจเวลาเปลี่ยนแอปหรือกู้คืนกระเป๋า และวางโครงสร้างสำรองข้อมูลได้อย่างรัดกุมที่สุดครับ
Derivation Path คืออะไร ทำไม Seed Phrase ชุดเดียวถึงแตกแขนงกระเป๋าได้นับล้านใบ
จากที่เราคุยกันในเรื่องโครงสร้างกระเป๋า HD Wallet (BIP-32) เพื่อน ๆ ทราบดีอยู่แล้วว่า Seed Phrase เพียงชุดเดียว ไม่ได้สร้างกุญแจออกมาได้แค่ดอกเดียว แต่สามารถแตกแขนงกิ่งก้านออกเป็นบัญชีแยกย่อยและที่อยู่รับเหรียญได้นับพันล้านรายการ (การทำงานของ Seed Phrase กับ Private Key)
ปัญหาที่ตามมาก็คือ เมื่อต้นไม้กุญแจของเรามีกิ่งก้านสาขามหาศาลขนาดนั้น เวลาที่เราเสียบเครื่อง Hardware Wallet หรือเวลาที่เรากู้คืนกระเป๋าลงบนโปรแกรมใหม่ ซอฟต์แวร์จะรู้ได้อย่างไรว่าบิทคอยน์ที่เราเคยโอนเข้าไปเก็บไว้ ถูกวางอยู่ที่กิ่งไหนใบไหน?
คำตอบก็คือ ซอฟต์แวร์ต้องเดินตาม "พิกัดเส้นทางมาตรฐาน" ที่เรียกว่า Derivation Path นั่นเองครับ
ลองจินตนาการภาพตามแอดง่าย ๆ นะครับ หาก Seed Phrase เปรียบเสมือน "คีย์การ์ดมาสเตอร์ของเจ้าของโครงการคอนโดมิเนียมขนาดใหญ่ที่มีหลายสิบตึก" ค่า Derivation Path ก็เปรียบเสมือน "บ้านเลขที่ที่ระบุ ตึก / ชั้น / โซน / และหมายเลขห้อง" เช่น ตึก 84 / เหรียญที่ 0 / ชั้น 0 / โซน 0 / ห้องที่ 0 ต่อให้เพื่อน ๆ ถือคีย์การ์ดมาสเตอร์ใบที่ถูกต้องอยู่ในมือ แต่ถ้าเดินเข้าผิดตึก เช่น เงินเก็บไว้ที่ตึก 84 แต่แอปใหม่พาเราเดินไปเปิดห้องที่ตึก 44 พอเปิดประตูเข้าไปเราก็จะเจอแต่ห้องว่างเปล่าที่ไม่มีเฟอร์นิเจอร์หรือทรัพย์สินของเราวางอยู่เลยครับ
อ่านค่าตัวเลขแต่ละหลักใน m / purpose' / coin_type' / account' / change / address_index แบบภาษาคน
เพื่อให้เพื่อน ๆ อ่านค่าพิกัดนี้ได้เหมือนอ่านป้ายบอกทาง แอดขอยกตัวอย่างเส้นทางยอดนิยมที่สุดของบิทคอยน์ในปัจจุบัน นั่นคือ m/84'/0'/0'/0/0 มาชำแหละให้ดูทีละหลักตามมาตรฐาน BIP-44 ดังนี้ครับ
m/84'/0'/0'/0/0
- ตัวอักษร m (Master Key): ย่อมาจาก Master Privey Keyหรือแม่กุญแจหลักบนสุดที่เกิดจาก Seed Phrase ของเรา
- หลักที่ 1 purpose' เช่น 84': ระบุ "มาตรฐานโครงสร้างหรือประเภทสคริปต์ของที่อยู่" โดยตัวเลขนี้จะอ้างอิงตามหมายเลขเอกสารมาตรฐาน BIP เช่น เลข 84' หมายถึงมาตรฐาน BIP-84 (ที่อยู่บิทคอยน์แบบ Native SegWit ที่ขึ้นต้นด้วย bc1q)
- หลักที่ 2 coin_type' เช่น 0': ระบุ "ชนิดของสกุลเงินดิจิทัล" ตามตารางมาตรฐานสากล SLIP-0044 โดยเลข 0' คือเครือข่ายหลักของ Bitcoin (Mainnet), เลข 1' คือเครือข่ายทดสอบ (Testnet) และเลข 60' คือเครือข่าย Ethereum เป็นต้น
- หลักที่ 3 account' เช่น 0': ระบุ "ลำดับบัญชีแยกย่อย (Account)" โดยคอมพิวเตอร์จะเริ่มนับบัญชีแรกที่เลข 0' เสมอ หากเพื่อน ๆ กดปุ่ม Add Account ในโปรแกรม Trezor Suite เพื่อแยกบัญชีออมเงินก้อนที่สองและสาม ตัวเลขหลักนี้ก็จะขยับเป็น 1', 2' ตามลำดับ และระดับบัญชีหลักที่ 3 นี้เองคือจุดที่ระบบดึงค่า xPub ออกมาใช้งานครับ
- หลักที่ 4 change (เลข 0 หรือ 1): ระบุ "โซนที่อยู่รับเงินภายนอกเทียบกับที่อยู่รับเงินทอน" โดยเลข 0 คือโซนที่อยู่สำหรับแสดงบนหน้าจอให้คนอื่นโอนเหรียญเข้ามา (Receiving Address) ส่วนเลข 1 คือโซนที่อยู่ภายในสำหรับรับเงินทอนกลับเข้ากระเป๋าตัวเองอัตโนมัติ (Change Address)
- หลักที่ 5 address_index เช่น 0, 1, 2...: ระบุ "ลำดับที่อยู่รับเหรียญใบที่เท่าไหร่" โดยที่อยู่ใบแรกสุดของกระเป๋าจะเริ่มที่เลข 0 พอเรารับเหรียญเสร็จแล้วกดขอที่อยู่ใหม่ ระบบก็จะขยับเลขท้ายเป็น 1, 2, 3 ไปเรื่อย ๆ ครับ
เครื่องหมายขีดเดี่ยว (') หรือ Hardened Derivation คืออะไร ทำไมถึงช่วยกั้นความปลอดภัยให้กุญแจแต่ละชั้น
เพื่อน ๆ ที่ช่างสังเกตอาจสงสัยว่า ทำไมตัวเลข 3 หลักแรก (84'/0'/0') ถึงมีเครื่องหมายขีดเดี่ยว (') ห้อยท้ายอยู่ (ในบางโปรแกรมอาจเขียนแทนด้วยตัวอักษร h เช่น 84h/0h/0h) แต่ 2 หลักสุดท้ายกลับไม่มีเครื่องหมายนี้?
เครื่องหมายขีดเดี่ยว (') นี้ในทางเทคนิคเรียกว่า Hardened Derivation (การแตกแขนงกุญแจแบบเสริมเกราะนิรภัย) ตามมาตรฐาน BIP-32 ครับ
- ชั้นที่มีเครื่องหมาย ' (3 หลักแรก): เปรียบเสมือน "ประตูนิรภัยที่ต้องใช้กุญแจส่วนตัวในตัวเครื่อง Hardware Wallet มาไขเปิดเท่านั้น" เพื่อทำหน้าที่เป็นกำแพงแยกแต่ละเหรียญและแต่ละบัญชีออกจากกันอย่างเด็ดขาด หากวันหนึ่งกุญแจในบัญชีที่ 1 เกิดรั่วไหล คนร้ายก็จะไม่สามารถข้ามกำแพงไปแฮกบัญชีที่ 2 หรือข้ามไปแฮกเหรียญอื่นในเครื่องเดียวกันได้เลย
- ชั้นที่ไม่มีเครื่องหมาย ' (2 หลักสุดท้าย คือโซน 0/0): เป็นการแตกแขนงแบบปกติ (Non-hardened) เพื่อให้ค่ากุญแจสาธารณะแม่แบบ (xPub) ที่ถูกส่งออกมาจากชั้นที่ 3 (m/84'/0'/0') สามารถคำนวณสร้างที่อยู่รับเหรียญ (0/0, 0/1, 0/2) และที่อยู่รับเงินทอน (1/0, 1/1) บนแอปมือถือหรือคอมพิวเตอร์ได้เองโดยไม่ต้องเสียบเครื่อง Hardware Wallet ทุกครั้งนั่นเองครับ
ความสำคัญของ Derivation Path ในระบบ Single-sig ไขปริศนากู้กระเป๋าแล้วไม่เจอยอดเงิน
เมื่อเข้าใจโครงสร้างแผนที่แล้ว ตอนนี้เรามาไขปริศนายอดฮิตในระบบกระเป๋าเดี่ยว (Single-sig) กันครับว่า ทำไมบางครั้งเวลากู้คืน Seed Phrase ข้ามแอปพลิเคชันหรือข้ามยี่ห้อแล้วถึงมองไม่เห็นยอดเงิน
รู้จัก 4 มาตรฐานของ Bitcoin ตั้งแต่ Legacy (m/44'), Nested SegWit (m/49'), Native SegWit (m/84') จนถึง Taproot (m/86')
ตลอดพัฒนาการของเครือข่าย Bitcoin ได้มีการอัปเกรดรูปแบบที่อยู่รับเหรียญให้ทันสมัยและประหยัดค่าธรรมเนียมมากขึ้นเรื่อย ๆ โดยผู้พัฒนาได้กำหนดกฎเหล็กไว้ว่า ที่อยู่แต่ละรูปแบบจะต้องแยกกันอยู่คนละหมายเลข Purpose ในหลักแรก เพื่อไม่ให้สคริปต์ตีกัน ซึ่งแบ่งออกเป็น 4 มาตรฐานดังนี้ครับ
- มาตรฐานที่ 1 มาตรฐาน BIP-44 (m/44'/0'/0'): สำหรับที่อยู่รูปแบบดั้งเดิม Legacy (P2PKH) ที่ขึ้นต้นด้วยเลข 1...
- มาตรฐานที่ 2 มาตรฐาน BIP-49 (m/49'/0'/0'): สำหรับที่อยู่ยุคเปลี่ยนผ่าน Nested SegWit (P2SH-P2WPKH) ที่ขึ้นต้นด้วยเลข 3...
- มาตรฐานที่ 3 มาตรฐาน BIP-84 (m/84'/0'/0'): สำหรับที่อยู่มาตรฐานหลักในปัจจุบัน Native SegWit (P2WPKH) ที่ขึ้นต้นด้วย bc1q... (ให้ความคุ้มค่าเรื่องค่าธรรมเนียมและรองรับกว้างขวางที่สุด)
- มาตรฐานที่ 4 มาตรฐาน BIP-86 (m/86'/0'/0'): สำหรับที่อยู่รุ่นใหม่ล่าสุด Taproot (P2TR) ที่ขึ้นต้นด้วย bc1p...
ดังนั้น หากเมื่อ 3 ปีก่อนเพื่อน ๆ เคยเก็บเหรียญไว้ในที่อยู่แบบขึ้นต้นด้วยเลข 3 (m/49') หรือเผลอกดสร้างบัญชีแบบ Taproot bc1p (m/86') เอาไว้ พอวันนี้เพื่อน ๆ นำ Seed Phrase ไปกู้ลงแอปใหม่ที่ตั้งค่าเริ่มต้นให้สแกนเฉพาะ m/84' เพียงมาตรฐานเดียว แอปนั้นก็จะรายงานว่ามียอดเงินเป็น 0 บาททันที วิธีแก้จึงง่ายมาก เพียงแค่กดเพิ่มประเภทบัญชี (Script Type / Address Type) ให้ตรงกับซอยเดิมที่เราเคยฝากเหรียญไว้ ยอดเงินทั้งหมดก็จะปรากฏกลับมาครบทุกสตางค์ครับ
การแยกบัญชี (Account Index) และที่อยู่รับเงินทอน (Change Index 0 vs 1) ที่ทำงานอยู่เบื้องหลังอัตโนมัติ
อีกจุดหนึ่งในระบบ Single-sig ที่มักทำให้คนตกใจเวลาส่องดูธุรกรรมบนหน้าเว็บสำรวจบล็อกเชน (Block Explorer) คือเมื่อเราโอนบิทคอยน์ออกไปบางส่วน เช่น มี 1 BTC โอนให้เพื่อน 0.1 BTC แล้วเห็นว่าอีก 0.9 BTC ที่เหลือถูกโอนไปยังที่อยู่ปริศนาที่เราไม่เคยเห็นมาก่อน
ความจริงแล้ว เงิน 0.9 BTC นั้นไม่ได้หายไปไหนครับ แต่โปรแกรมได้ส่งมันกลับเข้ามาเก็บไว้ "ที่อยู่รับเงินทอน (Change Index เลข 1)" เช่นที่พิกัด m/84'/0'/0'/1/0 ซึ่งอยู่ภายใต้ร่มของค่า xPub บัญชีเดิมของเรานั่นเอง ซอฟต์แวร์กระเป๋าของเราจะรวมยอดทั้งจากซอยรับเงิน (0) และซอยเงินทอน (1) มาแสดงผลเป็นยอดรวมเดียวกันให้เราเห็นโดยอัตโนมัติครับ
ความสำคัญของ Derivation Path ในระบบ Multisig เมื่อการเปลี่ยนไปสู่มาตรฐาน BIP-48 คือกฎเหล็กที่ห้ามจำผิด
ทีนี้เมื่อเพื่อน ๆ ขยับจากกระเป๋า Single-sig เข้าสู่การจัดตั้งห้องนิรภัยแบบหลายลายเซ็น (Multisig Wallet) เรื่องของ Derivation Path จะไม่ใช่แค่เรื่องที่ซอฟต์แวร์จัดการให้เงียบ ๆ หลังบ้านอีกต่อไป แต่เป็นสิ่งที่ผู้ใช้งานต้องเข้าใจและตรวจสอบด้วยตัวเองครับ
ทำไมกระเป๋า Multisig ถึงไม่ใช้ซอย m/84' เหมือนกระเป๋าปกติ แต่ต้องแยกเข้า m/48'/0'/0'/2'
คำถามยอดฮิตของคนที่เริ่มทำ Multisig คือ "ในเมื่อเราต้องการสร้างกระเป๋า Multisig แบบที่อยู่ Native SegWit (ที่ขึ้นต้นด้วย bc1q) เหมือนกัน ทำไมอุปกรณ์ถึงไม่ดึงกุญแจจากซอย m/84'/0'/0' เดิมมาใช้ล่ะ?"
เหตุผลสำคัญด้านความปลอดภัยและความเป็นส่วนตัวคือ เราห้ามนำกุญแจสาธารณะ (xPub) ที่เคยใช้ในกระเป๋า Single-sig มาใช้ซ้ำในวง Multisig เด็ดขาดเพื่อป้องกันการรั่วไหลของข้อมูลข้ามกระเป๋าและป้องกันความสับสนของสคริปต์
อุตสาหกรรมบิทคอยน์จึงได้กำหนดมาตรฐานแยกเฉพาะสำหรับกระเป๋าหลายลายเซ็นขึ้นมาในชื่อ BIP-48 โดยเปลี่ยนโครงสร้างเส้นทางเป็น m / 48' / 0' / 0' / script_type' ซึ่งมีความหมายในแต่ละหลักดังนี้ครับ
m / 48' / 0' / 0' / 2'
- 48' (Purpose): ระบุชัดเจนว่ากุญแจกิ่งนี้ถูกสร้างขึ้นเพื่อนำไปผูกเป็นระบบ Multisig เท่านั้น
- 0' (Coin Type): เครือข่ายหลักของ Bitcoin (Mainnet)
- 0' (Account): ลำดับบัญชี Multisig บัญชีที่ 1 (หากสร้างวง Multisig วงที่สองโดยใช้เครื่องเดิม ก็สามารถขยับเลขนี้เป็น 1' ได้)
- 2' (Script Type): สังเกตว่าในมาตรฐาน BIP-48 จะมีหลักที่ 4 ที่ติดเครื่องหมาย Hardened (') เพิ่มเข้ามาอีกหนึ่งชั้นเพื่อระบุประเภทสคริปต์ของห้องนิรภัย โดยเลข 1' หมายถึง Nested SegWit Multisig (P2SH-P2WSH) และเลข 2' หมายถึง Native SegWit Multisig (P2WSH) ซึ่งเป็นมาตรฐานหลักที่ซอฟต์แวร์อย่าง Sparrow Wallet และ Nunchuk ใช้เป็นค่าเริ่มต้นในปัจจุบันครับ
จะเกิดอะไรขึ้นหากดึงค่า xPub มาผิดตอนตั้งค่าหรือตอนกู้คืนกระเป๋าหลายลายเซ็น
ลองนึกภาพตามแอดนะครับ เวลาที่เพื่อน ๆ ตั้งค่ากระเป๋า Multisig แบบไร้สาย (Air-Gapped) เช่น การกดเมนูบนตัวเครื่อง Blockstream Jade เพื่อส่งออก QR Code ของกุญแจไปให้โปรแกรมบนคอมพิวเตอร์สแกน หากตอนตั้งค่าครั้งแรกเพื่อน ๆ เลือกส่งออกจากซอยมาตรฐาน m/48'/0'/0'/2'
แต่พอผ่านไป 5 ปี คอมพิวเตอร์พังและทำไฟล์สำรองโครงสร้างกระเป๋าหาย แต่เพื่อน ๆ ยังมีอุปกรณ์และแผ่นจด Seed Phrase อยู่ครบทั้ง 3 ชุด (สถานการณ์ที่ 3 ในคู่มือการกู้คืน Multisig) ตอนที่จะนำกุญแจทั้ง 3 เครื่องกลับมาประกอบร่างใหม่บนโปรแกรม ถ้าเพื่อน ๆ ดึงค่า xPub ออกมาจากผิด เช่น เผลอไปดึงซอย m/84'/0'/0' ของ Single-sig หรือดึงผิดเป็นบัญชี m/48'/0'/1'/2'
ผลลัพธ์คือ ค่า xPub ที่ได้ออกมาจะเป็นคนละตัวกันทันที และเมื่อนำมาผูกกันเสร็จ ระบบจะสร้างห้องนิรภัยใบใหม่ที่ไม่มียอดเงินเดิมของเราอยู่เลย ดังนั้นการรู้ว่าวง Multisig ของเราตั้งค่าไว้บนซอยมาตรฐาน m/48'/0'/0'/2' จึงช่วยให้เรากู้คืนกระเป๋ากลับมาได้อย่างถูกต้องแม่นยำครับ
ตารางสรุปเส้นทาง Derivation Path มาตรฐานของ Bitcoin ทั้งระบบ Single-sig และ Multisig
เพื่อให้เห็นภาพชัดเจนขึ้น แอดสรุปตารางอ้างอิงเส้นทาง Derivation Path มาตรฐานสากลของ Bitcoin ทั้งสำหรับกระเป๋า Single-sig และกระเป๋า Multisig ออกมาให้ดูแบบหมัดต่อหมัดครับ
| มาตรฐาน BIP | เส้นทางระดับบัญชี (Derivation Path) | รูปแบบกระเป๋าและการใช้งาน | รูปแบบสคริปต์ (Script Type) | ลักษณะที่อยู่รับเหรียญ (Mainnet Address) |
|---|---|---|---|---|
| BIP-44 | m/44'/0'/0' | Single-sig ยุคดั้งเดิม (Legacy) | P2PKH | ขึ้นต้นด้วยเลข 1... |
| BIP-49 | m/49'/0'/0' | Single-sig ยุคเปลี่ยนผ่าน (Nested SegWit) | P2SH-P2WPKH | ขึ้นต้นด้วยเลข 3... |
| BIP-84 | m/84'/0'/0' | Single-sig มาตรฐานหลักปัจจุบัน (Native SegWit) | P2WPKH | ขึ้นต้นด้วย bc1q... (ยาว 42 ตัวอักษร) |
| BIP-86 | m/86'/0'/0' | Single-sig รุ่นใหม่ (Taproot) | P2TR | ขึ้นต้นด้วย bc1p... (ยาว 62 ตัวอักษร) |
| BIP-48 (แบบที่ 1) | m/48'/0'/0'/1' | Multisig แบบ Nested SegWit | P2SH-P2WSH | ขึ้นต้นด้วยเลข 3... |
| BIP-48 (แบบที่ 2) | m/48'/0'/0'/2' | Multisig มาตรฐานหลักปัจจุบัน (Native SegWit) | P2WSH | ขึ้นต้นด้วย bc1q... (ยาว 62 ตัวอักษร) |
สรุป
มาถึงตรงนี้ เพื่อน ๆ จะเห็นแล้วว่า การมี Seed Phrase ที่ถูกต้องเปรียบเสมือนการมีคีย์การ์ดมาสเตอร์ที่มีอำนาจสูงสุดในมือ แต่การรู้จักค่า Derivation Path คือการมีแผนที่ที่ช่วยให้เราเดินไปเปิดตู้เซฟของตัวเองได้อย่างรวดเร็วและไม่หลงทางแม้จะต้องเปลี่ยนซอฟต์แวร์หรือกู้คืนกระเป๋าในอีก 10 ปีข้างหน้า แอดขอฝากแนวทางปฏิบัติง่าย ๆ 3 ข้อดังนี้ครับ
- ไม่ปรับเปลี่ยนซอย Derivation Path เองนอกมาตรฐานโดยไม่จำเป็น: บางโปรแกรมเปิดโอกาสให้ผู้ใช้ตั้งค่าตัวเลขแปลก ๆ ได้ตามใจชอบ (Custom Derivation Path) ซึ่งแอดไม่แนะนำเด็ดขาดครับ เพราะไม่ได้ช่วยเพิ่มความปลอดภัยเท่ากับการใช้ Passphrase แถมยังสร้างความเสี่ยงสูงมากที่เราจะลืมตัวเลขที่ตั้งเองจนหากระเป๋าตัวเองไม่เจอ ให้ยึดตามซอยมาตรฐานสากล (m/84'/0'/0' สำหรับ Single-sig และ m/48'/0'/0'/2' สำหรับ Multisig) เสมอครับ
- เก็บไฟล์ Output Descriptor สำหรับสาย Multisig: สำหรับเพื่อน ๆ ที่ทำระบบหลายลายเซ็น การสำรองไฟล์โครงสร้างกระเป๋า (Output Descriptor หรือไฟล์ BSMS) จะช่วยบันทึกทั้งค่า Master Fingerprint, เส้นทาง Derivation Path (m/48'/0'/0'/2') และค่า xPub ของทุกเครื่องไว้ให้ครบถ้วนในที่เดียว และอย่าลืมซ้อมกู้คืนจริง (Recovery Drill) ก่อนโอนสินทรัพย์ก้อนหลักเข้าเก็บทุกครั้งนะครับ
เพื่อน ๆ เคยมีประสบการณ์กู้คืนกระเป๋าข้ามแอปแล้วตกใจเพราะยอดเงินไม่ขึ้นจากเรื่อง Derivation Path กันบ้างไหมครับ หรือตอนนี้นิยมเก็บออมบิทคอยน์ไว้ในซอยมาตรฐานไหนกันอยู่ มาคอมเมนต์พูดคุยแลกเปลี่ยนกันได้เลยนะครับ และหากใครต้องการคำปรึกษาเรื่องการวางโครงสร้างเก็บสินทรัพย์ระยะยาวหรือการเลือกซื้อ Hardware Wallet ของแท้จากตัวแทนจำหน่ายทางการ ทักหาทีมงาน Bitcast ได้ตลอดเลยครับ
คำถามที่พบบ่อย (FAQ)
เหรียญไม่ได้หายไปไหนเลยครับ เพราะบิทคอยน์ของเราถูกบันทึกอยู่บนเครือข่ายบล็อกเชนภายใต้กุญแจของซอยเดิมอย่างปลอดภัย การเลือกซอยผิดเป็นเพียงการที่แอปใหม่พาเราไปเปิดดูห้องว่างคนละห้องเท่านั้น เพียงแค่เพื่อน ๆ เปลี่ยนการตั้งค่าประเภทสคริปต์หรือระบุเส้นทาง Derivation Path ให้ตรงกับตอนที่สร้างกระเป๋าเดิม (เช่น เปลี่ยนจาก m/44' มาเป็น m/84') ยอดเงินทั้งหมดก็จะแสดงผลกลับมาครบ 100% ทันทีครับ
ไม่แนะนำอย่างยิ่งครับ การตั้งตัวเลขซอยแปลก ๆ นอกมาตรฐานไม่ได้ช่วยป้องกันกรณีแผ่น Seed Phrase ถูกขโมยได้ดีเท่า Passphrase เพราะผู้โจมตีสามารถใช้โปรแกรมคอมพิวเตอร์สแกนไล่ค้นหาตามซอยต่าง ๆ ได้อย่างรวดเร็ว แต่ในทางกลับกัน ตัวเจ้าของเองมีโอกาสสูงมากที่จะลืมตัวเลขซอยที่ตั้งเองจนกู้เหรียญคืนไม่ได้ ดังนั้นควรใช้เส้นทางมาตรฐานสากลเสมอครับ
แม้ทั้งคู่จะเป็นมาตรฐาน Native SegWit ที่ขึ้นต้นด้วย bc1q เหมือนกัน แต่เบื้องหลังใช้สคริปต์คนละประเภทกันครับ โดยที่อยู่ของกระเป๋า Single-sig (m/84'/0'/0', P2WPKH) จะมีความยาวทั้งหมด 42 ตัวอักษร ในขณะที่ที่อยู่ของกระเป๋า Multisig (m/48'/0'/0'/2', P2WSH) จะเป็นการแฮชสคริปต์ที่มีขนาดยาวกว่า จึงมีความยาวทั้งหมด 62 ตัวอักษร ครับ
ระบบจะขยับตัวเลขที่ หลักที่ 3 (account') ครับ โดยบัญชีแรกสุด (Account #1) จะอยู่ที่พิกัด m/84'/0'/0' พอกดสร้างบัญชีที่ 2 ก็จะขยับเป็น m/84'/0'/1' และบัญชีที่ 3 จะเป็น m/84'/0'/2' ตามลำดับ ซึ่งแต่ละบัญชีจะมีค่า xPub แยกขาดจากกันครับ
ไม่สามารถแฮกได้เลยครับ เพราะค่า Derivation Path เป็นเพียงแผนที่บอกพิกัดมาตรฐานสาธารณะที่ใช้ร่วมกันทั่วโลก (เช่น ทุกคนที่ใช้ Native SegWit ก็ใช้พิกัด m/84'/0'/0' เหมือนกันทั้งหมด) ตราบใดที่ไม่มีใครรู้คำศัพท์ Seed Phrase หรือกุญแจส่วนตัวของเรา เขาก็ไม่สามารถเปิดเข้าไปยุ่งกับสินทรัพย์ในพิกัดนั้นได้ครับ






Share:
Hardware Wallet ที่มีแบตเตอรี่ต้องชาร์จบ่อยแค่ไหน ถ้าไม่ค่อยได้เปิดใช้งาน?