§ บทความ · พื้นฐาน

พื้นฐาน self-custody: ทำไม key ของคุณควรอยู่บน hardware ของคุณเอง

เรื่องที่สำคัญที่สุดที่ผมทำในฐานะ Bitcoiner: เอาเหรียญออกจาก exchange คู่มือภาษาคนเรื่อง seed, wallet และทำไม FTX ถึงเกิด

โดย dont-trust-verify · เผยแพร่ 23 เมษายน 2569

EN version →

พฤศจิกายน 2022 ผมดูเพื่อนข้อความกลุ่ม chat ของเราเวลาตี 2 FTX เพิ่ง suspend การถอน เขามีเงินเก็บทั้งชีวิตอยู่ที่นั่น — ไม่ใช่เงินเก็งกำไร เงินเก็บจริงๆ เขาคิดจะถอนไป wallet ของตัวเองหลายเดือน แต่เลื่อนไปเรื่อยๆ ไว้ใจว่า exchange ใหญ่ที่มีคนดังโฆษณาและยื่น regulatory filing เป็นที่ปลอดภัย ประกาศ suspend ถอนมาก่อนเขาจะได้ทำ

เงินเขาสุดท้ายไปอยู่ในคดีล้มละลาย บางส่วนกลับมาหลายปีถัดไป คิดเป็นเศษของดอลลาร์ หลังทนายเก็บ fee ส่วนใหญ่หายไป

ผมย้าย bitcoin ของตัวเองออกจาก exchange ต้นปี 2018 ผมดูพฤศจิกายน 2022 คลี่คลายจากตำแหน่งที่ไม่มี exposure เลย ไม่ใช่เพราะผมฉลาดกว่าเพื่อน — ผมไม่ได้ เพราะผมเรียนรู้บทเรียนก่อนจากการเสียน้อยกว่าและลงมือตามนั้น

คู่มือนี้คือเรื่องบทเรียนนั้น

”Not your keys, not your coins” — ทำไมประโยคนี้คือเกมทั้งหมด

เมื่อคุณถือ bitcoin บน exchange คุณไม่ได้ถือ bitcoin คุณถือสิทธิเรียกร้องใน bitcoin — IOU ที่ exchange สัญญาจะเคารพเมื่อคุณขอถอน ความแตกต่างฟังดูเชิงวิชาการจนกว่ามันจะไม่เป็น

Bitcoin ถูกกำหนดโดย ledger ธุรกรรม Ledger บันทึกว่า Bitcoin address ไหนคุมจำนวนไหนของ bitcoin Bitcoin address ถูกคุมโดยคนที่ถือ private key ที่สอดคล้อง ถ้าคนอื่นถือ private key — ไม่ว่าธนาคาร exchange, custodian หรือเพื่อน — เขาคุมเหรียญ ไม่ใช่คุณ ระบบของ exchange ให้ “0.05 BTC” ในบัญชีคุณไม่ใช่ Bitcoin transaction เป็น entry ฐานข้อมูลภายใน Entry นั้น back เฉพาะด้วยความสามารถการชำระของ exchange ความปลอดภัยการดำเนินงาน และความเต็มใจเคารพการถอน

FTX มีลักษณะสถาบันที่ชอบธรรมทั้งหมด มี VC backing จากบริษัทที่ได้รับการเคารพ มี founder ที่ปรากฏตัวในงานการเงินเป็นประจำ มี regulatory filing ในหลายเขตอำนาจศาล มีแคมเปญการตลาดผ่านคนดัง ไม่มีอะไรในนี้เป็นหลักฐานว่าเหรียญคุณปลอดภัย หลักฐานเดียวที่จะมีความหมาย — proof of reserves ที่ audit แสดงการ back 1:1 — ไม่เคยให้มา และแม้ proof of reserves ที่ audit ก็ manipulate ได้ อย่างที่ FTX แสดงโดยบิดเบือน balance sheet

“Not your keys, not your coins” — วลีเก่ามากในวัฒนธรรม Bitcoin จนต้นกำเนิดแน่ชัดถูกถกเถียง แต่ความจริงของมันถูกพิสูจน์อย่างหายนะ ซ้ำๆ ข้าม exchange จาก Mt. Gox ปี 2014 ถึง FTX ปี 2022

