การตรวจสอบวิญญาณกระเป๋าเงิน HD: กระเป๋าเงินใดที่สามารถทดสอบได้
— เขียนโดย | Cobo Vault Manager
ฉันเชื่อว่านักเรียนทุกคนที่ใช้ "กระเป๋าเงินกระจายอำนาจ" คุ้นเคยกับคำศัพท์ที่ช่วยจำ
ไม่ว่าจะเป็นกระเป๋าเงินฮาร์ดแวร์หรือกระเป๋าเงินซอฟต์แวร์ มีสองวิธีในการสร้างกระเป๋าเงิน:
สร้างคำช่วยจำ: กระเป๋าเงินสุ่มสร้างชุดคำช่วยจำ และผู้ใช้จำเป็นต้องคัดลอกและสำรองข้อมูล
นำเข้าคำที่ช่วยจำ: ผู้ใช้นำเข้าชุดของคำช่วยจำที่มีอยู่ไปยังกระเป๋าเงินเพื่อกู้คืนทรัพย์สิน
แล้วตัวช่วยจำกลายเป็นคีย์ส่วนตัวหลักของเราได้อย่างไร แล้วสร้างคีย์ส่วนตัวย่อยทั้งหมดในรูปแบบ HD ได้อย่างไร
มันง่ายมากจริงๆ ชุดของการช่วยจำ หลังจาก 2048 รอบของอัลกอริทึม HMAC-SHA512 จะสร้างคีย์ส่วนตัวหลัก จากนั้นจึงได้รับชุดของ HD wallet
ดังนั้นจึงมีความสอดคล้องกันแบบหนึ่งต่อหนึ่งระหว่างวลีช่วยในการจำและคีย์ส่วนตัวหลัก และชุดของวลีช่วยในการจำจะสอดคล้องกับคีย์ส่วนตัวหลัก นั่นคือ สอดคล้องกับกระเป๋าเงิน HD
คุณเคยคิดเกี่ยวกับคำถามที่น่ากลัวที่นี่:
ตัวอย่างเช่น นี่คือตัวช่วยจำ 12 รายการในมือของเจ้าของร้าน:
cat tonight sadness walnut fan captain sure assume gorilla caution story pull
เพื่อความสะดวก เราเรียกคำศัพท์ชุดนี้ว่า [cat mnemonic]
อย่างไรก็ตาม เมื่อเจ้าของร้านนำเข้า [วลีช่วยจำแมว] เข้ากระเป๋าเงิน คำแรกที่ป้อนมือสั่นกลายเป็นสุนัข ดังนั้นวลีช่วยจำจึงกลายเป็น:
dog tonight sadness walnut fan captain sure assume gorilla caution story pull
เพื่อความสะดวก เราเรียกคำศัพท์ชุดนี้ว่า [dog mnemonic words]
นี่คือตอนที่โศกนาฏกรรมเริ่มต้นขึ้น
เจ้าของร้านทำงานอย่างหนักเพื่อประหยัดเงินและเติมพลังความเชื่อทั้งหมดไปยังที่อยู่ภายใต้ [ระบบช่วยจำสุนัข]
แล้ววันหนึ่งอาจเป็นเพราะโทรศัพท์มือถือหรือฮาร์ดแวร์กระเป๋าเงินเสียหรือแอพกระเป๋าเงินอาจถูกลบเนื่องจากการจับมือ พูดสั้น ๆ ด้วยเหตุผลต่าง ๆ จำเป็นต้องนำเครื่องช่วยจำออกเพื่อกู้คืนทรัพย์สิน
ในเวลานี้ เจ้าของร้านหยิบชุด [วลีช่วยจำแมว] ที่เปื้อนฝุ่นออกมาแล้วนำเข้ากระเป๋าเงิน
ดังที่ได้กล่าวไว้ก่อนหน้านี้ ชุดของตัวช่วยจำอยู่ในการติดต่อแบบตัวต่อตัวกับกระเป๋าสตางค์ HD ในขณะนี้ ที่อยู่ที่กู้คืนโดยใช้ [วลีช่วยจำแมว] แตกต่างจากที่อยู่ของ [วลีช่วยจำสุนัข] กล่าวอีกนัยหนึ่ง ภายใต้ [ช่วยจำแมว] ไม่มีสินทรัพย์
เนื่องจากการป้อนคำช่วยจำโดยไม่ได้ตั้งใจ ทรัพย์สินและความเชื่อทั้งหมดของเจ้าของร้านจึงสูญหายไป
มันน่ากลัว?
ในความเป็นจริง นักพัฒนา Bitcoin ที่มีไหวพริบได้คิดเรื่องนี้มานานแล้ว พวกเขากำหนดโปรโตคอลมาตรฐานสำหรับการช่วยจำ และตรวจสอบว่าการช่วยจำทั้งหมดถูกต้องหรือไม่
ก่อนที่จะพูดถึง "หลักการยืนยัน" เจ้าของร้านควรให้ความรู้พื้นฐานเกี่ยวกับการช่วยจำก่อน
BIP39 กำหนดมาตรฐานสำหรับคำศัพท์ช่วยจำ ซึ่งมีคำศัพท์ 2,048 คำ (ลิงค์อ้างอิง 1) ตราบใดที่กระเป๋าเงินทั้งหมดเป็นไปตาม BIP39 ระบบช่วยจำที่สร้างขึ้นจะได้มาจากคำศัพท์ 2,048 คำนี้ และคำศัพท์ทั้งหมดของ [ช่วยจำแมว] ก็ไม่มีข้อยกเว้น
แต่ละคำในคำศัพท์ 2048 จะถูกทำเครื่องหมายด้วยหมายเลขซีเรียล ตั้งแต่ "0" ถึง "2047" หมายเลขลำดับที่ใหญ่ที่สุด "2047" คือ "11111111111" 11 หลักพอดีในการแทนเลขฐานสอง ดังนั้นสำหรับแต่ละคำในคำศัพท์ เราสามารถสอดคล้องกับเลขฐานสอง 11 บิตตามหมายเลขซีเรียลของมัน สำหรับเลขฐานสองที่มีน้อยกว่า 11 หลัก ให้เติม "0" หน้าเลขฐานสองจนกว่าจะครบ 11 หลัก
ตัวอย่างเช่น cat เป็นคำที่ 287 หมายเลขซีเรียลคือ "286" และเลขฐานสอง 11 หลักที่สอดคล้องกันคือ "100011110" เราสร้างตัวเลข 11 หลักและแสดงเป็น "00100011110"

