Multisig
Chollatis Maneewong

Chollatis Maneewong

Bitcoin Beginner level ^_^ แรกเริ่มเดิมทีก็เข้ามาศึกษาตลาดของ Cryptocurrency เหมือนคนอื่นๆ แต่แล้วเมื่อได้เริ่มต้นฟังคลิป Bitcoin Talk #51 : Welcome welcome! (05/01/2021) เมื่อช่วงต้นปี 2022 หลังจากนั้นก็ได้ตกลงไปในหลุมกระต่ายเรียบร้อย และยังคงหาเวลาว่างเพื่อศึกษาต่อมาเรื่อยๆ และอยากบอกทุกคนว่า “ยิ่งรู้จัก ยิ่งรักเธอ”

จับมือทำ “อยากมี Multisig Wallet แบบฟรีๆ และปลอดภัยแน่นอน” ทำอย่างไรดี ?

เราสามารถที่จะสร้าง Multisig Wallet ได้ด้วย โดยที่ไม่ต้องเสียเงินซื้อ Hardware Wallet เลยด้วยซ้ำ แต่ต้องมีคอมพิวเตอร์ 1 เครื่อง และ Flashdrive 1 อัน พร้อมกับความกล้าที่จะลองทำตามขั้นตอนต่างๆ เหล่านี้ “ด้วยตนเอง”

สำหรับผู้ที่เริ่มสนใจวงการ “เงินสร้างยาก” หรือผู้ซึ่งอยู่ในวงการมาแล้วสักระยะหนึ่งแล้วอยากจะมี Multisig Wallet เป็นของตนเอง โดยไม่ต้องเสียเงินซื้อ Hardware Wallet แต่วิธีนี้จำเป็นต้องมี คอมพิวเตอร์ 1 เครื่อง และ Flashdrive 1 อัน นะครับ 🙂 โดย Idea นี้ผมได้มาจาก พี่เดชา ปรมาจารย์ด้าน Lightning Node ของพวกเรานั่นเอง ซึ่งท่านได้แนะนำให้ใช้ Electrum ที่ Add-on มาใน Tails OS อยู่แล้วในการสร้าง Wallet แต่ผมมาปรับเปลี่ยนวิธีเล็กน้อยเพื่อให้เป็น Wallet แบบ BIP39 ที่สมบูรณ์แบบ และสามารถนำไป Recovery กับ HW ได้ทุกตัว

บทความนี้เหมาะสมสำหรับผู้ที่อยากจะลองศึกษา หรือถ้ามีความรู้เรื่องระบบ Linux มาบ้างจะดีมากเลย แต่ถ้าไม่เคยมีประสบการณ์มาก่อน ให้ลองค่อย ๆ ทำตามทีละขั้นทีละตอนก็จะสำเร็จบรรลุเป้าหมายตามวัตถุประสงค์ของผู้เขียนได้เช่นกัน ผู้เขียนขอเป็นกำลังใจให้ผู้อ่านทุกท่านครับ ^^

ก่อนอื่นขอเกริ่นถึง Multisig Wallet สักเล็กน้อยก่อนนะครับ …

Multisig wallet intro
คลิกที่ภาพเพื่อไปยังแหล่งที่มา (steemit.com)

Multisig Wallet หรือ Multi-Signature Wallet ถ้าให้พูดภาษาชาวบ้านแบบเข้าใจง่าย ๆ คือ กระเป๋าที่ต้องใช้กุญแจมากกว่า “หนึ่งอัน” ในการเช็นธุรกรรม (Sign Transaction) หรือใช้ Master Private Key มากกว่าหนึ่งชุด หรือถ้าเทียบกับระบบธนาคารของโลกเงินเฟียต ก็จะคล้าย ๆ กับการเปิดบัญชีแบบ “บัญชีคู่” 

กล่าวคือ ในระบบ “บัญชีคู่” ของระบบธนาคาร ถ้ากำหนดไว้ว่าเป็น “และ” การถอนเงินนั้นจำเป็นต้องไปลงนามด้วยกันทั้ง 2 คน จึงจะสามารถถอนเงินได้ (เทียบได้กับ Multisig 2-of-2) แต่ถ้ากำหนดไว้ว่าเป็น “หรือ” ก็คือเพียงใครคนใดคนหนึ่งก็สามารถไปถอนเงินได้ (เทียบได้กับ Multisig 1-of-2) 

ในโลกของบิตคอยน์นั้น การสร้าง Multisig ไม่ได้จำเป็นต้องกระจาย Master Private Key ไปให้หลายๆ คน แต่ในทางกลับกัน เราคนเดียวสามารถถือ Master Private Key ได้หลายอัน ทั้งนี้ก็เพื่อความปลอดภัยของเราเองล้วนๆ เลยครับ

ถ้าท่านผู้อ่านสนใจศึกษาต่อสามารถเข้าไปฟังอาจารย์ตั้มได้ที่นี่ >> BitcoinTalk 139: Multisig Wallet (11/10/2022) << ซึ่งจริงๆ แล้ว ในบทความนี้ก็ทำในลักษณะเดียวกัน แต่เพิ่มความเป็นส่วนตัวแบบสุดๆ และทำบน Bootable OS เพื่อที่จะตัดขาดจาก Internet ครับ ^_^

Multisig art

เพื่อให้ง่ายต่อการทำความเข้าใจ และเพื่อให้สามารถค่อยๆ ทำไปด้วยกันได้ทีละกระบวนการ ผู้เขียนขอแบ่งเป็นหัวข้อย่อยๆ ไว้ตามสารบัญ ดังนี้ 🙂

สารบัญบทความ

1. ขั้นตอนการเตรียมการต่างๆ ที่เกี่ยวข้อง

  • Computer PC, Notebook, Laptop ต่างๆ ที่สามารถ Boot จาก USB ได้ ซึ่งโดยทั่วไปแล้วคอมพิวเตอร์ในอายุไม่เกิน 10 ปี ส่วนใหญ่จะสามารถตั้งค่าให้ Boot จาก Flashdrive หรือ USB ได้
  • Flashdrive 1 อัน ความจุ ไม่ต่ำกว่า 4 GB แนะนำให้ใช้ตัวที่มีอัตราการ อ่าน/เขียน ไม่ช้ามากจนเกินไป
  • ดาวน์โหลด Tails OS สำหรับสร้าง USB Bootable จากลิงค์ด้านล่างนี้ (เลือกตาม OS ที่เราใช้งานได้เลย)
    1. Install Tails from Windows << บทความนี้สอนวิธีติดตั้งผ่าน Windows นะครับ
    2. Install Tails from macOS
    3. Install Tails from Linux
  • เข้าไปดาวน์โหลด “Mnemonic Code Converter – iancoleman” สำหรับการสร้าง Seed จาก Entropy ของเราเอง จาก bip39-standalone.html โดยบันทึกเป็นไฟล์ “bip39-standalone.html” ไว้เลย
  • โปรแกรมสำคัญที่สุดคงหนีไม่พ้นเจ้านกกระจอก “Sparrow Desktop” ให้ไปโหลดรุ่นนี้มาครับ Linux (Intel/AMD) Standalone (ในขณะที่เขียนบทความนี้ เป็นรุ่น 1.7.1 ซึ่งตอนที่ท่านกำลังอ่านอยู่อาจจะออกรุ่นใหม่แล้ว สามารถเข้าไปดาวโหลดโดยตรงได้จากในเว็บ Sparrow ครับ Download Sparrow Desktop)
