สารบัญ

BIPs (Bitcoin Improvement Proposals) คืออะไร

BIPs (Bitcoin Improvement Proposals) คือมาตรฐานการเสนอการเปลี่ยนแปลงเพื่อให้ทุกคนและทุก Node ในเครือข่ายยอมรับร่วมกัน (Consensus), ในยุคแรกเริ่ม Bitcoin ใช้วิธีการสุ่มสร้างคู่ private key และ public key ขึ้นมาทีละคู่(เช่น paper wallet) โดยไม่สามารถนำข้อมูลเหล่านี้ไปต่อยอดเพื่อให้รองรับกับเทคโนโลยีใหม่ๆให้ผู้ใช้งานเข้าถึงได้สะดวกรวดเร็วจึงเป็นสาเหตุของการพัฒนา BIP, การศึกษาเรื่อง BIP คือการทำความเข้าใจ "วิวัฒนาการ" ของ Bitcoin ซึ่งในบทความนี้จะพาทุกท่านมาเข้าใจโครงสร้างแบบผิวเผิญ เพื่อช่วยให้ทุกท่านไม่หลงทางหากมีความสนใจและตัดสินใจจะศึกษาลงลึกในส่วนต่างๆของพื้นฐาน Bitcoin technology ต่อไป

หมวดการปกป้อง Private Key และ Seed

BIP-38 Passphrase-protected Private Key

ก่อนที่จะมีมาตรฐานนี้ หากคุณพิมพ์ Private Key(ที่ขึ้นต้นด้วย 5 หรือK/L) ลงบนกระดาษ แล้วใครก็ตามที่มาแอบเห็นกระดาษแผ่นนั้นหรือแอบถ่ายรูปไป เขาก็จะสามารถขโมยเงินคุณได้ทันที ซึ่ง BIP-38 เข้ามาแก้ปัญหานี้โดยการนำ Private Key มา "เข้ารหัส" (Encryption) ด้วยรหัสผ่านที่คุณตั้งขึ้น ผลลัพธ์ที่ได้จะเป็นข้อความชุดใหม่ที่ขึ้นต้นด้วย "6P..." เสมอ ซึ่งตัวมันเองไม่ใช่ Private Key ที่ใช้จ่ายเงินได้ทันที แต่ต้องมี "รหัสผ่าน" มาปลดล็อคก่อน

BIP-39 Mnemonic Code

ต่อยอดจากหลักการของ BIP-32, การแปลง Seed ที่เป็นตัวเลขฐานสิบหกที่จำยาก ให้กลายเป็น "12 หรือ 24 คำ" (Seed Phrase) ที่เราใช้กันในปัจจุบันช่วยให้จำหรือจดบันทึกง่ายขึ้น ซึ่งในส่วนนี้ผู้ใช้งานส่วนมากคุ้นกันดีอยู่แล้ว

BIP-32 Hierarchical Deterministic Wallets

การสร้างโครงสร้างกุญแจ จาก Seed ชุดเดียวสามารถแตกกิ่งก้านสาขาออกมาได้ไม่จำกัด โดยเราจะมีชุด Master key ที่เรียกว่า Root key

  • นำ Root key ไปคำนวนผ่าน HMAC-SHA512 แล้วเราจะได้ Xprv กับ Chain code มา
  • นำ Xprv ที่ได้มาไปคำนวนผ่าน Trapdoor function (secp256k1) แล้วเราจะได้ Xpub มา
  • นำ Xpub, Chain code, Derivation path ไปคำนวนผ่าน HMAC-SHA512 แล้วเราจะได้คู่ privateกับpublic key ย่อยๆมา ซึ่งแต่ละคู่จะต่างกันที่ Derivation path เท่านั้น แต่ Xpub กับ Chain code ใช้เหมือนกันหมด

โครงสร้าง Derivation path คือ m / account(0) / address_index(i)(ขี้นต้นด้วยเลข1)

BIP43 The Purpose Pillar

เป็นหลักการที่ใช้ต่อยอดและควบคู่กับ BIP-32 โดยการนำชุดข้อมูลชุดเดียวมาแบ่งเป็นหลายๆเวอร์ชั่น, นี่คือต้นกำเนิดของหลักการใช้ Derivation path ซึ่งในทางเทคนิค BIP-43 เสนอให้ใช้ "Purpose" เป็นระดับแรก (Level 1) ของโครงสร้าง Path และเป็นรูปแบบ Hardened Derivation เสมอ เพื่อความปลอดภัยไม่ให้ Hacker เจาะ chain code ผ่าน Xpub key ได้ (โครงสร้างมาตรฐานที่ BIP-43 กำหนดคือ: m / purpose' / *)


หมวดมาตรฐาน Derivation Path สำหรับ Wallet

BIP-44 Legacy

เป็นการนำหลักการของ BIP-43 มาใช้ ถือว่าเป็น "มาตรฐานหลัก" ที่ทำให้กระเป๋าเงิน(Wallet) ทั่วโลกคุยกันรู้เรื่อง จะสร้าง address ชนิด Legacy ที่มีค่าธรรมเนียมแพงที่สุด ซึ่ง BIP-44 คือต้นกำเนิดที่วางรากฐาน "ทางเดินของกุญแจ" ให้กับมาตรฐานเหรียญคริปโตฯรุ่นหลังทั้งหมด และแทบทุกโปรเจ็กคริปโตในปัจจุบันก็ยังใช้มาตรฐานนี้อยู่ [ในรูปแบบนี้ address จะขึ้นต้นด้วยเลข1]โครงสร้าง Derivation path คือ m / 44’ / coin_type' / account' / change / address_index

BIP-49 Nested Segwit(P2SH-P2WPKH)

กลไกมันคือการเอา SegWit(BIP-141) ไปใส่ไว้ข้างใน P2SH(BIP-16) เพื่อให้เราสามารถใช้เทคโนโลยี SegWit(BIP-141) ได้ แม้ว่าผู้โอนหรือผู้รับเงินจะยังใช้กระเป๋าเงินรุ่นเก่าที่ไม่รู้จัก SegWit ก็ตาม [ในรูปแบบนี้ address จะขึ้นต้นด้วยเลข3]โครงสร้าง Derivation path คือ m / 49' / coin_type' / account' / change / address_index

BIP-84 Native SegWit (P2WSH)

เดิมที address ของ BIP-49 จะเป็นข้อความรูปแบบ Base58Check ซึ่งในเวอร์ชั่นนี้คือการใช้รูปแบบ address เป็น Bech32 ตามมาตรฐานของ BIP-173 เพื่อลดความผิดพลาดและเพิ่มความแม่นยำในการระบุ address [ในรูปแบบนี้ address จะขึ้นต้นด้วย bc1q]โครงสร้าง Derivation path คือ m / 84' / coin_type' / account' / change / address_index

BIP-86 Pay-to-Taproot (P2TR)

คือการนำเอาหลักการ BIP-340, 341, 342, 322 มาใช้งานจริง ผลลัพธ์ก็คือหน้าตาของธุรกรรมจะเหมือนกับธุรกรรมทั่วไปที่ไม่ได้มีความซับซ้อน เพราะ script ส่วนใหญ่จะถูกซ่อนแล้วเปิดเผยแค่บางส่วน [ในรูปแบบนี้ address จะขึ้นต้นด้วย bc1p]โครงสร้าง Derivation path คือ m / 86' / coin_type' / account' / change / address_index


หมวด Script, Multisig และ Smart Contract พื้นฐาน

BIP-13,16 Pay to Script Hash (P2SH)

คือหลักการที่สร้างขึ้นเพื่อรองรับธุรกรรมที่ซับซ้อนด้วยการใช้ “script” เช่นสร้าง Multisig wallet(ต้องเซ็นอนุมัติหลายคน) หรือสร้าง TimeLock transaction(ธุรกรรมแบบกำหนดเวลา) หากทุกท่านจะเข้าใจว่านี่คือ “smart contact” ในระบบ bitcoin ก็ไม่ผิด

BIP-45 P2SH Multisignature Wallets

เป็นมาตรฐานที่ถูกออกแบบมาเพื่อ "กระเป๋าเงินแบบหลายรายนาม(Multisig Wallets)” ในยุคแรกๆ เมื่อเรามีพื้นฐานการสร้าง script จาก BIP13,16 แล้ว เราก็จะสร้างรูปแบบ script นี้ให้เป็นการอนุมัติแบบหลายลายเซ็น เพื่อเพิ่มความปลอดภัยของเงินในกระเป๋าโครงสร้าง Derivation path คือ m / 45' / cosigner_index / change / address_index

BIP-48 Multi-Script Hierarchy

ต่อยอดจาก BIP-45 ด้วยการเพิ่ม script type เข้ามา จึงสามารถใช้ได้กับ address แบบ Nested Segwit(Base58) และแบบ Native Segwit(Bech32) ขึ้นอยู่กับ script typeโครงสร้าง Derivation path คือ m / 48' / coin_type' / account' / script_type' / change / address_indexNest Segwit คือ m / 48' / coin_type' / account' / 1' / change / address_indexNative Segwit คือ m / 48' / coin_type' / account' / 2' / change / address_index


หมวด SegWit, Transaction และ PSBT

BIP-141 Segregated Witness (SegWit)

ต่อยอดจาก BIP-13 และ16, คือการแยกส่วน "ลายเซ็น" (Witness) ออกจากข้อมูลธุรกรรมหลัก ทำให้บล็อกขนาด 1MB เดิมสามารถบรรจุธุรกรรมได้มากขึ้น (เสมือนขยายเป็น 4MB ในทางทฤษฎี) เพื่อแก้ปัญหา Transaction Malleability และช่วยให้ขยายขนาดเครือข่าย (Scaling) ได้ และยังเป็นรากฐานให้เกิด Lightning Networkโครงสร้าง Derivation path คือ m / account(0) / address_index(i)(ขึ้นต้นด้วยเลข3)

BIP-174 Partially Signed Bitcoin Transaction(PSBT)

PSBT คือ "ไฟล์มาตรฐาน" ที่ทำให้เราสามารถเซ็นธุรกรรมแบบออฟไลน์ หรือเซ็นร่วมกันหลายคนได้ โดยที่ทุกคนคุยภาษาเดียวกัน มันเป็นสิ่งที่ทำให้การใช้งาน Hardware Wallet และการทำธุรกรรมแบบ Multisig สะดวกและปลอดภัยขึ้นมหาศาล ลองนึกภาพว่าคุณต้องการสร้างธุรกรรมแบบที่ต้องให้คน 3 คนช่วยกันเซ็นชื่อ (Multisig) ในสมัยก่อน คุณต้องส่งไฟล์ธุรกรรมดิบที่ซับซ้อนไปมา ซึ่งเสี่ยงต่อความผิดพลาดและดูยากมาก เพราะงั้น BIP-174 จึงเข้ามาแก้ปัญหานี้โดยการสร้าง PSBT ที่ทำหน้าที่เป็น "แบบฟอร์ม" ที่บรรจุข้อมูลที่จำเป็นทั้งหมดเพื่อให้แต่ละฝ่ายเซ็นชื่อได้โดยไม่ต้องเชื่อมต่อกับ Blockchain โดยตรง


หมวด TimeLock และ Lightning Network

BIP-65 CHECKLOCKTIMEVERIFY (CLTV)

ต่อยอดจาก BIP-13และ16, เรามีสิ่งที่เรียกว่า nLockTime ซึ่งเป็นการล็อคที่ระดับ "ตัวธุรกรรม" (Transaction) คือต้องรอให้ถึงเวลาที่กำหนดก่อน ธุรกรรมนั้นถึงจะถูกส่งเข้าเครือข่ายได้ แต่ข้อเสียคือ ถ้าคุณเปลี่ยนใจ หรือทำกุญแจหายระหว่างนั้น มันจะจัดการยากมาก BIP-65 (CLTV) แก้ปัญหานี้โดยการ ย้ายการล็อคเวลาไปไว้ที่ "Script (เงื่อนไขการรับเงิน)" แทน หมายความว่า คุณสามารถส่ง Bitcoin ไปไว้ใน Address หนึ่งได้ทันที แต่เหรียญนั้นจะ "ขยับไม่ได้" จนกว่าเวลาจะไปถึงจุดที่ระบุไว้ใน Script

BIP-68 Relative Locktime

คือการนำ BIP-65 มาใช้จริงด้วยการระบุเวลาล่วงหน้าเป็นรูปแบบวันที่และเวลา หรือเป็น Block height ก็ได้

BIP-112 CSV - CheckSequenceVerify

ต่อเนื่องจาก BIP-65, ตัวนี้สำคัญมากสำหรับใช้ในการสร้าง Lightning Channel เพราะมันคือการล็อคเวลาแบบ "สัมพัทธ์" (Relative Timelock) เช่น บอกว่า "เงินนี้จะถอนได้หลังจากที่ธุรกรรมนี้ถูกบันทึกลงบล็อกไปแล้ว 1,000 บล็อก"


หมวด Address Format และ Encoding

BIP-173 (Bech32)

เดิมทีในระบบ Bitcoin จะมีการส่งข้อมูลกันในรูปแบบ Base58Check ซึ่งมีข้อเสียหลายอย่างที่นักพัฒนาอยากแก้ไข จึงเป็นเหตุให้พัฒนามาส่งข้อมูลกันในรูปแบบ Bech32

  • การตรวจจับความผิดพลาด (Superior Error Detection)
  • ไม่แยกตัวพิมพ์เล็ก-พิมพ์ใหญ่ (Case Insensitivity)
  • QR code มีความหนาแน่นน้อยกว่า สามารถสแกนได้ง่ายและแม่นยำกว่า
  • ประหยัดค่าธรรมเนียมกว่าแบบเดิม

หมวด Taproot และ Schnorr

BIP-340 Schnorr Signatures Scheme

ต่อยอดจาก BIP-13,16,และ173, ที่ก่อนหน้านี้ Bitcoin ใช้ลายเซ็นแบบ ECDSA (Native Segwit) แต่ BIP-340 นำ Schnorr Signatures มาใช้แทน ซึ่งมีคุณสมบัติที่เหนือกว่ามากด้วยการทำ Signature Aggregation คือการรวมข้อมูลลายเซ็น ทำให้ประหยัดพื้นที่ข้อมูล, ประหยัดค่าธรรมเนียม, คนนอกสอดส่องแล้วดูไม่ออกว่าเป็น Multisignature

BIP-341 Taproot

ต่อยอดจาก BIP-13,16,และ173, พัฒนาการส่งข้อความจากรูปแบบ Bech32 เป็น Bech32m, คือการนำโครงสร้างที่เรียกว่า MAST (Merklized Alternative Script Trees) และ Taproot Output มาใช้ ทำให้ซ่อนธุรกรรมที่มีข้อมูลซับซ้อนให้ดูเหมือนธุรกรรมธรรมดา ส่งผลให้ประหยัดพื้นที่และรักษาความลับของเงื่อนไขธุรกรรมได้ดีเยี่ยม ซึ่งใน Native Segwit ซ่อนไม่ได้

BIP-342 Tapscript

ต่อยอดจาก BIP-341และ342, เพื่อให้รองรับ Schnorr และ Taproot ระบบจำเป็นต้องอัปเดตภาษาฉบับปรับปรุงที่ใช้เขียนคำสั่ง (Script) ใหม่ เรียกว่า Tapscript, Op_codes เพิ่มคำสั่งใหม่ๆ เพื่อให้การตรวจสอบ Schnorr Signature ทำงานได้รวดเร็ว ความยืดหยุ่นของเทคโนโลยีนี้คือปลดล็อคข้อจำกัดเดิมๆ ของ Script ทำให้ในอนาคต Bitcoin สามารถอัปเกรดฟีเจอร์ใหม่ๆ ได้ง่ายขึ้นโดยไม่ต้องทำ Hard Fork


หมวด Message Signing และ Advanced Usage

BIP-322 Generic Signed Message

สิ่งที่สำคัญที่สุดในขั้นตอนสุดท้ายคือการ Sign transaction ซึ่งก่อนหน้านี้ Bitcoin มีวิธีการที่เรียกว่า "Legacy Message Signing" ซึ่งมักจะอยู่ในแอปกระเป๋าเงินทั่วไป ปัญหาคือ ไม่รองรับ Segwit และ Multisig แถมยังความปลอดภัยต่ำ BIP-322 นี้จึงเข้ามาแก้ปัญหานี้ ทำให้รองรับ address ได้ทุกประเภท ทั้ง Legacy, SegWit (P2SH), Native SegWit (Bech32), และ Taproot (Bech32m)


หมวดการจัดการ Seed ขั้นสูง

BIP-85 Deterministic Derivation of Keys across Wallets

เป็นการนำหลักการ BIP-32 มาใช้ ช่วยให้คุณเก็บรักษาแค่ Seed หลัก (Master Seed) ไว้เพียงชุดเดียวพอ แล้วสั่งให้มันคำนวณสร้าง Seed ชุดใหม่ (Child Seed) เพื่อเอาไปใส่ในแอปมือถือ แต่ก่อนถ้าคุณอยากใช้กระเป๋าหลายใบ คุณต้องเก็บจด Seed Phrase 12-24 คำแยกกันหลายชุด ซึ่งเสี่ยงต่อการหายหรือถูกขโมย เพราะงั้น Master Seed จะช่วยแก้ปัญหานี้โดยตรงโครงสร้าง Derivation path คือ m / 83696968' / setup_code' / index'สร้าง Seed 12-24 คำ m / 83696968' / 0' / index'สร้าง WIF Seed m / 83696968' / 1' / index'สร้างข้อความทั่วไป m / 83696968' / 2' / index'


หมายเหตุ

อาจจะยังมี BIPs บางส่วนที่ไม่ได้พูดถึงเช่น BIP-152,157,158,176 ซึ่งมันคือกลไกหลังบ้านที่ผู้ใช้งาน bitcoin สัมผัสมันอยู่ทุกวันแบบไม่รู้ตัว, และอาจจะยังมีบาง BIPs ที่ตกหล่นไปจากบทความนี้ ผู้อ่านสามารถคอมเม้นเสริมได้

ทิ้งข้อความไว้

โปรดทราบว่าความคิดเห็นจะต้องได้รับการอนุมัติก่อนที่จะเผยแพร่

เว็บไซต์นี้ได้รับการคุ้มครองโดย hCaptcha และมีการนำนโยบายความเป็นส่วนตัวของ hCaptcha และข้อกำหนดในการใช้บริการมาใช้

วิธีรีเซ็ตเครื่อง (ล้างเครื่อง) Trezor Safe 3, 5 และ 7 กรณีลืมรหัส PIN

อ่านเพิ่มเติมเกี่ยวกับ ลืม PIN  แก้ยังไงใน Hardware Wallet ตระกูล Trezor Safe 

ทำความรู้จัก Trezor จุดเริ่มต้นของ Hardware Wallet และเหตุผลที่นักลงทุนทั่วโลกเลือกใช้

อ่านเพิ่มเติมเกี่ยวกับ ทำความรู้จัก Trezor จุดเริ่มต้นของ Hardware Wallet และเหตุผลที่นักลงทุนทั่วโลกเลือกใช้

คู่มือเลือก Bitcoin Address สำหรับโอน Bitcoin เข้ากระเป๋าส่วนตัว สำหรับมือใหม่

อ่านเพิ่มเติมเกี่ยวกับ 4 ประเภท Bitcoin Address เลือกใช้แบบไหนดี? (สำหรับมือใหม่)