ต่อไป มาดูขั้นตอน "การยืนยัน" ที่เฉพาะเจาะจงกัน:
ขั้นตอนที่ 1: ตามวิธีการด้านบน เราพบเลขฐานสอง 11 บิตที่ตรงกับ 12 คำของ [ช่วยจำแมว] ตามคำศัพท์ 2048

ขั้นตอนที่ 2: เรารวมเลขฐานสอง 11 บิตที่ตรงกับ 12 คำเหล่านี้เข้าด้วยกันเพื่อให้ได้เลขฐานสอง 132 บิต:
001000111101110010010010111101111111101101100101001011000100010001110110100000000110111101100100101001001001011101011010010101101010
ขั้นตอนที่ 3: เราแบ่งเลขฐานสอง 132 บิตนี้ออกเป็นสองส่วน 128 บิตทางซ้ายและ 4 บิตทางขวา
เหลือ 128 บิต: 00100011110111001001001011110111111101101100101001011000100010001110110100000000110111011001001010010010010111010 1101001010110
4 หลักขวา (ค่าตรวจสอบ): 1010
ขั้นตอนที่ 4: เราเริ่มตรวจสอบความถูกต้องของชุดช่วยจำนี้
หลักการตัดสินความถูกต้อง: 4 บิตแรกของ SHA256 ผลลัพธ์ของเลขฐานสอง 128 บิตทางด้านซ้ายจะต้องเท่ากับเลขฐานสอง 4 บิตทางด้านขวา
ตรวจสอบผลลัพธ์ของ [ช่วยจำแมว] กันเถอะ
ใส่เลขฐานสอง 128 บิตทางซ้ายลงในเครื่องคิดเลขออนไลน์ SHA256 (อ้างอิงจากลิงค์ 2)
![]()
(อย่าใช้เครื่องมือออนไลน์เพื่อตรวจสอบวลีช่วยจำด้วยเหรียญ!!!)
จะเห็นได้ว่า 4 หลักแรกของผลลัพธ์ SHA256 ตรงกับ 4 หลัก "1010" ทางด้านขวาของเลขฐานสอง 132 บิต
ซึ่งหมายความว่า [วลีช่วยจำแมว] ได้ผ่านการตรวจสอบและเป็นชุดของวลีช่วยจำที่ถูกต้อง จากนั้นจึงจะสามารถเข้าสู่กระบวนการสร้างคีย์ส่วนตัวหลักที่ตามมาได้
ถ้าอย่างนั้นลองทำแบบฝึกหัดทันทีเพื่อดูว่า [ตัวช่วยจำสุนัข] ที่พิมพ์คำผิดสามารถผ่านการตรวจสอบได้หรือไม่:
ขั้นตอนที่ 1: [ช่วยจำสุนัข] 12 คำที่สอดคล้องกับเลขฐานสอง 11 บิตของคำศัพท์มีดังนี้:

