What is Transaction Size?
Transaction Size คือปริมาณข้อมูลที่ธุรกรรม crypto ของคุณใช้ โดยทั่วไปวัดเป็นไบต์หรือ virtual bytes ข้อมูลมากขึ้นหมายถึงมีข้อมูลต้องเก็บและเคลื่อนย้ายบนเครือข่ายมากขึ้น ลองนึกถึงการส่งอีเมลที่มีอีโมจิหนึ่งอันกับอัลบั้มรูปถ่ายเต็มชุด
“ถ้าผมส่ง crypto ในจำนวนมากขึ้น Transaction Size ของผมก็จะใหญ่ขึ้น” ไม่จริง ขนาดขึ้นกับจำนวน inputs, outputs, และ signatures ที่ธุรกรรมของคุณมี ไม่ใช่จำนวนเหรียญ
How Transaction Size works
ทัวร์รวดเร็วด้วยการส่งแบบง่ายบน Bitcoin เป็นฉากหลัง
- Step 1: Wallet ของคุณเลือก inputs ซึ่งเป็น coins ที่คุณได้รับมา จำนวน inputs มากขึ้นมักหมายถึง bytes มากขึ้น
- Step 2: มันสร้าง outputs สำหรับผู้รับและโดยทั่วไปเปลี่ยนเป็น change output กลับหาตัวคุณเอง ทุก output เพิ่มข้อมูลเล็กน้อย
- Step 3: มันเพิ่ม signatures และ scripts ฟีเจอร์หรูหราอย่าง multi-signature transactions เพิ่ม bytes เพิ่มเพราะต้องมี keys มากกว่าหนึ่งที่ต้องลงนาม
- Step 4: Wallet ประมาณค่าใช้จ่ายโดยการคูณขนาดด้วยอัตราค่าธรรมปัจจุบัน นั่นคือที่มาของ transaction fees
- Step 5: Miners ชอบ fee per byte ที่สูงกว่า ดังนั้น Transaction Size ที่เล็กลงสามารถช่วยให้คุณได้รับการยืนยันเร็วขึ้นด้วยค่า fee ทั้งหมดเท่าเดิม
แจ๋วใช่ไหม ข้อมูลน้อยลง กระบวนการราบรื่นขึ้น
Why Transaction Size Matters
เพราะคุณใส่ใจเรื่องความเร็วและค่าใช้จ่าย และ Miners ก็ใส่ใจเช่นกัน
- Benefit: Transaction Size ที่เล็กลงมักหมายถึงคุณจ่ายน้อยลงในขณะที่คงเป้าการยืนยันเดิมไว้ได้
- Perspective: ในช่วง network congestion ตลาดค่าธรรมเนียมร้อนขึ้น และธุรกรรมที่บวมจะมีราคาสูงขึ้นเพื่อผ่าน
- Relevance: เชื่อมโยงกับ scalability เพราะการบรรจุธุรกรรมมากขึ้นในบล็อกช่วยปรับปรุง throughput โดยรวม
ใช้ที่อยู่และ wallets ที่รองรับ Segregated Witness (SegWit) มันตัดข้อมูลที่มีค่าใช้จ่ายมากที่สุดออกไป ทำให้ Transaction Size ใน virtual bytes ลดลง
Key Characteristics of Transaction Size
อะไรทำให้มันสูงขึ้นหรือต่ำลง:
- Inputs: ยิ่ง inputs มากขึ้นจะเพิ่ม signatures และ scripts ซึ่งทำให้ bytes มากขึ้น
- Outputs: ผู้รับเพิ่มเติมและ change outputs เพิ่มขนาด แม้โดยทั่วไปจะมากกว่ายอด inputs ไม่มาก
- Scripts: สคริปต์ซับซ้อนหรือเงื่อนไขการใช้จ่ายเพิ่มข้อมูลที่ต้องรวม
- Witness: กับ SegWit บางส่วนของข้อมูลถูกหักส่วนใน virtual bytes
- Reuse: การรวมเหรียญขนาดเล็กเมื่อค่าธรรมเนียมต่ำสามารถลด Transaction Size ในอนาคตได้
How is Transaction Size calculated?
ใน Bitcoin ข้อมูลถูก serialized เป็น bytes ด้วย SegWit ขนาดมักถูกแสดงเป็น weight และ virtual bytes
- Weight: non witness bytes คูณด้วย 4 บวก witness bytes
- Virtual bytes: vbytes เท่ากับ weight หารด้วย 4 ปัดขึ้น
ตัวอย่าง: ถ้า non witness เป็น 180 ไบต์ และ witness 100 ไบต์ น้ำหนักเท่ากับ 180 x 4 บวก 100 ซึ่งเท่ากับ 820 และ vbytes เท่ากับ 820 ÷ 4 เท่ากับ 205
Variations
วิธีที่ผู้คนอ้างถึงขนาดต่างๆ:
- Bytes: ความยาวที่ serialize แบบดิบโดยไม่คิดส่วนลด
- Vbytes: virtual bytes ที่ใช้โดยตลาดค่าธรรมเมื่อมีการหัก SegWit
- Weight: มาตรการภายในที่ใช้การนับต่างๆ กับส่วน witness และ non witness
จำนวน bitcoin ที่คุณส่งไม่เปลี่ยน Transaction Size โครงสร้างของธุรกรรมต่างหากที่ส่งผล
Example
การส่งไปหาเพื่อนหนึ่งคนด้วย inputs และ outputs อย่างละหนึ่งอาจอยู่ที่ไม่กี่ร้อย virtual bytes ในขณะที่การใช้ inputs เล็กๆ ห้าชิ้นสามารถพัฒนา Transaction Size ให้สูงขึ้นมากและทำให้ค่าธรรมเนียมสูงขึ้น
Fun Fact
SegWit แนะนำแนวคิดของ weight และ virtual bytes เพื่อให้ธุรกรรมมากขึ้นสามารถอยู่ในบล็อกได้โดยไม่เปลี่ยนตำนานหนึ่งเมกะไบต์เดิม ซึ่งเป็นประวัติศาสตร์คริปโตที่ผสมผสานกับความคิดด้านโค้ด
Wrap Up
คิดถึง Transaction Size เหมือน footprint ของต้นทุนคุณ ลดมันให้ได้เท่าที่ทำได้ แล้วคุณจะขอบคุณตัวเองในเวลาค่าธรรมเนียมเมื่อถึงเวลา)