ทางออกง่ายในแนวคิด: ถือ key ของตัวเอง เก็บ private key — หรือ seed phrase ที่สร้างมัน — ในการครอบครองทางกายภาพของคุณ ไม่เคยอยู่บนเครื่องที่เชื่อมอินเทอร์เน็ตที่คุณไม่ได้ config เอง ด้วย software ที่คุณไม่ได้ตรวจเอง เมื่อทำแบบนั้น ledger ของ Bitcoin บันทึก address ของคุณโดยตรง และการล้มของ exchange ไม่แตะเหรียญของคุณ

Seed phrase คืออะไร?

Seed phrase คือรายการคำอังกฤษทั่วไป 12 หรือ 24 คำที่ encode master private key สำหรับ Bitcoin wallet ของคุณ มันคือการแทนเลขสุ่ม 128- หรือ 256-bit ในรูปมนุษย์อ่านได้ จากเลขเดียวนั้น software wallet derive ทุก private key, public key และ Bitcoin address ที่คุณจะเคยใช้

มาตรฐานที่กำหนดนี้คือ BIP-39 (Bitcoin Improvement Proposal 39) เผยแพร่ปี 2013 BIP-39 กำหนด wordlist ของคำอังกฤษทั่วไป 2048 คำ วิธี encoding และ scheme checksum เมื่อ hardware wallet หรือ software wallet สร้าง seed phrase มันเดินตามมาตรฐานนี้

Phrase 12 คำจาก BIP-39 wordlist encode 128 bit ของ entropy บวก 4-bit checksum Phrase 24 คำ encode 256 bit บวก 8-bit checksum ทั้งสองถือว่าปลอดภัยในทาง cryptographic สำหรับ Bitcoin Hardware wallet ปัจจุบันของผมใช้ phrase 24 คำ ซึ่งเก็บทั้งบนกระดาษและ metal backup

ทำไมใช้คำ? เพราะมนุษย์คัดลอกและเก็บคำได้ดีกว่า hex string คำว่า “abandon” เขียนอ่านออกและ verify ได้ง่ายกว่าลำดับ hex ที่มัน encode Wordlist ถูกออกแบบให้ 4 ตัวอักษรแรกของแต่ละคำระบุเฉพาะเจาะจง — มีประโยชน์เวลาลายมือกำกวม

ประเด็นวิกฤต: ใครก็ตามที่มี seed phrase ของคุณเข้าถึงทุก bitcoin ในทุก address ที่ derive จากมัน จัดการ seed phrase ด้วยความปลอดภัยทางกายภาพเดียวกับเงินสดในปริมาณเท่ากัน เพิ่มเติมเรื่อง backup ข้างล่าง

Hot vs cold wallet

ความแตกต่างระหว่าง “hot” และ “cold” wallet เกี่ยวกับการเชื่อมอินเทอร์เน็ต แต่ผมคิดว่ามันแม่นกว่าเป็น spectrum ของ exposure:

Hot wallet — private key อยู่บนเครื่องที่เชื่อมอินเทอร์เน็ต (มือถือ, laptop) ความสะดวกสูง; exposure ต่อการโจมตีออนไลน์ไม่เป็นศูนย์ เหมาะสำหรับจำนวนเล็กที่ใช้จ่าย เหมือนคุณพกเงินสดในกระเป๋ากาย

Mobile software wallet — Phoenix, Muun, Blue Wallet Key ถูกสร้างและเก็บบนมือถือ ดีกว่า exchange, ยังเชื่อมอินเทอร์เน็ต โอเคสำหรับ Lightning payment ประจำวัน ไม่ใช่ที่ผมเก็บเงินออม

Desktop software wallet — Sparrow, Electrum ทรงพลังกว่า ควบคุมได้มากกว่า ยังอยู่บนคอมอเนกประสงค์ที่เชื่อมอินเทอร์เน็ต ผมใช้ Sparrow เป็นอินเตอร์เฟซ watch-only สำหรับ cold storage โดยไม่ expose key

Hardware wallet — เครื่องเฉพาะที่เก็บ private key offline เครื่อง sign transaction ภายใน; private key ไม่เคยออกจากเครื่องไปแตะคอมที่เชื่อมอินเทอร์เน็ต นี่คือมาตรฐานปฏิบัติสำหรับ self-custody จำนวนสำคัญ