ภาพแสดงวิธีการทำ Tails OS Bootable Flashdrive ครับ ซึ่งผู้เขียนได้แนะนำไว้ในหัวข้อต่อ ๆ ไป

2. การสร้าง Entropy เพื่อ Generate Seed ด้วยตนเอง

BIP39-Manual Generate Sheet by Chollatis Maneewong

ก่อนอื่นผมขอเริ่มต้นจากไฟล์นี้ครับ (ดาวน์โหลดกันได้เลยครับ BIP39-Manual Generate Sheet by Chollatis Maneewong ซึ่งเป็นไฟล์ที่ผมพิมพ์ขึ้นมาง่าย ๆ สำหรับปริ้นออกมาเขียน Entropy เพื่อหา Seed เราครับ) วิธีการก็คือ

  • Print ออกมาขนาดกระดาษ A4 (หรือขนาดตามต้องการ)
  • ส่วนของตัว X สีแดงที่เห็น คือ ตำแหน่งของ Hexadecimal ที่เราได้มาแบบสุ่ม โดยจะต้องสุ่มทั้งหมด 64 ตัว หรือใครจะใช้วิธีโยนเหรียญ แล้วเขียน 0 กับ 1 ที่ได้ บนบรรทัด BIN (Binary) ก็ได้เช่นเดียวกัน (ถ้า 0/1 ต้องใช้ 256 ตัว ซึ่งเท่ากับ 256 บิท)
  • ในกรณีสุ่มแบบ HEX ถ้ามีลูกเต๋า Dice แบบ 16 หน้า (0 – F) ก็โยนสุ่มได้เลย แต่ถ้าไม่มีก็ไปที่เว็บนี้ Roll a Die วิธีการคือ นำเมาส์ไปคลิกที่ปุ่ม Roll ไปเรื่อย ๆ
  • เว็บ Roll a Die นี้จะสุ่มได้เลข 1-16 ให้ นำเลขที่สุ่มได้ลบออกด้วย 1 แล้วเทียบค่าในตาราง Decimal to Hexadecimal Converter ถ้าตามในรูปตัวอย่าง เราสุ่มได้ตัวเลข 10 นำไปลบอออกด้วย 1 จะได้ตัวเลข 10-1 = “9”, ผลที่ได้ คือ เราจะได้ตัวเลขสุ่ม 0-9 และ A-F เพื่อมากรอกลงใน BIP39-Manual Generate Sheet by Chollatis Maneewong นอกจากนี้เรายังสามารถสุ่มตำแหน่งในการเขียนค่า Hex ที่สุ่มได้ได้อีกนะครับ ไม่มีความจำเป็นต้องเขียนเรียงกัน
  • เขียนครบทั้ง 64 ตัวแล้ว พักไว้ก่อนครับ เดี๋ยวเราไปทำขั้นตอนที่ 3 กันก่อน 🙂
    ปล. อย่าให้ใครเห็นกระดาษแผ่นนั้นเด็ดขาด ถึงแม้จะมีโอกาสหลุดเพียง 0.0001% เราก็จะไม่ยอมให้สิ่งเหล่านั้นเกิดขึ้นเด็ดขาด ^^

*การสร้างค่า Entropy จะต้องได้มาจาก อุปกรณ์ที่เป็นการสุ่มจริง ๆ เท่านั้น เช่น การโยนเหรียญ, การทอยลูกเต๋า เป็นต้น และที่สำคัญ ห้าม ใช้ประโยคจากในหนังสือ, เนื้อเพลง, วันเกิดหรือที่อยู่, การกดปุ่มคีย์บอร์ดแบบมั่วๆ เร็วๆ หรือ อะไรก็ตามที่เราคิดว่าเป็นการสุ่ม ซึ่งที่กล่าวมานี้มีโอกาสที่จะ ไม่ใช่การสุ่มที่ดีพอ เพื่อให้ได้ Entropy ที่มีคุณภาพ

**วิธีการสุ่มค่า Entropy สามารถทำได้หลายวิธี โดยแต่ละวิธีจะมี Entropy Quality หรือ คุณภาพที่ไม่เท่ากัน ซึ่งเราสามารถเลือกวิธีการสุ่มเพื่อให้ได้ Entropy Quality ที่เหมาะสมได้ ดังนี้ 

  • การโยนเหรียญ เพื่อสุ่มค่าเป็น Binary จะมี Entropy Quality อยู่ที่ 1:1 ซึ่งหมายถึง การสุ่ม 1 ครั้งเทียบได้กับ Entropy 1 bit (เป็นการสุ่มที่มีคุณภาพมากที่สุด โอกาสที่จะมีคนอื่นสุ่มได้เหมือนกัน คือ 2^256)
  • การทอยลูกเต๋า 6 หน้า (1-6) หรือสุ่มตัวเลขฐาน 6 (0-5) จะมี Entropy Quality อยู่ที่ 1:1.66 ซึ่งหมายถึง การสุ่ม 1 ครั้งเทียบได้กับ Entropy 1.66 bit (Entropy Quality อยู่ที่ประมาณ 60.24% เมื่อเทียบกับการสุ่ม Binary 256 bit)
  • การทอยลูกเต๋า 16 หน้า หรือสุ่ม Hexadecimal (0-F) จะมี Entropy Quality อยู่ที่ 1:4 แต่เนื่องด้วยสามารถ Convert ไปมาเป็น Binary ได้ จึงมี Entropy Quality อยู่ที่ 1:1 เช่นเดียวกัน (โอกาสสุ่มเจอเหมือนกันอยู่ที่ 16^64 ซึ่งมีค่าเท่ากับ 2^256)
  • การสุ่มด้วยเลขฐาน 10 (0-9) จะมี Entropy Quality อยู่ที่ 1:2.6 ซึ่งหมายถึง การสุ่ม 1 ครั้งเทียบได้กับ Entropy 2.6 bit (Entropy Quality อยู่ที่ประมาณ 38.46% เมื่อเทียบกับการสุ่ม Binary 256 bit)
  • การสุ่มด้วยไพ่ 52 ใบ จะมี Entropy Quality อยู่ที่ 1:4.46 ซึ่งหมายถึง การสุ่ม 1 ครั้งเทียบได้กับ Entropy 4.46 bit (Entropy Quality อยู่ที่ประมาณ 22.42% เมื่อเทียบกับการสุ่ม Binary 256 bit)

3. สร้าง Bootable Flashdrive สำหรับ “Secure Machine”

*** หัวใจสำคัญเลยครับ ***

  • ก่อนอื่นไปดาวน์โหลด balenaEtcher มาก่อนครับ เป็นโปรแกรมสำหรับสร้าง Bootable Tails OS ครับ
  • หลังจากนั้นให้เราเสียบ Flashdrive ที่เราเตรียมไว้ (ต้อง Format, แนะนำให้ใช้ Flashdrive ใหม่ หรือที่เราไม่ใช้ข้อมูลในนั้นแล้วนะครับ)
  • เปิดโปรแกรม balenaEtcher ขึ้นมา แล้วทำตามนี้ได้เลยครับ (ตามขั้นตอน 1 ถึง 5)
