Why Nostr? What is Njump?
2024-09-18 02:17:53

minseo on Nostr: สรุป session "Mastering Bitcoin Security with Hardware Wallet & U2F" ...

สรุป session "Mastering Bitcoin Security with Hardware Wallet & U2F" ของพี่บิท จากงาน #TBC2024 #siamstr

ตอนเข้ามามีให้ทำแบบสอบถามก่อน ว่าความรู้เกี่ยวกับ hardware wallet เต็ม 10 เราให้เท่าไหร่





จากนั้นให้เราใส่คำถามที่เราสงสัย





- hardware wallet ควรมีกี่อันดี? มีตัวเดียวก็พอแล้ว เหมือนเรามีตู้เย็น หรือถ้าจะมีวัถตุประสงค์ชัดเจน เช่น ไว้เทรด ไว้เก็บ
- ในปัจจุบันยังไม่มี hardware wallet ที่ใช้กับ lightning ได้เลย
- เก็บ hardware wallet กลัวเงินหาย? อยู่ที่เรากลัวหรือตระหนักแค่ไหน เหมือนเวลาเราข้ามถนนเราต้องระวังตัว ไม่ให้โดนรถชน นั่นคือความตระหนักของผู้ใช้นั่นเอง ให้แปลงความกลัวเป็นรูปธรรม เป็นการบริหารความเสี่ยง มีวิธีที่ทำให้เราสบายใจขึ้น และความสะดวกสบายแปรผกผันกับความปลอดภัย ดังนั้นเราอาจจะต้องเก็บ asset ไว้ในที่ปลอดภัย ถึงจะยุ่งยากหน่อยก็ตาม
- hardware wallet แบตเสื่อมแล้วยังสามารถเสียบไฟเพื่อใช้งานได้อยู่ ส่วน Tresor ไม่มีแบตมันก็ใช้งานได้นานเหมือนกัน เนื่องจากเป็นอุปกรณ์อิเลกโทรนิค ก็หมั่นเสียบดูบ้าง
- เมื่อไหร่ที่ควรซื้อ hardware wallet? ต้นทุนของ hardware wallet อยู่ที่เท่าไหร่ เหมาะสมกับ port ที่เราจะเก็บไว้ไหม ราคาคุ้มกับมูลค่าของ port ของเราด้วย เช่น ราคาเป็น 10% ของ port

ความปลอดภัยของที่เก็บ Bitcoin มีกระเป๋าหลายประเภท เช่น software walletm exchange แต่ที่ปลอดภัยที่สุด คือที่ที่ไม่ได้ online นั่นคือ hardware wallet นั่นเอง

ต่อมามีซ้อมเล่น Kahoot เพราะท้าย session มีแจก hardware wallet และของอื่น ๆ

⭐️ รู้จัก hardware wallet





- Tresor เป็นเจ้าแรกที่ทำ hardware wallet ขึ้นมา ได้รับความนิยม คนใช้ทั่วโลก สิ่งนี้เกิดมาจากขุด BTC แล้วหาย แล้วเราจะรักษายังไงไม่ให้หาย
- แรก ๆ ใช้สายในการต่อ usb ต่อมาเชื่อมต่อด้วย bluetooth ทำให้ได้รับความนิยมสูงมาก เพราะเชื่อมต่อกับมือถือได้ และมี NFC เข้ามา
- air-gapped เริ่มมา sign transaction ยืนยันว่าเราเป็นเจ้าของจริง ๆ โดยใช้ qr code สลับไปมา เดิมที่ใช้จากคอม มาใช้ตัวนี้แทน
- แล้ว Bitcoin ถูกเก็บไว้ที่ไหน ใช่ที่ hardware wallet หรือเปล่า? จริง ๆ แล้ว Bitcoin ถูกเก็บไว้ใน blockchain แล้วตัว hardware wallet เก็บ private key จาก seed เหมือนกุญแจไขกุญแจบ้าน สมมุติเราเก็บทองไว้ในบ้าน แล้วกุญแจหาย ทองยังอยู่ เราก็ไปปั้มกุญแจใหม่ด้วย seed phrase ซึ่งสำคัญมาก ๆ จึงเก็บไว้ในที่ที่สำคัญมาก ๆ

⭐️ แล้ว seed มาจากหน่าย?

เรียนรู้จาก website generate seed กัน ใช้มาตรฐาน BIP-39 ซึ่งเป็นมาตรฐานของ Bitcoin ในสมัยก่อนนั้นเก็บพวกนี้บน paper wallet ถ้าเราทำหาย ใครไปได้เหมือนได้กุญแจไปไขตู้เซฟ เหมือนเรา sign transaction มี public key และ private key