Air-gapped hardware wallet — hardware wallet ที่ไม่เคยและจะไม่แตะเครื่องที่เชื่อมอินเทอร์เน็ต สื่อสารผ่าน QR code หรือ SD card Coldcard คือ implementation ที่รู้จักที่สุด เพดานความปลอดภัยสูงกว่า ความซับซ้อนการดำเนินงานสูงกว่า

Multisig — ไม่ใช่ประเภท wallet แต่เป็น config key ที่ M ใน N key ต้อง sign transaction (เช่น 2-of-3 หรือ 3-of-5) ผมใช้ 2-of-3 multisig สำหรับเงินออมหลัก แม้ key หนึ่งถูก compromise เงินยังปลอดภัย แม้ key หนึ่งหาย เงินยัง recover ได้จากอีกสอง

ผมผ่านระดับเหล่านี้ค่อยๆ: exchange ไป mobile wallet ปี 2018, mobile wallet ไป hardware wallet ปี 2019, hardware wallet ตัวเดียวไป multisig ปี 2021 อย่ารอจนมีจำนวนใหญ่ค่อยจริงจังกับ custody — นิสัยคือส่วนที่ยาก และสร้างไว้แต่เนิ่นดีกว่า

Hardware wallet: มันทำอะไรจริงๆ

Hardware wallet คือคอมพิวเตอร์เล็กเฉพาะที่เก็บ private key และ sign Bitcoin transaction มันเชื่อมกับคอมอเนกประสงค์ (หรือมือถือ) ผ่าน USB หรือ Bluetooth เพื่อรับข้อมูล transaction, sign transaction ภายใน และส่ง transaction ที่ sign กลับไป broadcast ไป Bitcoin network

คุณสมบัติออกแบบสำคัญ: private key ไม่เคยออกจากเครื่อง hardware wallet เมื่อคุณเสียบ Ledger หรือ Trezor เข้าคอม คอมส่งข้อมูล transaction ที่ยังไม่ได้ sign ให้ Hardware wallet แสดงรายละเอียด transaction บนหน้าจอตัวเอง (ซึ่งคือทำไมคุณ verify บนเครื่อง ไม่ใช่บนคอม) คุณ confirm ด้วยปุ่มกายภาพ และ transaction ที่ sign กลับมา คอมไม่เคยเห็น private key ในจุดใด

การออกแบบนี้ปกป้องจากมัลแวร์บนคอม แม้คอมถูก compromise เต็มที่โดย attacker ซับซ้อน เขา extract key ไม่ได้ — key อยู่ภายใน hardware wallet ทางกายภาพ ซึ่งมี secure element หรือ secure storage ของตัวเอง เขาอาจแทน address ผู้รับ (ซึ่งเหตุผลให้คุณ verify บนหน้าจอเครื่อง) แต่ขโมย key ไม่ได้

Hardware wallet ที่ผมใช้หรือประเมิน:

ผมไม่จัดอันดับตายตัว — threat model, ความสะดวกทางเทคนิค และงบประมาณควรขับการตัดสินใจ hardware wallet setup guide ครอบคลุมกระบวนการตั้งค่าในรายละเอียด รวมความผิดพลาดที่ผมทำกับตัวแรก

Backup 3 ชุดที่คุณต้องการ

Seed phrase ของคุณคือ Bitcoin ของคุณ การสูญมันคือสูญการเข้าถึง bitcoin ถาวร — Bitcoin ไม่มีการ recover password, ไม่มี support line, ไม่มีกระบวนการ restore บัญชี Private key เป็นทางเข้าเดียว

ผมรักษา 3 สำเนากายภาพของ seed phrase ที่ผมรับผิดชอบ:

Backup 1: กระดาษ เขียนคำด้วยดินสอ (ไม่ใช่หมึก — หมึกจางหรือเลอะได้) บนกระดาษทันทีเมื่อสร้าง seed ใช้ตัวพิมพ์ใหญ่ Double-check ทุกคำเทียบกับหน้าจอก่อนยกเลิกการตั้งค่า เก็บในที่ปลอดภัยที่บ้าน — ตู้เซฟ, ตู้เอกสารที่ล็อค, ที่ที่ป้องกันจากการเจอโดยบังเอิญ