ขั้นตอนที่ 2: ร้อยเลขฐานสอง 11 บิตที่สอดคล้องกับ 12 คำเหล่านี้เข้าด้วยกันเพื่อให้ได้เลขฐานสอง 132 บิต:
010000001001110010010010111101111111101101100101001011000100010001110110100000000110111101100100101001001001011101011010010101101010
ขั้นตอนที่ 3: แยกเลขฐานสอง 132 บิตนี้ออกเป็นสองส่วน 128 บิตทางซ้ายและ 4 บิตทางขวา:
เหลือ 128 บิต: 01000000100111001001001011110111111101101100101001011000100010001110110100000000110111011001001010010010010111010 1101001010110
4 หลักขวา (ค่าตรวจสอบ): 1010
ขั้นตอนที่ 4: ใส่เลขฐานสอง 128 บิตทางด้านซ้ายของ [dog mnemonic] ลงในเครื่องคิดเลข SHA256

(อย่าใช้เครื่องมือออนไลน์เพื่อตรวจสอบวลีช่วยจำด้วยเหรียญ!!!)
จะเห็นได้ว่า 4 หลักแรกของผลลัพธ์ SHA256 คือ "0010" ซึ่งไม่สอดคล้องกับ "1010" 4 หลักที่ถูกต้องของเลขฐานสอง 132 บิต
ด้วยวิธีนี้ [คำช่วยจำสุนัข] กลุ่มนี้ไม่สามารถผ่านการตรวจสอบได้ และแอปกระเป๋าเงินที่พัฒนาตามมาตรฐานโปรโตคอล BIP39 จะเตือนผู้ใช้ให้ตรวจสอบคำช่วยจำของตนเอง ในเวลานี้ ผู้ใช้จะพบข้อผิดพลาดและเปลี่ยน "สุนัข" เป็น "แมว" ที่ถูกต้อง เพื่อผ่านการตรวจสอบและสร้างกระเป๋าเงินให้เสร็จสมบูรณ์ ซึ่งสามารถหลีกเลี่ยงโศกนาฏกรรมได้เช่นกัน
สุดท้าย เรามาตรวจการบ้านเพื่อดูว่ากระเป๋าเงิน HD ที่รู้จักกันดีทั้งในและต่างประเทศจะตรวจสอบข้อผิดพลาดของคำช่วยจำตามมาตรฐานโปรโตคอล BIP39 เมื่อป้อนชุดคำช่วยจำที่ไม่ถูกต้องหรือไม่
เนื่องจากจุดประสงค์ของการตรวจสอบสามารถทำได้โดยการป้อนชุดตัวช่วยจำที่ไม่ถูกต้องเท่านั้น ดังนั้นเพื่อความสะดวก เราจึงไม่ป้อนข้อมูลช่วยจำที่ซับซ้อน และป้อนแมว 12 ตัวโดยตรง (นี่คือชุดตัวช่วยจำที่ไม่ถูกต้อง) ผลการตรวจสอบมีดังนี้
บริษัทแรก: imToken ผ่านการทดสอบเรียบร้อยแล้ว!

