กับการเกิดขึ้นของโปรโตคอล Ordinals มันได้ให้ Bitcoin ด้วยฟังก์ชันในการเลขหมายและจารึก ซึ่งทำให้ขยายขอบเขตของผลิตภัณฑ์ในนิเวศ Bitcoin และนำพลังงานใหม่เข้าสู่นิเวศ Bitcoin ในบทความนี้ เราจะลึกไปในรายละเอียดของโปรโตคอล Ordinal รวมถึงวิธีที่แต่ละ Bitcoin ถูกเลขหมายและติดตาม และความสัมพันธ์ระหว่างการจารึกและเลข แต่ก่อนที่เราจะลึกไปในหัวข้อนี้มากขึ้น เราจำเป็นต้องเข้าใจพื้นหลังของ Bitcoin บางอย่างก่อน เพื่อช่วยให้เราเข้าใจสิ่งที่มาถัดไปได้ดีขึ้น
หลังจากอ่านบทความนี้คุณจะเป็นเจ้าของกลไกการทำธุรกรรมของบิทคอยน์และโมเดลการชำระเงิน ทราบว่า Ordinals สามารถเลขลำดับและติดตาม Satoshi ทุกตัว และว่าจารึกถูกสร้างและซื้อขายอย่างไร นอกจากนี้คุณจะได้เรียนรู้เกี่ยวกับความแตกต่างระหว่างประเภทต่าง ๆ ของกระเป๋าเงิน
Bitcoin ใช้รูปแบบการทําธุรกรรมที่เหมือนเงินสด (ระบบเงินสด) และวิธีการชําระเงินนั้นขึ้นอยู่กับรูปแบบที่เรียกว่า UTXO ซึ่งแตกต่างจากรูปแบบดั้งเดิมตามยอดคงเหลือในบัญชี ตัวอย่างเช่นในกระบวนการทําบัญชีของธนาคารเมื่อ A โอน 100 หยวนไปยัง B ธนาคารจะบันทึกสามขั้นตอน สามขั้นตอนเหล่านี้ก่อให้เกิดกระบวนการทําธุรกรรม ขั้นตอนแรกคือการหักเงิน 100 หยวนจากบัญชีของ A รหัสระเบียนสําหรับขั้นตอนนี้คือ tid1 ขั้นตอนที่สองคือการฝากเงิน 100 หยวนเข้าบัญชีของ B รหัสระเบียนสําหรับขั้นตอนนี้คือ tid2 ขั้นตอนที่สามคือการบันทึกบันทึกการโอน บันทึกนี้เชื่อมโยง tid1 และ tid2 ซึ่งบ่งชี้ว่าลดลง 100 หยวนสําหรับบัญชี A และเพิ่มขึ้น 100 หยวนสําหรับบัญชี B ด้วยวิธีนี้ความสัมพันธ์การถ่ายโอนระหว่าง A และ B จะถูกบันทึกและสามารถสอบถามและติดตามได้ในอนาคต ตอนนี้เราจะอธิบายวิธีการชําระเงินของ Bitcoin ผ่านการแนะนํา UTXO และรูปแบบการชําระเงิน
ในบล็อกเชน Bitcoin ยอดคงเหลือทั้งหมดจะถูกเก็บไว้ในรายการที่เรียกว่า "Unspent Transaction Output (UTXO)" (Unspent Transaction Output) แต่ละ UTXO มี bitcoins จํานวนหนึ่งพร้อมกับข้อมูลเกี่ยวกับเจ้าของ bitcoins เหล่านั้นและระบุว่ามีอยู่หรือไม่ คิดว่ามันเป็นเช็คเงินสดที่มีชื่อผู้ถืออยู่ ตราบใดที่ผู้ถือลงนามคุณสามารถโอนสิทธิ์ในการใช้งานให้กับบุคคลอื่นได้ สําหรับที่อยู่เฉพาะจํานวนเงิน UTXO ทั้งหมดจะรวมกันเป็นยอดคงเหลือของกระเป๋าเงินของที่อยู่นั้น เมื่อผ่าน UTXOs ทั้งหมดเราจะได้ยอดคงเหลือปัจจุบันสําหรับแต่ละที่อยู่ ผลรวมของจํานวน UTXO ทั้งหมดคือจํานวน bitcoins ทั้งหมดที่หมุนเวียนอยู่ในปัจจุบัน
ในโครงสร้างธุรกรรมของ Bitcoin แต่ละธุรกรรมมีอินพุตและเอาต์พุตหลายรายการ อินพุตแต่ละรายการเป็นการอ้างอิงถึง UTXO ที่มีอยู่และแต่ละเอาต์พุตจะระบุที่อยู่การรับเงินกองทุนใหม่และจํานวนเงินที่เกี่ยวข้อง เมื่อเริ่มต้นธุรกรรม UTXO ที่อ้างอิงในส่วนอินพุตจะถูกล็อคชั่วคราวเพื่อป้องกันการใช้ซ้ําจนกว่าธุรกรรมจะเสร็จสมบูรณ์ เฉพาะเมื่อธุรกรรมถูกบรรจุลงในบล็อก (บล็อก) โดยนักขุดและได้รับการยืนยันจากเครือข่ายแล้วสถานะ UTXO ที่เกี่ยวข้องจะเปลี่ยนไป โดยเฉพาะ UTXOs ที่ใช้สําหรับการป้อนข้อมูลธุรกรรมจะถูกลบออกจากรายการ UTXO ซึ่งระบุว่ามีการใช้และเอาต์พุตของธุรกรรมจะสร้าง UTXO ใหม่และเพิ่มลงในรายการ UTXO สามารถเข้าใจได้ว่ามีการใช้เช็คเงินสดเก่าแล้วกลายเป็นไม่ถูกต้องสร้างเช็คเงินสดใหม่ซึ่งเป็นของผู้ถือใหม่
ควรเน้นว่าแต่ละ UTXO สามารถใช้ได้เพียงครั้งเดียวในธุรกรรมเดียว หลังจากที่ถูกใช้เป็นอินพุตแล้ว มันจะถูกลบออกจากรายการ UTXO อย่างถาวร ในที่เดียวกัน อินพุตที่สร้างขึ้นใหม่จะถูกเพิ่มเข้าไปในรายการเป็น UTXO ใหม่ รายการ UTXO เปลี่ยนแปลงอย่างต่อเนื่อง และเมื่อบล็อกใหม่ถูกสร้างขึ้น มันจะถูกอัปเดตตามนั้น นอกจากนี้ โดยการวิเคราะห์ประวัติของธุรกรรมในบล็อกเชน เราสามารถสร้างสถานะของรายการ UTXO ในขณะใดก็ได้
นอกจากนี้ จำนวนทั้งหมดของยอดเงินที่นำเข้าของธุรกรรมมักจะเกินจากยอดเงินทั้งหมดที่นำออกของมันเล็กน้อย ความแตกต่างนี้ที่เรียกว่าค่าธุรกรรม (ค่าธุรกรรม) หรือค่าธรรมเน็ตเวิร์ก (ค่าธรรมเน็ตเวิร์ก) ถูกให้เป็นสิ่งสร้างแรงจูงให้กับนักขุดที่รับผิดชอบในการจัดแพคธุรกรรมเข้าไปในบล็อก ขนาดของค่าธรรมเน็ตเวิร์กสัมพัทธ์กับความซับซ้อนของธุรกรรม ดังนั้น ธุรกรรมที่มีข้อมูลขาเข้าและขาออกมากกว่ามักต้องใช้ค่าธรรมเน็ตเวิร์กที่สูงขึ้น
ตอนนี้เพื่อให้เข้าใจโครงสร้างธุรกรรม Bitcoin ได้ดีขึ้นเราจะทําการวิเคราะห์เชิงลึกผ่านตัวอย่างเฉพาะ โครงสร้างการทําธุรกรรมของ Bitcoin มีดังนี้ ตัวแปรสองตัว vin และ vout แสดงถึง "อินพุต" และ "เอาต์พุต" ของธุรกรรม Bitcoin ตามลําดับ ธุรกรรม Bitcoin ไม่เหมือนกับรูปแบบยอดคงเหลือในบัญชีแบบดั้งเดิมที่บันทึกการเปลี่ยนแปลงข้อมูลบัญชี แต่แสดงผ่านอินพุตและเอาต์พุต
เราสามารถเลือกบันทึกรายการธุรกรรมอย่างสุ่มบน blockchain.com เพื่อวิเคราะห์ ภาพด้านล่างแสดงว่า รหัสแฮชเป็นธุรกรรมของ 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2 มีหนึ่งอินพุตและสองเอาท์พุต
ด้วยการใช้คำสั่ง bitcoin-cli getrawtransaction และ decoderawtransaction เราสามารถดูโครงสร้างพื้นฐานของธุรกรรมดังกล่าว:
ในเครือข่ายบิทคอยน์ ผลลัพธ์ของธุรกรรมมีสองส่วนสำคัญ คือ ที่อยู่ (public key hash) และ จำนวน (ในบิทคอยน์) หากผลลัพธ์ของหนึ่งรายการธุรกรรมไม่ถูกใช้ในข้อมูลนำเข้าของรายการธุรกรรมอื่น ๆ แล้วผลลัพธ์ของรายการธุรกรรมนี้เรียกว่าผลลัพธ์ของรายการธุรกรรมที่ยังไม่ได้ใช้ (UTXO) ผู้ใดมีกุญแจส่วนตัวที่สอดคล้องกับกุญแจสาธารณะใน UTXO ก็มีสิทธิ์ในการใช้ (หรือใช้จ่าย) UTXO นี้
มาดูข้อมูลใน "vin" ในโค้ดข้างต้นกัน ซึ่งบ่งชี้ว่า UTXO ที่ใช้ในการจ่ายในการแลกเปลี่ยนนี้มาจากธุรกรรมอื่น (id คือ 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18) เราสามารถหาจำนวนของ UTXO นี้จากธุรกรรมในอดีต (เช่น 0.1) ดังนั้น ในธุรกรรมนี้ ผู้ใช้ใช้จ่าย 0.1 BTC ค่า 0.1 ไม่จำเป็นต้องเขียนโดยชัดเจนในธุรกรรม แต่ได้รับจากการค้นหาข้อมูล UTXO "vout" ของธุรกรรมนี้มีสองเอาท์พุท ทั้งสองนี้เป็น UTXO ใหม่ ที่สอดคล้องกับยอดคงเหลือใหม่และเจ้าของจนกว่าธุรกรรมถัดไปจะใช้เป็นอินพุท
จำนวนบิทคอยน์ทั้งหมดคือ 21 ล้าน และแต่ละบิทคอยน์มี 10^8 ซาโตชิ (ซาโตชิ, ซาท). ดังนั้น มี 21 ล้าน * 10^8 ซาโตชิบนเครือข่ายบิทคอยน์ โปรโตคอล Ordinals แยกแยะซาโตชิเหล่านี้และตั้งเลขที่แตกต่างกันให้แต่ละซาโตชิ ส่วนนี้อธิบายวิธีที่ข้อตกลงนี้ตั้งเลขที่แตกต่างกันให้แต่ละซาโตชิและติดตามบัญชีที่มีอยู่ นอกจากนี้ยังจะมีการนำเสนอการจัดประเภทความหายากของซาโตชิด้วย
ตามข้อตกลงของ Ordinals, ซาโทชิถูกตั้งเลขตามลำดับที่ถูกขุด ภาพด้านล่างแสดงให้เห็นว่า ซาโทชิเลข 0 ถูกแทนด้วยบล็อกเลข 0
มีหลายวิธีในการแสดงถึง Satoshi:
เราจะใช้ตัวอย่างเพื่ออธิบายวิธีการนับจํานวน bitcoins ที่ขุดใหม่ เมื่อมองไปที่บล็อกที่ 795952 ของบล็อกเชน Bitcoin เราจะเห็นว่าธุรกรรมแรก Tx 3a1f ... b177 บันทึกรางวัลของนักขุด (ธุรกรรม Coinbase) ธุรกรรมนี้รวมถึง bitcoins ที่ขุดใหม่ซึ่งเป็นรางวัลแพ็คเกจสําหรับนักขุดและค่าธรรมเนียมการดําเนินการที่จ่ายให้กับนักขุดโดยผู้ริเริ่มธุรกรรม เมื่อดูอินพุตในภาพด้านล่างเราจะเห็นว่า UTxO ID ประกอบด้วยสตริงศูนย์และความสูงของบล็อก ที่อยู่เอาต์พุตคือที่อยู่กระเป๋าเงินของนักขุด และจํานวนเงินคือผลรวมของรางวัลและค่าธรรมเนียมข้างต้น
หากเรามองอย่างใกล้ชิดที่ส่วนเอาออกไปให้กับนักขุด จะพบที่อยู่ จำนวน และการกระจายของซาโตชิที่รวมอยู่ ตามที่กล่าวไว้ก่อนหน้านี้ นี้รวมถึงรางวัลในการขุดและค่าธรรมเนียม ในนั้น ข้อมูลจำนวน SATS สีเขียว 1941220000000000-1941220625000000 คือซาโตชิใหม่ที่สร้างขึ้นจากรางวัลการขุด และส่วนที่เหลือเป็นบันทึกค่าธรรมเนียม 712 ซาโตชิ ทั้งหมดในบล็อกนี้
เราสามารถยืนยันจำนวน Sat 1941220000000000 ตัวเลข หมายเลขบล็อกของมันคือ 795952 และสัญลักษณ์ทศนิยม (ทศนิยม) คือ 795952.0 ซึ่งหมายถึง ความสูงของบล็อกสำหรับการทำเหมือง Satoshi นี้คือ 795952 จำนวนในบล็อกนี้คือ 0 และความหายาก (ความหายาก) ที่ตามมาถูกทำเครื่องหมายว่าไม่ได้พบบ่อย ซึ่งเราจะพูดถึงเพิ่มเติมในส่วนถัดไป
เนื่องจากทุก BTC ถูกสร้างขึ้นผ่านรางวัลการขุดจึงสามารถตรวจสอบย้อนกลับได้ทั้งหมด บัญชี Bitcoin ใช้โมเดล UTXO สมมติว่าผู้ใช้ A ได้รับ Satoshi ที่ 100 ถึง 110 ผ่านการขุด (10 Satoshi จะถูกจัดเก็บโดยรวมใน UTXO ด้วย ID เดียวกัน adc123) เมื่อผู้ใช้ A ต้องการชําระเงินให้กับผู้ใช้ B 5 Satoshi เขาเลือกใช้ ID abc123 เป็นอินพุตสําหรับการทําธุรกรรม ในจํานวนนี้ 5 Satoshi มอบให้กับผู้ใช้ B และ 5 Satoshi จะถูกส่งกลับไปยังผู้ใช้ A เป็นศูนย์ ทั้งสองสําเนาของ 5 Satoshi เป็นทั้งหมดเก็บไว้ในสอง UTXO กับ ID abc456 และ abc789 ตามลําดับ จํานวน UTXO ID และ Satoshi ที่กล่าวถึงข้างต้นจะแสดงเป็นตัวอย่างเท่านั้น ในสถานการณ์จริงจํานวนขั้นต่ําของ Satoshi ที่ส่งจะถูก จํากัด ไว้ที่ 546 และ UTXO ID จะไม่แสดงในแบบฟอร์มนี้
ในการธุรกรรมที่อธิบายข้างต้น เส้นทางการโอนของ User A 10 Satoshi คือ:
เป็นผลิตภัณฑ์ที่มีลักษณะเฉพาะของโปรโตคอล Ordinals ซึ่งความหายากของ Satoshi สามารถถูกกำหนดตามลำดับที่ถูกขุดพบ นี่จะทำให้บาง Satoshi ที่เป็นพิเศษมีความหายากที่แตกต่างกัน นี่คือความหายากของชนิดต่างๆ ของ Satoshi
แนวคิดที่หายากและฉลาดนี้ สามารถเพิ่มความสนุกและมูลค่าให้กับระบบบิทคอยน์เพิ่มเติม ซาโตชิที่หายากต่างก็อาจมีมูลค่าที่แตกต่างกันในตลาด ทำให้ดึงดูดนักสะสมและนักลงทุน
Ordinals แตกต่างจาก NFT แบบ on-chain ที่ไม่ใช่ Bitcoin อื่น ๆ อย่างมาก ในหมู่พวกเขาความแตกต่างที่สําคัญคือข้อมูลเมตาของ Ordinals ไม่ได้ถูกเก็บไว้ในตําแหน่งเฉพาะ แต่เมตาดาต้านี้ถูกฝังลงในข้อมูลพยานของธุรกรรม (ฟิลด์พยาน) ซึ่งเป็นเหตุผลที่เราเรียกว่า " จารึก (จารึก) " เนื่องจากข้อมูลนี้ถูก "สลัก" เหมือนจารึกในส่วนเฉพาะของธุรกรรม Bitcoin และข้อมูลนี้ มันถูกแนบมากับ Satoshi เฉพาะ กระบวนการจารึกนี้ทําได้โดยการแยกพยาน (SegWit) และ "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR)) ประกอบด้วยสองขั้นตอนของการส่ง (กระทํา) และการเปิดเผย (เปิดเผย) และสามารถแกะสลักเนื้อหารูปแบบใดก็ได้ (เช่นข้อความรูปภาพหรือวิดีโอ) บนกระดานอัจฉริยะที่กําหนด เราจะแนะนําวิธีการจัดเก็บข้อมูลโดยตรงอีกวิธีหนึ่ง OP_RETURN ด้านล่างและอธิบายว่าเหตุใดจึงไม่ได้ใช้เป็นเครื่องมือในการจารึก ในเวลาเดียวกันเราจะแนะนําสิ่งที่แยกพยานและจ่ายเพื่อ taproot คืออะไรและบทบาทที่พวกเขาเล่นในจารึก ในตอนท้ายเราจะแนะนําวิธีการจารึก
ในเวอร์ชัน 0.9 ของไคลเอ็นต์ Bitcoin Core สามารถบรรลุความประสงค์ได้ในที่สุดโดยการใช้ตัวดำเนินการ RETURN **RETURN ช่วยให้นักพัฒนาสามารถเพิ่มข้อมูลที่ไม่ใช่การชำระเงิน 80 ไบต์ลงในเอาตพุทของธุรกรรม **ต่างจากการชำระเงินปลอม RETURN สร้างเอาตพุทที่ชัดแจ้งและสามารถตรวจสอบได้ว่าไม่สามารถใช้ได้ ข้อมูลดังกล่าวไม่จำเป็นต้องเก็บไว้ในเซ็ต UTXO RETURN เอาตพุทถูกบันทึกบนบล็อกเชน มันใช้พื้นที่ดิสก์และยังทำให้บล็อกเชนขยายขนาด แต่เนื่องจากว่าไม่ได้เก็บไว้ในโครงสร้าง UTXO จึงไม่ทำให้ก้อนความจำ UTXO ขยายขนาด อย่างน้อยก็ไม่เพิ่มต้นทุนความจำที่แพงของโหนดทั้งหมด
แม้ว่า OP_RETURN จะเป็นวิธีการจัดเก็บข้อมูลโดยตรงไปยังบล็อกเชน Bitcoin แต่ก็เป็นวิธีจารึกที่เป็นไปได้ อย่างไรก็ตามข้อ จํากัด ของ OP_RETURN ทําให้ต้องเผชิญกับความท้าทายบางอย่างเมื่อจัดการกับการจัดเก็บข้อมูลเมตา ประการแรก OP_RETURN สามารถจัดเก็บข้อมูลได้เพียง 80 ไบต์และสําหรับสถานการณ์ที่จําเป็นต้องจัดเก็บข้อมูลจํานวนมากข้อ จํากัด นี้เป็นไปไม่ได้ที่จะตอบสนองอย่างชัดเจน ประการที่สองข้อมูล OP_RETURN จะถูกเก็บไว้ในส่วนผลลัพธ์ของธุรกรรม แม้ว่าข้อมูลนี้จะไม่ถูกจัดเก็บจากส่วนกลางใน UTXO แต่ก็ใช้พื้นที่จัดเก็บบล็อกเชนซึ่งนําไปสู่การเพิ่มขนาดบล็อกเชน สุดท้ายการใช้ OP_RETURN ส่งผลให้ค่าธรรมเนียมการทําธุรกรรมสูงขึ้นเนื่องจากต้องจ่ายเงินมากขึ้นในการโพสต์ธุรกรรมเหล่านี้
ในทางตรงกันข้าม SegWit ให้การเข้าใจที่แตกต่างที่สามารถเอาชนะปัญหาเหล่านี้ได้ SegWit เป็นการอัพเกรดโปรโตคอลที่สำคัญสำหรับบิทคอยน์ ถูกเสนอโดยนักพัฒนา Bitcoin core Pieter Wuille เมื่อปี 2015 และได้รับการยอมรับอย่างเป็นทางการในเวอร์ชัน 0.16.0 ในปี 2017 Segregated ใน segregated witness หมายถึงการแยกหรือการกำหนดสิ่งแยกแยะและพยายามเป็นลายเซ็นเจอร์ที่เกี่ยวข้องกับธุรกรรม ดังนั้น SegWit แยกข้อมูลลายเซ็นเจอร์ของธุรกรรมบางส่วน (ข้อมูลพยายาม) จากธุรกรรม
ประโยชน์หลักของการแยกลายเซ็นออกจากข้อมูลที่เกี่ยวข้องกับธุรกรรมคือการลดขนาดของข้อมูลที่เก็บไว้ในบล็อก Bitcoin วิธีนี้แต่ละบล็อกมีความสามารถพิเศษในการจัดเก็บธุรกรรมเพิ่มเติมซึ่งหมายความว่าเครือข่ายสามารถประมวลผลธุรกรรมได้มากขึ้นและผู้ส่งจ่ายค่าธรรมเนียมการดําเนินการที่ต่ํากว่า ในทางเทคนิคข้อมูลลายเซ็นสคริปต์ (scriptSig) นํามาจากโครงสร้างพื้นฐาน (บล็อกฐาน) และวางไว้ในโครงสร้างข้อมูลใหม่ โหนดและนักขุดที่ทํางานตรวจสอบจะตรวจสอบลายเซ็นสคริปต์ในโครงสร้างข้อมูลใหม่นี้เพื่อให้แน่ใจว่าธุรกรรมถูกต้อง การอัพเกรด Segwit ได้แนะนําฟิลด์พยานใหม่ในผลลัพธ์การทําธุรกรรมเพื่อให้มั่นใจถึงความเป็นส่วนตัวและประสิทธิภาพ แม้ว่าข้อมูลพยานไม่ได้ออกแบบมาสําหรับการจัดเก็บข้อมูล แต่ก็เปิดโอกาสให้เราจัดเก็บสิ่งต่างๆเช่นเมตาดาต้าจารึก ลองใช้ภาพต่อไปนี้เพื่อทําความเข้าใจพยานกักกันให้ดีขึ้น:
P2TR เป็นชนิดของเอาท์พุตการทำธุรกรรมสำหรับบิทคอยน์ ถูกนำเสนอในการอัพเกรด Taproot เมื่อปี 2021 มันช่วยให้เงื่อนไขการทำธุรกรรมที่แตกต่างกันสามารถถูกเก็บไว้เป็นความเป็นส่วนตัวมากขึ้นบนบล็อกเชน ในจารึกของ Ordinals P2TR เล่น peran penting จารึกซึ่งฝังข้อมูลเฉพาะเข้าไปในการทำธุรกรรมบิทคอยน์ และการอัพเกรด Taproot โดยเฉพาะ P2TR ได้ทำให้ข้อมูลที่ฝังอยู่นี้มีความยืดหยุ่นและคุณภาพมากขึ้น
ประการแรกเนื่องจากวิธีการจัดเก็บสคริปต์ Taproot เราสามารถจัดเก็บเนื้อหาจารึกในสคริปต์ค่าใช้จ่ายเส้นทางสคริปต์ Taproot สคริปต์เหล่านี้แทบไม่มีข้อ จํากัด เกี่ยวกับเนื้อหาและในเวลาเดียวกันยังสามารถรับส่วนลดจากข้อมูลพยานทําให้การจัดเก็บเนื้อหาจารึกค่อนข้างประหยัด เนื่องจากการใช้สคริปต์ Taproot สามารถทําได้จากเอาต์พุต Taproot ที่มีอยู่แล้วเท่านั้นจารึกจึงใช้กระบวนการส่ง / เปิดเผยสองขั้นตอน ขั้นแรกในการส่งธุรกรรมเอาต์พุต Taproot ถูกสร้างขึ้นซึ่งสัญญาว่าจะมีสคริปต์ที่มีเนื้อหาของจารึก จากนั้นในการทําธุรกรรมเปิดเผยผลลัพธ์ที่สร้างขึ้นโดยการส่งธุรกรรมจะถูกใช้ดังนั้นจึงเปิดเผยเนื้อหาของจารึกบนห่วงโซ่
วิธีการนี้ได้ลดการใช้ทรัพยากรอย่างมาก หากไม่มีการใช้ P2TR ข้อมูลเห็นพยานจะถูกเก็บไว้ในเอาต์พุตของธุรกรรม โดยวิธีนี้เมื่อเอาต์พุตนี้ยังไม่ถูกใช้จะทำให้ข้อมูลเห็นพยานเก็บอยู่ใน UTXO pool เสมอ ในทางกลับกัน หากใช้ P2TR ข้อมูลเห็นพยานจะไม่ปรากฏในธุรกรรมที่สร้างขึ้นในช่วงการส่ง ดังนั้นจะไม่ถูกเขียนลงในชุด UTXO เพียงเมื่อ UTXO นี้ถูกใช้จะทำให้ข้อมูลเห็นพยานปรากฏในอินพุตของธุรกรรมในช่วงการเปิดเผย เท่านั้น P2TR ช่วยให้สามารถเขียนข้อมูลเมตาดาต้าลงบนบล็อกเชน Bitcoin ได้ แต่มิใช่ข้อมูลนี้ปรากฏใน UTXO เนื่องจากการรักษา/ปรับเปลี่ยนชุด UTXO ต้องใช้ทรัพยากรมากขึ้น วิธีการนี้สามารถประหยัดทรัพยากรได้อย่างมีนัยสำคัญ
โปรโตคอล Ordinals ใช้ SegWit เพื่อผ่อนความจํากัดขนาดของเนื้อหาที่เขียนลงในเครือข่าย Bitcoin โดยเก็บเนื้อหาจารึกใน witness data ซึ่งช่วยให้เก็บข้อมูลประมาณ 4MB ได้ Taproot ทำให้ง่ายขึ้นในการเก็บ witness data อย่างสมบูรณ์ในธุรกรรม Bitcoin โดยอนุญาตให้นักพัฒนา Ordinals Casey Rodarmor นำ opcodes เก่า (OP_FALSE, OP_IF, OP_PUSH) มาใช้เก็บข้อมูลอย่างสมบูรณ์ในสิ่งที่เขาเรียกว่า "ซอง" ที่เรียกว่า "จารึก"
กระบวนการสำหรับการสลักจารึกประกอบด้วยขั้นตอนทั้งสองต่อไปนี้:
ขั้นแรกจําเป็นต้องสร้างสัญญาในธุรกรรมการส่งไปยังเอาต์พุต Taproot ของสคริปต์ที่มีเนื้อหาของจารึก รูปแบบการจัดเก็บคือ Taproot นั่นคือผลลัพธ์ของธุรกรรมก่อนหน้าคือ P2TR (Pay-To-Taproot) และอินพุตของธุรกรรมหลังฝังเนื้อหาในรูปแบบเฉพาะในสคริปต์ Taproot ที่เห็น สตริง ord ถูกวางซ้อนกันก่อนเพื่อกําจัดความคลุมเครือที่จารึกมีประโยชน์อื่น ๆ OP_PUSH 1 ระบุว่าการพุชครั้งต่อไปมีชนิดเนื้อหา และ OP_PUSH 0 บ่งชี้ว่าการพุชข้อมูลที่ตามมารวมถึงเนื้อหาด้วย จารึกขนาดใหญ่ต้องใช้การพุชข้อมูลหลายรายการเนื่องจากหนึ่งในข้อ จํากัด บางประการของ taproot คือการพุชข้อมูลเดียวต้องไม่ใหญ่กว่า 520 ไบต์ ณ จุดนี้ข้อมูลของจารึกถูกนําไปใช้กับเอาต์พุต UTXO ของธุรกรรม แต่ยังไม่ได้รับการเปิดเผย
ในขั้นตอนต่อมา จำเป็นต้องเปิดเผยผลลัพธ์ที่สร้างขึ้นโดยธุรกรรมการส่งซื้อในธุรกรรม ณ ขั้นนี้ ธุรกรรมถูกเริ่มต้นโดยใช้ UTXO ที่สอดคล้องกับจารึกนั้นเป็นอินพุท ณ จุดนี้ สาระสำคัญของจารึกที่สอดคล้องกันถูกเปิดเผยให้กับเครือข่ายทั้งหมด
ผ่านขั้นตอนทั้งสองที่กล่าวมาข้างต้น จารึกได้ถูกผูกกับ UTXO ที่สลายลง นอกจากนี้ ตามตำแหน่งการตั้งต้นของ Satoshi ที่กล่าวถึงข้างต้น การจารึกถูกดำเนินการบน Satoshi ตัวแรกที่สอดคล้องกับการนำเข้า UTXO และเนื้อหาของการจารึกถูกรวมอยู่ในการนำเข้าที่แสดงการทำธุรกรรม ตามข้อมูลสำหรับการกระจายและติดตาม Satoshi ที่กล่าวถึงข้างต้น Satoshi นี้ซึ่งจารึกด้วยเนื้อหาพิเศษสามารถถูกโอน ซื้อ ขาย สูญหาย และกู้คืน โปรดทราบว่า จารึกไม่สามารถทำซ้ำได้ ไม่เช่นนั้น จารึกที่ตามมาจะไม่ถือเป็นข้อมูลที่ถูกต้อง
เราจะอธิบายกระบวนการนี้อย่างละเอียดโดยการจารึกตัวอย่างของภาพ NFT BTC ขนาดเล็ก กระบวนการนี้รวมไปถึงสองขั้นตอนหลัก คือ การส่ง (commit) และการเปิดเผย (reveal) ที่กล่าวถึงก่อนหน้านี้ ก่อนอื่นเราเห็นว่า Hash ID สำหรับธุรกรรมแรกคือ 2ddf9... f585c สามารถบันทึกได้ว่าผลลัพธ์ของธุรกรรมนี้ไม่รวมข้อมูลพยาน และไม่มีการจารึกที่เกี่ยวข้องบนหน้านั้น
ต่อไปเรามาดูบันทึกของขั้นตอนที่สอง ไอดีแฮชคือ e7454... 7c0e1 ที่นี่เราสามารถเห็นข้อมูลเกี่ยวกับจารึกของ Ordinals นั่นคือเนื้อหาของจารึกพยาน ที่อยู่นำเข้าสำหรับธุรกรรมนี้คือที่อยู่ผลลัพธ์ของธุรกรรมก่อนหน้า และผลลัพธ์ 0.00000546 BTC (546 Satoshi) กำลังส่ง NFT นี้ไปยังที่อยู่ของตัวเอง ในเวลาเดียวกัน เรายังสามารถใช้ Sat Find Satoshi ที่จะบอกที่จารึกนี้ตั้งอยู่ในตำแหน่ง 1893640468329373
ในกระเป๋าเงิน Bitcoin เราสามารถเห็นสินทรัพย์นี้ หากเราต้องการซื้อขาย NFT นี้ เราสามารถส่งไปที่อยู่ของคนอื่นๆ โดยตรง นั่นคือ ส่ง UTXO นี้ และสิ้นสุดการหมุนเวียนของการจารึก
หลังจากที่เราได้เรียนรู้เกี่ยวกับระบบ Ordinals, การหมุนเวียนของ Satoshi, และความรู้ที่เกี่ยวข้องกับจารึก ณ ขณะนี้มีฉากที่ใช้งานหลายอย่าง ไม่ว่าจะเป็นการเกิดขึ้นของข้อตกลงเชิงเอกสารที่เกี่ยวข้อง เช่น BRC-20, ORC-20, BRC-721, GBRC-721, ฯลฯ เราต้องการกระเป๋าเงินที่สอดคล้องกับและแสดงข้อมูลโทเค็นหรือภาพ NFT ขนาดเล็ก ในส่วนนี้เราจะแนะนำแนวคิดและลักษณะของที่อยู่กระเป๋าเงิน Bitcoin ที่แตกต่างกัน
ที่อยู่ Bitcoin ขึ้นต้นด้วย 1, 3 หรือ bc1 เช่นเดียวกับที่อยู่อีเมลพวกเขาสามารถแบ่งปันกับผู้ใช้ Bitcoin คนอื่น ๆ ที่สามารถใช้พวกเขาเพื่อส่ง bitcoins โดยตรงไปยังกระเป๋าเงินของพวกเขา จากมุมมองด้านความปลอดภัยที่อยู่ Bitcoin ไม่มีเนื้อหาที่ละเอียดอ่อน สามารถโพสต์ได้ทุกที่โดยไม่เป็นอันตรายต่อความปลอดภัยของบัญชี ซึ่งแตกต่างจากที่อยู่อีเมลเราสามารถสร้างที่อยู่ใหม่ได้ตลอดเวลาที่เราต้องการซึ่งทั้งหมดนี้จะฝากเงินเข้ากระเป๋าเงินของคุณโดยตรง ในความเป็นจริงกระเป๋าเงินที่ทันสมัยจํานวนมากจะสร้างที่อยู่ใหม่สําหรับทุกธุรกรรมโดยอัตโนมัติเพื่อเพิ่มความเป็นส่วนตัวสูงสุด กระเป๋าเงินเป็นเพียงชุดของที่อยู่และกุญแจเพื่อปลดล็อกเงินในนั้น ก่อนอื่นเราต้องรู้ว่าที่อยู่กระเป๋าเงิน Bitcoin ถูกสร้างขึ้นอย่างไร
Bitcoin ใช้เส้นโค้งรูปไข่ secp256k1 "คีย์ส่วนตัว" เป็นตัวเลขสุ่มระหว่าง 1 ถึง n-1 n เป็นจํานวนมาก (256 บิต) และ n แสดงในสัญกรณ์ทางวิทยาศาสตร์เกี่ยวกับ 1.15792 * 10 ^ 77 ขอบเขตมีขนาดใหญ่และแทบจะเป็นไปไม่ได้เลยที่เราจะเดาคีย์ส่วนตัวของคนอื่น คีย์ส่วนตัวจํานวนเต็มแบบสุ่มนี้สามารถใช้ได้ 256 บิตระบุว่ามีหลายวิธีในการเข้ารหัส หากคีย์ส่วนตัวที่ใช้การบีบอัด WIF หรือ WIF ไม่ได้เข้ารหัส สามารถรับ "จํานวนเต็มแบบสุ่ม" ดั้งเดิมได้โดยการถอดรหัส อีกวิธีหนึ่งคือ BIP38 มีการเสนอให้ใช้อัลกอริธึม AES เพื่อเข้ารหัสคีย์ส่วนตัว คีย์ส่วนตัวที่ได้รับจากโครงร่างนี้เริ่มต้นด้วยอักขระ 6P คีย์ส่วนตัวนี้จะต้องนําเข้าไปยังกระเป๋าเงิน Bitcoin ต่างๆ นี่คือคีย์ส่วนตัวที่เรามักใช้
เราจะใช้สูตรเส้นโค้งทารก์ K = kG เพื่อสร้างคีย์สาธารณะของ Bitcoin K จากคีย์ส่วนตัว k G คือจุดฐานฐานที่เป็นพารามิเตอร์ของ secp256k1 คุณสามารถรับค่าพิกัดสองของ K ซึ่งเป็นสองนิพจน์ของคีย์สาธารณะ “รูปแบบที่ยังไม่บีบอัด” และ “รูปแบบที่บีบอัด” ตามลำดับ
รูปแบบต่าง ๆ ของที่อยู่ Bitcoin สามารถเห็นได้ในรูปด้านล่าง มีวิธีการแสดงออกมา 4 วิธี
1. รูปแบบสืบทอด (P2PKH)
ตัวอย่าง: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u
ที่อยู่ที่ขึ้นต้นด้วย “1” เป็นรูปแบบที่เริ่มต้นของบิทคอยน์และยังใช้อยู่ถึงปัจจุบัน ได้รับจากคีย์สาธารณะผ่านการคำนวณแฮช ที่รู้จักกันในชื่อ P2PKH ซึ่งเป็นระเบียบย่อสำหรับ Pay To PubKey Hash (การชำระเงินไปยังแฮชของคีย์สาธารณะ)
รูปแบบ Nested SegWit (P2SH)
ตัวอย่าง: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan
ที่อยู่เริ่มต้นด้วย “ 3 “ P2SH ย่อมาจาก Pay To Script Hash (Pay To Script Hash) ซึ่งรองรับคุณลักษณะที่ซับซ้อนกว่าที่อยู่ Legacy Nested P2SH ได้รับที่อยู่ P2SH ที่มีอยู่ (เริ่มต้นด้วย “3”) และห่อหุ้มด้วยที่อยู่ SegWit
3. รูปแบบ Native SegWit (Bech32)
ที่อยู่ที่ขึ้นต้นด้วย bc1 ถูกเสนอในปี BIP0173 พวกเขาเป็นที่อยู่ของพยานกักกันพื้นเมือง ที่อยู่ที่เข้ารหัส Bech32 เป็นรูปแบบที่อยู่ที่พัฒนาขึ้นเป็นพิเศษสําหรับ SegWit Bech32 ถูกกําหนดไว้ใน BIP173 เมื่อปลายปี 2017 หนึ่งในคุณสมบัติหลักของรูปแบบนี้คือไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (ที่อยู่มีเพียง 0-9, az) ดังนั้นจึงสามารถหลีกเลี่ยงความสับสนได้อย่างมีประสิทธิภาพและอ่านง่ายขึ้นเมื่อป้อน เนื่องจากต้องใช้อักขระน้อยลงในที่อยู่ที่อยู่จึงใช้การเข้ารหัส Base32 แทน Base58 แบบเดิมซึ่งสะดวกและมีประสิทธิภาพในการคํานวณมากกว่า ข้อมูลสามารถจัดเก็บได้แน่นขึ้นในรหัส QR Bech32 ให้ความปลอดภัยที่สูงขึ้นเพิ่มประสิทธิภาพการตรวจสอบและรหัสตรวจจับข้อผิดพลาดและลดโอกาสของที่อยู่ที่ไม่ถูกต้อง
ที่อยู่ Bech32 นั้นเข้ากันได้กับ SegWit ไม่จําเป็นต้องใช้พื้นที่เพิ่มเติมในการใส่ที่อยู่ SegWit ลงในที่อยู่ P2SH ดังนั้นการใช้ที่อยู่รูปแบบ Bech32 ค่าธรรมเนียมการดําเนินการจะลดลง ที่อยู่ Bech32 มีข้อดีหลายประการเหนือ Base58 เก่า (การเข้ารหัส Base58Check ใช้เพื่อเข้ารหัสอาร์เรย์ไบต์ใน Bitcoin เป็นสตริงที่มนุษย์เข้ารหัสได้) ที่อยู่: รหัส QR มีขนาดเล็กกว่า พวกเขามีหลักฐานข้อผิดพลาดมากขึ้น พวกเขามีความปลอดภัยมากขึ้น พวกเขาไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ พวกเขาประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้นดังนั้นจึงง่ายต่อการอ่านพิมพ์และเข้าใจ
รูปแบบ Taproot (P2TR)
Bech32 มีข้อเสีย: หากตัวอักษรสุดท้ายในที่อยู่คือ p, การแทรกหรือลบตัวอักษร q จำนวนใดก็ต่อเมื่ออยู่ก่อน p จะไม่ทำให้ค่า checksum ของมันไม่ถูกต้อง
เพื่อลดปัญหาข้างต้นของ Bech32 ที่กล่าวถึง ที่อยู่ Bech32M ถูกเสนอใน BIP0350:
สำหรับที่อยู่ Bech32M เมื่อรุ่นเป็น 1 พวกเขาเริ่มต้นด้วย bc1p เสมอ (นั่นคือ ที่อยู่ Taproot) โดยเฉพาะอย่างยิ่ง เช่น พยานการจำกัดพื้นที่ท้องถิ่น กระเป๋าสตางค์สามารถประกอบด้วย วลีเมล็ดและวลีรหัสผ่าน พวกเขาถูกใช้ในการสร้างคีย์สาธิตและส่วนตัวที่ขยาย และถูกใช้ในการสร้างที่อยู่สำหรับเส้นทางต่าง ๆ ในกระเป๋าสตางค์เชิงลำดับเชิงลำดับ โดยส่วนใหญ่เป็น NFT ที่เก็บ BRC-20 และ BTC
Spectrum Labs เป็นทีมของผู้เชี่ยวชาญและผู้มีปริญญาเอกที่เน้นการวิจัยเชิงบล็อกเชน และเป็นผู้เชี่ยวชาญในอุตสาหกรรมบล็อกเชน เรามุ่งมั่นที่จะทำการวิจัยเชิงบล็อกเชนและเทคโนโลยีโซเชียลเน็ตเวิร์คและการประยุกต์ใช้งานเพื่อช่วยให้คนเข้าใจเรื่องเทคโนโลยีบล็อกเชนได้ดียิ่งขึ้น ธุรกิจหลักของ Spectrum Labs รวมถึงการเขียนรายงานวิจัย เขียนคอร์สเรียน และการพัฒนาเครื่องมือ
ชุมชน BTC NFT จีนเป็นแพลตฟอร์มแลกเปลี่ยน BTC NFT สำหรับชาวจีนใหม่จากทั่วโลก
กับการเกิดขึ้นของโปรโตคอล Ordinals มันได้ให้ Bitcoin ด้วยฟังก์ชันในการเลขหมายและจารึก ซึ่งทำให้ขยายขอบเขตของผลิตภัณฑ์ในนิเวศ Bitcoin และนำพลังงานใหม่เข้าสู่นิเวศ Bitcoin ในบทความนี้ เราจะลึกไปในรายละเอียดของโปรโตคอล Ordinal รวมถึงวิธีที่แต่ละ Bitcoin ถูกเลขหมายและติดตาม และความสัมพันธ์ระหว่างการจารึกและเลข แต่ก่อนที่เราจะลึกไปในหัวข้อนี้มากขึ้น เราจำเป็นต้องเข้าใจพื้นหลังของ Bitcoin บางอย่างก่อน เพื่อช่วยให้เราเข้าใจสิ่งที่มาถัดไปได้ดีขึ้น
หลังจากอ่านบทความนี้คุณจะเป็นเจ้าของกลไกการทำธุรกรรมของบิทคอยน์และโมเดลการชำระเงิน ทราบว่า Ordinals สามารถเลขลำดับและติดตาม Satoshi ทุกตัว และว่าจารึกถูกสร้างและซื้อขายอย่างไร นอกจากนี้คุณจะได้เรียนรู้เกี่ยวกับความแตกต่างระหว่างประเภทต่าง ๆ ของกระเป๋าเงิน
Bitcoin ใช้รูปแบบการทําธุรกรรมที่เหมือนเงินสด (ระบบเงินสด) และวิธีการชําระเงินนั้นขึ้นอยู่กับรูปแบบที่เรียกว่า UTXO ซึ่งแตกต่างจากรูปแบบดั้งเดิมตามยอดคงเหลือในบัญชี ตัวอย่างเช่นในกระบวนการทําบัญชีของธนาคารเมื่อ A โอน 100 หยวนไปยัง B ธนาคารจะบันทึกสามขั้นตอน สามขั้นตอนเหล่านี้ก่อให้เกิดกระบวนการทําธุรกรรม ขั้นตอนแรกคือการหักเงิน 100 หยวนจากบัญชีของ A รหัสระเบียนสําหรับขั้นตอนนี้คือ tid1 ขั้นตอนที่สองคือการฝากเงิน 100 หยวนเข้าบัญชีของ B รหัสระเบียนสําหรับขั้นตอนนี้คือ tid2 ขั้นตอนที่สามคือการบันทึกบันทึกการโอน บันทึกนี้เชื่อมโยง tid1 และ tid2 ซึ่งบ่งชี้ว่าลดลง 100 หยวนสําหรับบัญชี A และเพิ่มขึ้น 100 หยวนสําหรับบัญชี B ด้วยวิธีนี้ความสัมพันธ์การถ่ายโอนระหว่าง A และ B จะถูกบันทึกและสามารถสอบถามและติดตามได้ในอนาคต ตอนนี้เราจะอธิบายวิธีการชําระเงินของ Bitcoin ผ่านการแนะนํา UTXO และรูปแบบการชําระเงิน
ในบล็อกเชน Bitcoin ยอดคงเหลือทั้งหมดจะถูกเก็บไว้ในรายการที่เรียกว่า "Unspent Transaction Output (UTXO)" (Unspent Transaction Output) แต่ละ UTXO มี bitcoins จํานวนหนึ่งพร้อมกับข้อมูลเกี่ยวกับเจ้าของ bitcoins เหล่านั้นและระบุว่ามีอยู่หรือไม่ คิดว่ามันเป็นเช็คเงินสดที่มีชื่อผู้ถืออยู่ ตราบใดที่ผู้ถือลงนามคุณสามารถโอนสิทธิ์ในการใช้งานให้กับบุคคลอื่นได้ สําหรับที่อยู่เฉพาะจํานวนเงิน UTXO ทั้งหมดจะรวมกันเป็นยอดคงเหลือของกระเป๋าเงินของที่อยู่นั้น เมื่อผ่าน UTXOs ทั้งหมดเราจะได้ยอดคงเหลือปัจจุบันสําหรับแต่ละที่อยู่ ผลรวมของจํานวน UTXO ทั้งหมดคือจํานวน bitcoins ทั้งหมดที่หมุนเวียนอยู่ในปัจจุบัน
ในโครงสร้างธุรกรรมของ Bitcoin แต่ละธุรกรรมมีอินพุตและเอาต์พุตหลายรายการ อินพุตแต่ละรายการเป็นการอ้างอิงถึง UTXO ที่มีอยู่และแต่ละเอาต์พุตจะระบุที่อยู่การรับเงินกองทุนใหม่และจํานวนเงินที่เกี่ยวข้อง เมื่อเริ่มต้นธุรกรรม UTXO ที่อ้างอิงในส่วนอินพุตจะถูกล็อคชั่วคราวเพื่อป้องกันการใช้ซ้ําจนกว่าธุรกรรมจะเสร็จสมบูรณ์ เฉพาะเมื่อธุรกรรมถูกบรรจุลงในบล็อก (บล็อก) โดยนักขุดและได้รับการยืนยันจากเครือข่ายแล้วสถานะ UTXO ที่เกี่ยวข้องจะเปลี่ยนไป โดยเฉพาะ UTXOs ที่ใช้สําหรับการป้อนข้อมูลธุรกรรมจะถูกลบออกจากรายการ UTXO ซึ่งระบุว่ามีการใช้และเอาต์พุตของธุรกรรมจะสร้าง UTXO ใหม่และเพิ่มลงในรายการ UTXO สามารถเข้าใจได้ว่ามีการใช้เช็คเงินสดเก่าแล้วกลายเป็นไม่ถูกต้องสร้างเช็คเงินสดใหม่ซึ่งเป็นของผู้ถือใหม่
ควรเน้นว่าแต่ละ UTXO สามารถใช้ได้เพียงครั้งเดียวในธุรกรรมเดียว หลังจากที่ถูกใช้เป็นอินพุตแล้ว มันจะถูกลบออกจากรายการ UTXO อย่างถาวร ในที่เดียวกัน อินพุตที่สร้างขึ้นใหม่จะถูกเพิ่มเข้าไปในรายการเป็น UTXO ใหม่ รายการ UTXO เปลี่ยนแปลงอย่างต่อเนื่อง และเมื่อบล็อกใหม่ถูกสร้างขึ้น มันจะถูกอัปเดตตามนั้น นอกจากนี้ โดยการวิเคราะห์ประวัติของธุรกรรมในบล็อกเชน เราสามารถสร้างสถานะของรายการ UTXO ในขณะใดก็ได้
นอกจากนี้ จำนวนทั้งหมดของยอดเงินที่นำเข้าของธุรกรรมมักจะเกินจากยอดเงินทั้งหมดที่นำออกของมันเล็กน้อย ความแตกต่างนี้ที่เรียกว่าค่าธุรกรรม (ค่าธุรกรรม) หรือค่าธรรมเน็ตเวิร์ก (ค่าธรรมเน็ตเวิร์ก) ถูกให้เป็นสิ่งสร้างแรงจูงให้กับนักขุดที่รับผิดชอบในการจัดแพคธุรกรรมเข้าไปในบล็อก ขนาดของค่าธรรมเน็ตเวิร์กสัมพัทธ์กับความซับซ้อนของธุรกรรม ดังนั้น ธุรกรรมที่มีข้อมูลขาเข้าและขาออกมากกว่ามักต้องใช้ค่าธรรมเน็ตเวิร์กที่สูงขึ้น
ตอนนี้เพื่อให้เข้าใจโครงสร้างธุรกรรม Bitcoin ได้ดีขึ้นเราจะทําการวิเคราะห์เชิงลึกผ่านตัวอย่างเฉพาะ โครงสร้างการทําธุรกรรมของ Bitcoin มีดังนี้ ตัวแปรสองตัว vin และ vout แสดงถึง "อินพุต" และ "เอาต์พุต" ของธุรกรรม Bitcoin ตามลําดับ ธุรกรรม Bitcoin ไม่เหมือนกับรูปแบบยอดคงเหลือในบัญชีแบบดั้งเดิมที่บันทึกการเปลี่ยนแปลงข้อมูลบัญชี แต่แสดงผ่านอินพุตและเอาต์พุต
เราสามารถเลือกบันทึกรายการธุรกรรมอย่างสุ่มบน blockchain.com เพื่อวิเคราะห์ ภาพด้านล่างแสดงว่า รหัสแฮชเป็นธุรกรรมของ 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5f5fbd8a57286c345c2f2 มีหนึ่งอินพุตและสองเอาท์พุต
ด้วยการใช้คำสั่ง bitcoin-cli getrawtransaction และ decoderawtransaction เราสามารถดูโครงสร้างพื้นฐานของธุรกรรมดังกล่าว:
ในเครือข่ายบิทคอยน์ ผลลัพธ์ของธุรกรรมมีสองส่วนสำคัญ คือ ที่อยู่ (public key hash) และ จำนวน (ในบิทคอยน์) หากผลลัพธ์ของหนึ่งรายการธุรกรรมไม่ถูกใช้ในข้อมูลนำเข้าของรายการธุรกรรมอื่น ๆ แล้วผลลัพธ์ของรายการธุรกรรมนี้เรียกว่าผลลัพธ์ของรายการธุรกรรมที่ยังไม่ได้ใช้ (UTXO) ผู้ใดมีกุญแจส่วนตัวที่สอดคล้องกับกุญแจสาธารณะใน UTXO ก็มีสิทธิ์ในการใช้ (หรือใช้จ่าย) UTXO นี้
มาดูข้อมูลใน "vin" ในโค้ดข้างต้นกัน ซึ่งบ่งชี้ว่า UTXO ที่ใช้ในการจ่ายในการแลกเปลี่ยนนี้มาจากธุรกรรมอื่น (id คือ 7957a35fe64f80d234d76d83a2a8a0d8a0d149a41d81de548f0a65a8a999f6f18) เราสามารถหาจำนวนของ UTXO นี้จากธุรกรรมในอดีต (เช่น 0.1) ดังนั้น ในธุรกรรมนี้ ผู้ใช้ใช้จ่าย 0.1 BTC ค่า 0.1 ไม่จำเป็นต้องเขียนโดยชัดเจนในธุรกรรม แต่ได้รับจากการค้นหาข้อมูล UTXO "vout" ของธุรกรรมนี้มีสองเอาท์พุท ทั้งสองนี้เป็น UTXO ใหม่ ที่สอดคล้องกับยอดคงเหลือใหม่และเจ้าของจนกว่าธุรกรรมถัดไปจะใช้เป็นอินพุท
จำนวนบิทคอยน์ทั้งหมดคือ 21 ล้าน และแต่ละบิทคอยน์มี 10^8 ซาโตชิ (ซาโตชิ, ซาท). ดังนั้น มี 21 ล้าน * 10^8 ซาโตชิบนเครือข่ายบิทคอยน์ โปรโตคอล Ordinals แยกแยะซาโตชิเหล่านี้และตั้งเลขที่แตกต่างกันให้แต่ละซาโตชิ ส่วนนี้อธิบายวิธีที่ข้อตกลงนี้ตั้งเลขที่แตกต่างกันให้แต่ละซาโตชิและติดตามบัญชีที่มีอยู่ นอกจากนี้ยังจะมีการนำเสนอการจัดประเภทความหายากของซาโตชิด้วย
ตามข้อตกลงของ Ordinals, ซาโทชิถูกตั้งเลขตามลำดับที่ถูกขุด ภาพด้านล่างแสดงให้เห็นว่า ซาโทชิเลข 0 ถูกแทนด้วยบล็อกเลข 0
มีหลายวิธีในการแสดงถึง Satoshi:
เราจะใช้ตัวอย่างเพื่ออธิบายวิธีการนับจํานวน bitcoins ที่ขุดใหม่ เมื่อมองไปที่บล็อกที่ 795952 ของบล็อกเชน Bitcoin เราจะเห็นว่าธุรกรรมแรก Tx 3a1f ... b177 บันทึกรางวัลของนักขุด (ธุรกรรม Coinbase) ธุรกรรมนี้รวมถึง bitcoins ที่ขุดใหม่ซึ่งเป็นรางวัลแพ็คเกจสําหรับนักขุดและค่าธรรมเนียมการดําเนินการที่จ่ายให้กับนักขุดโดยผู้ริเริ่มธุรกรรม เมื่อดูอินพุตในภาพด้านล่างเราจะเห็นว่า UTxO ID ประกอบด้วยสตริงศูนย์และความสูงของบล็อก ที่อยู่เอาต์พุตคือที่อยู่กระเป๋าเงินของนักขุด และจํานวนเงินคือผลรวมของรางวัลและค่าธรรมเนียมข้างต้น
หากเรามองอย่างใกล้ชิดที่ส่วนเอาออกไปให้กับนักขุด จะพบที่อยู่ จำนวน และการกระจายของซาโตชิที่รวมอยู่ ตามที่กล่าวไว้ก่อนหน้านี้ นี้รวมถึงรางวัลในการขุดและค่าธรรมเนียม ในนั้น ข้อมูลจำนวน SATS สีเขียว 1941220000000000-1941220625000000 คือซาโตชิใหม่ที่สร้างขึ้นจากรางวัลการขุด และส่วนที่เหลือเป็นบันทึกค่าธรรมเนียม 712 ซาโตชิ ทั้งหมดในบล็อกนี้
เราสามารถยืนยันจำนวน Sat 1941220000000000 ตัวเลข หมายเลขบล็อกของมันคือ 795952 และสัญลักษณ์ทศนิยม (ทศนิยม) คือ 795952.0 ซึ่งหมายถึง ความสูงของบล็อกสำหรับการทำเหมือง Satoshi นี้คือ 795952 จำนวนในบล็อกนี้คือ 0 และความหายาก (ความหายาก) ที่ตามมาถูกทำเครื่องหมายว่าไม่ได้พบบ่อย ซึ่งเราจะพูดถึงเพิ่มเติมในส่วนถัดไป
เนื่องจากทุก BTC ถูกสร้างขึ้นผ่านรางวัลการขุดจึงสามารถตรวจสอบย้อนกลับได้ทั้งหมด บัญชี Bitcoin ใช้โมเดล UTXO สมมติว่าผู้ใช้ A ได้รับ Satoshi ที่ 100 ถึง 110 ผ่านการขุด (10 Satoshi จะถูกจัดเก็บโดยรวมใน UTXO ด้วย ID เดียวกัน adc123) เมื่อผู้ใช้ A ต้องการชําระเงินให้กับผู้ใช้ B 5 Satoshi เขาเลือกใช้ ID abc123 เป็นอินพุตสําหรับการทําธุรกรรม ในจํานวนนี้ 5 Satoshi มอบให้กับผู้ใช้ B และ 5 Satoshi จะถูกส่งกลับไปยังผู้ใช้ A เป็นศูนย์ ทั้งสองสําเนาของ 5 Satoshi เป็นทั้งหมดเก็บไว้ในสอง UTXO กับ ID abc456 และ abc789 ตามลําดับ จํานวน UTXO ID และ Satoshi ที่กล่าวถึงข้างต้นจะแสดงเป็นตัวอย่างเท่านั้น ในสถานการณ์จริงจํานวนขั้นต่ําของ Satoshi ที่ส่งจะถูก จํากัด ไว้ที่ 546 และ UTXO ID จะไม่แสดงในแบบฟอร์มนี้
ในการธุรกรรมที่อธิบายข้างต้น เส้นทางการโอนของ User A 10 Satoshi คือ:
เป็นผลิตภัณฑ์ที่มีลักษณะเฉพาะของโปรโตคอล Ordinals ซึ่งความหายากของ Satoshi สามารถถูกกำหนดตามลำดับที่ถูกขุดพบ นี่จะทำให้บาง Satoshi ที่เป็นพิเศษมีความหายากที่แตกต่างกัน นี่คือความหายากของชนิดต่างๆ ของ Satoshi
แนวคิดที่หายากและฉลาดนี้ สามารถเพิ่มความสนุกและมูลค่าให้กับระบบบิทคอยน์เพิ่มเติม ซาโตชิที่หายากต่างก็อาจมีมูลค่าที่แตกต่างกันในตลาด ทำให้ดึงดูดนักสะสมและนักลงทุน
Ordinals แตกต่างจาก NFT แบบ on-chain ที่ไม่ใช่ Bitcoin อื่น ๆ อย่างมาก ในหมู่พวกเขาความแตกต่างที่สําคัญคือข้อมูลเมตาของ Ordinals ไม่ได้ถูกเก็บไว้ในตําแหน่งเฉพาะ แต่เมตาดาต้านี้ถูกฝังลงในข้อมูลพยานของธุรกรรม (ฟิลด์พยาน) ซึ่งเป็นเหตุผลที่เราเรียกว่า " จารึก (จารึก) " เนื่องจากข้อมูลนี้ถูก "สลัก" เหมือนจารึกในส่วนเฉพาะของธุรกรรม Bitcoin และข้อมูลนี้ มันถูกแนบมากับ Satoshi เฉพาะ กระบวนการจารึกนี้ทําได้โดยการแยกพยาน (SegWit) และ "pay-to-taproot (P2TR)" (pay-to-taproot (P2TR)) ประกอบด้วยสองขั้นตอนของการส่ง (กระทํา) และการเปิดเผย (เปิดเผย) และสามารถแกะสลักเนื้อหารูปแบบใดก็ได้ (เช่นข้อความรูปภาพหรือวิดีโอ) บนกระดานอัจฉริยะที่กําหนด เราจะแนะนําวิธีการจัดเก็บข้อมูลโดยตรงอีกวิธีหนึ่ง OP_RETURN ด้านล่างและอธิบายว่าเหตุใดจึงไม่ได้ใช้เป็นเครื่องมือในการจารึก ในเวลาเดียวกันเราจะแนะนําสิ่งที่แยกพยานและจ่ายเพื่อ taproot คืออะไรและบทบาทที่พวกเขาเล่นในจารึก ในตอนท้ายเราจะแนะนําวิธีการจารึก
ในเวอร์ชัน 0.9 ของไคลเอ็นต์ Bitcoin Core สามารถบรรลุความประสงค์ได้ในที่สุดโดยการใช้ตัวดำเนินการ RETURN **RETURN ช่วยให้นักพัฒนาสามารถเพิ่มข้อมูลที่ไม่ใช่การชำระเงิน 80 ไบต์ลงในเอาตพุทของธุรกรรม **ต่างจากการชำระเงินปลอม RETURN สร้างเอาตพุทที่ชัดแจ้งและสามารถตรวจสอบได้ว่าไม่สามารถใช้ได้ ข้อมูลดังกล่าวไม่จำเป็นต้องเก็บไว้ในเซ็ต UTXO RETURN เอาตพุทถูกบันทึกบนบล็อกเชน มันใช้พื้นที่ดิสก์และยังทำให้บล็อกเชนขยายขนาด แต่เนื่องจากว่าไม่ได้เก็บไว้ในโครงสร้าง UTXO จึงไม่ทำให้ก้อนความจำ UTXO ขยายขนาด อย่างน้อยก็ไม่เพิ่มต้นทุนความจำที่แพงของโหนดทั้งหมด
แม้ว่า OP_RETURN จะเป็นวิธีการจัดเก็บข้อมูลโดยตรงไปยังบล็อกเชน Bitcoin แต่ก็เป็นวิธีจารึกที่เป็นไปได้ อย่างไรก็ตามข้อ จํากัด ของ OP_RETURN ทําให้ต้องเผชิญกับความท้าทายบางอย่างเมื่อจัดการกับการจัดเก็บข้อมูลเมตา ประการแรก OP_RETURN สามารถจัดเก็บข้อมูลได้เพียง 80 ไบต์และสําหรับสถานการณ์ที่จําเป็นต้องจัดเก็บข้อมูลจํานวนมากข้อ จํากัด นี้เป็นไปไม่ได้ที่จะตอบสนองอย่างชัดเจน ประการที่สองข้อมูล OP_RETURN จะถูกเก็บไว้ในส่วนผลลัพธ์ของธุรกรรม แม้ว่าข้อมูลนี้จะไม่ถูกจัดเก็บจากส่วนกลางใน UTXO แต่ก็ใช้พื้นที่จัดเก็บบล็อกเชนซึ่งนําไปสู่การเพิ่มขนาดบล็อกเชน สุดท้ายการใช้ OP_RETURN ส่งผลให้ค่าธรรมเนียมการทําธุรกรรมสูงขึ้นเนื่องจากต้องจ่ายเงินมากขึ้นในการโพสต์ธุรกรรมเหล่านี้
ในทางตรงกันข้าม SegWit ให้การเข้าใจที่แตกต่างที่สามารถเอาชนะปัญหาเหล่านี้ได้ SegWit เป็นการอัพเกรดโปรโตคอลที่สำคัญสำหรับบิทคอยน์ ถูกเสนอโดยนักพัฒนา Bitcoin core Pieter Wuille เมื่อปี 2015 และได้รับการยอมรับอย่างเป็นทางการในเวอร์ชัน 0.16.0 ในปี 2017 Segregated ใน segregated witness หมายถึงการแยกหรือการกำหนดสิ่งแยกแยะและพยายามเป็นลายเซ็นเจอร์ที่เกี่ยวข้องกับธุรกรรม ดังนั้น SegWit แยกข้อมูลลายเซ็นเจอร์ของธุรกรรมบางส่วน (ข้อมูลพยายาม) จากธุรกรรม
ประโยชน์หลักของการแยกลายเซ็นออกจากข้อมูลที่เกี่ยวข้องกับธุรกรรมคือการลดขนาดของข้อมูลที่เก็บไว้ในบล็อก Bitcoin วิธีนี้แต่ละบล็อกมีความสามารถพิเศษในการจัดเก็บธุรกรรมเพิ่มเติมซึ่งหมายความว่าเครือข่ายสามารถประมวลผลธุรกรรมได้มากขึ้นและผู้ส่งจ่ายค่าธรรมเนียมการดําเนินการที่ต่ํากว่า ในทางเทคนิคข้อมูลลายเซ็นสคริปต์ (scriptSig) นํามาจากโครงสร้างพื้นฐาน (บล็อกฐาน) และวางไว้ในโครงสร้างข้อมูลใหม่ โหนดและนักขุดที่ทํางานตรวจสอบจะตรวจสอบลายเซ็นสคริปต์ในโครงสร้างข้อมูลใหม่นี้เพื่อให้แน่ใจว่าธุรกรรมถูกต้อง การอัพเกรด Segwit ได้แนะนําฟิลด์พยานใหม่ในผลลัพธ์การทําธุรกรรมเพื่อให้มั่นใจถึงความเป็นส่วนตัวและประสิทธิภาพ แม้ว่าข้อมูลพยานไม่ได้ออกแบบมาสําหรับการจัดเก็บข้อมูล แต่ก็เปิดโอกาสให้เราจัดเก็บสิ่งต่างๆเช่นเมตาดาต้าจารึก ลองใช้ภาพต่อไปนี้เพื่อทําความเข้าใจพยานกักกันให้ดีขึ้น:
P2TR เป็นชนิดของเอาท์พุตการทำธุรกรรมสำหรับบิทคอยน์ ถูกนำเสนอในการอัพเกรด Taproot เมื่อปี 2021 มันช่วยให้เงื่อนไขการทำธุรกรรมที่แตกต่างกันสามารถถูกเก็บไว้เป็นความเป็นส่วนตัวมากขึ้นบนบล็อกเชน ในจารึกของ Ordinals P2TR เล่น peran penting จารึกซึ่งฝังข้อมูลเฉพาะเข้าไปในการทำธุรกรรมบิทคอยน์ และการอัพเกรด Taproot โดยเฉพาะ P2TR ได้ทำให้ข้อมูลที่ฝังอยู่นี้มีความยืดหยุ่นและคุณภาพมากขึ้น
ประการแรกเนื่องจากวิธีการจัดเก็บสคริปต์ Taproot เราสามารถจัดเก็บเนื้อหาจารึกในสคริปต์ค่าใช้จ่ายเส้นทางสคริปต์ Taproot สคริปต์เหล่านี้แทบไม่มีข้อ จํากัด เกี่ยวกับเนื้อหาและในเวลาเดียวกันยังสามารถรับส่วนลดจากข้อมูลพยานทําให้การจัดเก็บเนื้อหาจารึกค่อนข้างประหยัด เนื่องจากการใช้สคริปต์ Taproot สามารถทําได้จากเอาต์พุต Taproot ที่มีอยู่แล้วเท่านั้นจารึกจึงใช้กระบวนการส่ง / เปิดเผยสองขั้นตอน ขั้นแรกในการส่งธุรกรรมเอาต์พุต Taproot ถูกสร้างขึ้นซึ่งสัญญาว่าจะมีสคริปต์ที่มีเนื้อหาของจารึก จากนั้นในการทําธุรกรรมเปิดเผยผลลัพธ์ที่สร้างขึ้นโดยการส่งธุรกรรมจะถูกใช้ดังนั้นจึงเปิดเผยเนื้อหาของจารึกบนห่วงโซ่
วิธีการนี้ได้ลดการใช้ทรัพยากรอย่างมาก หากไม่มีการใช้ P2TR ข้อมูลเห็นพยานจะถูกเก็บไว้ในเอาต์พุตของธุรกรรม โดยวิธีนี้เมื่อเอาต์พุตนี้ยังไม่ถูกใช้จะทำให้ข้อมูลเห็นพยานเก็บอยู่ใน UTXO pool เสมอ ในทางกลับกัน หากใช้ P2TR ข้อมูลเห็นพยานจะไม่ปรากฏในธุรกรรมที่สร้างขึ้นในช่วงการส่ง ดังนั้นจะไม่ถูกเขียนลงในชุด UTXO เพียงเมื่อ UTXO นี้ถูกใช้จะทำให้ข้อมูลเห็นพยานปรากฏในอินพุตของธุรกรรมในช่วงการเปิดเผย เท่านั้น P2TR ช่วยให้สามารถเขียนข้อมูลเมตาดาต้าลงบนบล็อกเชน Bitcoin ได้ แต่มิใช่ข้อมูลนี้ปรากฏใน UTXO เนื่องจากการรักษา/ปรับเปลี่ยนชุด UTXO ต้องใช้ทรัพยากรมากขึ้น วิธีการนี้สามารถประหยัดทรัพยากรได้อย่างมีนัยสำคัญ
โปรโตคอล Ordinals ใช้ SegWit เพื่อผ่อนความจํากัดขนาดของเนื้อหาที่เขียนลงในเครือข่าย Bitcoin โดยเก็บเนื้อหาจารึกใน witness data ซึ่งช่วยให้เก็บข้อมูลประมาณ 4MB ได้ Taproot ทำให้ง่ายขึ้นในการเก็บ witness data อย่างสมบูรณ์ในธุรกรรม Bitcoin โดยอนุญาตให้นักพัฒนา Ordinals Casey Rodarmor นำ opcodes เก่า (OP_FALSE, OP_IF, OP_PUSH) มาใช้เก็บข้อมูลอย่างสมบูรณ์ในสิ่งที่เขาเรียกว่า "ซอง" ที่เรียกว่า "จารึก"
กระบวนการสำหรับการสลักจารึกประกอบด้วยขั้นตอนทั้งสองต่อไปนี้:
ขั้นแรกจําเป็นต้องสร้างสัญญาในธุรกรรมการส่งไปยังเอาต์พุต Taproot ของสคริปต์ที่มีเนื้อหาของจารึก รูปแบบการจัดเก็บคือ Taproot นั่นคือผลลัพธ์ของธุรกรรมก่อนหน้าคือ P2TR (Pay-To-Taproot) และอินพุตของธุรกรรมหลังฝังเนื้อหาในรูปแบบเฉพาะในสคริปต์ Taproot ที่เห็น สตริง ord ถูกวางซ้อนกันก่อนเพื่อกําจัดความคลุมเครือที่จารึกมีประโยชน์อื่น ๆ OP_PUSH 1 ระบุว่าการพุชครั้งต่อไปมีชนิดเนื้อหา และ OP_PUSH 0 บ่งชี้ว่าการพุชข้อมูลที่ตามมารวมถึงเนื้อหาด้วย จารึกขนาดใหญ่ต้องใช้การพุชข้อมูลหลายรายการเนื่องจากหนึ่งในข้อ จํากัด บางประการของ taproot คือการพุชข้อมูลเดียวต้องไม่ใหญ่กว่า 520 ไบต์ ณ จุดนี้ข้อมูลของจารึกถูกนําไปใช้กับเอาต์พุต UTXO ของธุรกรรม แต่ยังไม่ได้รับการเปิดเผย
ในขั้นตอนต่อมา จำเป็นต้องเปิดเผยผลลัพธ์ที่สร้างขึ้นโดยธุรกรรมการส่งซื้อในธุรกรรม ณ ขั้นนี้ ธุรกรรมถูกเริ่มต้นโดยใช้ UTXO ที่สอดคล้องกับจารึกนั้นเป็นอินพุท ณ จุดนี้ สาระสำคัญของจารึกที่สอดคล้องกันถูกเปิดเผยให้กับเครือข่ายทั้งหมด
ผ่านขั้นตอนทั้งสองที่กล่าวมาข้างต้น จารึกได้ถูกผูกกับ UTXO ที่สลายลง นอกจากนี้ ตามตำแหน่งการตั้งต้นของ Satoshi ที่กล่าวถึงข้างต้น การจารึกถูกดำเนินการบน Satoshi ตัวแรกที่สอดคล้องกับการนำเข้า UTXO และเนื้อหาของการจารึกถูกรวมอยู่ในการนำเข้าที่แสดงการทำธุรกรรม ตามข้อมูลสำหรับการกระจายและติดตาม Satoshi ที่กล่าวถึงข้างต้น Satoshi นี้ซึ่งจารึกด้วยเนื้อหาพิเศษสามารถถูกโอน ซื้อ ขาย สูญหาย และกู้คืน โปรดทราบว่า จารึกไม่สามารถทำซ้ำได้ ไม่เช่นนั้น จารึกที่ตามมาจะไม่ถือเป็นข้อมูลที่ถูกต้อง
เราจะอธิบายกระบวนการนี้อย่างละเอียดโดยการจารึกตัวอย่างของภาพ NFT BTC ขนาดเล็ก กระบวนการนี้รวมไปถึงสองขั้นตอนหลัก คือ การส่ง (commit) และการเปิดเผย (reveal) ที่กล่าวถึงก่อนหน้านี้ ก่อนอื่นเราเห็นว่า Hash ID สำหรับธุรกรรมแรกคือ 2ddf9... f585c สามารถบันทึกได้ว่าผลลัพธ์ของธุรกรรมนี้ไม่รวมข้อมูลพยาน และไม่มีการจารึกที่เกี่ยวข้องบนหน้านั้น
ต่อไปเรามาดูบันทึกของขั้นตอนที่สอง ไอดีแฮชคือ e7454... 7c0e1 ที่นี่เราสามารถเห็นข้อมูลเกี่ยวกับจารึกของ Ordinals นั่นคือเนื้อหาของจารึกพยาน ที่อยู่นำเข้าสำหรับธุรกรรมนี้คือที่อยู่ผลลัพธ์ของธุรกรรมก่อนหน้า และผลลัพธ์ 0.00000546 BTC (546 Satoshi) กำลังส่ง NFT นี้ไปยังที่อยู่ของตัวเอง ในเวลาเดียวกัน เรายังสามารถใช้ Sat Find Satoshi ที่จะบอกที่จารึกนี้ตั้งอยู่ในตำแหน่ง 1893640468329373
ในกระเป๋าเงิน Bitcoin เราสามารถเห็นสินทรัพย์นี้ หากเราต้องการซื้อขาย NFT นี้ เราสามารถส่งไปที่อยู่ของคนอื่นๆ โดยตรง นั่นคือ ส่ง UTXO นี้ และสิ้นสุดการหมุนเวียนของการจารึก
หลังจากที่เราได้เรียนรู้เกี่ยวกับระบบ Ordinals, การหมุนเวียนของ Satoshi, และความรู้ที่เกี่ยวข้องกับจารึก ณ ขณะนี้มีฉากที่ใช้งานหลายอย่าง ไม่ว่าจะเป็นการเกิดขึ้นของข้อตกลงเชิงเอกสารที่เกี่ยวข้อง เช่น BRC-20, ORC-20, BRC-721, GBRC-721, ฯลฯ เราต้องการกระเป๋าเงินที่สอดคล้องกับและแสดงข้อมูลโทเค็นหรือภาพ NFT ขนาดเล็ก ในส่วนนี้เราจะแนะนำแนวคิดและลักษณะของที่อยู่กระเป๋าเงิน Bitcoin ที่แตกต่างกัน
ที่อยู่ Bitcoin ขึ้นต้นด้วย 1, 3 หรือ bc1 เช่นเดียวกับที่อยู่อีเมลพวกเขาสามารถแบ่งปันกับผู้ใช้ Bitcoin คนอื่น ๆ ที่สามารถใช้พวกเขาเพื่อส่ง bitcoins โดยตรงไปยังกระเป๋าเงินของพวกเขา จากมุมมองด้านความปลอดภัยที่อยู่ Bitcoin ไม่มีเนื้อหาที่ละเอียดอ่อน สามารถโพสต์ได้ทุกที่โดยไม่เป็นอันตรายต่อความปลอดภัยของบัญชี ซึ่งแตกต่างจากที่อยู่อีเมลเราสามารถสร้างที่อยู่ใหม่ได้ตลอดเวลาที่เราต้องการซึ่งทั้งหมดนี้จะฝากเงินเข้ากระเป๋าเงินของคุณโดยตรง ในความเป็นจริงกระเป๋าเงินที่ทันสมัยจํานวนมากจะสร้างที่อยู่ใหม่สําหรับทุกธุรกรรมโดยอัตโนมัติเพื่อเพิ่มความเป็นส่วนตัวสูงสุด กระเป๋าเงินเป็นเพียงชุดของที่อยู่และกุญแจเพื่อปลดล็อกเงินในนั้น ก่อนอื่นเราต้องรู้ว่าที่อยู่กระเป๋าเงิน Bitcoin ถูกสร้างขึ้นอย่างไร
Bitcoin ใช้เส้นโค้งรูปไข่ secp256k1 "คีย์ส่วนตัว" เป็นตัวเลขสุ่มระหว่าง 1 ถึง n-1 n เป็นจํานวนมาก (256 บิต) และ n แสดงในสัญกรณ์ทางวิทยาศาสตร์เกี่ยวกับ 1.15792 * 10 ^ 77 ขอบเขตมีขนาดใหญ่และแทบจะเป็นไปไม่ได้เลยที่เราจะเดาคีย์ส่วนตัวของคนอื่น คีย์ส่วนตัวจํานวนเต็มแบบสุ่มนี้สามารถใช้ได้ 256 บิตระบุว่ามีหลายวิธีในการเข้ารหัส หากคีย์ส่วนตัวที่ใช้การบีบอัด WIF หรือ WIF ไม่ได้เข้ารหัส สามารถรับ "จํานวนเต็มแบบสุ่ม" ดั้งเดิมได้โดยการถอดรหัส อีกวิธีหนึ่งคือ BIP38 มีการเสนอให้ใช้อัลกอริธึม AES เพื่อเข้ารหัสคีย์ส่วนตัว คีย์ส่วนตัวที่ได้รับจากโครงร่างนี้เริ่มต้นด้วยอักขระ 6P คีย์ส่วนตัวนี้จะต้องนําเข้าไปยังกระเป๋าเงิน Bitcoin ต่างๆ นี่คือคีย์ส่วนตัวที่เรามักใช้
เราจะใช้สูตรเส้นโค้งทารก์ K = kG เพื่อสร้างคีย์สาธารณะของ Bitcoin K จากคีย์ส่วนตัว k G คือจุดฐานฐานที่เป็นพารามิเตอร์ของ secp256k1 คุณสามารถรับค่าพิกัดสองของ K ซึ่งเป็นสองนิพจน์ของคีย์สาธารณะ “รูปแบบที่ยังไม่บีบอัด” และ “รูปแบบที่บีบอัด” ตามลำดับ
รูปแบบต่าง ๆ ของที่อยู่ Bitcoin สามารถเห็นได้ในรูปด้านล่าง มีวิธีการแสดงออกมา 4 วิธี
1. รูปแบบสืบทอด (P2PKH)
ตัวอย่าง: 1fh7ajxabjbpzw8bjd3qu4cuq3prty9u
ที่อยู่ที่ขึ้นต้นด้วย “1” เป็นรูปแบบที่เริ่มต้นของบิทคอยน์และยังใช้อยู่ถึงปัจจุบัน ได้รับจากคีย์สาธารณะผ่านการคำนวณแฮช ที่รู้จักกันในชื่อ P2PKH ซึ่งเป็นระเบียบย่อสำหรับ Pay To PubKey Hash (การชำระเงินไปยังแฮชของคีย์สาธารณะ)
รูปแบบ Nested SegWit (P2SH)
ตัวอย่าง: 3kf9nxowq4assgxrrzeitpdjmuwM2nyPan
ที่อยู่เริ่มต้นด้วย “ 3 “ P2SH ย่อมาจาก Pay To Script Hash (Pay To Script Hash) ซึ่งรองรับคุณลักษณะที่ซับซ้อนกว่าที่อยู่ Legacy Nested P2SH ได้รับที่อยู่ P2SH ที่มีอยู่ (เริ่มต้นด้วย “3”) และห่อหุ้มด้วยที่อยู่ SegWit
3. รูปแบบ Native SegWit (Bech32)
ที่อยู่ที่ขึ้นต้นด้วย bc1 ถูกเสนอในปี BIP0173 พวกเขาเป็นที่อยู่ของพยานกักกันพื้นเมือง ที่อยู่ที่เข้ารหัส Bech32 เป็นรูปแบบที่อยู่ที่พัฒนาขึ้นเป็นพิเศษสําหรับ SegWit Bech32 ถูกกําหนดไว้ใน BIP173 เมื่อปลายปี 2017 หนึ่งในคุณสมบัติหลักของรูปแบบนี้คือไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (ที่อยู่มีเพียง 0-9, az) ดังนั้นจึงสามารถหลีกเลี่ยงความสับสนได้อย่างมีประสิทธิภาพและอ่านง่ายขึ้นเมื่อป้อน เนื่องจากต้องใช้อักขระน้อยลงในที่อยู่ที่อยู่จึงใช้การเข้ารหัส Base32 แทน Base58 แบบเดิมซึ่งสะดวกและมีประสิทธิภาพในการคํานวณมากกว่า ข้อมูลสามารถจัดเก็บได้แน่นขึ้นในรหัส QR Bech32 ให้ความปลอดภัยที่สูงขึ้นเพิ่มประสิทธิภาพการตรวจสอบและรหัสตรวจจับข้อผิดพลาดและลดโอกาสของที่อยู่ที่ไม่ถูกต้อง
ที่อยู่ Bech32 นั้นเข้ากันได้กับ SegWit ไม่จําเป็นต้องใช้พื้นที่เพิ่มเติมในการใส่ที่อยู่ SegWit ลงในที่อยู่ P2SH ดังนั้นการใช้ที่อยู่รูปแบบ Bech32 ค่าธรรมเนียมการดําเนินการจะลดลง ที่อยู่ Bech32 มีข้อดีหลายประการเหนือ Base58 เก่า (การเข้ารหัส Base58Check ใช้เพื่อเข้ารหัสอาร์เรย์ไบต์ใน Bitcoin เป็นสตริงที่มนุษย์เข้ารหัสได้) ที่อยู่: รหัส QR มีขนาดเล็กกว่า พวกเขามีหลักฐานข้อผิดพลาดมากขึ้น พวกเขามีความปลอดภัยมากขึ้น พวกเขาไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ พวกเขาประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้นดังนั้นจึงง่ายต่อการอ่านพิมพ์และเข้าใจ
รูปแบบ Taproot (P2TR)
Bech32 มีข้อเสีย: หากตัวอักษรสุดท้ายในที่อยู่คือ p, การแทรกหรือลบตัวอักษร q จำนวนใดก็ต่อเมื่ออยู่ก่อน p จะไม่ทำให้ค่า checksum ของมันไม่ถูกต้อง
เพื่อลดปัญหาข้างต้นของ Bech32 ที่กล่าวถึง ที่อยู่ Bech32M ถูกเสนอใน BIP0350:
สำหรับที่อยู่ Bech32M เมื่อรุ่นเป็น 1 พวกเขาเริ่มต้นด้วย bc1p เสมอ (นั่นคือ ที่อยู่ Taproot) โดยเฉพาะอย่างยิ่ง เช่น พยานการจำกัดพื้นที่ท้องถิ่น กระเป๋าสตางค์สามารถประกอบด้วย วลีเมล็ดและวลีรหัสผ่าน พวกเขาถูกใช้ในการสร้างคีย์สาธิตและส่วนตัวที่ขยาย และถูกใช้ในการสร้างที่อยู่สำหรับเส้นทางต่าง ๆ ในกระเป๋าสตางค์เชิงลำดับเชิงลำดับ โดยส่วนใหญ่เป็น NFT ที่เก็บ BRC-20 และ BTC
Spectrum Labs เป็นทีมของผู้เชี่ยวชาญและผู้มีปริญญาเอกที่เน้นการวิจัยเชิงบล็อกเชน และเป็นผู้เชี่ยวชาญในอุตสาหกรรมบล็อกเชน เรามุ่งมั่นที่จะทำการวิจัยเชิงบล็อกเชนและเทคโนโลยีโซเชียลเน็ตเวิร์คและการประยุกต์ใช้งานเพื่อช่วยให้คนเข้าใจเรื่องเทคโนโลยีบล็อกเชนได้ดียิ่งขึ้น ธุรกิจหลักของ Spectrum Labs รวมถึงการเขียนรายงานวิจัย เขียนคอร์สเรียน และการพัฒนาเครื่องมือ
ชุมชน BTC NFT จีนเป็นแพลตฟอร์มแลกเปลี่ยน BTC NFT สำหรับชาวจีนใหม่จากทั่วโลก