ขั้นตอนที่ 1 ให้คลิกที่ “Flash from file” และเลือกไฟล์ tails-amd64-5.6.img ที่เราโหลดมาในขั้นตอนก่อนหน้านี้
ขั้นตอนที่ 2 ให้เลือก Flashdrive ที่เราต้องการ Flash (แนะนำให้เสียบ Flashdrive ไว้แค่อันเดียว เพื่อป้องกันการ Format ผิดอัน)
ขั้นตอนที่ 3 คลิกที่ “Flash!”
ขั้นตอนที่ 4 รอให้โปรแแกรมทำงาน, ระยะเวลาขึ้นอยู่กับความเร็วในการเขียน Flashdrive ครับ
ขั้นตอนที่ 5 ถ้าขึ้นว่า “Flash Complete!” แสดงว่า Flashdrive ของเราสามารถใช้งาน Boot เข้า Tails OS ได้แล้วครับ

ณ ตอนนี้เราก็จะมี Flashdrive ที่เป็น Tails OS Bootable USB Drive อันนึงเรียบร้อยครับ.. จากนั้นก็ไปตั้งค่าคอมพิวเตอร์ของเราใน Bios โดยเลือกให้บูตจาก USB ก่อนเข้า Windows นะครับ (วิธีการอันนี้ผมขออนุญาตไม่ลงรายละเอียดครับ สามารถค้นหาจาก Google ได้โดยตรง โดยพิมพ์ Keyword ในการค้นหาว่า BIOS/EFI usb boot setting แล้วตามด้วยรุ่นของโน๊ตบุ๊ค หรือ เมนบอร์ดของเรา)

แต่เดี๋ยวก่อน!!! เราจำเป็นจะต้องเอาไฟล์ sparrow-1.7.1-x86_64.tar.gz ที่ดาวน์โหลดมาจาก Sparrow Desktop และไฟล์ bip39-standalone.html ใส่ลงไปใน Flashdrive ด้วยนะครับ เนื่องจากเราจะ ไม่เชื่อมต่อ Internet ขณะทำเลยแม้แต่นิดเดียว!!! วิธีการก็คือ.. การสร้างพื้นที่ในส่วนที่เหลือของ Flashdrive ให้เป็น ไดร์ฟอันใหม่กันครับ 

ผู้เขียน Edited 11 มี.ค.2023 : หากต้องการเพิ่มความปลอดภัยให้กับ USB Flashdrive ของเรา สามารถข้ามไปทำขั้นตอนต่อไปได้ตามบทความ “How to ทำ Flash Drive สำหรับไว้ Sign Transaction บิตคอยน์แบบ Highly Secure Device” ครับ

ก่อนอื่นต้อง Eject Flashdrive ที่เราทำเมื่อสักครู่ออกก่อน แล้วเสียบเข้าไปใหม่ครับ เพื่อให้ระบบเจอไดว์ฟ Tails OS จากนั้นให้เข้าไปที่ Computer Management แล้วก็ไปที่ Disk Management เพื่อสร้าง Drive ขึ้นมาใหม่ ทำตามไปทีละขั้นตอนตามรูปได้เลยครับ (มีทั้งหมด 9 ขั้นตอน)

ขั้นตอนที่ 1 ให้คลิกที่เมนู Disk Management (อยู่ตรง Panel ด้านซ้ายมือ ตรงเมนู Storage)

ขั้นตอนที่ 2 คลิกขวาที่ Unallocated Space ของ Flashdrive ของเรา โดยจะมีพื้นที่บางส่วนที่ถูกใช้งานแล้ว ส่วนนั้นคือ Tails OS นะครับ เราต้องการสร้าง Drive จากพื้นที่ที่ยังเหลือ จากนั้นให้คลิกเลือกที่เมนู New Simple Volume ครับ

ขั้นตอนที่ 3 คลิก Next >
ขั้นตอนที่ 4 สามารถตั้งค่าขนาดได้ หรือจะเลือก Maximum size ตามค่าเริ่มต้นได้เลย จากนั้นคลิก Next >
ขั้นตอนที่ 5 กำหนด Drive Letter จากนั้นคลิก Next >
ขั้นตอนที่ 6 กำหนดค่าการ Format ให้เลือก File system เป็น FAT32 และติ๊กที่ Perform a quick format จากนั้นคลิก Next >
ขั้นตอนที่ 7 คลิกที่ Finish แล้วรอให้ขึ้นรูปตามขั้นตอนถัดไปครับ
ขั้นตอนที่ 8 ถ้าได้เหมือนในภาพ คือ มี 2 ไดร์ฟ คือ EFI (ของระบบ Tails OS) กับ Datadisk ที่เราพึ่งสร้างมาใหม่ ถือว่าเสร็จสมบูรณ์ ครับผม
ขั้นตอนที่ 9 จากนั้นให้เราคัดลอกไฟล์ “sparrow-1.7.1-x86_64.tar.gz” และไฟล์ bip39-standalone.html” ที่เราเตรียมไว้ในขั้นตอนก่อนหน้านี้ มาวางไว้ในไดว์ที่เราสร้างใหม่ เพื่อที่จะให้ Tails OS เข้าถึงไฟล์ในนี้ได้ และสร้างไฟล์ Text มา 1 อัน เพื่อไว้บันทึกข้อมูลที่จำเป็น เช่น xpub, Zpub, fingerprint ที่เราจะได้จากขั้นตอนการทำ Wallet หลังจากนี้ครับ

*Congratulation* ทุกท่านที่ทำมาถึงตรงนี้นะครับ ต่อไปเราจะ “Turn your own computer into a secure machine” กันครับ

4. มาเริ่มลงมือทำ Wallet กันครับ

  • ก่อนอื่นต้องไปหาวิธีการเพื่อให้คอมพิวเตอร์ของเราบูตเข้าสู่ Tails OS นะครับ (ขอกล่าวอีกครั้งครับ – ค้นหาได้จาก Google ได้โดยตรง โดยพิมพ์ Keyword ในการค้นหาว่า Bios/UEFI usb boot setting แล้วตามด้วยรุ่นของโน๊ตบุ๊ค หรือ เมนบอร์ดของเรา)
ภาพนี้ถ่ายจากโน๊ตบุ๊คครับ ถ้าท่านผู้อ่านเข้ามาถึงตรงนี้ได้ คือ ประสบความสำเร็จในขั้นตอนแรกครับ ให้เลือก Boot Tails เมนูบนสุดเลยครับ