BIP-39 wordlist 2048 คำ ตัวเล็กใหญ่ไม่มีผล เพราะเอามา reference กับ index แล้วแปลงเป็น binary code อีกทีนึง

ก่อนอื่นเข้าไปที่เว็บนี้กันก่อน
[BIP39 - Mnemonic Code](https://iancoleman.io/bip39/)

จากนั้นเลือก 24 คำ แล้วกด generate เราจะได้ seed phrase ที่ช่อง BIP39 Mnemonic ตัว hardware wallet เก็บค่า BIP39 Seed และ BIP32 Root Key

ต่อมาติ๊ก Show entropy details เราจะเห็น Raw Binary แล้วค่านี้มันมายังไง?

สมมุติคำแรกเป็นคำว่า ridge ไปดูใน BIP-39 wordlist อยู่ที่ 1485 แต่มันเป็น index 1484 เพราะ index แรกเป็น 0 จากนั้นเอาไปแปลงเป็นเลขฐานสอง จะได้ 10111001100 และทั้งหมดรวมกันต้องได้ 256 bit ส่วน 8 ตำแหน่งหลังเป็น checksum ตรวจสอบความถูกต้อง และทำให้คำนวณย้อนกลับมาได้ สุดท้ายจะได้ BIP-39 seed ออกมานั่นเอง

ถ้าเราเขียนผิด สามารถไปเปิดดูใน dict อันนี้ได้เลย เขียนแล้วตรวจสอบง่ายกว่า

https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

หรืออีกวิธีนึง คือใช้ BIP-39 recover อย่างระวัง เอา checksum มา reverse คำที่เป็นไปได้ แต่ควรใช้ tool offline ไม่งั้น credential ถูกขโมยได้





[BIP39 Recoverer: Seed phrase recovery tool](https://getcoinplate.com/bip39-recoverer-seed-phrase-recovery-tool/?v=3dd6b9265ff1)

แล้วเราเลือก seed เองได้ไหม? ได้ไม่หมด เพราะเหลือ checksum ต้องคำนวณ

⭐️ Key Takeaway
- Bitcoin อยู่บน blockchain ทุกคนมองเห็นว่ามี Bitcoin กันเท่าไหร่ มี private key ถึงจะเข้าถึง Bitcoin ของเราได้
- private key ที่เสมือนกุญแจบ้าน ซึ่งแต่ละบ้านมึกุญแจหลายดอก มอง hardware wallet เป็นพวงกุญแจก็ได้
- passphrase (optional) ใส่แล้ว BIP39 seed phrase เปลี่ยน (salt) เก็บ seed ชุดเดียว ใช้แยกกระเป๋าตามวัตถุประสงค์ได้ สร้าง varient เป็น hidden ทำให้มิจหา BTC ไม่เจอ รวมถึงเราด้วย5555 ปัจจุบันถูกใส่ไว้ใน software wallet ส่วน hardware wallet ต้องใส่ในแอพของเจ้านั้น ๆ เลือก hidden wallet
- โครงสร้างของ wallet ทำให้เราสร้างได้มหาศาลมาก ๆ และแยก chain id ใช้กับ Bitcoin และ EVM ได้
- มาตรฐานถูก inherit ไปเรื่อย ๆ และทุกคนต้อง deploy ด้วยมาตรฐาน
- นิยมเก็บ seed phrase ไว้บนโลหะ เพราะทนทานกว่าบนกระดาษ

⭐️ U2F
Universal 2nd Factor การยืนยันตัวตนครั้งที่ 2 หรือ 2FA ที่เราใช้ มันจะ random ตัวเลข มันมีช่องโหว่อยู่ เพราะเวลาที่ scan QR Code มันเป็น tree share มันจะแชร์ secret อันนึงออกมา และเวลาเข้า cryptograhpic hash





U2F ไม่ส่ง private key ไป server เพื่อไป generate challenge phrase ว่าถูกไหม ฉัน unlock ได้ สิ่งนี้เป็นของฉัน มันรู้ว่ามันคือเรา ซึ่งบาง hardware wallet มีอยู่แล้ว ถ้าเจ้าไหนมีให้ใช้ เปิด 2FA กับ email ก่อน เพราะมันแฮกเมลล์ได้ มันจะเข้าทุกอย่างของเราได้
Author Public Key
npub1h9ls03lflhvgzzmkf6nsymspw3auh0f3d97c02e5l4edn2waefcszlq9qf