ข้ามไปที่เนื้อหาหลัก

กระเป๋าเงินซอฟต์แวร์คืออะไร?

อัปเดตแล้ววันนี้

แนวคิดของกระเป๋าเงินซอฟต์แวร์

กระเป๋าเงินซอฟต์แวร์ใช้ตัวเลขสุ่มเพื่อสร้างกุญแจส่วนตัวหลัก

จากนั้น อัลกอริทึมที่กำหนดได้และไม่ย้อนกลับจะสร้างชุดกุญแจส่วนตัวย่อยจำนวนมากโดยใช้กุญแจส่วนตัวหลัก

เหตุใดเราจึงต้องการอัลกอริทึมที่ "กำหนดได้และไม่ย้อนกลับ"? เนื่องจาก "กำหนดได้" รับประกันว่ากุญแจส่วนตัวย่อยทั้งหมดสามารถสร้างได้จากกุญแจส่วนตัวหลัก ในขณะที่ "ไม่ย้อนกลับ" รับประกันว่าไม่สามารถย้อนกลับกุญแจส่วนตัวหลักจากกุญแจส่วนตัวย่อยได้

เหตุผลที่เรียกว่ากระเป๋าเงินแบบลำดับชั้นที่กำหนดได้ (hierarchical deterministic wallet) ก็คือ โครงสร้างการดึงกุญแจส่วนตัวเป็นโครงสร้างแบบต้นไม้ โดยกุญแจหลักสามารถดึงกุญแจลูกได้หลายชุด และกุญแจลูกแต่ละชุดสามารถดึงกุญแจหลานได้หลายชุดต่อไปเรื่อยๆ อย่างไม่สิ้นสุด

เมื่อเราสร้างกระเป๋าเงิน HD หรือสำรองข้อมูลกระเป๋าเงินครั้งแรก จะมีการสร้างคำช่วย (helper word) คำช่วยคือลำดับของคำภาษาอังกฤษ ซึ่งลำดับคำนี้จะสร้าง Seed ซึ่งในทางกลับกันจะสร้างกุญแจส่วนตัวทั้งหมด ลำดับคำนี้ยังเป็นการสำรองข้อมูลกระเป๋าเงิน ซึ่งสามารถกู้คืนได้ และ Seed จะสอดคล้องกับตัวเลขสุ่มของกระเป๋าเงินที่กำหนดได้ทั้งหมด

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

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

เหตุใดจึงต้องใช้กุญแจส่วนตัวจำนวนมาก

เหตุผลที่ผู้ใช้ต้องการกุญแจส่วนตัวจำนวนมากแสดงให้เห็นได้จากกลไกการเปลี่ยนแปลงในการทำธุรกรรม Bitcoin

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

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

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

นี่คือตัวอย่างความหมายของสิ่งนี้ หากคุณมี UTXO 20 รูเปียและต้องการจ่าย 1 รูเปีย ธุรกรรมของคุณจะต้องใช้ UTXO 20 รูเปียทั้งหมดและสร้างเอาท์พุตสองรายการ: รายการหนึ่งจ่าย 1 รูเปียให้กับผู้รับ และอีกรายการหนึ่งจ่ายส่วนที่เหลือ 19 รูเปียเป็นเงินทอนไปยังกระเป๋าเงินของคุณ ในกรณีนี้ ธุรกรรมส่วนใหญ่ในการแลกเปลี่ยนจะสร้างเงินทอน

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

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

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

นี่ไม่ใช่คำตอบที่ต้องการใช่ไหม