BIP คืออะไร? และกระเป๋าฮาร์ดแวร์ทำการแบ็คอัพจากคำ 24 คำได้อย่างไร?

หลายๆคนที่ใช้ Ledger, Trezor, Bitbox หรือประเป๋าฮาร์ดแวร์ยี่ห้ออื่นๆที่รองรับ BIP32, BIP39 หรือ BIP44 อาจสงสัยว่าตัวกระเป๋าฮาร์ดแวร์ที่เรามีนั้นใช้อะไรเพื่อแบ็คอัพหรือทำการสำรองข้อมูล

ในบทความนี้เราจะมาพูดถึง BIP กันครับ

  1. BIP คืออะไร?
  2. BIP32, BIP39 และ BIP44 แตกต่างกันอย่างไร?
  3. กระเป๋าฮาร์ดแวร์และโปรแกรมกระเป๋าคริปโตเคอเรนซี่ทำการแบ็คอัพอย่างไร? (สำหรับคนที่ต้องการทำความเข้าใจง่ายๆ และดูตัวอย่างสั่นๆให้ข้ามมาอ่านหัวข้อนี้ได้เลยครับ)

 

  1. BIP คืออะไร?

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

BIP ย่อมาจาก “Bitcoin Improvement Proposals” หรือก็คือ “ข้อเสนอการปรับปรุงระบบบิทคอยน์” และมีทั้งหมด 3 แบบด้วยกัน 1. Standard track BIPs, 2. Informational BIPs และ 3. Process BIPs ซึ่งผมจะไม่ขอเข้าไปในรายละเอียดนี้เพราะไม่เกี่ยวข้องโดยตรงกับสิ่งที่ผมอยากจะพูดถึง

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

ส่วนตัวเลขเช่น BIP32, BIP39 และ BIP44 ที่ได้ยินกันบ่อยๆเปรียบเสมือนไฟล์เอกสารครับ

ลิ้งนี้จะมีไฟล์ BIP หลายๆอย่างให้เลือกดูรายละเอียด https://github.com/bitcoin/bips

  1. BIP32, BIP39 และ BIP44 แตกต่างกันอย่างไร?

เฉพาะในส่วนของ BIP32 และ BIP39 นั้นเกี่ยวข้องกับการสร้าง Public key และ Private key ครับ ส่วน BIP44 บ่งบอกถึงการเก็บรักษาสกุลเงินต่างๆ เราจึงได้ยินคำเหล่านี้กันบ่อยๆหากใช้กระเป๋าฮาร์ดแวร์

รายละเอียดตามนี้ครับ

BIP32 = บ่งบอกวิธีการสร้างบัญชีจากจำนวนคำสุ่มตั้งแต่ 12 คำหรือมากกว่า (มากกว่า 128 bit ขึ้นไป)