Backup 2: Metal กระดาษ backup ไหม้ ท่วม และเสื่อมตามเวลา Metal backup — มักเป็นแผ่นสแตนเลสที่มีตัวอักษรตอกหรือปั๊ม หรือผลิตภัณฑ์เฉพาะอย่าง CryptoSteel หรือ Cryptotag — รอดจากไฟและน้ำ ผมมี metal backup แผ่นเหล็กสำหรับทุก wallet ที่ผมจริงจัง ที่นี่อยู่ในที่กายภาพต่างจาก paper backup

Backup 3: การแยกทางภูมิศาสตร์ อย่างน้อย backup หนึ่งควรอยู่ในตึกต่างจากอื่นๆ ผมเก็บชุดหนึ่งที่บ้านและอีกชุดกับสมาชิกครอบครัวที่ไว้ใจในซองที่ seal ซึ่งเขาถูกสั่งไม่ให้เปิด สำหรับจำนวนสำคัญจริงๆ พิจารณา safety deposit box เป็นที่ที่สาม

การแยกทางภูมิศาสตร์รับใช้สองวัตถุประสงค์: ป้องกันภัยเฉพาะที่ (ไฟ, น้ำท่วม, ขโมย) และมั่นใจว่าคุณยังเข้าถึง bitcoin ได้ถ้าที่หนึ่งเข้าไม่ได้ชั่วคราว

สำหรับ multisig scheme backup ซับซ้อนกว่า — คุณต้อง backup แต่ละ key เป็นเฉพาะ บวก backup ของ multisig wallet descriptor (ไฟล์ config ที่บอก software wallet ว่า key เกี่ยวข้องกันอย่างไร) hardware wallet setup guide ครอบคลุมกรณี single-sig ในรายละเอียด; multisig สมควรดำน้ำลึกของตัวเอง

ทดสอบ backup ของคุณ

นี่คือขั้นที่คนส่วนใหญ่ข้าม และเป็นขั้นที่ผมเรียนรู้ทางยากที่จะไม่ข้ามเลย

ต้นปี 2020 ผมตั้งค่า hardware wallet ใหม่ เขียนสิ่งที่คิดว่าเป็น seed phrase และเก็บไว้ 6 เดือนต่อมาตัดสินใจทดสอบ backup โดย wipe เครื่องและ restore จาก seed คำ 3 คำถูกเรียงผิด — ผมเขียนในลำดับผิดเพราะรีบและทำในแสงน้อย เครื่อง restore ไม่ได้ ผมเครียดเหงื่อแตก 2 ชั่วโมงก่อนจะรู้ว่ายังเข้าถึงผ่านเครื่องเดิมได้ (ซึ่งยังไม่ได้ wipe) ไม่มีอะไรเสีย แต่ผมเข้าใจลึกๆ ว่า backup ที่ไม่ได้ทดสอบไม่ใช่ backup

หลังการตั้งค่า wallet ใหม่ ตอนนี้ผมทำต่อไปนี้: เขียน seed phrase, put hardware wallet เข้าโหมด recovery/restore, ป้อน seed phrase กลับเข้าเพื่อ verify ว่า wallet restore ไปที่ address เดียวกัน ผมเช็คว่า address รับตัวแรกตรงกับที่มีก่อน แล้ว wipe และตั้งค่าใหม่ถ้าเครื่องต้อง หรือ confirm ว่า backup เก็บถูกต้องถ้าเครื่องรองรับ verification โดยไม่ wipe เต็ม

Hardware wallet บางตัว — Coldcard เป็นต้น — มีฟีเจอร์ verify seed phrase ที่ให้ confirm คำโดยไม่ wipe เครื่อง ใช้ถ้าเครื่องรองรับ ถ้าไม่ ทดสอบผ่าน restore ก่อน fund wallet หรือ fund จำนวนทดสอบเล็กๆ จนกว่าจะ verify backup

อย่า fund wallet ที่ backup ยังไม่ทดสอบ

บทเรียนขนาด FTX จริง

ผมอยากตรงไปตรงมาเรื่องสิ่งที่เกิดพฤศจิกายน 2022 เพราะผมคิดว่าวงการเริ่มลืมแล้วและบทเรียนสำคัญเกินกว่าจะลืม