ประการที่สอง: Huobi Wallet ผ่านการทดสอบสำเร็จ!

ประการที่สาม: Trust Wallet ผ่านการทดสอบเรียบร้อยแล้ว!

ประการที่สี่: BRD ผ่านการทดสอบสำเร็จ!

บริษัทที่ห้า: BitPay ผ่านการทดสอบเรียบร้อยแล้ว!

บริษัทที่หก: imKey ผ่านการทดสอบเรียบร้อยแล้ว!

บ้านหลังที่เจ็ด: Cobo Wallet และ Cobo Vault ผ่านการทดสอบเรียบร้อยแล้ว!


บริษัทที่แปด: กระเป๋าเงิน Bitpie, ไม่มีการตรวจสอบระบบช่วยจำ, ระบบช่วยจำที่ไม่ถูกต้องสามารถสร้างกระเป๋าเงินได้, ไม่มีการแจ้งเตือนข้อผิดพลาดเกี่ยวกับระบบช่วยจำ

เก้า: กระเป๋าฮาร์ดแวร์ Bitshield ป้อนตัวช่วยจำของ Bitshield บนโทรศัพท์มือถือ เมื่อป้อน 12 ตัวช่วยจำ จะมีคำที่สับสนแต่จะไม่มีคำเมื่อป้อน 24 ตัวช่วยจำ ดังนั้นเราจึงป้อนแมว 24 ตัว (นี่เป็นตัวช่วยจำที่ไม่ถูกต้องด้วย) ลองและผลลัพธ์ คือไม่มีข้อผิดพลาดในการช่วยจำ

สุดท้ายนี้ ฉันอยากจะเตือนทุกคนเกี่ยวกับจุดเสี่ยงของกระเป๋าเงินฮาร์ดแวร์:
เมื่อเจ้าของร้านตรวจสอบการดำเนินการตรวจสอบคำช่วยจำ เขาพบว่ากระเป๋าฮาร์ดแวร์บางใบป้อนคำช่วยจำบนโทรศัพท์มือถือเสร็จสมบูรณ์
เหตุผลที่เราใช้ฮาร์ดแวร์วอลเล็ตคือเพื่อเก็บคีย์ช่วยจำ/คีย์ส่วนตัวแบบออฟไลน์ การป้อนข้อมูลช่วยจำบนอุปกรณ์เครือข่ายจะสูญเสียความหมายของฮาร์ดแวร์วอลเล็ตไปโดยสิ้นเชิง
ทางออกหนึ่งคือการเรียงลำดับคำและเพิ่มคำที่สับสนบนโทรศัพท์มือถือเมื่อนำเข้าตัวช่วยจำไปยังกระเป๋าฮาร์ดแวร์ หลักการทำงานของคำที่สับสนคือ: ตัวอย่างเช่น ตัวช่วยจำของเราคือ 11 ละทิ้ง+เกี่ยวกับ (นี่คือชุดของประสิทธิภาพ ช่วยในการจำ) เมื่อเราป้อนข้อมูลช่วยจำบนโทรศัพท์มือถือ ปลายเย็นจะแจ้ง:
โปรดป้อนตัวช่วยจำที่สามบนโทรศัพท์มือถือของคุณ (ป้อนละทิ้ง)
กรุณาป้อน cat บนโทรศัพท์ของคุณ
โปรดป้อนตัวช่วยจำที่ 12 บนโทรศัพท์มือถือของคุณ (ป้อนเกี่ยวกับ)
กรุณาใส่สุนัขในโทรศัพท์ของคุณ
…
กรุณาป้อนช่วยจำที่ 6 บนโทรศัพท์มือถือของคุณ (ป้อนละทิ้ง)
โปรดป้อนภูมิภาคในโทรศัพท์ของคุณ
แมว หมา ภูมิภาค เป็นคำที่สับสน
แต่มันมีประโยชน์จริง ๆ ไหมที่จะสับสนคำ + ขัดขวางการนำเข้าลำดับคำ?
ลิงค์อ้างอิง:
ลิงค์อ้างอิง:


