xpub คืออะไร: คีย์สาธารณะของวอลเล็ต Bitcoin ของคุณเปิดเผยอะไรบ้าง
xpub ทำให้ค้นหาที่อยู่ทั้งหมดของบัญชี Bitcoin ได้ จึงเห็นประวัติทั้งหมดของบัญชีนั้น โดยใช้จ่ายเงินไม่ได้ xpub เปิดเผยอะไร มีความเสี่ยงอย่างไร และควรให้ใคร
xpub (คีย์สาธารณะแบบขยาย) คือคีย์สาธารณะของบัญชีในวอลเล็ต Bitcoin ที่ใช้สร้างที่อยู่ทั้งหมดของบัญชีนั้น: ใครที่ถือ xpub จะเห็นทุกการชำระเงินที่บัญชีนี้ได้รับและส่งออกไป แต่ใช้จ่ายอะไรไม่ได้เลย
ใน xpub มีอะไร
มาตรฐาน BIP32 อธิบายวอลเล็ตแบบลำดับชั้นเชิงกำหนด: seed เดียวสร้างคีย์ได้ทั้งต้นไม้ คีย์แบบขยายเพิ่มรหัสเชน (chain code) เข้าไปในคีย์ ซึ่งใช้คำนวณคีย์ลูกของคีย์นั้น ตาม BIP32 การรู้คีย์สาธารณะแบบขยายทำให้สร้างคีย์สาธารณะลูกที่ไม่ได้เสริมความแข็งแรง (non-hardened) ทั้งหมดของคีย์นั้นขึ้นใหม่ได้
วอลเล็ตจัดเรียงคีย์เหล่านี้ตามเส้นทางของ BIP44: m / purpose' / coin_type' / account' / change / address_index โดย xpub ที่วอลเล็ตแสดงคือ xpub ของระดับ account' ซึ่งครอบคลุมที่อยู่สองสาย: 0 สำหรับที่อยู่รับเงิน และ 1 สำหรับที่อยู่สำหรับเงินทอน (change) ซึ่งรับเงินทอนจากการส่งเงินของคุณเอง
xpub, ypub หรือ zpub
คำนำหน้าบอกว่าบัญชีใช้ที่อยู่ประเภทใด:
| คำนำหน้า | มาตรฐาน | เส้นทางของบัญชีแรก | ที่อยู่ |
|---|---|---|---|
xpub | BIP44 | m/44'/0'/0' | ที่อยู่แบบเก่า ขึ้นต้นด้วย 1 |
ypub | BIP49 | m/49'/0'/0' | SegWit แบบซ้อน ขึ้นต้นด้วย 3 |
zpub | BIP84 | m/84'/0'/0' | SegWit แบบเนทีฟ ขึ้นต้นด้วย bc1q |
ทั้งสามเป็นคีย์ชนิดเดียวกัน: มีเพียงไบต์เวอร์ชันที่ต่างกัน ตัวอักษรขึ้นต้นจึงต่างกันตามไปด้วย
สิ่งที่ xpub เปิดเผย
- ที่อยู่ทั้งหมดของบัญชี ทั้งในอดีตและอนาคต: สร้างได้ทีละที่อยู่โดยไม่มีที่สิ้นสุด
- ประวัติทั้งหมด: ทุกการรับ ทุกการส่ง ทุกจำนวนเงิน เพราะบล็อกเชนเป็นข้อมูลสาธารณะ
- ยอดคงเหลือของบัญชี ได้ทุกเมื่อ
- ไม่มีอะไรให้ใช้จ่าย: หากไม่มีคีย์ส่วนตัว จะไม่มีธุรกรรมใดถูกลงนามได้
BIP32 เองยกตัวอย่างการใช้งานนี้: การมอบคีย์สาธารณะแบบขยายของบัญชีให้ผู้ตรวจสอบบัญชี ทำให้ผู้ตรวจสอบเห็นการชำระเงินขาเข้าและขาออกทั้งหมด โดยไม่เข้าถึงคีย์ลับใดๆ ใครที่มี xpub ของคุณก็มีมุมมองแบบผู้ตรวจสอบบัญชีนั้นไปตลอด: xpub เพิกถอนไม่ได้
ความเสี่ยงที่ควรรู้
xpub อย่างเดียวใช้จ่ายเงินไม่ได้ แต่ BIP32 เตือนว่า: การรู้คีย์สาธารณะแบบขยาย บวกกับคีย์ส่วนตัวที่ไม่ได้เสริมความแข็งแรงตัวใดก็ได้ที่สืบมาจากคีย์นั้น เท่ากับการรู้คีย์ส่วนตัวแบบขยายของคีย์แม่ กล่าวอีกอย่างคือ xpub ของคุณกับคีย์ส่วนตัวของที่อยู่เพียงที่อยู่เดียวของคุณ ก็เพียงพอที่จะใช้จ่ายเงินทั้งบัญชี
ระดับ account' เป็นแบบเสริมความแข็งแรง: การรั่วไหลเช่นนี้จึงจำกัดอยู่ในบัญชีนั้น และไม่ลามไปถึงบัญชีอื่นของ seed เดียวกัน ดังนั้นให้ส่งออก xpub อย่าส่งออกคีย์ส่วนตัวของที่อยู่ใดเด็ดขาด และอย่าให้วลีกู้คืนแก่ใครเด็ดขาด
ซอฟต์แวร์หาที่อยู่อย่างไร
ซอฟต์แวร์ที่อ่าน xpub จะสร้างที่อยู่ตามลำดับ และหยุดหลังจากเจอที่อยู่ที่ไม่เคยใช้ต่อกันชุดหนึ่ง: BIP44 กำหนดขีดจำกัดนี้ (gap limit) ไว้ที่ 20 หากคุณสร้างที่อยู่เกิน 20 ที่อยู่ติดกันโดยไม่ได้ใช้ ซอฟต์แวร์ที่ทำตามกฎนี้จะไม่เห็นที่อยู่ถัดจากนั้น
เพื่ออ่านยอดคงเหลือ ซอฟต์แวร์จะสอบถามเซิร์ฟเวอร์หรือโหนดทีละที่อยู่ เซิร์ฟเวอร์นั้นจึงรู้ที่อยู่ทั้งหมดของคุณ และเชื่อมโยงที่อยู่เหล่านั้นเข้าด้วยกันได้: นี่คือการรั่วไหลอีกแบบ ซึ่งไม่ได้มาจาก xpub เอง แต่มาจากวิธีอ่าน xpub
ก่อนให้ xpub ของคุณ
- ถามตัวเองว่าใครเก็บไว้: แอปที่เก็บ xpub ของคุณไว้บนเซิร์ฟเวอร์ของตน จะรู้จักบัญชีของคุณตราบที่ยังเก็บไว้ และหากข้อมูลของแอปรั่วไหล xpub ก็จะถูกเปิดเผย
- เลือกการอ่านในเครื่อง: วอลเล็ตที่เชื่อมต่อกับโหนดของคุณเอง หรือเครื่องมือที่สร้างที่อยู่บนอุปกรณ์ของคุณ ไม่ต้องฝาก xpub ไว้กับใคร
- หนึ่งบัญชีต่อหนึ่งการใช้งาน: บัญชีอื่น (
account'ถัดไป) มี xpub อีกตัว ซึ่งไม่เปิดเผยอะไรเกี่ยวกับบัญชีอื่นเลย
CentraFIN อ่าน xpub ของคุณอย่างไร
CentraFIN อ่าน xpub ของคุณบนอุปกรณ์ของคุณ: เบราว์เซอร์ของคุณสร้างที่อยู่ อ่านยอดคงเหลือผ่านการเชื่อมต่อที่เข้ารหัสตั้งแต่ต้นทางถึงปลายทาง และเก็บทั้งหมดไว้ในตู้นิรภัยที่เบราว์เซอร์เข้ารหัสเอง เซิร์ฟเวอร์ของ CentraFIN ไม่เคยเห็น xpub ของคุณ ที่อยู่ หรือยอดคงเหลือใดๆ แต่ละที่อยู่จะถูกอ่านจากโหนดเดิมเสมอ ซึ่งสุ่มเลือกไว้ เพื่อไม่ให้โหนดใดเห็นบัญชีทั้งหมด ดูรายละเอียดได้ที่หน้า Bitcoin
แหล่งที่มา
- BIP32: วอลเล็ตแบบลำดับชั้นเชิงกำหนด
- BIP44: เส้นทางการสร้างคีย์และ gap limit
- BIP49: ypub, SegWit แบบซ้อน
- BIP84: zpub, SegWit แบบเนทีฟ
คำถามที่พบบ่อย
ขโมย bitcoin ด้วย xpub ได้ไหม?
ใช้ xpub อย่างเดียวไม่ได้: xpub ใช้ลงนามไม่ได้ แต่ถ้ามีคีย์ส่วนตัวของที่อยู่หนึ่งในบัญชีด้วย ก็ได้: ทั้งบัญชี
xpub เพียงพอที่จะเห็นยอดคงเหลือของฉันไหม?
ใช่ xpub ให้ที่อยู่ทั้งหมดของบัญชี และบล็อกเชนให้ยอดคงเหลือและธุรกรรมของที่อยู่เหล่านั้น
ถ้า xpub ของฉันรั่วไหล ควรทำอย่างไร?
xpub เพิกถอนไม่ได้: ใครที่มีจะเห็นบัญชีนี้ตลอดไป จากนี้ไปให้ใช้บัญชีใหม่ที่ xpub ไม่เคยถูกแชร์ ส่วนการโอนจากบัญชีเก่าจะยังมองเห็นได้
xpub, ypub และ zpub ต่างกันอย่างไร?
ต่างกันที่ประเภทที่อยู่ของบัญชี: ที่อยู่ที่ขึ้นต้นด้วย 1 สำหรับ xpub ด้วย 3 สำหรับ ypub (SegWit แบบซ้อน) และด้วย bc1q สำหรับ zpub (SegWit แบบเนทีฟ)
ควบคุมความมั่งคั่งของคุณได้เต็มที่
บัญชีของคุณพร้อมใช้งานในหนึ่งนาที ไม่ต้องใช้รหัสผ่าน