จากนั้นให้ทำตามขั้นตอนดังนี้เลยครับ (ไล่ตามรูปภาพไปเรื่อยๆ พร้อมคำอธิบายในรูปครับ) โดยแบ่งออกเป็นขั้นตอนที่ 1 ถึงขั้นตอนที่ 11 จะเป็นการสร้าง Seed BIP39 จาก Entropy (ที่เราสุ่มมาจากขั้นตอนที่ 2 ก่อนหน้านี้) และขั้นตอนที่ 12 จนถึงขั้นตอนที่ 33 จะเป็นการสร้าง Multisig Wallet โดยใช้ Sparrow ครับ (จริง ๆ แล้ว วิธีการทำเหมือนกับที่อาจารย์ตั้มสอนไว้ในตอนนี้ #BitcoinTalk 139: Multisig Wallet (11/10/2022) เพียงแต่ว่าในบทความนี้จะเป็นการรัน Sparrow Application ผ่าน Tails OS ซึ่งจะยุ่งยากเล็กน้อย และมีข้อดี คือ Tails OS จะไม่มีการบันทึกข้อมูลใดๆ เลยหลังจากที่เราทำการ Shutdown Tails OS ..มาเริ่มกันเลย !!!

ขั้นตอนที่ 1 ถ้าเห็นภาพนี้คือกำลัง Boot Tails OS นะครับ เราก็รอ ๆๆ (ใช้เวลาครู่เดียว ขึ้นอยู่กับความเร็วอ่าน Flashdrive ของเราครับ)
ขั้นตอนที่ 2 ที่หน้าจอ “Welcome to Tails!” ให้เราคลิกที่ปุ่ม + ด้านล่างซ้ายครับ เพื่อกำหนด Option เพิ่มเติมก่อน
ขั้นตอนที่ 3 ให้เรากำหนด Administrator Password โดยการคลิกเข้าไปในเมนูนั้น และตั้งรหัสให้เรียบร้อย และที่เมนู Offline Mode ให้เราเลือก “Disable all networking” เพื่อไม่ให้ Tails OS ของเราได้มีโอกาส Online แม้แต่นิดเดียว (สำคัญมาก)
ขั้นตอนที่ 4 ถ้ากำหนดเรียบร้อยแล้ว ตรง Additional Setting เราจะเห็นเหมือนในภาพครับ จากนั้นคลิกที่ Start Tails ได้เลยครับ
ขั้นตอนที่ 5 เมื่อเข้ามาที่ Desktop เรียบร้อยแล้ว ให้เราเข้าที่ Applications > Favorites > Files เพื่อเข้า File Manager ครับ จากนั้นให้คลิกที่ Datadisk drive ที่เราสร้างคู่กันมาใน Flashdrive จะเห็นไฟล์ที่เราคัดลอกมาวางไว้จากขั้นตอนก่อนหน้านี้ทั้ง 3 ไฟล์

**ถ้าระบบขึ้นให้ใส่ Password ให้กรอก Administrator Password ที่เรากำหนดลงไปครับ**

ขั้นตอนที่ 6 ในกรณีที่เราต้องการเริ่มต้นจากการสร้าง Seed BIP39 จาก Entropy ที่เราสุ่มเอง ให้ทำตามขั้นตอนนี้นะครับ แต่ถ้ามี Seed อยู่แล้วทั้ง 3 ชุด ต้องการทำเฉพาะ Multisig Wallet ให้ข้ามไปทำต่อในขั้นตอนที่ 12 เลยครับ ให้เราเริ่มต้นจากการคัดลอกไฟล์ “bip39-standalone.html” ไปวางไว้ใน Folder “Tor Browser” เพื่อให้ Tor เปิดไฟล์ .html ได้ครับ
ขั้นตอนที่ 7 เปิดไฟล์ “bip39-standalone.html” ด้วย Tor Browser และคลิกเลือกที่ “Start Tor Browser Offline”
ขั้นตอนที่ 8 เมื่อเปิดหน้าเว็บ “Mnemonic Code Converter” ขึ้นมาได้แล้ว (ถ้าขึ้นว่า Loading หรือเปิดไม่ได้ ให้ปิด Tor Browser แล้วเปิดใหม่อีกครั้งครับ) จากนั้นให้คลิกที่ “Show entropy details” เพื่อที่เราจะได้สร้าง Seed BIP39 จาก Entropy ที่เราสุ่มขึ้นมาเองครับ
ขั้นตอนที่ 9 เราสามารถติ๊กเลือกรูปแบบ Entropy ที่เราสุ่มได้เลยครับ เช่น การโยนเหรียญ, การสุ่มตัวเลข 0-5, การโยนลูกเต๋า 6 หน้า, สุ่มเลขฐาน 10 หรือการสุ่มไพ่ แต่ในกรณีตัวอย่างนี้จะขอใช้ Hex (เลข 0 ถึงตัว F) ที่เราได้จากขั้นตอนก่อนหน้านี้นะครับ

โดยการปฏิบัติให้เรานำ Entropy เลขฐาน 16 จำนวน 64 ตัว มากรอกลงในช่อง Entropy ได้เลยครับ

ขั้นตอนที่ 10 จากนั้นจะมีรายละเอียดด้านล่าง ซึ่งบ่งบอกว่า Entropy ที่เราสุ่มขึ้นมามีความยาวขนาดไหน ซึ่งถ้าใช้เลขฐาน 16 จำนวน 64 ตัว จะได้จำนวน Bits ที่ 256 พอดีครับ

จากนั้นให้เราเลือกตรงเมนู Mnemonic Length ให้เป็น Use Raw Entropy หรือเลือกตามจำนวนคำที่เราอยากได้ (ในกรณีที่เลือกตามจำนวนคำ ค่า Entropy ของเราจะถูกโปรแกรมนำไป Hash ผ่าน SHA256 ก่อน 1 รอบ จากนั้นเอาชุดข้อมูลที่ผ่านการ Hash มาตัดแบ่งตามจำนวนคำ เช่น ตัดมา 128 บิท แรก มาทำเป็น Seed words 12 คำ, หรือนำค่าที่ hash ได้ทั้ง 256 บิท มาทำเป็น seed word 24 คำ,, แต่ถ้าเลือก Raw Entropy จะนำค่า Entropy ทั้ง 256 บิทของเรามาตัดแบ่งทุกๆ 11 บิท เป็นคำๆ พร้อมกับคำนวน Checksum คำที่ 24 ให้เลย ซึ่งมีลักษณะเหมือนกับการสุ่ม Seed ด้วยมือตามบทความ การสร้างชุด Seed ด้วยตนเอง ท่าน GRACIALO679 ครับ) 

ขั้นตอนที่ 11 เราจะได้ Seed BIP39 เป็นที่เรียบร้อยครับ ให้เราจดไว้ดีๆ ห้ามให้คนอื่นเห็นเป็นอันขาด ห้ามถ่ายรูป รวมถึงห้ามคัดลอกเด็ดขาดครับ

จากนั้นให้เราซ้ำเหมือนเดิมจนได้ Seed BIP39 ครบทั้ง 3 ชุด ครับ

ถึงตรงนี้จะเป็นการจบในกระบวนการสร้าง Seed BIP39 แล้วนะครับ ขั้นตอนถัดจากนี้จะเป็นการนำ Seed ที่เราสร้างทั้ง 3 ชุด มาทำเป็น Multisig Wallet โดยใช้ Sparrow Application ครับ

ขั้นตอนที่ 12 เริ่มสร้าง Wallet กันครับ เริ่มจากการแตกไฟล์ “sparrow-1.7.1-x86_64.tar.gz” ไปไว้ใน Folder ระบบ Tails OS ครับ เช่น Desktop (ถ้าไม่ทำแบบนี้จะไม่สามารถ Run Sparrow ได้ครับ)
ขั้นตอนที่ 13 เข้าไปยัง Desktop > Folder ที่เราแตกไฟล์ไว้ > Sparrow > bin จะพบไฟล์ Sparrow ให้คลิกขวา และเลือก Properties ครับ แล้วไปที่ Tab Permissions ติ๊กเลือกตรง “Allow executing file as programs”
ขั้นตอนที่ 14 เปิด Terminal โดยไปที่ Applications > Utilities > Terminal
ขั้นตอนที่ 15 ที่หน้าต่าง Application Terminal ให้เราพิมพ์ “cd “ (พิมพ์ cd แล้วเว้นวรรค 1 เคาะ) จากนั้นให้นำเมาส์ลาก Folder “bin” มาวาง จะได้ Path เข้าไปยัง Folder “bin” ครับ
ขั้นตอนที่ 16 Confirm ว่า Path ใน Terminal ถูกต้องแล้ว จากนั้นให้พิมพ์ “./Sparrow” แล้วเคาะ Enter เพื่อให้ Terminal เรียกโปรแกรม Sparrow ขึ้นมาครับ
ขั้นตอนที่ 17 ตั้งแต่ขั้นตอนนี้สามารถทำตามคลิปของอาจารย์ตั๊มได้เลยครับ วิธีการเหมือนกัน #BitcoinTalk 139: Multisig Wallet (11/10/2022)

วิธีการ คือ ให้คลิกที่ Next ไปเรื่อย ๆ จนกระทั่งเข้าสู่หน้าจอ Application Sparrow ครับ **ไม่ต้องปิด Terminal นะครับ**

ขั้นตอนที่ 18 ที่หน้าต่างหลัก Sparrow ให้เราไปที่ File > New Wallet นะครับ จากนั้นตั้งชื่อ Wallet ของเราให้เรียบร้อย
ขั้นตอนที่ 19 ให้คลิกที่ Setting (มุมซ้ายล่าง) แล้วตั้งค่าได้เลยครับ

Policy : Multi Signature

Script Type : Native Segwit (P2WSH)

กำหนดค่าจำนวน Cosigners ได้เลย ในตัวอย่างคือ 2-of-3 หรือต้องใช้ Seed หรือ Master Private Key จำนวน 2 ชุด + xpub ของชุดที่เหลือ จึงจะสามารถถอน BTC จาก Wallet ได้ครับ

ขั้นตอนที่ 20 ตรงเมนูของ Keystores จะเห็นว่ามีให้เลือกทั้งหมดตามจำนวนของ Cosigners ที่เรากำหนดไว้ ให้เรานำ Seed มากรอกตามลำดับได้เลยครับ

วิธีการ คือ คลิกที่ New or Imported Software Wallet จากนั้นให้เลือกจำนวน Seed Words แล้วนำ Seed BIP39 ที่เราสร้างขึ้นมาจากขั้นตอนก่อนหน้านี้มากรอกให้ครบ จากนั้นคลิกที่ Create Keystores

**สามารถกรอก Passphase ได้นะครับ แต่ไม่แนะนำ เผื่อในกรณีลืมจะหมดโอกาสเข้าถึงเงินของเราทันที จริงๆ แค่เป็น Multisig Wallet (ที่คนขโมยต้องได้ seed และ/หรือ xpub ไปครบ 3 ชุด ถึงจะเข้าถึงเงินเราได้ และจะต้องเป็น Seed จำนวน 2 ชุดถึงจะถอนบิทคอยน์ของเราได้) กระเป๋าเราก็ปลอดภัยมากในระดับหนึ่งแล้วครับ**

ขั้นตอนที่ 21 หลังจากนั้นให้คลิกที่ Import Keystore ได้เลยครับ (Default Account #0) สามารถเลือก Account อื่นได้นะครับ แต่ห้ามลืม*** และในช่อง Derivation Path ต้องเป็น m/48’/… (เป็นกระเป๋าแบบ Native Segwit)
ขั้นตอนที่ 22 เราก็จะได้ Software Wallet มาแล้ว 1 ชุด ให้เราทำจนครบทั้ง 3 Keystore หรือครบตามจำนวน Cosigner ที่เรากำหนด
ขั้นตอนที่ 23 เราจะทำการคัดลอกข้อมูลดังต่อไปนี้เก็บไว้ใน Text File เพื่อนำมาใช้สำหรับสร้าง Watch Only Wallet หรือนำมาใช้ประกอบเพื่อ Sign Tx ต่อไปครับ

วิธีการ คือ เราจะคัดลอก Master Fingerprint, Derivation Path, xpub/Zpub ของแต่ละ Keystore มาเก็บไว้ใน Text Editer ครับ (ตัวเลขพวกนี้สามารถบันทึกได้ เก็บลง Cloud ได้ ไม่ต้องกลัว Master Private Key หลุด)

**สำคัญมาก** ต้องมั่นใจว่าข้อมูลต่าง ๆ เช่น xpub ที่คัดลอกนั้นได้มาจาก Derivation Path m/48’/… ที่เป็น Multisig เท่านั้นนะครับ ถ้าคัดลอก xpub ที่ได้มาจาก Derivation Path อื่น ๆ จะมีโอกาสให้เราไม่สามารถโอนบิทคอยน์ออกได้อีกเลย

ขั้นตอนที่ 24 เมื่อเราเพิ่มครบทั้ง 3 Keystore แล้ว ให้คลิกที่ Apply ได้เลย
ขั้นตอนที่ 25 อย่าลืมกำหนดรหัสผ่าน Wallet ไว้ด้วยนะครับ เพื่อให้ไฟล์ wallet.mv.db ของ Sparrow ถูกเข้ารหัสอีกหนึ่งชั้น
ขั้นตอนที่ 26 คำเตือนว่าต้องมี Seed BIP39 จำนวน 2 ชุด และต้องมี xpub/Zpub ของทุก Keystore ไม่อย่างนั้นจะไม่สามารถเข้าถึง Wallet ได้อีกเลยครับ
ขั้นตอนที่ 27 สามารถคลิกที่ Export และส่งออกไปยัง Application อื่น ๆ ได้ อย่างเช่น Blue Wallet เพื่อเพิ่มในรูปแบบ Watch Only Wallet ได้ครับ

วิธีการ คือ คลิกที่ Export จากนั้นมองหาเมนู Blue Wallet Vault Multisig และคลิกที่ Show … จะได้ QR Code สำหรับ Add wallet เข้า App Blue Wallet ครับ จากนั้นให้เราโหลด Blue Wallet และติดตั้งลงบนโทรศัพท์มือถือ และเราก็หาเมนูสำหรับ Add Wallet และเลือกเป็น Scan QR Code ครับ

เพียงเท่านี้เราก็จะได้ Watchonly wallet ติดไว้ในโทรศัพท์ เพื่อส่ง Address สำหรับรับ Bitcoin ได้จากทุกที่ทุกเวลาครับผม (ตรงเมนู Manage key จะเห็นว่ามันก็คือ xpub ของ seed ทั้ง 3 ชุดของเรานั่นเองครับ ซึ่งแน่นอนว่าสามารถนำ seed มาใส่เพื่อ sign Tx ได้เช่นเดียวกัน แต่**ไม่แนะนำ**เพราะ seed ที่เราตั้งใจสุ่มขึ้นมาเองจะหมดความเป็นส่วนตัวทันทีครับ)
ขั้นตอนที่ 28 เราสามารถดู List ของ Receiving Address ได้จากเมนู Addresses ครับ สามารถ Export ออกมาเป็นไฟล์ excel ได้
ขั้นตอนที่ 29 เราสามารถ Backup File Wallet.db ที่เราสร้างเมื่อสักครู่นี้ได้ โดยไปที่ Menu File > Open Wallet แล้วจะเห็น Path Folder ที่มีไฟล์ Wallet.mv.db ให้เราคัดลอกไฟล์นี้เก็บไว้ใน Flashdrive ของเราได้เลยครับ

***แต่ห้ามนำ Flashdrive นี้ไปใช้กับคอมพิวเตอร์เครื่องอื่นที่ต่อ Internet เด็ดขาดเพื่อป้องกันไฟล์นี้หลุด (แต่อย่างไรก็ตามไฟล์นี้ก็ถูกเข้ารหัสอีกขั้นอยู่ดี) สามารถทำแบบนี้เพื่อเก็บไฟล์นี้ไว้ Sign Transaction ได้เลยครับ***

ขั้นตอนที่ 30 เราจะไม่สามารถคัดลอกไฟล์ได้โดยง่าย ต้องทำตามขั้นตอนนี้นะครับ 1.คลิกที่ .sparrow เพื่อย้อนมายัง Folder ก่อนหน้า 2.คลิกขวาที่ Folder “wallet” และคลิกที่ "Open With File Manager" 3.จะได้หน้าต่าง File Manager ขึ้นมา จึงจะสามารถคัดลอกไฟล์นี้ไปไว้ยัง Flashdrive ของเราได้ครับ
ขั้นตอนที่ 31 เราสามารถทดลองเปิดไฟล์ Wallet.mv.db ที่เราคัดลอกมาได้ครับ โดยการไปที่ File > Open Wallet จากนั้นเลือก Wallet.mv.db ที่เราคัดลอกไว้ใน Flashdrive
ขั้นตอนที่ 32 จากนั้นให้ใส่ Wallet Password ที่เราตั้งไว้ตอนเราทำในขั้นตอนก่อนหน้านี้ จากนั้นคลิกที่ "Unlock"

***การเปิดไฟล์ Wallet.mv.db นี้ คือการเปิดไฟล์ที่บรรจุ SEED ครบทั้ง 3 ชุดนะครับ สามารถใช้ Sign Transaction เวลาทำการโอน BTC ออกได้เลย***

การโอนออกขอยังไม่กล่าวถึงในหัวข้อนี้นะครับ แต่โดยหลักการคือ…

“Create Tx จากคอมเครื่องอื่น > Save File Tx (.psbt) ลง Flashdrive จากนั้น Boot เข้า Tails OS ให้เรียบร้อย 

ทำตามขั้นตอนก่อนหน้านี้จนถึงเปิดไฟล์ Wallet.mv.db แล้วเสียบ Flashdrive อีกอันที่เรามีไฟล์ .psbt เพื่อทำการ Sign Tx

จากนั้นบันทึกไฟล์ Tx ที่ Sign แล้วลง Flashdrive อันเดิมเพื่อไป Broadcast ในคอมที่ต่ออินเตอเน็ทครับ”

ขั้นตอนที่ 33 สุดท้ายครับ บันทึก Text File ข้อมูลที่จำเป็นต้องบันทึกไว้ใน DATADISK บน Flashdrive ที่เราทำได้เลยครับ และเก็บ Flashdrive นี้ไว้ในตู้นิรภัยของเราได้เลย

ข้อเสนอแนะครับ: ไฟล์ Wallet.mv.db **ไม่จำเป็น** ต้องบันทึกนะครับหากว่าเราไม่ได้ทำการโอนออกบ่อย เพราะจะเป็นการเพิ่มความเสี่ยงโดยไม่จำเป็น แต่ถ้าเราวางแผนจะมีการโอนออกบ้าง สามารถไปอ่านต่อในข้อที่ 5 ได้เลยครับ ผู้เขียนมีคำแนะนำในการทำไฟล์ Wallet ไว้เป็นแนวทางให้ผู้อ่านทุกท่านครับ หรือจะสร้าง Flashdrive ที่มีความปลอดภัยได้จากบทความ “How to ทำ Flash Drive สำหรับไว้ Sign Transaction บิตคอยน์แบบ Highly Secure Device” ครับ

ถึงตรงนี้ก็ถือว่าเป็นอันเสร็จสิ้นกระบวนการสร้างกระเป๋า Multi Signature ของเราแบบปลอดภัยในระดับหนึ่ง ที่ผู้เขียนไม่ได้บอกว่าปลอดภัยที่สุด เนื่องจากว่ามีอีกหลายปัจจัยที่อาจจะนำไปสู่ความไม่ปลอดภัย เช่น การนั่งทำกระบวนการต่าง ๆ เหล่านี้ในที่ทำงาน, บริเวณที่มีกล้อง หรือการทำผ่าน Computer ที่ใช้งานเป็นส่วนรวม และเราไม่แน่ใจว่าคอมพิวเตอร์เหล่านั้นมีอะไรแฝงไว้ใน ROM หรือไม่

การโอนออก

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

ขั้นตอนที่ 1 เริ่มต้นด้วยการให้เราสร้าง Watch Only Wallet บนคอมพิวเตอร์ที่เชื่อมต่ออินเตอร์เน็ต โดยการไปที่ File > New Wallet จากนั้นตั้งชื่อให้เรียบร้อย และคลิกที่ Create Wallet
ขั้นตอนที่ 2 ตั้งค่า Setting ให้เหมือนกับตอนสร้าง Multisig Wallet (Policy Type, Script Type, Cosigners) หรือสามารถคัดลอก Script Policy ที่บันทึกไว้จากขั้นตอนที่ 26 ของ Session ก่อนหน้านี้มาวางได้เลย หรือจะคลิกที่ xPub / Watch Only Wallet และเพิ่มข้อมูลที่เราบันทึกลง Text File ไว้ก็ได้เช่นกัน (Master fingerprint, Derivation Path, xpub/Zpub)
ขั้นตอนที่ 3 สำหรับในตัวอย่างนี้จะเป็นการนำค่า Master Fingerprint, Derivation Path และ xpub ที่บันทึกไว้ มากรอกให้ครบทั้ง 3 Keystore จากนั้นให้คลิกที่ Apply (สังเกตว่าตรง Type ของ Keystore จะขึ้นว่า Watch Only Wallet)
ขั้นตอนที่ 4 มีคำเตือนให้ Backup Multisig Wallet เช่นเดิม คลิกที่ OK ได้เลย
ขั้นตอนที่ 5 จะสังเกตว่า Receive/Change Addresses จะเป็น Address เดียวกันกับกระเป๋า Multisig Wallet ที่เราสร้างด้วย Seed 3 ชุด (ใน Session การสร้างกระเป๋าก่อนหน้านี้)

ในกรณีนี้รวมถึงการนำ xpub/Zpub ไปกรอกลงใน 3rd Party App อื่น ๆ เช่น Electrum, Specter, Blue Wallet (Mobile Wallet) ก็จะได้ Receive/Change Address ชุดเดียวกันทั้งหมด

ขั้นตอนที่ 6 ให้เราสร้าง Transaction โดยการไปที่ Send (เมนูฝั่งซ้าย) จากนั้นกรอกข้อมูลให้ครบถ้วน จากนั้นคลิกที่ "Create Transaction"
ขั้นตอนที่ 7 Confirm ข้อมูลต่าง ๆ ให้ครบถ้วน จากนั้นคลิกที่ "Finalize Transaction for Signing" (รายละเอียดเมนูต่าง ๆ ขออนุญาตยังไม่ลงลึกนะครับ)
ขั้นตอนที่ 8 จะเห็นว่า Tx ต้องมีการ Sign ทั้งหมด 2 Signatures ให้เราคลิกที่ "Save Transaction" เพื่อนำไฟล์ .psbt ไปเปิดใน Tails OS เพื่อ Sign Tx ต่อไป
ขั้นตอนที่ 9 บันทึกไฟล์ .psbt (Partially signed bitcoin transactions) ไว้ใน Flashdrive (ใช้ Flashdrive ที่เราทำ Tails OS ก็ได้นะครับ โดยวางไฟล์ไว้ในไดว์ "Datadisk" ที่เราสร้างขึ้น)
ขั้นตอนที่ 10 ให้เราบูตเข้าระบบ Tails OS จากนั้นทำตามขั้นตอนเพื่อเปิด Sparrow ขึ้นมา ถ้าเรามีไฟล์ Wallet.mv.db ที่มีข้อมูล Seed ของเราอยู่แล้ว สามารถไปที่ File > Open Wallet... และเปิดไฟล์นั้นได้เลย

***ถ้าไม่มีไฟล์ Wallet.mv.db บันทึกไว้ ต้องทำการสร้าง Multisig Wallet ใหม่ โดยการเพิ่ม Seed เข้าไปจำนวน 2 Keystore + xpub ของอีก 1 Keystore ที่เหลือ

เพื่อสร้าง Wallet ที่สามารถ Sign Tx ได้ขึ้นมาชั่วคราว

ขั้นตอนที่ 11 ตรวจสอบข้อมูลของ Wallet เราว่า Type เป็น Software Wallet บ่งบอกว่า Wallet นี้สามารถ Sign Tx ได้
ขั้นตอนที่ 12 จากนั้นเราไปที่ File > Open Transaction > File และเปิดไฟล์ .psbt ที่เราบันทึกมาจาก Watch Only Wallet
ขั้นตอนที่ 13 ยืนยันข้อมูลการทำธุรกรรม จากนั้นคลิกที่ "Finalize Transaction for Signing"
ขั้นตอนที่ 14 คลิกที่ Sign ได้เลย ในกรณีที่ Wallet นี้ มีชุด Seed จำนวน 2 ชุดอยู่แล้ว ระบบจะทำการ Sign ให้ทั้ง 2 Signatures พร้อมกันเลยครับ

**แต่ถ้าเราบันทึกไฟล์ Wallet.mv.db แบบที่มี “1 Seed + 2 xpub” จะสามารถ Sign ได้เพียง 1 Signature (เราต้องเปิดไฟล์ Wallet ที่มี Seed อีกชุดเพื่อ Sign อีก 1 Signature) วิธีการ คือ สามารถเปิดไฟล์ wallet.mv.db ที่มี Seed อีกชุดขึ้นมาเลย โดยไม่ต้องปิด Transaction ที่ Sign ค้างไว้ ระบบจะสามารถ Sign Signature ส่วนที่เหลือต่อได้เลย

ขั้นตอนที่ 15 เมื่อ Sign Signature ครบทั้ง 2 อันแล้ว ให้เราไปที่ “File > Save PSBT > As Binary…” แล้วบันทึกไฟล์ไว้ใน Flashdrive เช่นเดิม เพื่อนำไป Broadcast Tx บน Sparrow Watch Only Wallet ที่เชื่อมต่ออินเตอร์เน็ต (คอมพิวเตอร์ที่เราทำการสร้าง Transaction)

**หรือสามารถใช้วิธี คลิกที่ “Show PSBT as QR…” แล้วใช้ “กล้อง” ของ Computer ที่มี Sparrow ติดตั้งอยู่อ่าน PSBT เพื่อ Broadcast Tx ได้เช่นเดียวกัน (ไปที่ File > Open Transaction > From QR…) โดยวิธีนี้เราไม่จำเป็นต้องเอาไฟล์ .psbt ไปเปิดอีกครั้ง แต่ข้อมูลของ Transaction ที่ถูก Sign แล้วจะส่งผ่านโดย QR Code (แนะนำให้ใช้ ถ้าคอมพิวเตอร์เครื่องที่จะทำการ Broadcast มีกล้อง)

ขั้นตอนที่ 16 เมื่อกลับมาที่ Watch Only Wallet ของเราแล้ว ให้เปิดไฟล์ PSBT ที่ Sign เรียบร้อย โดยไปที่ File > Open Transaction > File... (หรือถ้าเลือก “From QR…” จะเป็นการเปิดกล้องเพื่ออ่าน QR Code)
ขั้นตอนที่ 17 เมื่อเปิดไฟล์ .psbt หรือ Scan QR... เรียบร้อยแล้ว จะขึ้นข้อมูล Tx ที่ Sign เรียบร้อย สามารถคลิกที่ Broadcast เพื่อประกาศ Tx ได้เลย
ขั้นตอนที่ 18 ถ้าประกาศเรียบร้อยจะขึ้น Status : Unconfirmed รอให้มีการ Confirm Tx เป็นการเสร็จกระบวนการการโอน Bitcoin ออกจาก Multisig Wallet ครับ โดยสามารถคัดลอก Txid ไปตรวจสอบตาม Bitcoin Explorer ต่าง ๆ ได้

5. คำแนะนำอื่นๆ เพิ่มเติมจากประสบการณ์ของผู้เขียนเอง

  • ในกระบวนการสร้าง SEED นั้น สามารถใช้วิธีการโยนเหรียญและคำนวนมือได้ครับ วิธีการอยู่ในบทความของ การสร้างชุด Seed ด้วยตนเอง ท่าน GRACIALO679 ครับ และนำ Seed ที่ได้มาทำ Multisig Wallet ต่อได้ครับ (สามารถใช้ Tails OS ในการคำนวณ Binary to HEX, SHA256 Hashing ได้เช่นกัน เพราะเป็น Offiline Computer ครับ)
  • วิธีการในการสร้าง Multisig Wallet จริงๆ แล้วสามารถไปดูอาจารย์ตั้มสอนได้เลยครับ จะเข้าใจการสร้าง และรายละเอียดเมนูต่าง ๆ ของ Sparrow รวมถึงการโอนออกด้วยครับ #BitcoinTalk 139: Multisig Wallet (11/10/2022) เพียงแต่ว่าในบทความนี้เป็นการประยุกต์ใช้ Sparrow กับ Tails OS เนื่องจากต้องการให้เป็น “Secure Computer” และเป็นระบบที่ “Leave no trace on the computer and everything you do disappears automatically when you shut down Tails”
  • ในกระบวนการสร้าง Multisig Wallet นั้น ถ้าอยากเพิ่มความปลอดภัยอีกขั้น ให้เรากรอก Seed ทีละชุด โดยทำตามได้ดังนี้
  1. Boot เข้า Tails OS ตามขั้นตอน จากนั้นเมื่อถึงขั้นตอนนำ Seed มาใส่ใน App Sparrow เพื่อสร้างกระเป๋า ให้เรากรอก Seed ชุดที่ 1 เมื่อเรียบร้อยแล้วให้เราจดบันทึก Fingerprint, xpub, Zpub ลง Text Editer ไว้ก่อน แล้วทำการ Shutdown Tails ให้เรียบร้อย **ข้อเน้นย้ำ ต้องเป็น xpub/Zpub ของ m/48’/0’/0’/2′ นะครับ (ตำแหน่ง Account เป็นเลขอื่นได้)**
  2. Boot เข้า Tails OS อีกครั้ง ทำตามขั้นตอนจนกระทั่งได้ Fingerprint, xpub, Zpub ของ Seed ชุดที่ 2, เน้นย้ำเช่นเดิม ต้องเป็น xpub/Zpub ของ m/48’/0’/0’/2′ นะครับ (ตำแหน่ง Account เป็นเลขอื่นได้)
  3. Boot เข้า Tails OS อีกครั้ง ทำตามขั้นตอนจนกระทั่งได้ Fingerprint, xpub, Zpub ของ Seed ชุดที่ 3
  4. เราสามารถนำ xpub/Zpub ทั้ง 3 ชุด มาเพิ่มเป็น Watch Only Wallet ใน Sparrow ที่เปิดในคอมปกติ ต่ออินเตอร์เน็ทได้เลย จะได้ Address รับเงินชุดเดียวกันเป๊ะๆ (ถ้าไม่ได้ทำขั้นตอนใดก่อนหน้านี้ผิดนะครับ)
  • เราสามารถทำลาย Flashdrive นั้นทิ้ง หรือเก็บไว้ใช้ต่อก็ได้นะครับ (ถ้าไม่เคยเก็บไฟล์ Wallet.mv.db ของเราไว้ใน Flashdrive นั้นมาก่อน) แต่ถ้าผู้เขียนแนะนำ คือ เราก็เก็บ Flashdrive ที่เราทำไว้เป็นระบบ Tails OS ถาวรเลย เผื่อใช้ในกรณีอยากจะโอน BTC ออกจาก Multisig wallet ของเรา ก็จะมีไว้สำหรับ Sign Tx
  • ขั้นตอนก็คือ ต้อง Boot เข้า Tails OS จนกระทั่งเปิด Sparrow Application ขึ้นมาได้ จากนั้นให้เราเพิ่ม SEED ทั้ง 3 ชุด ตามกระบวนการ หรือจะเปิดไฟล์ Wallet.mv.db ที่เราบันทึกไว้ก็ได้ และนำไฟล์ Partially signed bitcoin transactions (.psbt) ที่เราสร้าง Transaction จาก Watch only Wallet ใส่ Flashdrive อีกอัน เพื่อไป Sign Tx ใน Tails OS และนำไฟล์ที่ Sign เรียบร้อยมา Broadcast บนคอมที่ต่อเน็ทหรือ Bitcoin Node ไว้ก็เรียบร้อยครับ
  • ฝากอีก 1 เคล็ดลับครับ (วิธีนี้เป็นวิธีที่ผู้เขียนใช้อยู่) คือ เราใช้ Tails OS + Sparrow สร้างไฟล์ Wallet.mv.db 2 ไฟล์ (สมมุติเป็นไฟล์ A กับไฟล์ B)
  1. ไฟล์ Wallet A จะประกอบด้วย Seed BIP39 ชุดที่ 1 + xpub ของ seed ชุดที่ 2 + xpub ของ seed ชุดที่ 3 และบันทึกเป็นไฟล์ Wallet_A.mv.db ไว้ใน Flashdrive
  2. ไฟล์ Wallet B จะประกอบด้วย xpub ของ seed ชุดที่ 1 + Seed BIP39 ชุดที่ 2 + xpub ของ seed ชุดที่ 3 และบันทึกเป็นไฟล์ Wallet_B.mv.db ไว้ใน Flashdrive เช่นเดียวกัน ทั้งนี้ สามารถแยกกันเก็บบน Flashdrive คนละอันได้นะครับ (แนะนำให้ใช้ Wallet Password คนละรหัสกันครับ เพื่อลดโอกาสที่คนอื่นจะเข้าถึงได้ทั้ง 2 ไฟล์)
  3. สำหรับการใช้งาน คือ เราต้องเปิดไฟล์ Wallet.mv.db ทั้ง A และ B เพื่อที่จะ sign Tx ที่เราต้องการได้ (เนื่องจากว่าในแต่ไฟล์ Wallet จะมีเพียง Seed BIP39 หรือ Master Private Key เพียง 1 ใน 3 เท่านั้น) เพราะฉะนั้นโอกาสที่ไฟล์ Wallet.mv.dv ของเราจะหลุดไปนั้น ความยากก็คือ 1.ต้องใช้ Wallet Password, 2.ต้องเข้าถึงได้ทั้ง 2 ไฟล์
  4. สำหรับ Seed BIP39 ชุดที่ 3 นั้น ใช้เป็น Seed Backup อย่างเดียวได้เลยครับ นำมาใช้งานเฉพาะ xpub ก็เพียงพอ (เก็บใส่ Seed Cryptosteel ถาวรได้เลยครับ)

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

Chollatis Maneewong

Bitcoin Beginner level ^_^ แรกเริ่มเดิมทีก็เข้ามาศึกษาตลาดของ Cryptocurrency เหมือนคนอื่นๆ แต่แล้วเมื่อได้เริ่มต้นฟังคลิป Bitcoin Talk #51 : Welcome welcome! (05/01/2021) เมื่อช่วงต้นปี 2022 หลังจากนั้นก็ได้ตกลงไปในหลุมกระต่ายเรียบร้อย และยังคงหาเวลาว่างเพื่อศึกษาต่อมาเรื่อยๆ และอยากบอกทุกคนว่า “ยิ่งรู้จัก ยิ่งรักเธอ”

** ทุกบาทหรือทุกซาโตชิที่ donate จะถูกส่งเข้ากระเป๋าของผู้เขียนโดยตรงครับ :) **

Share this post

2 Comments

Leave a Reply

Connect with

Your email address will not be published. Required fields are marked *


Related Posts

Privacy & Security
Chollatis Maneewong

How to ทำ Flash Drive สำหรับไว้ Sign Transaction บิตคอยน์แบบ Highly Secure Device

ผู้เขียนต้องขอบอกไว้ก่อนว่า “บทความนี้ไม่ได้เหมาะกับทุกคน” โดยเฉพาะคนที่มี Hardware Wallet (HW) และใช้งานได้อย่างน่าพอใจแล้ว หรือคนที่สะสมบิตคอยน์ไปเรื่อย ๆ โดยไม่ได้คิดจะใช้งานหรือโอนออก แต่ถ้าคุณเป็นคนชอบทำอะไรใหม่ ๆ ชอบใช้ประโยชน์จาก Open-Source Software ที่มีอยู่แล้วให้เกิดประสิทธิภาพสูงสุด หรือชอบประยุกต์ใช้วิธีการใหม่ ๆ ในการใช้งานบิตคอยน์ (แบบ On Chain) บทความนี้อาจตอบโจทย์คุณ!

Read More »