อธิบาย Derivation Path ของกระเป๋าเงินคริปโต
Derivation path บอกกระเป๋าเงินว่าต้องสร้างที่อยู่ใดจากวลีกู้คืนของคุณ เรียนรู้ว่าเส้นทางอย่าง m/44'/60'/0'/0/0 ทำงานอย่างไร และจะแก้ปัญหายอดคงเหลือที่หายไปได้อย่างไร
Derivation path คือรหัสสั้น ๆ เช่น m/44'/60'/0'/0/0 ที่บอกกระเป๋าเงินอย่างชัดเจนว่าต้องสร้างคีย์ส่วนตัวและที่อยู่ใดจากวลีกู้คืนของคุณ วลีกู้คืนชุดเดียวกันสามารถสร้างที่อยู่ได้นับพันล้านที่อยู่ และเส้นทางจะเลือกหนึ่งในนั้น ดังนั้นกระเป๋าสองใบที่ใช้ seed เดียวกันแต่ใช้เส้นทางต่างกันจะแสดงที่อยู่และยอดคงเหลือต่างกัน
นี่คือเหตุผลที่บางคนกู้คืนวลีกู้คืนลงในกระเป๋าใหม่แล้วเห็นยอดคงเหลือว่างเปล่า ทั้งที่เงินของพวกเขายังปลอดภัยดีบนบล็อกเชน การเข้าใจ derivation path จะเปลี่ยนช่วงเวลาที่น่าตกใจนั้นให้กลายเป็นเพียงเรื่องของการตั้งค่า และยังช่วยให้คุณเขียนบันทึกประกอบข้อมูลสำรองได้ดีขึ้นด้วย
กระเป๋า HD เปลี่ยน seed เดียวให้เป็นที่อยู่จำนวนมากได้อย่างไร
กระเป๋ารุ่นเก่าสร้างคีย์แบบสุ่มที่ไม่เกี่ยวข้องกัน และต้องสำรองแต่ละคีย์แยกกัน กระเป๋าแบบ hierarchical deterministic แก้ปัญหานี้ได้ กระเป๋าประเภทนี้ถูกกำหนดไว้ใน BIP32 และ derive ทุกคีย์จาก master seed เพียงตัวเดียวในโครงสร้างแบบต้นไม้ ส่วน BIP39 กำหนดมาตรฐานการแปลง seed นั้นให้เป็นรายการคำ 12 หรือ 24 คำ ซึ่งก็คือวลีกู้คืนที่คุณสำรองไว้
เนื่องจากการ derive เป็นแบบกำหนดได้แน่นอน (deterministic) seed เดียวกันและเส้นทางเดียวกันจะให้คีย์เดียวกันเสมอ นี่คือสิ่งที่ทำให้ข้อมูลสำรองเพียงชุดเดียวก็เพียงพอ แต่ก็หมายความว่ากระเป๋าที่มองไปยังกิ่งอื่นของต้นไม้จะมองไม่เห็นเงินของคุณเลย หากต้องการรายละเอียดเพิ่มเติม ดูกระเป๋าแบบหลายเชน
วิธีอ่าน derivation path
BIP44 กำหนดโครงสร้างร่วมกันไว้ ลองดูเส้นทางของบัญชี Ethereum บัญชีแรก คือ m/44'/60'/0'/0/0:
| ระดับ | ค่า | ความหมาย |
|---|---|---|
| m | master | คีย์รากที่ derive มาจาก seed ของคุณ |
| purpose | 44' | มาตรฐานที่ใช้ (ในที่นี้คือ BIP44) |
| coin type | 60' | บล็อกเชนใด: 0 สำหรับ Bitcoin, 60 สำหรับ Ethereum ตามทะเบียน SLIP-44 |
| account | 0' | ช่วยให้คุณแยกบัญชีต่าง ๆ ภายใต้ seed เดียว |
| change | 0 | 0 สำหรับที่อยู่รับเงิน, 1 สำหรับที่อยู่เงินทอน (ส่วนใหญ่ใช้กับ Bitcoin) |
| address index | 0 | ที่อยู่แต่ละรายการ: 0, 1, 2 และต่อไปเรื่อย ๆ |
เครื่องหมาย apostrophe หมายถึงการ derive แบบ hardened ซึ่งเป็นฟีเจอร์ด้านความปลอดภัยที่ป้องกันไม่ให้คีย์ลูกที่รั่วไหลถูกนำไปใช้คำนวณคีย์ที่เกี่ยวข้อง เครื่องมือบางตัวเขียนเป็น “h” แทน
เส้นทางที่พบบ่อย
ประเภทที่อยู่ของ Bitcoin
Bitcoin ใช้หมายเลข purpose ต่างกันสำหรับรูปแบบที่อยู่ต่างกัน:
- m/44'/0'/0' – ที่อยู่แบบ legacy ที่ขึ้นต้นด้วย 1
- m/49'/0'/0' – ที่อยู่ nested SegWit ที่ขึ้นต้นด้วย 3
- m/84'/0'/0' – ที่อยู่ native SegWit ที่ขึ้นต้นด้วย bc1q
- m/86'/0'/0' – ที่อยู่ Taproot ที่ขึ้นต้นด้วย bc1p
หากคุณกู้คืน seed แล้วไม่เห็น Bitcoin ให้ตรวจสอบว่ากระเป๋ากำลังสแกนประเภทที่อยู่ที่ถูกต้อง
Ethereum และเชน EVM
กระเป๋า EVM ส่วนใหญ่ใช้ m/44'/60'/0'/0/x โดยเพิ่มตัวเลขตัวสุดท้ายสำหรับแต่ละบัญชีใหม่ ซอฟต์แวร์กระเป๋าบางตัวในอดีตกลับเพิ่มค่าในระดับอื่นแทน เช่น m/44'/60'/x'/0/0 ซึ่งเป็นสาเหตุที่บัญชีหลังจากบัญชีแรกอาจดูเหมือน “หายไป” เมื่อคุณเปลี่ยนกระเป๋า เนื่องจากเชน EVM ใช้รูปแบบที่อยู่ร่วมกัน เส้นทางเดียวกันจึงให้ที่อยู่เดียวกันบน Ethereum และเครือข่าย EVM อื่น ๆ ดูทำไมกระเป๋าของคุณแสดงที่อยู่ต่างกันบนเชนต่างกัน
Solana และเชนอื่น ๆ
กระเป๋า Solana มักใช้เส้นทางที่อิงกับ coin type 501 แต่กระเป๋าแต่ละตัวก็ใช้รูปแบบที่ต่างกันไปตามช่วงเวลา ด้วยเหตุนี้กระเป๋าหลายตัวจึงแสดงตัวเลือกเส้นทางระหว่างการนำเข้า
วิธีแก้ปัญหายอดคงเหลือหายหลังการกู้คืน
- 1อย่าตกใจและอย่าโอนอะไรทั้งสิ้น เงินของคุณอยู่บนบล็อกเชน ไม่ได้อยู่ในแอป
- 2ตรวจสอบที่อยู่ เปรียบเทียบที่อยู่แรกของกระเป๋าที่กู้คืนกับธุรกรรมเก่าหรือที่อยู่ที่คุณบันทึกไว้ หากไม่ตรงกัน แสดงว่าเป็นปัญหาเรื่องเส้นทางหรือประเภทที่อยู่
- 3มองหาตัวเลือกเส้นทาง กระเป๋าหลายตัวมีการตั้งค่า “ขั้นสูง” “เส้นทางกำหนดเอง” หรือ “นำเข้า” ที่แสดงรายการเส้นทางที่ใช้กันทั่วไป
- 4ลองใช้ค่าเริ่มต้นของกระเป๋าเดิม เอกสารของกระเป๋ามักระบุว่าใช้เส้นทางใด
- 5ตรวจสอบว่ามี passphrase หรือไม่ หากคุณใช้ passphrase ที่เป็นตัวเลือกเสริม (“คำที่ 25”) การใช้ passphrase ที่ต่างไปหรือไม่ได้ใส่ก็จะได้กระเป๋าที่ต่างออกไปโดยสิ้นเชิงเช่นกัน ดูคำอธิบายเรื่อง passphrase
- 6มองลึกลงไปในต้นไม้ หากคุณใช้ที่อยู่จำนวนมาก ให้เพิ่ม gap limit ของกระเป๋า หรือเพิ่มบัญชีด้วยตนเอง
อย่าวางวลีกู้คืนของคุณลงในเว็บไซต์ที่เสนอว่าจะ “ค้นหาเส้นทางให้คุณ” เด็ดขาด เครื่องมือกู้คืนที่ถูกต้องตามกฎหมายทำงานแบบออฟไลน์ และเว็บไซต์ “path finder” จำนวนมากเป็นหน้าฟิชชิง
ทำไมกระเป๋าไม่สแกนทุกเส้นทางไปเลย
คุณอาจสงสัยว่าทำไมกระเป๋าไม่ตรวจสอบทุกเส้นทางที่เป็นไปได้โดยอัตโนมัติ ต้นไม้นี้แทบจะไม่มีที่สิ้นสุด และการตรวจสอบแต่ละครั้งต้องค้นหาที่อยู่บนบล็อกเชน ซึ่งทั้งช้าและอาจทำให้บริการที่ทำการค้นหารู้ว่าที่อยู่ใดเป็นของคุณ กระเป๋าจึงสแกนเฉพาะชุดเส้นทางเริ่มต้นที่จำกัด และหยุดเมื่อพบที่อยู่ที่ไม่ได้ใช้ต่อเนื่องกันจำนวนหนึ่ง ซึ่งเรียกว่า gap limit
การออกแบบนี้สมเหตุสมผลในแง่ความเป็นส่วนตัวและประสิทธิภาพ แต่หมายความว่าการตั้งค่าที่ไม่ธรรมดาต้องอาศัยความช่วยเหลือจากคุณเล็กน้อยระหว่างการกู้คืน
สิ่งที่ควรเขียนในบันทึกข้อมูลสำรอง
นอกจากวลีกู้คืนที่เก็บรักษาไว้อย่างปลอดภัยแล้ว ควรเก็บข้อมูลต่อไปนี้แยกไว้อย่างปลอดภัยด้วย:
- ซอฟต์แวร์กระเป๋าหรือฮาร์ดแวร์วอลเล็ตที่คุณใช้ และใช้ราวช่วงเวลาใด
- Derivation path หรือประเภทที่อยู่ หากคุณเปลี่ยนจากค่าเริ่มต้น
- มี passphrase หรือไม่ (แต่อย่าเขียน passphrase ไว้ข้าง seed)
- ที่อยู่รับเงินสาธารณะหนึ่งที่อยู่ เพื่อให้คุณยืนยันได้ว่าการกู้คืนถูกต้อง
ข้อมูลเหล่านี้ไม่ได้เป็นความลับในตัวมันเอง แต่ช่วยประหยัดเวลาได้หลายชั่วโมงระหว่างการกู้คืน คู่มือของเราเรื่องการกู้คืนกระเป๋าเงินทำงานอย่างไรอธิบายกระบวนการทั้งหมดไว้
สรุป
Derivation path คือแผนที่จากวลีกู้คืนของคุณไปยังที่อยู่ที่เฉพาะเจาะจง เมื่อกระเป๋าที่กู้คืนไม่แสดงอะไรเลย สาเหตุแทบทุกครั้งคือเส้นทาง ประเภทที่อยู่ หรือ passphrase ที่ต่างกัน ไม่ใช่เงินที่สูญหาย จงรู้ว่าคุณใช้กระเป๋าและการตั้งค่าใด เก็บที่อยู่สาธารณะไว้หนึ่งที่อยู่เพื่ออ้างอิง และใช้ตัวเลือกการนำเข้าขั้นสูงของกระเป๋าก่อนจะคิดไปในทางที่เลวร้ายที่สุด
คำถามที่พบบ่อย
ทำไมกระเป๋าที่กู้คืนแล้วจึงแสดงยอดคงเหลือเป็นศูนย์?
สาเหตุที่พบบ่อยที่สุดคือกระเป๋าใหม่ใช้ derivation path หรือประเภทที่อยู่ต่างจากกระเป๋าเดิม จึงสร้างที่อยู่ที่ต่างออกไปจากวลีกู้คืนชุดเดียวกัน ให้ตรวจสอบว่ากระเป๋าเดิมใช้เส้นทางใด แล้วเลือกเส้นทางนั้นในการตั้งค่าขั้นสูงหรือการตั้งค่าการนำเข้าของกระเป๋าใหม่
Derivation path เป็นความลับหรือไม่?
ไม่ใช่ Derivation path เป็นข้อตกลงมาตรฐานที่เปิดเผยต่อสาธารณะ และไม่ได้ให้สิทธิ์เข้าถึงเงินของคุณ สิ่งที่ต้องเก็บเป็นความลับมีเพียงวลีกู้คืนและ passphrase (ถ้ามี) เท่านั้น การจดเส้นทางและซอฟต์แวร์กระเป๋าที่คุณใช้ไว้คู่กับข้อมูลสำรองเป็นเรื่องที่มีประโยชน์ แต่อย่าเขียนไว้ข้างสิ่งใดก็ตามที่เปิดเผย seed
เครื่องหมาย apostrophe ใน derivation path หมายถึงอะไร?
เครื่องหมาย apostrophe ซึ่งบางครั้งเขียนเป็น h ใช้ระบุระดับการ derive แบบ hardened คีย์แบบ hardened เพิ่มคุณสมบัติด้านความปลอดภัย กล่าวคือ ผู้ที่รู้คีย์ส่วนตัวลูกและ extended public key ของคีย์แม่ จะไม่สามารถใช้ข้อมูลเหล่านั้นคำนวณคีย์อื่นในระดับเดียวกันได้
ฉันจำเป็นต้องรู้ derivation path เพื่อกู้คืนกระเป๋าหรือไม่?
บ่อยครั้งค่าเริ่มต้นก็ใช้ได้ แต่ไม่ใช่ทุกครั้ง หากคุณใช้กระเป๋าที่ไม่ค่อยแพร่หลาย เวอร์ชันเก่า หรือการตั้งค่าที่ไม่ใช่ค่าเริ่มต้น การจดชื่อกระเป๋าและเส้นทางไว้จะช่วยให้คุณหรือทายาทกู้คืนเงินได้ในภายหลัง เก็บบันทึกนั้นแยกจากข้อมูลสำรองวลีกู้คืนของคุณ
