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

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

อัปเดตเมื่อกว่า 2 สัปดาห์ที่แล้ว

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

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

จากนั้น อัลกอริทึมที่กำหนดผลลัพธ์และไม่สามารถย้อนกลับได้ จะสร้างคีย์ส่วนตัวย่อยจำนวนเท่าใดก็ได้ตามคีย์ส่วนตัวหลัก

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

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

เมื่อเราสร้างกระเป๋าเงิน HD หรือสำรองข้อมูลกระเป๋าเงินครั้งแรก จะมีการสร้างคำช่วย (helper word) คำช่วยคือลำดับของคำภาษาอังกฤษ และลำดับคำนี้จะสร้างเมล็ดพันธุ์ (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 ด้วยคีย์สาธารณะหนึ่งคีย์สามารถสร้างคีย์สาธารณะย่อยได้จำนวนเท่าใดก็ได้ ซึ่งช่วยแก้ปัญหาการใช้กระเป๋าเงินดิจิทัลที่ยากลำบากได้อย่างมาก

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