BIP39 = รายการคำศัพท์สำหรับสุ่มเลือกในการสร้าง Master Private Key (ซึ่งก็คือคำศัพท์ 24 คำที่คนเคยใช้กระเป๋าฮาร์แวร์จะคุ้นเคยกัน) ทั้งนี้ยังมีหลากหลายภาษาให้เลือกได้อีกด้วย! แต่ไม่มีภาษาไทยนะครับ :’(

BIP44 = บ่งบอกวิธีการสร้างและบันทึกบัญชีในกรณีที่ต้องการเก็บมากกว่าสกุลเงินเดียว (ดังนั้นหากคุณได้ยินว่ากระเป๋านี้รองรับระบบ BIP44 ก็เป็นการบ่งชี้อย่างหนึ่งว่ากระเป๋านั้นจะสามารถเก็บได้มากกว่าสกุลดิจิตอลอันเดียวครับ)

และยังมีอีกหลาย BIP ที่ไม่เกี่ยวข้องกับกระเป๋าฮาร์ดแวร์ครับ https://github.com/bitcoin/bips

  1. กระเป๋าฮาร์ดแวร์และโปรแกรมกระเป๋าคริปโตเคอเรนซี่ทำการแบ็คอัพอย่างไร?

บางคนอาจไม่เข้าใจว่ากระเป๋าฮาร์ดแวร์และโปรแกรมกระเป๋าเหล่านี้ทำการแบ็คอัพข้อมูลได้อย่างไร ทั้งๆที่จดคำ 24 คำไปเพียงครั้งเดียว??? บางคนยังเข้าใจผิดด้วยว่าข้อมูลกระเป๋าของเราจะถูกเก็บไว้บนเซิฟเวอร์ของผู้ผลิตกระเป๋านั้นๆ ดังนั้นในข้อ 3 นี้ผมจะอธิบายว่า BIP32, BIP39 และ BIP44 นั้นเกี่ยวข้องกับคำภาษาอังกฤษ 24 คำที่เราเคยจดไว้อย่างไร

ผมจะอธิบายเฉพาะกระเป๋าที่รองรับ BIP32/39/44 นะครับ

ขั้นตอนการสร้างบัญชีที่ 1: ใช้ BIP39

หากไปตามลิ้งนี้ https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt จะเห็นได้ว่าจำนวนคำภาษาอังกฤษในลิสของ BIP39 มีทั้งหมด 2048 คำ และกระเป๋าฮาร์ดแวร์ส่วนมากใช้จำนวนคำทั้งหมด 24 คำในการสร้าง Master Private Key เท่ากับว่าคีย์ที่สามารถมีอยู่ทั้งหมดหมดบนโลกนี้สำหรับจำนวนคำ 24 คำ คือ 24^2048 = 4.706×102826 (4706000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) คีย์นี้เองครับ เพราะงี้คุณไม่ต้องกังวลว่าจะมีใครที่บังเอิญมีคำ 24 คำเหมือนกับคุณหรือจะมีใครแฮกได้หากคุณไม่ได้เป็นคนเอาคำเหล่านั้นไปให้คนอื่นเห็นซะเอง

ขั้นตอนการสร้างบัญชีที่ 2: ใช้ BIP32

และหากใช้วิธีการจาก BIP32 ตามรูปในข้อ 2 เราจะสามารถสร้าง Master Private Key จากคำ 24 คำที่เราได้จดไว้

ขั้นตอนการสร้างบัญชีที่ 3: ใช้ BIP44

ในขั้นตอนนี้ตัวกระเป๋าจะใช้วิธีการจาก BIP44 เพื่อสร้าง Public และ Private Key จาก Master Private Key ในขั้นตอนที่ 2

จะเห็นได้ว่า Public และ Private Key ของเรานั้นถูกสร้างมาจากคำ 24 คำตามคำสั่งคอมพิวเตอร์ล้วนๆ เพราะอย่างนี้เราถึงต้องเก็บคำ 24 คำนี้เยี่ยงชีพเพราะมันคือกุญแจสำหรับสร้าง Private key ของคุณ (รู้เพียง 24 คำก็เท่ากับรู้ Private key ของคุณ)

ตัวอย่าง

  1. กระเป๋าฮาร์ดแวร์หรือแอพบนมือถือสุ่มคำ 24 จาก ฺ2048 คำใน BIP39 ให้ผมตามนี้

bless forget practice behave drill ocean soft wrist glue baby green fiscal feature chair skull snack chat hunt canoe reveal autumn gas sail member

  1. ใช้คำ 24 คำนี้เพื่อสร้างเป็น BIP32 seed

1b2b72d87346e154880c14b45c7a598a129ac70705e55a54c59cc547063ecad83b37b8e9f72fc74ddaa32360154d7e5050f0114f15910267af1a732c1e0c7c3d

  1. ใช้วิธีการจาก BIP32 เพื่อสร้าง Master Private Key

xprv9s21ZrQH143K2Gacfu7RRnnh9azGrpAJsyVgabjwM3N5LoEMrYXsiLCWVPGxWxviEem5SZS69tPijbxT9WHNiJawLZGpu8i153dxGodc5RR

  1. ใช้วิธีการจาก BIP44 เพื่อสร้าง Public และ Private key และจัดเก็บตามสกุลเงินที่เราเลือก

เพียงแค่นี้ตัวกระเป๋าฮาร์ดแวร์หรือโปรแกรมกระเป๋าก็สร้างบัญชีให้คุณได้แล้วครับ โดยไม่มีใครนอกจากคุณที่รู้ว่าคำ 24 คำนั้นคืออะไร (จากทั้งหมด 4.706×102826 ความเป็นไปได้)

เพราะฉะนั้นการแบ็คอัพไม่ได้ถูกเก็บไว้บนเซิฟเวอร์ที่ไหนหรือกับใครบนโลกนี้ แต่เป็นตัวคุณเอง

 

หากมีคำถามเพิ่มเติมติดต่อเราได้ที่ [email protected]