FTX ไม่ใช่ exchange เล็กหรือไม่รู้จัก เป็นหนึ่งในสาม exchange cryptocurrency ที่ใหญ่ที่สุดในโลกตาม volume ระดมทุน VC หลายพันล้านจากบริษัทลงทุนที่รู้จัก สนับสนุนสนามกีฬา เซ็นคนดัง และ lobby อย่างหนักที่ Washington Founder ปรากฏตัวบนปกนิตยสารและในงานวงการในฐานะบุคคลน่าเชื่อถือ

เบื้องหลังนี้ FTX ใช้เงินฝากลูกค้าไป fund การลงทุนเก็งกำไรของบริษัทเทรดในเครือ Alameda Research เมื่อวิกฤตสภาพคล่องเกิดพฤศจิกายน 2022 มันไม่สามารถตอบสนองคำขอถอน Exchange suspend ถอน ภายในไม่กี่วันยื่นล้มละลาย ช่องว่างลูกค้าประเมินที่หลายพันล้านดอลลาร์

ผมดูเพื่อนเสียเงินเก็บทั้งชีวิตเพราะ “ไว้ใจ” exchange ศูนย์กลาง ความไว้ใจขึ้นอยู่กับการตลาดของ exchange ขนาด ความชอบธรรมที่ดูเหมือน และสมมติฐานว่า entity ที่ถูกกำกับดูแลปลอดภัย ไม่มีอันไหนเป็นตัวแทนของหลักฐานจริงว่าเงินลูกค้าถูกถือ 1:1

นี่ไม่ใช่เหตุการณ์เฉพาะ Mt. Gox, exchange Bitcoin ที่ใหญ่ที่สุดในโลกปี 2013–2014 ล้มหลังเสีย BTC ประมาณ 850,000 ต่อการ hack และการจัดการผิด Celsius, BlockFi, Voyager — รายการการล้ม custodial ในรอบปี 2022 ยาว แพทเทิร์นซ้ำเพราะปัญหาพื้นฐานไม่เปลี่ยน: เมื่อคุณมอบ custody ให้คนอื่น คุณรับความเสี่ยงเขา

คำตอบของ Bitcoin ต่อปัญหานี้เชิงเทคนิค: private key คือการควบคุมเดียวที่สำคัญ ถ้าคุณถือ key เหรียญเป็นของคุณ ถ้าคนอื่นถือ key เหรียญเป็นของเขาจนกว่าเขาตกลงคืนให้

Self-custody ไม่ใช่ความหวาดระแวง เป็นการตอบสนองที่เหมาะกับอัตราการล้มเหลว custodial ที่สูงมากในประวัติศาสตร์

Setup ปัจจุบันของผม

ผมอธิบาย setup ของตัวเองโดยไม่ให้รายละเอียดพอเป็นเป้า:

ผมใช้ 2-of-3 multisig สำหรับเงินออม bitcoin หลัก Key 3 ตัวอยู่บน hardware device แยกจากผู้ผลิตต่างกัน Key และ metal backup ที่สอดคล้องอยู่ใน 3 สถานที่ที่แยกทางภูมิศาสตร์ 2 key ใดก็ได้พอ sign transaction; 2 backup ใดก็ได้พอ recover เต็ม

สำหรับการใช้ Lightning ประจำวัน ผมใช้ mobile wallet ที่มีจำนวนเล็ก — เทียบเท่ากับเงินสดที่ผมพกในกระเป๋า เมื่อยอดนั้นต่ำ ผม top up จาก cold storage ผ่าน transaction on-chain

Node ที่บ้านของผมรัน Bitcoin Core (full archive, pruning ปิด) ผมใช้มัน broadcast transaction ของตัวเองแทน route ผ่านบริการบุคคลที่สาม ผมรัน node ต่อเนื่องตั้งแต่กลางปี 2021 โดยมีการขัดจังหวะ 1 ครั้งตอนไฟเลี้ยงพัง

ผมไม่ได้สร้าง setup นี้ข้ามคืน ผมเริ่มจาก hardware wallet เดียวบนจำนวนเล็กปี 2019 เพิ่ม key ที่สองปี 2020 และไป 3-of-5 แล้วลงตัวที่ 2-of-3 multisig ปี 2021 ความซับซ้อนเติบโตตาม stake เริ่มง่าย ทำให้ hardware wallet ตัวหนึ่งทำงานถูก เรียน operational discipline ค่อยขยาย


อ่านเพิ่มเติม